The External Secrets Enterprise Edition is product suite is a premium product.
It requires a specific subscription. Contact us for more information.
Prerequisites
- Kubernetes Cluster: Version 1.16 or newer.
- External Secrets Operator (ESO) CRDs: While the full operator is beneficial for managing ExternalSecretresources, at a minimum, the ESO Custom Resource Definitions (CRDs) such asExternalSecretandSecretStoremust be installed in your cluster. The webhook relies on these CRDs to understand where to fetch secrets from.
- cert-manager: The ESI Pod Webhook requires TLS certificates for secure communication with the Kubernetes API server. cert-manageris the recommended tool for automatically provisioning and managing these certificates.- You will need a ClusterIssuerorIssuer(e.g., for self-signed certificates in development/testing, or a Let’s Encrypt issuer for public clusters) configured incert-manager.
 
- You will need a 
Verify that 
cert-manager is running and your chosen issuer is ready before proceeding.Deployment
The ESI Pod Webhook is typically deployed using a single YAML manifest. This manifest creates all necessary Kubernetes resources, usually within thesecretless-system namespace (this can be customized if needed).
Resources Created
The deployment manifest will set up the following:- MutatingWebhookConfiguration: Configures the Kubernetes API server to forward pod creation and update events (for pods not explicitly skipped) to the webhook’s service.
- Service: Exposes the webhook pods internally within the cluster, typically on port- 8443.
- Deployment: Manages the webhook pods that contain the admission control logic.
- ServiceAccount: Provides an identity for the webhook pods.
- ClusterRoleand- ClusterRoleBinding: Grant the webhook’s- ServiceAccountnecessary permissions. These typically include:- Reading ExternalSecretandSecretStoreresources cluster-wide.
- Permissions to get, list, and watch pods, and to patch pod specifications.
 
- Reading 
- Certificate(cert-manager.io/v1): A- cert-managercustom resource that requests a TLS certificate from your configured- Issueror- ClusterIssuer.- cert-managerwill then automatically issue and manage the lifecycle of this certificate, storing it in a Kubernetes- Secretthat is mounted by the webhook pods.
Installation Steps
- 
Ensure Prerequisites are Met:
- Confirm cert-manageris installed and a suitableClusterIssuerorIssueris available. For example, if the default manifest refers toselfsigned-issuer, ensure such an issuer exists or update the manifest to use your issuer.
 
- Confirm 
- 
Obtain the Deployment Manifest:
- Download or locate the official webhook.yaml(or similarly named) deployment manifest for the ESI Pod Webhook from the External Secrets Inc. distribution channels.
 The default manifest might specify aClusterIssuer(e.g.,selfsigned-issuer). If yourClusterIssuerhas a different name, you must update theissuerRef.namefield within theCertificateresource definition in thewebhook.yamlmanifest before applying it.
- Download or locate the official 
- 
Apply the Manifest:
Use kubectlto apply the manifest to your cluster:This command will create all the resources in the namespace specified within the manifest (commonlysecretless-system).
- 
Verify Installation:
- Check if the webhook deployment is running:
- Ensure the Certificateresource is healthy and has issued a certificate:(The certificate name might vary based on the manifest.)
- Check the logs of the webhook pod for any startup errors:
 
- Check if the webhook deployment is running:
The ESI Pod Webhook’s own 
Deployment manifest typically includes the annotation secretless.externalsecrets.com/skip: "true". This is important as it prevents the webhook from attempting to process its own pods, avoiding potential loops or issues.