External Secrets Operator allows to retrieve in-cluster secrets or from a remote Kubernetes Cluster. ### Authentication It's possible to authenticate against the Kubernetes API using client certificates, a bearer token or a service account (not implemented yet). The operator enforces that exactly one authentication method is used. ## Example ### K8s Cluster Secret ``` apiVersion: v1 kind: Secret metadata: name: cluster-secrets data: # Fill with your encoded base64 CA ca: Cg== # Fill with your encoded base64 Certificate certificate: Cg== # Fill with your encoded base64 Key key: Cg== stringData: # Fill with your a string Token bearerToken: "my-token" ``` ## SecretStore The `Server` section specifies the url of the Kubernetes API and the location to fetch the CA. The `auth` section indicates the type of authentication to use, `cert`, `token` or `serviceAccount` and includes the path to fetch the certificates or the token. ``` apiVersion: external-secrets.io/v1beta1 kind: SecretStore metadata: name: example spec: provider: kubernetes: # If not remoteNamesapce is provided, default namespace is used remoteNamespace: default server: url: https://127.0.0.1:36473 # Add your encoded base64 to caBundle or a referenced caProvider # if both are provided caProvider will be ignored caBundle: Cg== caProvider: type: Secret name : cluster-secrets key: ca auth: # Add a referenced bearerToken or client certificates, # if both are provided client certificates will be ignored token: bearerToken: name: cluster-secrets key: bearerToken cert: clientCert: name: cluster-secrets key: certificate clientKey: name: cluster-secrets key: key --- apiVersion: v1 kind: Secret metadata: name: secret-example data: extra: YmFyCg== ``` ### ExternalSecret ``` apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: name: example spec: refreshInterval: 1h secretStoreRef: kind: SecretStore name: example # name of the SecretStore (or kind specified) target: name: secret-to-be-created # name of the k8s Secret to be created creationPolicy: Owner data: - secretKey: extra remoteRef: key: secret-example property: extra ```