apiVersion: v1 kind: ServiceAccount metadata: name: layshaft-vso namespace: layshaft automountServiceAccountToken: false --- apiVersion: secrets.hashicorp.com/v1beta1 kind: VaultAuth metadata: name: layshaft namespace: layshaft spec: method: kubernetes mount: kubernetes kubernetes: role: layshaft-vso serviceAccount: layshaft-vso vaultConnectionRef: vault/vault --- apiVersion: secrets.hashicorp.com/v1beta1 kind: VaultStaticSecret metadata: name: quay-cluster-pull namespace: layshaft spec: type: kv-v2 mount: secret path: quay/robots/cluster_pull refreshAfter: 1h destination: name: quay-cluster-pull create: true overwrite: true type: kubernetes.io/dockerconfigjson labels: app.kubernetes.io/name: layshaft app.kubernetes.io/instance: layshaft transformation: excludeRaw: true excludes: [.*] templates: .dockerconfigjson: text: >- {"auths":{"registry.quorate.internal":{"auth":"{{ printf "%s:%s" (get .Secrets "username") (get .Secrets "token") | b64enc }}"}}} vaultAuthRef: layshaft --- apiVersion: secrets.hashicorp.com/v1beta1 kind: VaultStaticSecret metadata: name: vault-ca namespace: layshaft spec: type: kv-v1 mount: pki path: cert/ca refreshAfter: 1h destination: name: vault-ca create: true overwrite: true labels: app.kubernetes.io/name: layshaft app.kubernetes.io/instance: layshaft transformation: excludeRaw: true excludes: [.*] templates: ca.crt: text: '{{ get .Secrets "certificate" }}' rolloutRestartTargets: - kind: Deployment name: layshaft vaultAuthRef: layshaft