11.7. 为 Red Hat OpenShift 自定义外部 Secret Operator
安装 Red Hat OpenShift 的 External Secrets Operator 后,您可以通过编辑 ExternalSecretsConfig 自定义资源 (CR) 来自定义其行为。这可让您修改 external-secrets 控制器、cert-controller、webhook 和 bitwardenSecretManagerProvider 插件等组件,并可让您为 Operator pod 设置环境变量。
11.7.1. 为 Red Hat OpenShift 为外部 Secrets Operator 设置日志级别 复制链接链接已复制到粘贴板!
您可以为 External Secrets Operator for Red Hat OpenShift 设置日志级别,以确定 Operator 日志消息的详细程度。
先决条件
-
您可以使用
cluster-admin权限访问集群。 -
您已创建了
ExternalSecretsConfig自定义资源。
流程
运行以下命令,为 External Secrets Operator for Red Hat OpenShift 更新订阅对象,以提供 Operator 日志的详细程度:
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 其中:
- external_secrets_operator_namespace
- 安装 Operator 的命名空间。
- log_level
- 支持值范围 1-5。默认值为 2。
验证
External Secrets Operator pod 被重新部署。运行以下命令,验证 External Secrets Operator for Red Hat OpenShift 的日志级别是否已更新:
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 输出示例
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 运行
oc logs命令,验证 External Secrets Operator for Red Hat OpenShift 的日志级别是否已更新: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
您可以为 External Secrets Operator for Red Hat OpenShift 设置日志级别,以确定日志消息的详细程度。
先决条件
-
您可以使用
cluster-admin权限访问集群。 -
您已创建了
ExternalSecretsConfig自定义资源。
流程
运行以下命令来编辑
ExternalSecretsConfigCR:oc edit externalsecretsconfigs.operator.openshift.io cluster
$ oc edit externalsecretsconfigs.operator.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过编辑
spec.appConfig.logLevel部分来设置日志级别值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 支持值范围 1-5。日志级别映射到以下操作对象支持级别:
- 1 - 警告
- 2 - 错误日志
- 3 - info 日志
- 4 和 5 - 调试日志
- 保存更改并退出编辑器。
11.7.3. 为 external-secrets 证书要求配置 cert-manager 复制链接链接已复制到粘贴板!
external-secrets Webhook 和插件可以分配给 cert-manager 以进行证书管理。此配置是可选的。
如果没有使用 cert-manager,external-secrets 默认为自己的证书管理。在这个模式中,它会自动为 webhook 生成所需的证书,同时您需要为插件手动配置证书。
先决条件
-
您可以使用
cluster-admin权限访问集群。 -
您已创建了
ExternalSecretsConfig自定义资源。 - 您已为 Red Hat OpenShift 安装了 cert-manager Operator。如需更多信息,请参阅"为 Red Hat OpenShift 安装 cert-manager Operator"
流程
运行以下命令来编辑
ExternalSecretsConfig自定义资源:oc edit externalsecretsconfigs.operator.openshift.io cluster
$ oc edit externalsecretsconfigs.operator.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过编辑
spec.controllerConfig.certProvider.certManager部分来配置cert-manager,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
- injectAnnotation
-
启用后,必须设置为
true。 - name
-
ExternalSecretsConfig中引用的 issuer 对象的名称。 - kind
-
API 签发者。可以设置为
Issuer或ClusterIssuer。 - group
-
API 签发者组。组名称必须是
cert-manager.io。 - 模式
-
必须设置为
Enabled。这是一个不可变字段,配置后无法修改。
- 保存您的更改。
更新
externalsecretsconfig.operator.openshift.io对象中的cert-manager配置后,您必须运行以下命令来手动删除external-secrets-cert-controller部署。这可防止external-secrets应用程序的性能下降。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 另外,您可以通过运行以下命令来删除为
cert-controller创建的其他资源: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. 配置 bitwardenSecretManagerProvider 插件 复制链接链接已复制到粘贴板!
您可以启用 bitwardenSecretManagerProvider,以使用 Bitwarden Secrets Manager 供应商作为 secret 的源。
先决条件
-
您可以使用
cluster-admin权限访问集群。 -
您已创建了
ExternalSecretsConfig自定义资源。
流程
运行以下命令来编辑
ExternalSecretsConfig自定义资源:oc edit externalsecretsconfigs.operator.openshift.io cluster
$ oc edit externalsecretsconfigs.operator.openshift.io clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 按如下方式编辑
spec.plugins.bitwardenSecretManagerProvider部分,以启用 Bitwarden Secrets Manager:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
- name
-
包含插件证书密钥对的 secret 名称。证书的 secret 中的密钥名称必须是
tls.crt。私钥的密钥名称必须是tls.key。证书颁发机构(CA)证书密钥名称的密钥名称必须是ca.crt。配置 cert-manager 证书提供程序时,配置 secret 是可选的。
- 保存更改并退出编辑器。
- 如果禁用插件,则必须运行以下命令来手动删除以下资源:
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