full-cluster-secret-store.yaml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. apiVersion: external-secrets.io/v1alpha1
  2. kind: ClusterSecretStore
  3. metadata:
  4. name: example
  5. spec:
  6. # Used to select the correct ESO controller (think: ingress.ingressClassName)
  7. # The ESO controller is instantiated with a specific controller name
  8. # and filters ES based on this property
  9. # Optional
  10. controller: dev
  11. # provider field contains the configuration to access the provider
  12. # which contains the secret exactly one provider must be configured.
  13. provider:
  14. # (1): AWS Secrets Manager
  15. # aws configures this store to sync secrets using AWS Secret Manager provider
  16. aws:
  17. service: SecretsManager
  18. # Role is a Role ARN which the SecretManager provider will assume
  19. role: iam-role
  20. # AWS Region to be used for the provider
  21. region: eu-central-1
  22. # Auth defines the information necessary to authenticate against AWS by
  23. # getting the accessKeyID and secretAccessKey from an already created Kubernetes Secret
  24. auth:
  25. secretRef:
  26. accessKeyID:
  27. name: awssm-secret
  28. key: access-key
  29. secretAccessKey:
  30. name: awssm-secret
  31. key: secret-access-key
  32. vault:
  33. server: "https://vault.acme.org"
  34. # Path is the mount path of the Vault KV backend endpoint
  35. path: "secret"
  36. # Version is the Vault KV secret engine version.
  37. # This can be either "v1" or "v2", defaults to "v2"
  38. version: "v2"
  39. # vault enterprise namespace: https://www.vaultproject.io/docs/enterprise/namespaces
  40. namespace: "a-team"
  41. # base64 encoded string of certificate
  42. caBundle: "..."
  43. # Instead of caBundle you can also specify a caProvider
  44. # this will retrieve the cert from a Secret or ConfigMap
  45. caProvider:
  46. # Can be Secret or ConfigMap
  47. type: "Secret"
  48. # This is optional, if not specified will be 'Default'
  49. namespace: "my-cert-secret-namespace"
  50. name: "my-cert-secret"
  51. key: "cert-key"
  52. auth:
  53. # static token: https://www.vaultproject.io/docs/auth/token
  54. tokenSecretRef:
  55. name: "my-secret"
  56. namespace: "secret-admin"
  57. key: "vault-token"
  58. # AppRole auth: https://www.vaultproject.io/docs/auth/approle
  59. appRole:
  60. path: "approle"
  61. roleId: "db02de05-fa39-4855-059b-67221c5c2f63"
  62. secretRef:
  63. name: "my-secret"
  64. namespace: "secret-admin"
  65. key: "vault-token"
  66. # Kubernetes auth: https://www.vaultproject.io/docs/auth/kubernetes
  67. kubernetes:
  68. mountPath: "kubernetes"
  69. role: "demo"
  70. # Optional service account reference
  71. serviceAccountRef:
  72. name: "my-sa"
  73. namespace: "secret-admin"
  74. # Optional secret field containing a Kubernetes ServiceAccount JWT
  75. # used for authenticating with Vault
  76. secretRef:
  77. name: "my-secret"
  78. namespace: "secret-admin"
  79. key: "vault"
  80. # (2): GCP Secret Manager
  81. gcpsm:
  82. # Auth defines the information necessary to authenticate against GCP by getting
  83. # the credentials from an already created Kubernetes Secret.
  84. auth:
  85. secretRef:
  86. secretAccessKeySecretRef:
  87. name: gcpsm-secret
  88. key: secret-access-credentials
  89. namespace: example
  90. projectID: myproject
  91. # (TODO): add more provider examples here
  92. status:
  93. # Standard condition schema
  94. conditions:
  95. # SecretStore ready condition indicates the given store is in ready
  96. # state and able to referenced by ExternalSecrets
  97. # If the `status` of this condition is `False`, ExternalSecret controllers
  98. # should prevent attempts to fetch secrets
  99. - type: Ready
  100. status: "False"
  101. reason: "ConfigError"
  102. message: "SecretStore validation failed"
  103. lastTransitionTime: "2019-08-12T12:33:02Z"