full-secret-store.yaml 3.4 KB

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