11.10. 从社区版本的 External Secrets Operator 迁移到 External Secrets Operator for Red Hat OpenShift
您可以从 External Secrets Operator 的社区版本迁移。迁移到 External Secrets Operator for Red Hat OpenShift 后为您提供了一个官方支持的产品,可让您获得企业级支持。它还为您提供了从安装到升级的无缝集成。
以下迁移版本已被完全测试。
| 上游版本 | 安装方法 | 下游版本 |
|---|---|---|
| 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。不要试图更高的 External Secrets Operator 进行迁移。
11.10.1. 删除社区外版本的 External Secrets Operator 复制链接链接已复制到粘贴板!
您必须删除社区版本的 External Secrets Operator 的 operatorconfigs.operator.external-secrets.io 自定义资源(CR),以删除由社区版本的 External Secret Operator 安装的 external-secrets 应用程序。
先决条件
-
您必须以具有
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: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
验证
要验证
operatorconfig是否已删除,请运行以下命令: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 复制链接链接已复制到粘贴板!
您必须卸载社区版的 External Secret Operator,以防止重新创建或与新 Secret Operator 冲突。
先决条件
-
您必须以具有
cluster-admin角色的用户身份登录。 -
您必须已删除
operatorconfig。
流程
如果您通过 Operator Lifecycle Manager (OLM) 订阅安装社区版的 External Secret Operator,请执行以下步骤来删除 Operator:
运行以下命令来查找订阅名称:
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
如果通过 Helm 安装了社区版 {external-secret-operator},请运行以下命令删除 Operator:
helm uninstall <release_name> -n <operator_namespace>
$ helm uninstall <release_name> -n <operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用原始清单安装社区版 {external-secret-operator},请运行以下命令删除 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
在删除了 operatorconfig 并且社区版 {external-secret-operator-short} 被删除后,您可以安装 External Secrets Operator for Red Hat OpenShift。如需更多信息,请参阅安装 External Secrets Operator for Red Hat OpenShift。
11.10.4. 创建 ExternalSecretsConfig Operator 复制链接链接已复制到粘贴板!
创建 ExternalSecretsConfig 的目的是安装并配置 external-secrets。该配置可确保启用了 cert-manager 和 Bitwarden 支持。
先决条件
- 已安装 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