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 1.0.0 (General Availability) Copy linkLink copied to clipboard!
Issued: 2025-11-03
The following advisories are available for the External Secrets Operator for Red Hat OpenShift 1.0.0:
Version 1.0.0 of the External Secrets Operator for Red Hat OpenShift is based on the upstream external-secrets project, version v0.19.0. For more information, see the external-secrets project release notes for v0.19.0.
11.2.1.1. Bug fixes Copy linkLink copied to clipboard!
- Before this release, many of the APIs listed in the console for the External Secrets Operator for Red Hat OpenShift were missing descriptions. With this release, the API descriptions have been added. (OCPBUGS-61081)
11.2.1.2. New features and enhancements Copy linkLink copied to clipboard!
Renaming and improvements on the Operator API
With this release, the Operator API, externalsecrets.operator.openshift.io has been renamed to externalsecretsconfigs.operator.openshift.io to avoid confusion with the external-secrets provided API that has the same name, but a different purpose. The external-secrets provided API has also been restructured and new features are added.
For more information, see External Secrets Operator for Red Hat OpenShift APIs.
Support to collect metrics of External Secrets Operator
With this release, the External Secrets Operator for Red Hat OpenShift supports collecting metrics for both the Operator and operands. This is optional and must be enabled.
For more information, see Monitoring the External Secrets Operator for Red Hat OpenShift.
Support to configure proxy for External Secrets Operator
With this release, the External Secrets Operator for Red Hat OpenShift supports configuring proxy for both the Operator and operand.
For more information, see About the egress proxy for the External Secrets Operator for Red Hat OpenShift.
Root filesystem is read-only for External Secrets Operator for Red Hat OpenShift containers
With this release, to improve security, the External Secrets Operator for Red Hat OpenShift and all its operands have the readOnlyRootFilesystem security context set to true by default. This enhancement hardens the containers and prevents a potential attacker from modifying the contents of the container’s root file system.
Network policy hardening is now available for External Secrets Operator components
With this release, External Secrets Operator for Red Hat OpenShift includes pre-defined NetworkPolicy resources designed for enhanced security by governing ingress and egress traffic for operand components. These policies cover essential internal traffic, such as ingress to the metrics and webhook servers, and egress to the OpenShift API server and DNS server. Note that deployment of the NetworkPolicy is enabled by default and egress allow policies must be explicitly defined in the ExternalSecretsConfig custom resource for the external-secrets component to fetch secrets from external providers.
For more information, see Configuring network policy for the operand.
11.2.2. 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.2.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. Monitoring the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
By default, the External Secrets Operator for Red Hat OpenShift exposes metrics for the Operator and the operands. You can configure OpenShift Monitoring to collect these metrics by using the Prometheus Operator format.
11.6.1. Enabling user workload monitoring Copy linkLink copied to clipboard!
You can enable monitoring for user-defined projects by configuring user workload monitoring in the cluster. For more information, see "Setting up metrics collection for user-defined projects".
Prerequisites
-
You have access to the cluster as a user with the
cluster-adminrole.
Procedure
Create the
cluster-monitoring-config.yamlYAML file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Apply the
ConfigMapby running the following command:oc apply -f cluster-monitoring-config.yaml
$ oc apply -f cluster-monitoring-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification
Verify that the monitoring components for user workloads are running in the
openshift-user-workload-monitoringnamespace by running the following command:oc -n openshift-user-workload-monitoring get pod
$ oc -n openshift-user-workload-monitoring get podCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME READY STATUS RESTARTS AGE prometheus-operator-5f79cff9c9-67pjb 2/2 Running 0 25h prometheus-user-workload-0 6/6 Running 0 25h thanos-ruler-user-workload-0 4/4 Running 0 25h
NAME READY STATUS RESTARTS AGE prometheus-operator-5f79cff9c9-67pjb 2/2 Running 0 25h prometheus-user-workload-0 6/6 Running 0 25h thanos-ruler-user-workload-0 4/4 Running 0 25hCopy to Clipboard Copied! Toggle word wrap Toggle overflow The status of the pods such as
prometheus-operator,prometheus-user-workload, andthanos-ruler-user-workloadmust beRunning.
11.6.2. Configuring metrics collection for External Secrets Operator for Red Hat OpenShift by using a ServiceMonitor Copy linkLink copied to clipboard!
The External Secrets Operator for Red Hat OpenShift exposes metrics by default on port 8443 at the /metrics service endpoint. You can configure metrics collection for the Operator by creating a ServiceMonitor custom resource (CR) that enables the Prometheus Operator to collect custom metrics. For more information, see "Configuring user workload monitoring".
Prerequisites
-
You have access to the cluster as a user with the
cluster-adminrole. - You have installed the External Secrets Operator for Red Hat OpenShift.
- You have enabled the user workload monitoring.
Procedure
Configure the Operator to use
HTTPfor the metrics server.HTTPSis enabled by default.Update the subscription object for External Secrets Operator for Red Hat OpenShift to configure the
HTTPprotocol by running the following command:oc -n external-secrets-operator patch subscription openshift-external-secrets-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"METRICS_BIND_ADDRESS","value":":8080"}, {"name": "METRICS_SECURE", "value": "false"}]}}}'$ oc -n external-secrets-operator patch subscription openshift-external-secrets-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"METRICS_BIND_ADDRESS","value":":8080"}, {"name": "METRICS_SECURE", "value": "false"}]}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow To verify that the External Secrets Operator pod is redeployed and that the configured values for
METRICS_BIND_ADDRESSandMETRICS_SECUREare updated, run the following command:oc set env --list deployment/external-secrets-operator-controller-manager -n external-secrets-operator | grep -e METRICS_BIND_ADDRESS -e METRICS_SECURE -e container
$ oc set env --list deployment/external-secrets-operator-controller-manager -n external-secrets-operator | grep -e METRICS_BIND_ADDRESS -e METRICS_SECURE -e containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow The following example shows that the
METRICS_BIND_ADDRESSandMETRICS_SECUREhave been updated:deployments/external-secrets-operator-controller-manager, container manager
# deployments/external-secrets-operator-controller-manager, container manager METRICS_BIND_ADDRESS=:8080 METRICS_SECURE=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Create the
Secretresource with thekubernetes.io/service-account.nameannotation to inject the token required for authenticating with the metrics server.Create the
secret-external-secrets-operator.yamlYAML file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
Secretresource by running the following command:oc apply -f secret-external-secrets-operator.yaml
$ oc apply -f secret-external-secrets-operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Create the
ClusterRoleBindingresource required for granting permissions to access metrics:Create the
clusterrolebinding-external-secrets.yamlYAML file:The following example shows a
cluserrolebinding-external-secrets.yamlfile.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
ClusterRoldeBindingcustom resource by running the following command:oc apply -f clusterrolebinding-external-secrets.yaml
$ oc apply -f clusterrolebinding-external-secrets.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Create the
ServiceMonitorCR if using the defaultHTTPS:Create the
servicemonitor-external-secrets-operator-https.yamlYAML file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
ServiceMonitorCR by running the following command:oc apply -f servicemonitor-external-secrets-operator-https.yaml
$ oc apply -f servicemonitor-external-secrets-operator-https.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Create the
ServiceMonitorCR if configured to useHTTP:Create the
servicemonitor-external-secrets-operator-http.yamlYAML file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
ServiceMonitorCR by running the following command:oc apply -f servicemonitor-external-secrets-operator-http.yaml
$ oc apply -f servicemonitor-external-secrets-operator-http.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow After the
ServiceMonitorCR is created, the user workload Prometheus instance begins metrics collection from the Operator. The collected metrics are labeled withjob="external-secrets-operator-controller-manager-metrics-service".
Verification
-
In the OpenShift Container Platform web console, navigate to Observe
Targets. In the Label filter field, enter the following labels to filter the metrics targets for each operand:
service=external-secrets-operator-controller-manager-metrics-service
$ service=external-secrets-operator-controller-manager-metrics-serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Confirm that the Status column shows
Upfor theexternal-secrets-operator.
11.6.3. Querying metrics for the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
As a cluster administrator, or as a user with view access to all namespaces, you can query the Operator metrics by using the OpenShift Container Platform web console or the command-line interface (CLI). For more information, see "Accessing metrics".
Prerequisites
-
You have access to the cluster as a user with the
cluster-adminrole. - You have installed the External Secrets Operator for Red Hat OpenShift.
-
You have enabled monitoring and metrics collection by creating a
ServiceMonitorobject.
Procedure
-
In the OpenShift Container Platform web console, navigate to Observe
Metrics. In the query field, enter the following PromQL expressions to query the External Secrets Operator for Red Hat OpenShift metric:
{job="external-secrets-operator-controller-manager-metrics-service"}{job="external-secrets-operator-controller-manager-metrics-service"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.6.4. Configuring metrics collection for External Secrets Operator for Red Hat OpenShift operands by using a ServiceMonitor Copy linkLink copied to clipboard!
The External Secrets Operator for Red Hat OpenShift operands exposes metrics by default on port 8080 at the /metrics service endpoint for all three components (external-secrets, external-secrets-cert-controll, and external-secrets-webhook). You can configure metrics collection for the external-secrets operands by creating a ServiceMonitor custom resource (CR) that enables the Prometheus Operator to collect custom metrics. For more information, see "Configuring user workload monitoring".
Prerequisites
-
You have access to the cluster as a user with the
cluster-adminrole. - You have installed the External Secrets Operator for Red Hat OpenShift.
- You have enabled the user workload monitoring.
Procedure
Create the
ClusterRoleBindingresource required for granting permissions to access metrics:Create the
clusterrolebinding-external-secrets.yamlYAML file:The following example shows a
cluserrolebinding-external-secrets.yamlfile.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
ClusterRoldeBindingcustom resource by running the following command:oc apply -f clusterrolebinding-external-secrets.yaml
$ oc apply -f clusterrolebinding-external-secrets.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Create the
ServiceMonitorCR:Create the
servicemonitor-external-secrets.yamlYAML file:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
ServiceMonitorCR by running the following command:oc apply -f servicemonitor-external-secrets.yaml
$ oc apply -f servicemonitor-external-secrets.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow After the
ServiceMonitorCR is created, the user workload Prometheus instance begins metrics collection from the External Secrets Operator for Red Hat OpenShift operands. The collected metrics are labeled withjob="external-secrets",job="external-secrets-cainjector", andjob="external-secrets-webhook".
Verification
-
In the OpenShift Container Platform web console, navigate to Observe
Targets. In the Label filter field, enter the following labels to filter the metrics targets for each operand:
service=external-secrets
$ service=external-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow service=external-secrets-cert-controller-metrics
$ service=external-secrets-cert-controller-metricsCopy to Clipboard Copied! Toggle word wrap Toggle overflow service=external-secrets-webhook
$ service=external-secrets-webhookCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Confirm that the Status column shows
Upfor theexternal-secrets,external-secrets-cert-controllerandexternal-secrets-webhook.
11.6.5. Querying metrics for the external-secrets operand Copy linkLink copied to clipboard!
As a cluster administrator, or as a user with view access to all namespaces, you can query external-secrets operand metrics by using the OpenShift Container Platform web console or the command-line interface (CLI). For more information, see "Accessing metrics".
Prerequisites
-
You have access to the cluster as a user with the
cluster-adminrole. - You have installed the External Secrets Operator for Red Hat OpenShift.
-
You have enabled monitoring and metrics collection by creating a
ServiceMonitorobject.
Procedure
-
In the OpenShift Container Platform web console, navigate to Observe
Metrics. In the query field, enter the following PromQL expressions to query the External Secrets Operator for Red Hat OpenShift operands metric for each operand:
{job="external-secrets"}{job="external-secrets"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow {job="external-secrets-webhook"}{job="external-secrets-webhook"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow {job="external-secrets-cert-controller-metrics"}{job="external-secrets-cert-controller-metrics"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.7. Customizing the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
After the External Secrets Operator for Red Hat OpenShift is installed, you can customize its behavior by editing the ExternalSecretsConfig custom resource (CR). This lets you modify components like the external-secrets controller, the cert-controller, the webhook, and the bitwardenSecretManagerProvider plugin and also lets you set environment variables for the Operator pod.
11.7.1. Setting a log level for the External Secrets Operator for Red Hat OpenShift Copy linkLink copied to clipboard!
You can set a log level for the External Secrets Operator for Red Hat OpenShift to determine the verbosity of the operator log messages.
Prerequisites
-
You have access to the cluster with
cluster-adminprivileges. -
You have created the
ExternalSecretsConfigcustom resource.
Procedure
Update the subscription object for External Secrets Operator for Red Hat OpenShift to provide the verbosity level for the operator logs by running the following command:
oc -n <external_secrets_operator_namespace> patch subscription openshift-external-secrets-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"OPERATOR_LOG_LEVEL","value":"<log_level>"}]}}}'$ oc -n <external_secrets_operator_namespace> patch subscription openshift-external-secrets-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"OPERATOR_LOG_LEVEL","value":"<log_level>"}]}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow where:
- external_secrets_operator_namespace
- Namespace where the operator is installed.
- log_level
- Supports the value range of 1-5. The default is 2.
Verification
The External Secrets Operator pod is redeployed. Verify that the log level of the External Secrets Operator for Red Hat OpenShift is updated by running the following command:
oc set env deploy/external-secrets-operator-controller-manager -n external-secrets-operator --list | grep -e OPERATOR_LOG_LEVEL -e container
$ oc set env deploy/external-secrets-operator-controller-manager -n external-secrets-operator --list | grep -e OPERATOR_LOG_LEVEL -e containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
deployments/external-secrets-operator-controller-manager, container manager
# deployments/external-secrets-operator-controller-manager, container manager OPERATOR_LOG_LEVEL=2Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the log level of the External Secrets Operator for Red Hat OpenShift is updated by running the
oc logscommand:oc logs -n external-secrets-operator -f deployments/external-secrets-operator-controller-manager -c manager
$ oc logs -n external-secrets-operator -f deployments/external-secrets-operator-controller-manager -c managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.7.2. Setting a log level for the External Secrets Operator for Red Hat OpenShift operand Copy linkLink copied to clipboard!
You can set a log level for the External Secrets Operator for Red Hat OpenShift to determine the verbosity of log messages.
Prerequisites
-
You have access to the cluster with
cluster-adminprivileges. -
You have created the
ExternalSecretsConfigcustom resource.
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 log level value by editing the
spec.appConfig.logLevelsection:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Supports the value range of 1-5. The log level gets mapped to the following operand support levels:
- 1 - warnings
- 2 - error logs
- 3 - info logs
- 4 and 5 - debug logs
- Save your changes and exit the editor.
11.7.3. Configuring cert-manager for the external-secrets certificate requirements Copy linkLink copied to clipboard!
The external-secrets webhook and plugins can be assigned to cert-manager for certificate management. This configuration is optional.
When cert-manager is not used, external-secrets defaults to its own certificate management. In this mode, it automatically generates the required certificates for the webhook, while you are responsible for manually configuring certificates for the plugins.
Prerequisites
-
You have access to the cluster with
cluster-adminprivileges. -
You have created the
ExternalSecretsConfigcustom resource. - You have installed the cert-manager Operator for Red Hat OpenShift. For more information, see "Installing the cert-manager Operator for Red Hat OpenShift"
Procedure
Edit the
ExternalSecretsConfigcustom resource 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 Configure
cert-managerby editing thespec.controllerConfig.certProvider.certManagersection as follows:Copy to Clipboard Copied! Toggle word wrap Toggle overflow where:
- injectAnnotation
-
Must be set to
truewhen enabled. - name
-
Name of the issuer object referenced in
ExternalSecretsConfig. - kind
-
API issuer. Can be set to either
IssuerorClusterIssuer. - group
-
API issuer group. The group name must be
cert-manager.io. - mode
-
Must be set to
Enabled. This is an immutable field and cannot be modified once it is configured.
- Save your changes.
After you update the
cert-managerconfigurations in theexternalsecretsconfig.operator.openshift.ioobject, you must manually deleteexternal-secrets-cert-controllerdeployment by running the following command. This prevents performance degradation of theexternal-secretsapplication.oc delete deployments.apps external-secrets-cert-controller -n external-secrets
$ oc delete deployments.apps external-secrets-cert-controller -n external-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Optionally, you can delete other resources created for the
cert-controllerby running the following commands:oc delete clusterrolebindings.rbac.authorization.k8s.io external-secrets-cert-controller
$ oc delete clusterrolebindings.rbac.authorization.k8s.io external-secrets-cert-controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete clusterroles.rbac.authorization.k8s.io external-secrets-cert-controller
$ oc delete clusterroles.rbac.authorization.k8s.io external-secrets-cert-controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete serviceaccounts external-secrets-cert-controller -n external-secrets
$ oc delete serviceaccounts external-secrets-cert-controller -n external-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete secrets external-secrets-webhook -n external-secrets
$ oc delete secrets external-secrets-webhook -n external-secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.7.4. Configuring the bitwardenSecretManagerProvider plugin Copy linkLink copied to clipboard!
You can enable the bitwardenSecretManagerProvider to use the Bitwarden Secrets Manager provider as a source for your secrets.
Prerequisites
-
You have access to the cluster with
cluster-adminprivileges. -
You have created the
ExternalSecretsConfigcustom resource.
Procedure
Edit the
ExternalSecretsConfigcustom resource 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.plugins.bitwardenSecretManagerProvidersection as follows to enable the Bitwarden Secrets Manager:Copy to Clipboard Copied! Toggle word wrap Toggle overflow where:
- name
-
The name of the secret containing the certificate key pair for the plugin. The key name in the secret for the certificate must be
tls.crt. The key name for the private key must betls.key. The key name for the Certificate Authority (CA) certificate key name must beca.crt. Configuring the secret is optional when the cert-manager certificate provider is configured.
- Save your changes and exit the editor.
- If you disable the plugin the following resources must be deleted manually by running the following commands:
oc delete deployments.apps bitwarden-sdk-server -n external-secrets
$ oc delete deployments.apps bitwarden-sdk-server -n external-secrets
oc delete certificates.cert-manager.io bitwarden-tls-certs -n external-secrets
$ oc delete certificates.cert-manager.io bitwarden-tls-certs -n external-secrets
oc delete service bitwarden-sdk-server -n external-secrets
$ oc delete service bitwarden-sdk-server -n external-secrets
oc delete serviceaccounts bitwarden-sdk-server -n external-secrets
$ oc delete serviceaccounts bitwarden-sdk-server -n external-secrets
11.8. 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.8.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.8.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.8.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.9. 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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.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.9.22. mode Copy linkLink copied to clipboard!
The mode field indicates the operational state of the optional features.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
|
| |||
|
|
|
11.9.23. pluginsConfig Copy linkLink copied to clipboard!
The pluginsConfig configures the optional plugins.
| Field | Type | Description | Default | Validation |
|---|---|---|---|---|
|
| object |
| Optional |
11.9.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.10. 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.10.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.10.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.10.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.10.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