Learn how to configure the Federation Server, including CRDs and API endpoints.
KubernetesFederation
federation.external-secrets.io/v1alpha1
KubernetesFederation
url
(string, required): The Kubernetes API Server URL of the client cluster (e.g., https://kubeapi.client-cluster.example.com
). This URL is used by the Federation Server to construct the JWKS (JSON Web Key Set) URI for the client cluster, allowing it to fetch the public keys needed to validate Service Account (SA) tokens issued by that client cluster.KubernetesFederation
CR:
Authorization
federation.external-secrets.io/v1alpha1
Authorization
ClusterSecretStore
s or Generator
s on the Federation Server.federationRef
(object, required):
kind
(string, required): Must be KubernetesFederation
.name
(string, required): The name of the KubernetesFederation
CR that represents the client cluster this authorization rule applies to.subject
(object, required):
issuer
(string, required): The JWT issuer URL for the client’s SA token (e.g., https://kubernetes.default.svc.cluster.local
of the client cluster, or a custom issuer if configured).subject
(string, required): The subject claim from the client’s SA JWT (e.g., system:serviceaccount:client-namespace:client-sa-name
).allowedClusterSecretStores
(array of strings, optional): A list of ClusterSecretStore
names (defined on the Federation Server) that the specified client identity is allowed to access.allowedGenerators
(array of objects, optional): A list of Generator
resources (defined on the Federation Server) that the client identity is allowed to access. Each object in the list should specify:
name
(string, required): The name of the Generator.kind
(string, required): The kind of the Generator (e.g., VaultDynamicSecret
, Password
).namespace
(string, required): The namespace where the Generator is defined on the Federation Server.allowedGeneratorStates
(array of objects, optional): Advanced permission for allowing the client to manage (e.g., delete) GeneratorState
objects on the Federation Server. Each object specifies:
namespace
(string, required): The namespace on the Federation Server where the GeneratorState
objects reside.Authorization
CR:
KubernetesFederation
and Authorization
CRs must be correctly configured on the Federation Server for clients to authenticate and be authorized to access secrets.POST /secretstore/:secretStoreName/secrets/:secretName
ClusterSecretStore
on the Federation Server. The :secretName
typically corresponds to the name of an ExternalSecret
’s data template that would be used if fetching locally.esi-cli
uses this endpoint when --federated-store
is specified along with flags like --external-secrets
or --inject-on-env
that reference a secret name.POST /generators/:generatorNamespace/:generatorKind/:generatorName
Generator
(e.g., VaultDynamicSecret
, Password
) on the Federation Server.esi-cli
uses this endpoint when --federated-generators
is specified.DELETE /generators/:generatorNamespace/:generatorKind/:generatorName
allowedGeneratorStates
or specific generator-level permissions.POST /generators/:generatorNamespace/revoke
ca.crt
for the client cluster’s JWKS endpoint), may include parameters specific to the action, such as inputs for a generator. esi-cli
handles the construction of these requests based on its command-line flags.