155 lines
5.5 KiB
YAML
155 lines
5.5 KiB
YAML
# TODO - Any of the fields with TODO must be changed for the deployment to work.
|
||
secrets:
|
||
harbor:
|
||
username: !vault internal/harbor/users/argocd#username # TODO
|
||
password: !vault internal/harbor/users/argocd#password # TODO
|
||
git:
|
||
username: !vault internal/git/users/argocd#username # TODO
|
||
password: !vault internal/git/users/argocd#password # TODO
|
||
vault:
|
||
role_id: !vault internal/vault/argocd#role_id # TODO
|
||
secret_id: !vault internal/vault/argocd#secret_id # TODO
|
||
|
||
argo-cd:
|
||
global:
|
||
image:
|
||
repository: my.private.docker.registry.local/internal/argocd # TODO
|
||
tag: 1.2.3 # TODO
|
||
imagePullPolicy: IfNotPresent
|
||
securityContext: {}
|
||
# runAsUser: 999
|
||
# runAsGroup: 999
|
||
# fsGroup: 999
|
||
imagePullSecrets:
|
||
- name: dockerpullsecrets
|
||
hostAliases: []
|
||
# - ip: 10.20.30.40
|
||
# hostnames:
|
||
# - git.myhostname
|
||
# set harbor creds in environment, set HELM_SECRET_DRIVER as well
|
||
server:
|
||
## Argo server log format: text|json
|
||
logFormat: text
|
||
## Argo server log level
|
||
logLevel: debug
|
||
env:
|
||
- name: "HELM_SECRETS_DRIVER"
|
||
value: "vault"
|
||
- name: "HARBOR_USERNAME"
|
||
valueFrom:
|
||
secretKeyRef:
|
||
name: argocd-harbor
|
||
key: username
|
||
- name: "HARBOR_PASSWORD"
|
||
valueFrom:
|
||
secretKeyRef:
|
||
name: argocd-harbor
|
||
key: password
|
||
# Unfortunately these envvars don't seem to be working correctly.
|
||
- name: "VAULT_APPROLE_ID"
|
||
valueFrom:
|
||
secretKeyRef:
|
||
name: argocd-vault
|
||
key: role_id
|
||
- name: "VAULT_APPROLE_SECRET"
|
||
valueFrom:
|
||
secretKeyRef:
|
||
name: argocd-vault
|
||
key: secret_id
|
||
config:
|
||
application.instanceLabelKey: argocd.argoproj.io/instance
|
||
# TODO - customise oidc.config - replace SOME_AZURE_AD_TENANT and SOME_AZURE_AD_UUID with the plaintext values
|
||
oidc.config: |
|
||
name: Azure
|
||
issuer: SOME_AZURE_AD_TENANT
|
||
clientID: SOME_AZURE_AD_UUID
|
||
clientSecret: $oidc.azure.clientSecret
|
||
requestedIDTokenClaims:
|
||
groups:
|
||
essential: true
|
||
requestedScopes:
|
||
- openid
|
||
- profile
|
||
- email
|
||
# TODO - customise repositories to include correct git URLs
|
||
repositories: |
|
||
- type: git
|
||
url: https://my.git.server.org/my-team/my-repo-one.git
|
||
usernameSecret:
|
||
key: username
|
||
name: argocd-git
|
||
passwordSecret:
|
||
key: password
|
||
name: argocd-git
|
||
- type: git
|
||
url: https://my.git.server.org/my-team/my-repo-two.git
|
||
usernameSecret:
|
||
name: argocd-git
|
||
key: username
|
||
passwordSecret:
|
||
name: argocd-git
|
||
key: password
|
||
|
||
- type: helm
|
||
url: https://my.harbor.deployment.org/chartrepo/my-project
|
||
usernameSecret:
|
||
name: argocd-harbor
|
||
key: username
|
||
passwordSecret:
|
||
name: argocd-harbor
|
||
key: password
|
||
|
||
url: 'https://my.argocd.deployment.org' # TODO
|
||
hostname: my.argocd.deployment.org # TODO
|
||
configManagementPlugins: |
|
||
# If you just want to use helm-secrets this will work.
|
||
- name: helm-secrets
|
||
generate: # Command to generate manifests YAML
|
||
command: ["/bin/bash", "-c"]
|
||
args: ["echo \"$HELM_VALUES\" > ./values-local.yaml && helm secrets -d vault template $HELM_OPTS -n $ARGOCD_APP_NAMESPACE -f ./values-local.yaml $ARGOCD_APP_NAME . && rm ./values-local.yaml"]
|
||
|
||
# You can use helm-secrets via helmfile also.
|
||
- name: helmfile
|
||
init:
|
||
command: ["/bin/bash", "-c"]
|
||
args:
|
||
- >
|
||
helmfile repos ;
|
||
helm dependency update ;
|
||
true
|
||
generate:
|
||
command: ["/bin/bash", "-c"]
|
||
args:
|
||
- >
|
||
export VAULT_TOKEN=$(vault write auth/approle/login role_id=ROLE_ID secret_id=SECRET_ID | grep token | head -n 1 | tr -s ' ' | cut -d ' ' -f 2) &&
|
||
helmfile template --skip-deps
|
||
# ^^^ I am not sure why but I can't seem to get it working without hardcoding the secrets here :(
|
||
# TODO - replace ROLE_ID and SECRET_ID with the actual plaintext values
|
||
|
||
## ArgoCD rbac config
|
||
## reference https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/rbac.md
|
||
rbacConfig:
|
||
policy.csv: |
|
||
p, role:org-admin, applications, *, */*, allow
|
||
p, role:org-admin, clusters, get, *, allow
|
||
p, role:org-admin, repositories, get, *, allow
|
||
p, role:org-admin, repositories, create, *, allow
|
||
p, role:org-admin, repositories, update, *, allow
|
||
p, role:org-admin, repositories, delete, *, allow
|
||
g, "OrgAdmin", role:org-admin
|
||
g, "ReadOnly", role:readonly
|
||
policy.default: 'role:readonly'
|
||
scopes: '[roles, email]'
|
||
|
||
## Argo Configs
|
||
configs:
|
||
secret:
|
||
extra:
|
||
oidc.azure.clientSecret: !vault internal/argocd/auth#azure_oidc_client_secret # TODO
|
||
harbor_username: !vault internal/harbor/users/argocd#username # TODO
|
||
harbor_password: !vault internal/harbor/users/argocd#password # TODO
|
||
git_username: !vault internal/git/users/argocd#username # TODO
|
||
git_password: !vault internal/git/users/argocd#password # TODO
|
||
vault_role_id: !vault internal/vault/argocd#role_id # TODO
|
||
vault_secret_id: !vault internal/vault/argocd#secret_id # TODO
|