Chapter 11. External Secrets Operator for Red Hat OpenShift
11.1. External Secrets Operator for Red Hat OpenShift overview Copy linkLink copied to clipboard!
The External Secrets Operator for Red Hat OpenShift operates as a cluster-wide service to deploy and manage the external-secrets application. The external-secrets application integrates with external secrets management systems and performs secret fetching, refreshing, and provisioning within the cluster.
The External Secrets Operator for Red Hat OpenShift is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.
11.1.1. About the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
Use the External Secrets Operator for Red Hat OpenShift to integrate external-secrets application with the OpenShift Container Platform cluster. The external-secrets application fetches secrets stored in the external providers such as AWS Secrets Manager, HashiCorp Vault, Google Secret Manager, Azure Key Vault, IBM Cloud Secrets Manager, AWS Systems Manager Parameter Store and integrates them with Kubernetes in a secure manner.
Using the External Secrets Operator ensures the following:
- Decouples applications from the secret-lifecycle management.
- Centralizes secret storage to support compliance requirements.
- Enables secure and automated secret rotation.
- Supports multi-cloud secret sourcing with fine-grained access control.
- Centralizes and audits access control.
Do not attempt to use more than one External Secrets Operator in your cluster. If you have a community External Secrets Operator installed in your cluster, you must uninstall it before installing the External Secrets Operator for Red Hat OpenShift.
For more information about external-secrets application, see external-secrets.
Use the External Secrets Operator to authenticate with the external secrets store, retrieve secrets, and inject the retrieved secrets into a native Kubernetes secret. This method removes the need for applications to directly access or manage external secrets.
11.1.2. External secrets providers for the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
The External Secrets Operator for Red Hat OpenShift is tested with the following external secrets provider types:
Red Hat does not test all factors associated with third-party secrets store provider functionality. For more information about third-party support, see the Red Hat third-party support policy.
11.1.3. Testing external secrets provider types Copy linkLink copied to clipboard!
The following table shows the test coverage for each tested external secrets provider type.
| Secrets Provider | Test Status | Notes |
|---|---|---|
| AWS Secrets Manager | Partially tested | Ensures basic functionality. |
| AWS Systems Manager Parameter Store | Partially tested | Ensures basic functionality. |
| HashiCorp Vault | Partially tested | |
| Google Secrets Manager | Partially tested |
11.1.4. About FIPS compliance for External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
The External Secrets Operator for Red Hat OpenShift supports FIPS compliance. When running on OpenShift Container Platform in FIPS mode, External Secrets Operator uses the RHEL cryptographic libraries submitted to NIST for FIPS validation on the x86_64, ppc64le, and s390X architectures. For more information about the NIST validation program, see Cryptographic module validation program. For more information about the latest NIST status for the individual versions of the RHEL cryptographic libraries submitted for validation, see Compliance activities and government standards.
To enable FIPS mode, install the External Secrets Operator on an OpenShift Container Platform cluster that runs in FIPS mode. For more information, see "Do you need extra security for your cluster?".
11.2. External Secrets Operator for Red Hat OpenShift release notes Copy linkLink copied to clipboard!
The External Secrets Operator for Red Hat OpenShift is a cluster-wide service that provides lifecycle management for secrets fetched from external secret management systems.
These release notes track the development of External Secrets Operator.
The External Secrets Operator for Red Hat OpenShift is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.
For more information, see External Secrets Operator overview.
11.2.1. Release notes for External Secrets Operator for Red Hat OpenShift 0.1.0 (Technology Preview) Copy linkLink copied to clipboard!
Issued: 2025-06-26
The following advisories are available for the External Secrets Operator for Red Hat OpenShift 0.1.0:
Version 0.1.0 of the External Secrets Operator for Red Hat OpenShift is based on the upstream external-secrets version 0.14.3. For more information, see the external-secrets project release notes for v0.14.3.
11.2.1.1. New features and enhancements Copy linkLink copied to clipboard!
- This is the initial, Technology Preview release of the External Secrets Operator for Red Hat OpenShift.
11.3. Installing the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
The External Secrets Operator for Red Hat OpenShift is not installed on the OpenShift Container Platform by default. Install the External Secrets Operator by using either the web console or the command-line interface (CLI).
The External Secrets Operator for Red Hat OpenShift is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.
11.3.1. Limitations of External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
The following are the limitations of External Secrets Operator for Red Hat OpenShift during the installation and uninstallation of the external-secrets application.
-
Uninstalling the External Secrets Operator for Red Hat OpenShift does not delete the resources created for
external-secretsapplication. you must clean up the resources manually. -
When you add
cert-managerOperator configurations inexternalsecrets.operator.openshift.ioobject after creation, delete theexternal-secrets-cert-controllerdeployment resource manually to prevent degradation of theexternal-secretsapplication. -
Enable the
BitwardenSecretManagerProviderfield inexternalsecrets.operator.openshift.ioobject only when installed on OpenShift Cluster running on x86_64 and arm64 architectures . -
Ensure
cert-managerOperator is installed and operational before deploying the External Secrets Operator for Red Hat OpenShift for seamless functioning. If you install thecert-managerOperator later, manually restart theexternal-secrets-operatorpod to apply cert-manager configurations inexternalsecrets.operator.openshift.ioobject.
11.3.2. Installing the External Secrets Operator for Red Hat OpenShift by using the web console Copy linkLink copied to clipboard!
You can use the web console to install the External Secrets Operator for Red Hat OpenShift.
Prerequisites
-
You have access to the cluster with
cluster-adminprivileges. - You have access to the OpenShift Container Platform web console.
Procedure
- Log in to the OpenShift Container Platform web console.
-
Navigate to Operators
OperatorHub. - Enter External Secrets Operator in the search box.
- Select the External Secrets Operator for Red Hat OpenShift from the generated list and click Install.
On the Install Operator page:
- Update the Update channel, if necessary. The channel defaults to tech-preview-v0.1, which installs the latest stable release of the External Secrets Operator.
- Select the version from Version drop-down list.
Choose the Installed Namespace for the Operator.
- To use the default Operator namespace, select the Operator recommended Namespace option.
- To use the namespace that you created, select the Select a Namespace option, and then select the namespace from the drop-down list.
-
If the default
external-secrets-operatornamespace does not exist, it is created for you by the Operator Lifecycle Manager (OLM).
Select an Update approval strategy.
- The Automatic strategy enables OLM to automatically update the Operator when a new version is available.
- The Manual strategy requires a user with appropriate credentials to approve the Operator update.
- Click Install.
Verification
-
Navigate to Operators
Installed Operators. -
Verify that External Secrets Operator is listed with a Status of Succeeded in the
external-secrets-operatornamespace.
11.3.3. Installing the External Secrets Operator for Red Hat OpenShift by using the CLI Copy linkLink copied to clipboard!
You can use the command-line interface (CLI) to install the External Secrets Operator for Red Hat OpenShift.
Prerequisites
-
You have access to the cluster with
cluster-adminprivileges.
Procedure
Create a new project named
external-secrets-operatorby running the following command:oc new-project external-secrets-operator
$ oc new-project external-secrets-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create an
OperatorGroupobject by defining a YAML file with the following content:Example
operatorGroup.yamlfileCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
OperatorGroupobject by running the following command:oc create -f operatorGroup.yaml
$ oc create -f operatorGroup.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create a
Subscriptionobject by defining a YAML file with the following content:Example
subscription.yamlfileCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
Subscriptionobject by running the following command:oc create -f subscription.yaml
$ oc create -f subscription.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
Verify that the OLM subscription is created by running the following command:
oc get subscription -n external-secrets-operator
$ oc get subscription -n external-secrets-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME PACKAGE SOURCE CHANNEL openshift-external-secrets-operator openshift-external-secrets-operator eso-010-index tech-preview-v0.1
NAME PACKAGE SOURCE CHANNEL openshift-external-secrets-operator openshift-external-secrets-operator eso-010-index tech-preview-v0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify whether the Operator is successfully installed by running the following command:
oc get csv -n external-secrets-operator
$ oc get csv -n external-secrets-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME DISPLAY VERSION REPLACES PHASE external-secrets-operator.v0.1.0 External Secrets Operator for Red Hat OpenShift 0.1.0 Succeeded
NAME DISPLAY VERSION REPLACES PHASE external-secrets-operator.v0.1.0 External Secrets Operator for Red Hat OpenShift 0.1.0 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the status of the External Secrets Operator is Running by entering the following command:
oc get pods -n external-secrets-operator
$ oc get pods -n external-secrets-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME READY STATUS RESTARTS AGE external-secrets-operator-controller-manager-5699f4bc54-kbsmn 1/1 Running 0 25h
NAME READY STATUS RESTARTS AGE external-secrets-operator-controller-manager-5699f4bc54-kbsmn 1/1 Running 0 25hCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.3.5. Installing the External Secrets operand for Red Hat OpenShift by using the CLI Copy linkLink copied to clipboard!
You can use the command-line interface (CLI) to install the External Secrets operand.
Prerequisites
-
You have access to the cluster with
cluster-adminprivileges.
Procedure
Create a
externalsecrets.openshift.operator.ioobject by defining a YAML file with the following content:Example
externalsecrets.yamlfileCopy to Clipboard Copied! Toggle word wrap Toggle overflow For more information on spec configuration, see "External Secrets Operator for Red Hat OpenShift APIs".
Create the
externalsecrets.openshift.operator.ioobject by running the following command:oc create -f externalsecrets.yaml
$ oc create -f externalsecrets.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
Verify that the
external-secretspods are running by entering the following command:oc get pods -n external-secrets
$ oc get pods -n external-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME READY STATUS RESTARTS AGE external-secrets-75d47cb9c8-6p4n2 1/1 Running 0 4h5m external-secrets-cert-controller-676444b897-qb6ft 1/1 Running 0 4h5m external-secrets-webhook-b566658ff-7m4d5 1/1 Running 0 4h5m
NAME READY STATUS RESTARTS AGE external-secrets-75d47cb9c8-6p4n2 1/1 Running 0 4h5m external-secrets-cert-controller-676444b897-qb6ft 1/1 Running 0 4h5m external-secrets-webhook-b566658ff-7m4d5 1/1 Running 0 4h5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the
external-secrets-operatordeployment object reports a successful status by running the following command:oc get externalsecrets.operator.openshift.io cluster -n external-secrets-operator -o jsonpath='{.status.conditions}' | jq .$ oc get externalsecrets.operator.openshift.io cluster -n external-secrets-operator -o jsonpath='{.status.conditions}' | jq .Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.4. Uninstalling the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
You can remove the External Secrets Operator for Red Hat OpenShift from OpenShift Container Platform by uninstalling the Operator and removing its related resources.
The External Secrets Operator for Red Hat OpenShift is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.
11.4.1. Uninstalling the External Secrets Operator for Red Hat OpenShift using the web console Copy linkLink copied to clipboard!
You can uninstall the External Secrets Operator for Red Hat OpenShift by using the web console.
Prerequisites
-
You have access to the cluster with
cluster-adminprivileges. - You have access to the OpenShift Container Platform web console.
- The External Secrets Operator is installed.
Procedure
- Log in to the OpenShift Container Platform web console.
Uninstall the External Secrets Operator for Red Hat OpenShift using the following steps:
-
Navigate to Operators
Installed Operators. -
Click the Options menu
next to the External Secrets Operator for Red Hat OpenShift entry and click Uninstall Operator.
- In the confirmation dialog, click Uninstall.
-
Navigate to Operators
11.4.2. Removing External Secrets Operator for Red Hat OpenShift resources by using the web console Copy linkLink copied to clipboard!
After you have uninstalled the External Secrets Operator for Red Hat OpenShift, you can optionally eliminate its associated resources from your cluster.
Prerequisites
-
You have access to the cluster with
cluster-adminprivileges. - You have access to the OpenShift Container Platform web console.
Procedure
- Log in to the OpenShift Container Platform web console.
Remove the deployments of the
external-secretsapplication components in theexternal-secretsnamespace:- Click the Project drop-down menu to see a list of all available projects, and select the external-secrets project.
-
Navigate to Workloads
Deployments. - Select the deployment that you want to delete.
- Click the Actions drop-down menu, and select Delete Deployment to see a confirmation dialog box.
- Click Delete to delete the deployment.
Remove the custom resource definitions (CRDs) that were installed by the External Secrets Operator using the following steps:
-
Navigate to Administration
CustomResourceDefinitions. -
Choose
external-secrets.io/component: controllerfrom the suggestions in the Label field to filter the CRDs. Click the Options menu
next to each of the following CRDs, and select Delete Custom Resource Definition:
- ACRAccessToken
- ClusterExternalSecret
- ClusterGenerator
- ClusterSecretStore
- ECRAuthorizationToken
- ExternalSecret
- GCRAccessToken
- GeneratorState
- GithubAccessToken
- Grafana
- Password
- PushSecret
- QuayAccessToken
- SecretStore
- STSSessionToken
- UUID
- VaultDynamicSecret
- Webhook
-
Navigate to Administration
Remove the
external-secrets-operatornamespace using the following steps:-
Navigate to Administration
Namespaces. -
Click the Options menu
next to the External Secrets Operator and select Delete Namespace.
-
In the confirmation dialog, enter
external-secrets-operatorin the field and click Delete.
-
Navigate to Administration
11.4.3. Removing External Secrets Operator for Red Hat OpenShift resources by using the CLI Copy linkLink copied to clipboard!
After you have uninstalled the External Secrets Operator for Red Hat OpenShift, you can optionally eliminate its associated resources from your cluster by using the command-line interface (CLI).
Prerequisites
-
You have access to the cluster with
cluster-adminprivileges.
Procedure
Delete the deployments of the
external-secretsapplication components in theexternal-secretsnamespace by running the following command:oc delete deployment -n external-secrets -l app=external-secrets
$ oc delete deployment -n external-secrets -l app=external-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Delete the custom resource definitions (CRDs) that were installed by the External Secrets Operator by running the following command:
oc delete customresourcedefinitions.apiextensions.k8s.io -l external-secrets.io/component=controller
$ oc delete customresourcedefinitions.apiextensions.k8s.io -l external-secrets.io/component=controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Delete the
external-secrets-operatornamespace by running the following command:oc delete project external-secrets-operator
$ oc delete project external-secrets-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.5. External Secrets Operator for Red Hat OpenShift APIs Copy linkLink copied to clipboard!
External Secrets Operator for Red Hat OpenShift uses the following two APIs to configure the external-secrets application deployment.
| Group | Version | Kind |
|---|---|---|
|
|
|
|
|
|
|
|
The following list contains the External Secrets Operator for Red Hat OpenShift APIs:
- ExternalSecrets
- ExternalSecretsList
- ExternalSecretsManager
- ExternalSecretsManagerList
11.5.1. externalSecretsManagerList Copy linkLink copied to clipboard!
The externalSecretsManagerList object fetches the list of externalSecretsManager objects.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
The | ||
|
| string |
| ||
|
|
Refer to Kubernetes API documentation for details about the | |||
|
| array |
|
11.5.2. externalSecretsManager Copy linkLink copied to clipboard!
The externalSecretsManager object defines the configuration and information of deployments managed by the External Secrets Operator. Set the name to cluster as this allows only one instance of externalSecretsManager per cluster.
You can configure global options and enable optional features by using externalSecretsManager. This serves as a centralized configuration for managing multiple controllers of the Operator. The Operator automatically creates the externalSecretsManager object during installation.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
The | ||
|
| string |
| ||
|
|
Refer to Kubernetes API documentation for details about the | |||
|
| object |
| ||
|
| object |
|
11.5.3. externalSecretsList Copy linkLink copied to clipboard!
The externalSecretsList object fetches the list of externalSecrets objects.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
The | ||
|
| string |
| ||
|
|
Refer to Kubernetes API documentation for details about the | |||
|
| array |
|
11.5.4. externalSecrets Copy linkLink copied to clipboard!
The externalSecrets object defines the configuration and information for the managed external-secrets operand deployment. Set the name to cluster as externalSecrets object allows only one instance per cluster.
Creating an externalSecrets object triggers the creation of a deployment that manages the external-secrets operand and maintains the desired state.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
The | ||
|
| string |
| ||
|
|
Refer to Kubernetes API documentation for details about the | |||
|
| object |
| ||
|
| object |
|
11.5.5. Listing fields in External Secrets Operator for Red Hat OpenShift APIs Copy linkLink copied to clipboard!
The following fields apply to the External Secrets Operator for Red Hat OpenShift APIs.
11.5.6. externalSecretsManagerSpec Copy linkLink copied to clipboard!
The externalSecretsManagerSpec field defines the desired behavior of the externalSecretsManager object.
| Field | type | Description | Default | Validation |
|---|---|---|---|---|
|
| object |
| Optional | |
|
| array |
| Optional |
11.5.7. externalSecretsManagerStatus Copy linkLink copied to clipboard!
The externalSecretsManagerStatus field shows the most recently observed status of the externalSecretsManager object.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| array |
| ||
|
|
|
Format: date-time |
11.5.8. externalSecretsSpec Copy linkLink copied to clipboard!
The externalSecretsSpec field defines the desired behavior of the externalSecrets object.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| object |
| Optional | |
|
| object |
| Optional |
11.5.9. externalSecretsStatus Copy linkLink copied to clipboard!
The externalSecretsStatus field shows the most recently observed status of the externalSecrets Object.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| Condition array |
| ||
|
| string |
|
11.5.10. globalConfig Copy linkLink copied to clipboard!
The globalConfig field configures the behavior of the External Secrets Operator.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| integer |
| 1 |
The maximum range value is 5 |
|
|
| Optional | ||
|
|
| Optional | ||
|
| Toleration array |
| Optional | |
|
| object (keys:string, values:string) | nodeSelector defines the scheduling criteria by using the node labels. For more information, see https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | Optional | |
|
| object (keys:string, values:string) |
| Optional |
11.5.11. feature Copy linkLink copied to clipboard!
The feature field enables the optional features.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
| Required | |
|
| boolean |
| Required |
11.5.12. controllerStatus Copy linkLink copied to clipboard!
The controllerStatus field contains the observed conditions of the controllers used by the Operator.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
| Required | |
|
| array |
| ||
|
| integer |
| Minimum: 0 |
11.5.13. externalSecretsConfig Copy linkLink copied to clipboard!
The externalSecretsConfig field configures the behavior of external-secrets operand.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| integer |
| 1 |
The maximum range value is 5 |
|
| string |
| Optional | |
|
| object |
| Optional | |
|
| object |
| ||
|
| object |
| Optional | |
|
|
| Optional | ||
|
|
| Optional | ||
|
| Toleration array |
| Optional | |
|
| object (keys:string, values:string) |
| Optional |
11.5.14. controllerConfig Copy linkLink copied to clipboard!
The controllerConfig field configures the operator to set the default values for installing external-secrets operand.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
| external-secrets | Optional |
|
| object (keys:string, values:string) |
| Optional |
11.5.15. bitwardenSecretManagerProvider Copy linkLink copied to clipboard!
The bitwardenSecretManagerProvider field enables the bitwarden secrets manager provider and sets up the additional service required to connect to the bitwarden server.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
| false |
enum: [true false] |
|
| SecretReference |
| Optional |
11.5.16. webhookConfig Copy linkLink copied to clipboard!
The webhookConfig field configures the specifics of the external-secrets application webhook.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
|
| 5m | Optional |
11.5.17. certManagerConfig Copy linkLink copied to clipboard!
The certManagerConfig field configures the cert-manager Operator settings.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
| false |
enum: [true false] |
|
| string |
| false |
enum: [true false] |
|
| ObjectReference |
| Required | |
|
|
| 8760h | Optional | |
|
|
| 30m | Optional |
11.5.18. objectReference Copy linkLink copied to clipboard!
The ObjectReference field refers to an object by its name, kind, and group.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
| Required | |
|
| string |
| Optional | |
|
| string |
| Optional |
11.5.19. secretReference Copy linkLink copied to clipboard!
The secretReference field refers to a secret with the given name in the same namespace where it used.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
| Required |