11.10. 从社区版本的 External Secrets Operator 迁移到 External Secrets Operator for Red Hat OpenShift
从社区外部 Secret Operator 迁移到 Red Hat OpenShift 支持的外部 Secret Operator。此转换为您提供企业级支持和无缝集成,用于管理外部 secret。
以下迁移版本已被完全测试。
| 上游版本 | 安装方法 | 下游版本 |
|---|---|---|
| 0.11.0 | OLM | v1.0.0 GA |
| 0.19.0 | Helm | v1.0.0 GA |
迁移不支持回滚。
External Secrets Operator for Red Hat OpenShift 基于上游版本 0.19.0。不要尝试从外部 Secrets Operator 的更高版本进行迁移。
11.10.1. 删除社区外版本的 External Secrets Operator 复制链接链接已复制到粘贴板!
删除 community Operator 的配置资源,以便完全删除旧应用程序。此操作可防止在为 Red Hat OpenShift 安装外部 Secret Operator 前发生冲突。
先决条件
-
您必须以具有
cluster-admin角色的用户身份登录。 -
您必须安装并配置
oc命令行工具。
流程
运行以下命令,查找社区版本的 Operator 的
namespace:oc get operatorconfigs.operator.external-secrets.io -A
$ oc get operatorconfigs.operator.external-secrets.io -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下是查找
namespace的示例:NAMESPACE NAME AGE external-secrets cluster 9m18s
NAMESPACE NAME AGE external-secrets cluster 9m18sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来删除
operatorconfig自定义 resrouce (CR):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
验证
要验证
operatorconfigCR 是否已删除,请运行以下命令:oc get operatorconfig -n <operator_namespace>
$ oc get operatorconfig -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 命令必须返回
no resource found。要验证旧 Webhook 是否已删除,请运行以下命令:
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 命令必须没有返回任何结果。
11.10.2. 卸载社区版的 External Secrets Operator 复制链接链接已复制到粘贴板!
卸载社区外部 Secret Operator,以便在迁移到 Red Hat OpenShift 的外部 Secrets Operator 后防止冲突或意外重新创建。
您必须卸载社区版的 External Secret Operator,以防止重新创建或与新 Secret Operator 冲突。卸载步骤根据社区外部 Secret Operator 安装的方式不同,但每个的先决条件都是相同的。
11.10.2.1. 卸载 helm 安装的社区外部 Secret Operator 复制链接链接已复制到粘贴板!
删除使用 Helm 安装的社区外部 Secret Operator。这有助于您释放资源并为集群维护干净的环境。
先决条件
-
您必须以具有
cluster-admin角色的用户身份登录。 -
您必须已删除
operatorconfig自定义资源(CR)。
流程
-
为 Red Hat OpenShift 安装 External Secrets Operator。
external-secrets-operator命名空间必须是 null。 运行以下命令来删除 External Secrets Operator:
oc helm delete <release_name> -n <operator_namespace>
$ oc helm delete <release_name> -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意使用
helm delete可能会删除所有自定义资源定义 (CRD) 和 CR。如果命名空间external-secrets-operator为空,建议首先安装下游 Operator。
删除由 Operator Lifecycle Manager (OLM) 订阅安装的社区外部 Secret Operator。这有助于您释放资源并为集群维护干净的环境。
先决条件
-
您必须以具有
cluster-admin角色的用户身份登录。 -
您必须已删除
operatorconfigCR。
流程
运行以下命令来查找订阅名称:
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 运行以下命令来删除订阅:
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 运行以下命令来删除
ClusterServiceVersion: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
11.10.2.3. 卸载安装社区外部 Secret Operator 的原始清单 复制链接链接已复制到粘贴板!
删除由原始清单安装的社区外部 Secret Operator。这有助于您释放资源并为集群维护干净的环境。
先决条件
-
您必须以具有
cluster-admin角色的用户身份登录。 -
您必须已删除
operatorconfigCR。
流程
要删除由原始清单安装的 communiity External Secrets Operator,请运行以下命令:
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
清理社区版本后,为 Red Hat OpenShift 安装 External Secrets Operator。这会建立用于管理集群中 secret 的官方支持的服务。如需更多信息,请参阅安装 External Secrets Operator for Red Hat OpenShift。
11.10.4. 创建 ExternalSecretsConfig Operator 复制链接链接已复制到粘贴板!
创建 ExternalSecretsConfig 资源,以安装和配置核心 external-secrets 组件。此设置有助于确保正确启用 Bitwarden 和 cert-manager 支持等功能。
先决条件
- 已安装 External Secrets Operator for Red Hat OpenShift。
- 已安装 cert-manager Operator for Red Hat OpenShift。
-
您可以使用
cluster-admin权限访问集群。
流程
通过定义包含以下内容的 YAML 文件来创建
externalsecretsconfig文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
ExternalSecretsConfig对象:oc create -f externalsecretsconfig.yaml
$ oc create -f externalsecretsconfig.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证所有自定义资源(CR)是否存在,并且 API 是否使用 v1 而不是 v1beta1。CR 会被保留并由新的 Operator 自动转换。
要验证
external-secretspod 是否处于running状态,请运行以下命令:oc get pods -n external-secret
$ oc get pods -n external-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下是
external-secretsPod 处于running状态的输出示例。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 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 要验证
SecretStoreCR 是否存在,请运行以下命令:oc get secretstores.external-secrets.io -A
$ oc get secretstores.external-secrets.io -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下是验证是否存在
SecretStore的输出示例: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 要验证
ExternalSecretCR 是否存在,请运行以下命令:oc get externalsecrets.external-secrets.io -A
$ oc get externalsecrets.external-secrets.io -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下是验证是否存在
SecretStore的输出示例: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 要验证
SecretStore是否为apiVersion: external-secrets.io/v1,请运行以下命令: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 以下是
SecretStore为apiVersion: external-secrets.io/v1的输出示例。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证
ExternalSecret是否为apiVersion: external-secrets.io/v1,请运行以下命令: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 以下是
ExternalSecret为apiVersion: external-secrets.io/v1的输出示例。Copy to Clipboard Copied! Toggle word wrap Toggle overflow