Installing the External Secrets Operator for Red Hat OpenShift
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).
Limitations of External Secrets Operator for Red Hat OpenShift
There are specific operational constraints to consider when deploying or removing the External Secrets Operator for Red Hat OpenShift, that might require manual intervention or strict dependency ordering.
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.
Installing the External Secrets Operator for Red Hat OpenShift by using the web console
You can install the External Secrets Operator for Red Hat OpenShift by using the OpenShift Container Platform web console. You can select the desired update channel and approval strategy, and deploy the Operator into the recommended namespace without manually defining YAML resources.
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 stable-v1, 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.
Installing the External Secrets Operator for Red Hat OpenShift by using the CLI
You can install the External Secrets Operator for Red Hat OpenShift by manually configuring the Operator Lifecycle Manager (OLM) resources using the OpenShift CLI. You can create a dedicated namespace, define the Operator’s scope, and install the Operator from the catalog.
Prerequisites
- You have access to the cluster with
cluster-adminprivileges.
Procedure
- Create a new project named
external-secrets-operatorby running the following command:terminal$ oc new-project external-secrets-operator - Create an
OperatorGroupobject by defining a YAML file with the following content:yamlapiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-external-secrets-operator namespace: external-secrets-operator spec: targetNamespaces: [] - Create the
OperatorGroupobject by running the following command:terminal$ oc create -f operatorGroup.yaml - Create a
Subscriptionobject by defining a YAML file with the following content:The following is an example of a
subscription.yamlfile.yamlapiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: openshift-external-secrets-operator namespace: external-secrets-operator spec: channel: stable-v1 name: openshift-external-secrets-operator source: redhat-operators sourceNamespace: openshift-marketplace installPlanApproval: Automatic startingCSV: external-secrets-operator.v1.0.0 - Create the
Subscriptionobject by running the following command:terminal$ oc create -f subscription.yaml
Verification
- Verify that the OLM subscription is created by running the following command:terminal
$ oc get subscription -n external-secrets-operatorThe following is example output verifying the OLM subscription is created.
terminalNAME PACKAGE SOURCE CHANNEL openshift-external-secrets-operator openshift-external-secrets-operator redhat-operators stable-v1 - Verify whether the Operator is successfully installed by running the following command:terminal
$ oc get csv -n external-secrets-operatorThe following is example output verifying that the Operator is installed.
terminalNAME DISPLAY VERSION REPLACES PHASE external-secrets-operator.v1.0.0 External Secrets Operator for Red Hat OpenShift 1.0.0 Succeeded - Verify that the status of the External Secrets Operator is
Runningby entering the following command:terminal$ oc get pods -n external-secrets-operatorThe following is example output verifying the External Secrets Operator is
Running.terminalNAME READY STATUS RESTARTS AGE external-secrets-operator-controller-manager-5699f4bc54-kbsmn 1/1 Running 0 25h
Installing the External Secrets operand by using the CLI
To install the External Secrets operand, create an instance of the ExternalSecrets custom resource by using the command-line interface (CLI) which deploys necessary operand components such as the core controller, webhook, and certificate controller into the external-secrets namespace.
Prerequisites
- You have access to the cluster with
cluster-adminprivileges.
Procedure
- Create an
externalsecretsconfig.openshift.operator.ioobject by defining a YAML file with the following content:Example externalsecretsconfig.yaml fileapiVersion: operator.openshift.io/v1alpha1 kind: ExternalSecretsConfig metadata: labels: app: external-secrets-operator app.kubernetes.io/name: cluster name: cluster spec: controllerConfig: networkPolicies: - componentName: ExternalSecretsCoreController egress: - {} name: allow-external-secrets-egressFor more information on spec configuration, see "External Secrets Operator for Red Hat OpenShift APIs".
- Create the
externalsecretsconfigs.openshift.operator.ioobject by running the following command:terminal$ oc create -f externalsecretsconfig.yaml
Verification
- Verify that the
external-secretspods are running by entering the following command:terminal$ oc get pods -n external-secretsExample outputNAME 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 - Verify that the
external-secrets-operatordeployment object reports a successful status by running the following command:terminal$ oc get externalsecretsconfig.operator.openshift.io cluster -n external-secrets-operator -o jsonpath='{.status.conditions}' | jq .Example output[ { "lastTransitionTime": "2025-06-17T14:57:04Z", "message": "", "observedGeneration": 2, "reason": "Ready", "status": "False", "type": "Degraded" }, { "lastTransitionTime": "2025-11-27T05:58:38Z, "message": "reconciliation successful", "observedGeneration": 2, "reason": "Ready", "status": "True", "type": "Ready" } ]
Next step
- Configure the network policies of the operand as described in "Configuring network policy for the operand".
Understanding update channels of the External Secrets Operator for Red Hat OpenShift
Control the version of the External Secrets Operator for Red Hat OpenShift in your cluster by selecting an update channel. By using this mechanism, you can declare a specific version track, ensuring your environment receives only the updates you require for stability.
The External Secrets Operator for Red Hat OpenShift offers the following update channels:
stable-v1stable-v1.y
About the External Secrets Operator for Red Hat OpenShift stable-v1 channel
Select the stable-v1 channel to install and update the latest release of the External Secrets Operator for Red Hat OpenShift. By selecting this channel, you can use the most recent stable release for your Operator.
The stable-v1 channel is the default and suggested channel while installing the External Secrets Operator for Red Hat OpenShift.
The stable-v1 channel offers the following update approval strategies:
- Automatic
If you choose automatic updates for an installed External Secrets Operator for Red Hat OpenShift, a new version of the External Secrets Operator for Red Hat OpenShift is available in the
stable-v1channel. The Operator Lifecycle Manager (OLM) automatically upgrades the running instance of your Operator without human intervention.- Manual
If you select manual updates, when a newer version of the External Secrets Operator for Red Hat OpenShift is available, OLM creates an update request. As a cluster administrator, you must then manually approve that update request to have the cert-manager Operator for Red Hat OpenShift updated to the new version.
About the External Secrets Operator for Red Hat OpenShift stable-v1.y channel
Select the stable-v1 channel to install and update the latest release of the External Secrets Operator for Red Hat OpenShift. By selecting this channel, you can use the latest stable release and allows you to choose between automatic and manual updates.
The y-stream version of the External Secrets Operator for Red Hat OpenShift installs updates from the stable-v1.y channels such as stable-v1.0, stable-v1.1, and stable-v1.2. Select the stable-v1.y channel if you want to use the y-stream version and stay updated to the z-stream version of the External Secrets Operator for Red Hat OpenShift.
The stable-v1.y channel offers the following update approval strategies:
- Automatic
If you choose automatic updates for an installed External Secrets Operator for Red Hat OpenShift, a new z-stream version of the External Secrets Operator for Red Hat OpenShift is available in the
stable-v1.ychannel. OLM automatically upgrades the running instance of your Operator without human intervention.- Manual
If you select manual updates, when a newer version of the External Secrets Operator for Red Hat OpenShift is available, OLM creates an update request. As a cluster administrator, you must then manually approve that update request to have the External Secrets Operator for Red Hat OpenShift updated to the new version of the z-stream releases.