You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
178 lines
5.8 KiB
YAML
178 lines
5.8 KiB
YAML
---
|
|
|
|
k8s_argocd_with_keycloak: false
|
|
|
|
k8s_argocd_helm__name: "argo-cd"
|
|
k8s_argocd_helm__release_namespace: "argo-cd"
|
|
|
|
argocd_server_admin_password: "{{ argocd_server_admin_password_vault }}"
|
|
|
|
k8s_argocd_helm__chart_version: 5.19.0
|
|
|
|
# https://github.com/argoproj/argo-helm/tree/master/charts/argo-cd
|
|
k8s_argocd_helm__release_values:
|
|
repoServer:
|
|
serviceAccount:
|
|
create: true
|
|
name: argo-cd-argocd-repo-server
|
|
rbac:
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- secrets
|
|
verbs:
|
|
- get
|
|
logLevel: warn
|
|
logFormat: json
|
|
env:
|
|
- name: ARGOCD_MAX_CONCURRENT_LOGIN_REQUESTS_COUNT
|
|
value: "0"
|
|
- name: ARGOCD_EXEC_TIMEOUT
|
|
value: "300s"
|
|
- name: XDG_CONFIG_HOME
|
|
value: /.config
|
|
- name: GNUPGHOME
|
|
value: /home/argocd/.gnupg
|
|
- name: HELM_PLUGINS
|
|
value: /custom-tools/helm-plugins/
|
|
- name: HELM_SECRETS_SOPS_PATH
|
|
value: /custom-tools/sops
|
|
- name: HELM_SECRETS_VALS_PATH
|
|
value: /custom-tools/vals
|
|
- name: HELM_SECRETS_KUBECTL_PATH
|
|
value: /custom-tools/kubectl
|
|
- name: HELM_SECRETS_CURL_PATH
|
|
value: /custom-tools/curl
|
|
# https://github.com/jkroepke/helm-secrets/wiki/Security-in-shared-environments
|
|
- name: HELM_SECRETS_KEY_LOCATION_PREFIX
|
|
value: "/sops-gpg/"
|
|
- name: HELM_SECRETS_VALUES_ALLOW_SYMLINKS
|
|
value: "false"
|
|
- name: HELM_SECRETS_VALUES_ALLOW_ABSOLUTE_PATH
|
|
value: "false"
|
|
- name: HELM_SECRETS_VALUES_ALLOW_PATH_TRAVERSAL
|
|
value: "false"
|
|
volumes:
|
|
- name: custom-tools
|
|
emptyDir: {}
|
|
- name: custom-tools-helm
|
|
emptyDir: {}
|
|
- name: gnupg-home
|
|
emptyDir: {}
|
|
- name: sops-gpg
|
|
secret:
|
|
secretName: sops-gpg
|
|
volumeMounts:
|
|
- mountPath: /home/argocd/.gnupg
|
|
name: gnupg-home
|
|
subPath: .gnupg
|
|
- mountPath: /usr/local/bin/kustomize
|
|
name: custom-tools
|
|
subPath: kustomize
|
|
# Verify this matches a XDG_CONFIG_HOME=/.config env variable
|
|
- mountPath: /.config/kustomize/plugin/viaduct.ai/v1/ksops/ksops
|
|
name: custom-tools
|
|
subPath: ksops
|
|
- mountPath: /custom-tools/helm-plugins
|
|
name: custom-tools-helm
|
|
subPath: helm-plugins
|
|
- mountPath: /custom-tools/kubectl
|
|
name: custom-tools-helm
|
|
subPath: kubectl
|
|
- mountPath: /custom-tools/sops
|
|
name: custom-tools-helm
|
|
subPath: sops
|
|
- mountPath: /custom-tools/vals
|
|
name: custom-tools-helm
|
|
subPath: vals
|
|
initContainers:
|
|
- name: 1-install-ksops
|
|
image: viaductoss/ksops:v3.0.1
|
|
command: ["/bin/sh", "-c"]
|
|
args:
|
|
- echo "Installing KSOPS...";
|
|
mv ksops /custom-tools/;
|
|
mv $GOPATH/bin/kustomize /custom-tools/;
|
|
echo "Done.";
|
|
volumeMounts:
|
|
- mountPath: /custom-tools
|
|
name: custom-tools
|
|
- name: 2-download-tools
|
|
image: alpine:latest
|
|
command: [sh, -ec]
|
|
env:
|
|
- name: HELM_SECRETS_VERSION
|
|
value: "3.12.0"
|
|
- name: KUBECTL_VERSION
|
|
value: "1.24.3"
|
|
- name: VALS_VERSION
|
|
value: "0.18.0"
|
|
- name: SOPS_VERSION
|
|
value: "3.7.3"
|
|
args:
|
|
- |
|
|
echo "Installing helm secrets...";
|
|
mkdir -p /custom-tools/helm-plugins
|
|
wget -qO- https://github.com/jkroepke/helm-secrets/releases/download/v${HELM_SECRETS_VERSION}/helm-secrets.tar.gz | tar -C /custom-tools/helm-plugins -xzf-;
|
|
echo "Done.";
|
|
|
|
echo "Downloading SOPS=${SOPS_VERSION} and kubectl ...";
|
|
wget -qO /custom-tools/sops https://github.com/mozilla/sops/releases/download/v${SOPS_VERSION}/sops-v${SOPS_VERSION}.linux
|
|
wget -qO /custom-tools/kubectl https://dl.k8s.io/release/v${KUBECTL_VERSION}/bin/linux/amd64/kubectl
|
|
echo "Done.";
|
|
|
|
echo "Downloading vals...";
|
|
wget -qO- https://github.com/variantdev/vals/releases/download/v${VALS_VERSION}/vals_${VALS_VERSION}_linux_amd64.tar.gz | tar -xzf- -C /custom-tools/ vals;
|
|
echo "Done.";
|
|
|
|
chmod +x /custom-tools/*;
|
|
volumeMounts:
|
|
- mountPath: /custom-tools
|
|
name: custom-tools-helm
|
|
- name: 3-import-gpg-key
|
|
image: argoproj/argocd:v2.2.5
|
|
command: ["gpg", "--import","/sops-gpg/gpg_key_smardigo_automation__private"]
|
|
env:
|
|
- name: GNUPGHOME
|
|
value: /gnupg-home/.gnupg
|
|
volumeMounts:
|
|
- mountPath: /sops-gpg
|
|
name: sops-gpg
|
|
- mountPath: /gnupg-home
|
|
name: gnupg-home
|
|
server:
|
|
logLevel: warn
|
|
logFormat: json
|
|
config:
|
|
kustomize.buildOptions: "--enable-alpha-plugins"
|
|
helm.valuesFileSchemes: >-
|
|
secrets+gpg-import, secrets+gpg-import-kubernetes,
|
|
secrets+age-import, secrets+age-import-kubernetes,
|
|
secrets,secrets+literal,
|
|
https
|
|
service:
|
|
sessionAffinity: ClientIP
|
|
ingress:
|
|
enabled: true
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
cert-manager.io/issue-temporary-certificate: "true"
|
|
kubernetes.io/ingress.class: nginx
|
|
nginx.ingress.kubernetes.io/whitelist-source-range: "{{ ( ip_whitelist ) | join(',') }}"
|
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
|
|
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
|
|
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
|
hosts:
|
|
- "{{ shared_service_kube_argocd_hostname }}"
|
|
tls:
|
|
- secretName: "{{ stage }}-kube-argocd-cert"
|
|
hosts:
|
|
- "{{ shared_service_kube_argocd_hostname }}"
|
|
dex:
|
|
enabled: false
|
|
applicationSet:
|
|
enabled: false
|
|
configs:
|
|
secret:
|
|
argocdServerAdminPassword: '{{ argocd_server_admin_password | password_hash("bcrypt") }}'
|