--- apiVersion: secrets.hashicorp.com/v1beta1 kind: VaultAuth metadata: name: default namespace: argo spec: method: kubernetes mount: kubernetes kubernetes: role: argo serviceAccount: argo-vso vaultConnectionRef: vault/vault --- apiVersion: secrets.hashicorp.com/v1beta1 kind: VaultDynamicSecret metadata: name: argo-db namespace: argo spec: mount: database path: static-creds/argo allowStaticCreds: true refreshAfter: 5m destination: name: argo-db create: true overwrite: true transformation: excludeRaw: true excludes: - .* templates: username: text: '{{ get .Secrets "username" }}' password: text: '{{ get .Secrets "password" }}' rolloutRestartTargets: - kind: Deployment name: argo-workflows-workflow-controller - kind: Deployment name: argo-workflows-server vaultAuthRef: default --- # S3 credentials for the workflow executor (artifact upload/download). apiVersion: secrets.hashicorp.com/v1beta1 kind: VaultStaticSecret metadata: name: argo-artifacts namespace: argo spec: type: kv-v2 mount: secret path: argo/artifacts destination: name: argo-artifacts create: true overwrite: true transformation: excludeRaw: true excludes: - .* templates: accesskey: text: '{{ get .Secrets "access_key_id" }}' secretkey: text: '{{ get .Secrets "secret_access_key" }}' vaultAuthRef: default --- # Internal root CA so executors can verify s3.quorate.internal TLS. apiVersion: secrets.hashicorp.com/v1beta1 kind: VaultStaticSecret metadata: name: argo-internal-ca namespace: argo spec: type: kv-v2 mount: secret path: argo/artifacts destination: name: argo-internal-ca create: true overwrite: true transformation: excludeRaw: true excludes: - .* templates: internal-ca.crt: text: | {{ get .Secrets "internal_ca_cert" }} vaultAuthRef: default