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.
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.1.5. Security considerations Copy linkLink copied to clipboard!
When using the External Secrets Operator for Red Hat OpenShift, there are some security concerns you should consider:
-
The
external-secretsoperand fetches the secrets from the configured external providers and stores it in a Kubernetes nativeSecretsresource. This results in a secret zero problem. It is recommended to secure the secret objects using additional encryption. For more information, see Data encryption options. -
When configuring
SecretStoreandClusterSecretStoreresources, consider using short-term credential-based authorization. This approach enhances security by limiting the window of opportunity for unauthorized access, even if credentials are compromised. - To enhance the security of the External Secrets Operator for Red Hat OpenShift, it is crucial to implement role-based access controls (RBACs). These RBACs should define and limit access to the custom resources provided by the External Secrets Operator.
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.
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).
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 Ecosystem
Software Catalog. - 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 Ecosystem
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. Configuring network policy for the operand Copy linkLink copied to clipboard!
The External Secrets Operator for Red Hat OpenShift includes pre-defined NetworkPolicies for security, but you must configure additonal, custom policies through the ExternalSecretsConfig custom resource to set the external-secrets controller egress allow policies to communicate with external providers. These configurable policies are set via the ExternalSecretsConfig custom resource to establish the egress allow policy.
11.4.1. Adding a custom network policy to allow egress to all external providers Copy linkLink copied to clipboard!
You must configure custom policies through the ExternalSecretsConfig custom resource to allow all egress to all external providers.
Prerequisites
-
An
ExternalSecretsConfigmust be predefined. - You must be able to define specific egress rules, including desitination ports and protocols
Procedure
Edit the
ExternalSecretsConfigCR by running the following command:oc edit externalsecretsconfigs.operator.openshift.io cluster
$ oc edit externalsecretsconfigs.operator.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Set the policy by editing the
networkPoliciessection:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.4.2. Adding a custom network policy to allow egress to a specific provider Copy linkLink copied to clipboard!
You must configure custom policies through the ExternalSecretsConfig custom resource to allow all egress to a specific provider.
Prerequisites
-
An
ExternalSecretsConfigmust be predefined. - You must be able to define specific egress rules, including desitination ports and protocols
Procedure
Edit the
ExternalSecretsConfigCR by running the following command:oc edit externalsecretsconfigs.operator.openshift.io cluster
$ oc edit externalsecretsconfigs.operator.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Set the policy by editing the
networkPoliciessection. The following example shows how to allow egress to Amazon Web Services (AWS) endpoints.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - componentName
-
name for the core controller specified as
ExternalSecretsCoreController.
Egress rules must include the necessary ports, such as Transmission Control Protocol (TCP) port 443 for services like the AWS Secrets Manager.
11.4.3. Default ingress and egress rules Copy linkLink copied to clipboard!
The following table summarizes the default ingress and egress rules.
| Component | Ingress ports | Egress ports | Description |
|---|---|---|---|
|
| 8080 | 6443 | Allows retrieving metrics and interacting with the API server |
|
| 8080/10250 | 6443 | Allows retrieving metrics, handling webhook requests, and interacting with the API server |
|
| 8080 | 6443 | Allows retrieving metrics and interacting with the API server |
|
| 9998 | 6443 | Handles Bitwarden server connections and interacts with the API server |
|
| 5353 | Enables DNS lookups to find external secret providers. |
11.5. About the egress proxy for the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
If a cluster-wide egress proxy is configured in OpenShift Container Platform, Operator Lifecycle Manager (OLM) automatically configures Operators that it manages with the cluster-wide proxy. OLM automatically updates all of the Operator’s deployments with the HTTP_PROXY, HTTPS_PROXY, NO_PROXY environment variables.
11.5.1. Configuring the egress proxy for the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
The egress proxy can be configured in the ExternalSecretsConfig or the ExternalSecretsManager custom resource (CR). The Operator and the operand make use of the OpenShift Container Platform supported certificate authority (CA) bundle for the proxy validations.
Prerequisites
-
You have access to the cluster as a user with the
cluster-adminrole. -
You have created the
ExternalSecretsConfigcustom CR.
Procedure
To set the proxy in the
ExternalSecretsConfigresource, perform the following steps:Edit the
ExternalSecretsConfigresource by running the following command:oc edit externalsecretsconfigs.operator.openshift.io cluster
$ oc edit externalsecretsconfigs.operator.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Edit the
spec.appConfig.proxysection to set the proxy values as follows:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
where:
- <http_proxy>
- Specifies the proxy URL for the http requests.
- <https_proxy>
- Proxy URL for the https requests.
- <no_proxy>
Comma-separated list of hostnames, CIDRs, IPs or a combination of these, for which the proxy should not be used.
To set the proxy in the
ExternalSecretsManagerCR, perform the following steps.Edit the
ExternalSecretsManagerCR by running the following command:oc edit externalsecretsmanagers.operator.openshift.io cluster
$ oc edit externalsecretsmanagers.operator.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Edit the
spec.globalConfig.proxysection to set the proxy values as follows:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
where:
- <http_proxy>
- Specifies the proxy URL for the http requests.
- <https_proxy>
- Proxy URL for the https requests.
- <no_proxy>
- Comma-separated list of hostnames, CIDRs, IPs or a combination of these for which the proxy should not be used.
11.6. 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.
11.6.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 Ecosystem
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 Ecosystem
11.6.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.6.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.7. 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:
- ExternalSecretsConfig
- ExternalSecretsManager
11.7.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.7.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 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.7.3. externalSecretsConfigList Copy linkLink copied to clipboard!
The externalSecretsConfigList object fetches the list of externalSecretsConfig objects.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
The | ||
|
| string |
| ||
|
|
Refer to Kubernetes API documentation for details about the | |||
|
| array |
|
11.7.4. externalSecretsConfig Copy linkLink copied to clipboard!
The externalSecretsConfig object defines the configuration and information for the managed external-secrets operand deployment. Set the name to cluster as externalSecretsConfig object allows only one instance per cluster.
Creating an externalSecretsConfig object triggers the deployment of 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.7.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.7.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 |
11.7.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 Type: string |
11.7.8. externalSecretsConfigSpec Copy linkLink copied to clipboard!
The externalSecretsConfigSpec field defines the desired behavior of the externalSecrets object.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| object |
| Optional | |
|
| object |
| Optional | |
|
| object |
| Optional |
11.7.9. externalSecretsConfigStatus Copy linkLink copied to clipboard!
The externalSecretsConfigStatus field shows the most recently observed status of the externalSecretsConfig Object.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| Condition array |
| ||
|
| string |
| ||
|
| string |
|
11.7.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 number of properties is 20 The minimum number of properties is 0 Optional |
|
| integer |
| 1 | The maximum range value is 5 The minimum range value is 1 Optional |
|
|
| Optional | ||
|
|
| Optional | ||
|
| Toleration array |
| The maximum number of items is 50 The minimum number of items is 0 Optional | |
|
| object (keys:string, values:string) |
| The maximum number of properties is 50 The minimum number of properties is 0 Optional | |
|
| object |
| Optional |
11.7.11. controllerConfig Copy linkLink copied to clipboard!
The controllerConfig specifies the configurations used by the controller when installing the external-secrets operand and the plugins.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
| Optional | |
|
| object (keys:string, values:string) |
| The maximum number of properties is 20. The minimum number of properties is 0. Optional |
11.7.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 |
| The minimum number of observed resources is 0. |
11.7.13. applicationConfig Copy linkLink copied to clipboard!
The applicationConfig specifies the configurations for the external-secrets operand.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| integer |
| 1 | The maximum range value is 5 The minimum range value is 1 Optional |
|
| string |
| The maximum length is 63 The minimum length is 1 Optional | |
|
| object |
| ||
|
|
| Optional | ||
|
|
| Optional | ||
|
| Toleration array |
| The maximum number of items is 50 The minimum number of items is 0 Optional | |
|
| object (keys:string, values:string) |
| The maximum number of properties is 50 The minimum number of properties is 0 Optional | |
|
| object (keys:string, values:string) |
| Optional |
11.7.14. 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 |
|
| enum: [Enabled Disabled] Optional |
|
| SecretReference |
| Optional |
11.7.15. 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.7.16. 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] Required |
|
| string |
| false | enum: [true false] Optional |
|
| ObjectReference |
| Required | |
|
|
| 8760h | Optional | |
|
|
| 30m | Optional |
11.7.17. certProvidersConfig Copy linkLink copied to clipboard!
The certProvidersConfig defines the configuration for the certificate providers used to manage TLS certificates for webhook and plugins.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| object |
| Optional |
11.7.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 |
| The maximum length is 253 characters. The minimum length is 1 character. Required | |
|
| string |
| The maximum length is 253 characters. The minimum length is 1 character. Optional | |
|
| string |
| The maximum length is 253 characters. The minimum length is 1 character. Optional |
11.7.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 |
| The maximum length is 253. The minimum length is 1. Required |
11.7.20. condition Copy linkLink copied to clipboard!
The condition field holds information about the condition of the external-secrets deployment.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
| Required | |
|
|
| |||
|
| string |
|
11.7.21. conditionalStatus Copy linkLink copied to clipboard!
The conditionalStatus field holds information about the current state of the external-secrets deployment.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| array |
|
11.7.22. mode Copy linkLink copied to clipboard!
The mode field indicates the operational state of the optional features.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
|
| |||
|
|
|
11.7.23. pluginsConfig Copy linkLink copied to clipboard!
The pluginsConfig configures the optional plugins.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| object |
| Optional |
11.7.24. proxyConfig Copy linkLink copied to clipboard!
The proxyConfig holds the proxy configurations which are made available in the operand containers and managed by the Operator as environment variables.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| string |
The | The maximum length is 2048 characters. The minimum length is 0 characters. Optional | |
|
| string |
The | The maximum length is 2048 characters. The minimum length is 0 characters. Optional | |
|
| string |
The | The maximum length is 4096 characters. The minimum length is 0 characters. Optional |
11.8. Migrating from the community External Secrets Operator to External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
You can migrate from the community version of the External Secrets Operator. Migrating to External Secrets Operator for Red Hat OpenShift provides you with an officially supported product giving you access to enterprise-grade support. It also provides you with seamless integration from installation to upgrades.
The following migration versions have been fully tested.
| Upstream version | Installation method | Downstream version |
|---|---|---|
| 0.11.0 | OLM | v1.0.0 GA |
| 0.19.0 | Helm | v1.0.0 GA |
The migration does not support rollbacks.
External Secrets Operator for Red Hat OpenShift is based on the upstream version 0.19.0. Do not attempt to migrate from a higher version of the External Secrets Operator.
11.8.1. Deleting the community External Secrets Operator Copy linkLink copied to clipboard!
You must delete the operatorconfigs.operator.external-secrets.io custom resource (CR) for the community External Secrets Operator to delete the external-secrets application installed by the community External Secrets Operator.
Prerequisites
-
You must be logged in as a user with the
cluster-adminrole. -
You must have the
occommand-line tool installed and configured.
Procedure
Find your community Operator’s
namespaceby running the following command:oc get operatorconfigs.operator.external-secrets.io -A
$ oc get operatorconfigs.operator.external-secrets.io -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow The following is an example of finding the
namespace:NAMESPACE NAME AGE external-secrets cluster 9m18s
NAMESPACE NAME AGE external-secrets cluster 9m18sCopy to Clipboard Copied! Toggle word wrap Toggle overflow Delete the
operatorconfigby running the following command:oc delete operatorconfig <config_name> -n <operator_namespace>
$ oc delete operatorconfig <config_name> -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
To verify that the
operatorconfigwas deleted, run the following command:oc get operatorconfig -n <operator_namespace>
$ oc get operatorconfig -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow The command must return
no resource found.To verify that the old webhooks are deleted, run the following commands:
oc get validatingwebhookconfigurations | grep external-secrets
$ oc get validatingwebhookconfigurations | grep external-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc get mutatingwebhookconfigurations | grep external-secrets
$ oc get mutatingwebhookconfigurations | grep external-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow The commands must return no results.
11.8.2. Uninstalling the community External Secrets Operator Copy linkLink copied to clipboard!
You must uninstall the community External Secrets Operator to prevent it from being recreated or conflicting with the new one.
Prerequisites
-
You must be logged in as a user with the
cluster-adminrole. -
You must have deleted the
operatorconfig.
Procedure
If you installed the community External Secrets Operator by an Operator Lifecycle Manager (OLM) subscription, delete the Operator by performing the following steps:
Find the subscription name by running the following command:
oc get subscription -n <operator_namespace> | grep external-secrets
$ oc get subscription -n <operator_namespace> | grep external-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Delete the subscription by running the following command:
oc delete subscription <subscription_name> -n <operator_namespace>
$ oc delete subscription <subscription_name> -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Delete the
ClusterServiceVersionby running the following command:oc delete csv <csv_name> -n <operator_namespace>
$ oc delete csv <csv_name> -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
If you installed the community {external-secret-operator} by Helm, delete the Operator by running the following command:
helm uninstall <release_name> -n <operator_namespace>
$ helm uninstall <release_name> -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow If you installed the community {external-secret-operator} by raw manifests, delete the Operator by running the following command:
oc delete -f /path/to/your/old/manifests.yaml -n <operator_namespace>
$ oc delete -f /path/to/your/old/manifests.yaml -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.8.3. Installing the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
Once the operatorconfig has been deleted and the community {external-secret-operator-short} has been deleted, you can install the External Secrets Operator for Red Hat OpenShift. For more information, see Installing the External Secrets Operator for Red Hat OpenShift.
11.8.4. Creating the ExternalSecretsConfig Operator Copy linkLink copied to clipboard!
The purpose of creating the ExternalSecretsConfig is to install and configure the external-secrets. The configuration ensures that cert-manager and Bitwarden support are enabled.
Prerequisites
- External Secrets Operator for Red Hat OpenShift is installed.
- cert-manager Operator for Red Hat OpenShift is installed.
-
You have access to the cluster with
cluster-adminprivileges.
Procedure
Create an
externalsecretsconfigfile by defining a YAML file with the following content:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
ExternalSecretsConfigobject by running the following command:oc create -f externalsecretsconfig.yaml
$ oc create -f externalsecretsconfig.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
Verify that all custom resources (CRs) are present and that the APIs are using v1 instead of v1beta1. There CRs are retained and automatically converted by the new Operator.
To verify that the
external-secretspods are in arunningstate, run the following command:oc get pods -n external-secret
$ oc get pods -n external-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow The following is example output that the
external-secretspods are in arunningstateNAME READY STATUS RESTARTS AGE bitwarden-sdk-server-5b4cf48766-w7zp7 1/1 Running 0 5m external-secrets-5854b85dd5-m6zf9 1/1 Running 0 5m external-secrets-webhook-5cb85b8fdb-6jtqb 1/1 Running 0 5m
NAME READY STATUS RESTARTS AGE bitwarden-sdk-server-5b4cf48766-w7zp7 1/1 Running 0 5m external-secrets-5854b85dd5-m6zf9 1/1 Running 0 5m external-secrets-webhook-5cb85b8fdb-6jtqb 1/1 Running 0 5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow To verify that the
SecretStoreCR is present, run the following command:oc get secretstores.external-secrets.io -A
$ oc get secretstores.external-secrets.io -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow The following is example output from validating that the
SecretStoreis present:NAMESPACE NAME AGE STATUS CAPABILITIES READY external-secrets-1 gcp-store 18min Valid ReadWrite True external-secrets-2 aws-secretstore 11min Valid ReadWrite True external-secrets bitwarden-secretsmanager 20min Valid Readwrite True
NAMESPACE NAME AGE STATUS CAPABILITIES READY external-secrets-1 gcp-store 18min Valid ReadWrite True external-secrets-2 aws-secretstore 11min Valid ReadWrite True external-secrets bitwarden-secretsmanager 20min Valid Readwrite TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow To verify that the
ExternalSecretCR is present, run the following command:oc get externalsecrets.external-secrets.io -A
$ oc get externalsecrets.external-secrets.io -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow The following is example output from validating that the
SecretStoreis present:NAMESPACE NAME STORE REFRESH INTERVAL STATUS READY external-secrets-1 gcp-externalsecret gcp-store 1hr SecretSynced True external-secrets-2 aws-external-secret aws-secret-store 1hr SecretSynced True external-secrets bitwarden bitwarden-secretsmanager 1hr SecretSynced True
NAMESPACE NAME STORE REFRESH INTERVAL STATUS READY external-secrets-1 gcp-externalsecret gcp-store 1hr SecretSynced True external-secrets-2 aws-external-secret aws-secret-store 1hr SecretSynced True external-secrets bitwarden bitwarden-secretsmanager 1hr SecretSynced TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow To verify that the
SecretStoreisapiVersion: external-secrets.io/v1, run the following command:oc get secretstores.external-secrets.io -n external-secrets-1 gcp-store -o yaml
$ oc get secretstores.external-secrets.io -n external-secrets-1 gcp-store -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow The following is example output that the
SecretStoreisapiVersion: external-secrets.io/v1.Copy to Clipboard Copied! Toggle word wrap Toggle overflow To verify that the
ExternalSecretisapiVersion: external-secrets.io/v1, run the following command:oc get externalsecrets.external-secrets.io -n external-secrets-1 gcp-externalsecret -o yaml
$ oc get externalsecrets.external-secrets.io -n external-secrets-1 gcp-externalsecret -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow The following is example output that the
ExternalSecretisapiVersion: external-secrets.io/v1.Copy to Clipboard Copied! Toggle word wrap Toggle overflow