11.7. 为 Red Hat OpenShift 自定义外部 Secret Operator


安装 Red Hat OpenShift 的 External Secrets Operator 后,您可以通过编辑 ExternalSecretsConfig 自定义资源 (CR) 来自定义其行为。这可让您修改 external-secrets 控制器、cert-controller、webhook 和 bitwardenSecretManagerProvider 插件等组件,并可让您为 Operator pod 设置环境变量。

您可以为 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>"}]}}}'
    Copy to Clipboard Toggle word wrap

    其中:

    external_secrets_operator_namespace
    安装 Operator 的命名空间。
    log_level
    支持值范围 1-5。默认值为 2。

验证

  1. 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
    Copy to Clipboard Toggle word wrap

    输出示例

    # deployments/external-secrets-operator-controller-manager, container manager
    OPERATOR_LOG_LEVEL=2
    Copy to Clipboard Toggle word wrap

  2. 运行 oc logs 命令,验证 External Secrets Operator for Red Hat OpenShift 的日志级别是否已更新:

    $ oc logs -n external-secrets-operator -f deployments/external-secrets-operator-controller-manager -c manager
    Copy to Clipboard Toggle word wrap

您可以为 External Secrets Operator for Red Hat OpenShift 设置日志级别,以确定日志消息的详细程度。

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 您已创建了 ExternalSecretsConfig 自定义资源。

流程

  1. 运行以下命令来编辑 ExternalSecretsConfig CR:

    $ oc edit externalsecretsconfigs.operator.openshift.io cluster
    Copy to Clipboard Toggle word wrap
  2. 通过编辑 spec.appConfig.logLevel 部分来设置日志级别值:

    apiVersion: operator.openshift.io/v1alpha1
    kind: ExternalSecretsConfig
    ...
    spec:
      appConfig:
        logLevel: <log_level> 
    1
    Copy to Clipboard Toggle word wrap
    1
    支持值范围 1-5。日志级别映射到以下操作对象支持级别:
    • 1 - 警告
    • 2 - 错误日志
    • 3 - info 日志
    • 4 和 5 - 调试日志
  3. 保存更改并退出编辑器。

external-secrets Webhook 和插件可以分配给 cert-manager 以进行证书管理。此配置是可选的。

如果没有使用 cert-managerexternal-secrets 默认为自己的证书管理。在这个模式中,它会自动为 webhook 生成所需的证书,同时您需要为插件手动配置证书。

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 您已创建了 ExternalSecretsConfig 自定义资源。
  • 您已为 Red Hat OpenShift 安装了 cert-manager Operator。如需更多信息,请参阅"为 Red Hat OpenShift 安装 cert-manager Operator"

流程

  1. 运行以下命令来编辑 ExternalSecretsConfig 自定义资源:

    $  oc edit externalsecretsconfigs.operator.openshift.io cluster
    Copy to Clipboard Toggle word wrap
  2. 通过编辑 spec.controllerConfig.certProvider.certManager 部分来配置 cert-manager,如下所示:

    apiVersion: operator.openshift.io/v1alpha1
    kind: ExternalSecretsConfig
    ...
    spec:
      controllerConfig:
        certProvider:
          certManager:
            injectAnnotations: "true"
            issuerRef:
              name: <issuer_name>
              kind: <issuer_kind>
              group: <issuer_group>
            mode: Enabled
    Copy to Clipboard Toggle word wrap

    其中:

    injectAnnotation
    启用后,必须设置为 true
    name
    ExternalSecretsConfig 中引用的 issuer 对象的名称。
    kind
    API 签发者。可以设置为 IssuerClusterIssuer
    group
    API 签发者组。组名称必须是 cert-manager.io
    模式
    必须设置为 Enabled。这是一个不可变字段,配置后无法修改。
  3. 保存您的更改。
  4. 更新 externalsecretsconfig.operator.openshift.io 对象中的 cert-manager 配置后,您必须运行以下命令来手动删除 external-secrets-cert-controller 部署。这可防止 external-secrets 应用程序的性能下降。

    $ oc delete deployments.apps external-secrets-cert-controller -n external-secrets
    Copy to Clipboard Toggle word wrap
  5. 另外,您可以通过运行以下命令来删除为 cert-controller 创建的其他资源:

    $ oc delete clusterrolebindings.rbac.authorization.k8s.io external-secrets-cert-controller
    Copy to Clipboard Toggle word wrap
    $ oc delete clusterroles.rbac.authorization.k8s.io external-secrets-cert-controller
    Copy to Clipboard Toggle word wrap
    $ oc delete serviceaccounts external-secrets-cert-controller -n external-secrets
    Copy to Clipboard Toggle word wrap
    $ oc delete secrets external-secrets-webhook -n external-secrets
    Copy to Clipboard Toggle word wrap

11.7.4. 配置 bitwardenSecretManagerProvider 插件

您可以启用 bitwardenSecretManagerProvider,以使用 Bitwarden Secrets Manager 供应商作为 secret 的源。

先决条件

  • 您可以使用 cluster-admin 权限访问集群。
  • 您已创建了 ExternalSecretsConfig 自定义资源。

流程

  1. 运行以下命令来编辑 ExternalSecretsConfig 自定义资源:

    $  oc edit externalsecretsconfigs.operator.openshift.io cluster
    Copy to Clipboard Toggle word wrap
  2. 按如下方式编辑 spec.plugins.bitwardenSecretManagerProvider 部分,以启用 Bitwarden Secrets Manager:

    apiVersion: operator.openshift.io/v1alpha1
    kind: ExternalSecretsConfig
    ...
    spec:
      plugins:
        bitwardenSecretManagerProvider:
          mode: Enabled
          secretRef:
            name: <secret_object_name>
    Copy to Clipboard Toggle word wrap

    其中:

    name
    包含插件证书密钥对的 secret 名称。证书的 secret 中的密钥名称必须是 tls.crt。私钥的密钥名称必须是 tls.key。证书颁发机构(CA)证书密钥名称的密钥名称必须是 ca.crt。配置 cert-manager 证书提供程序时,配置 secret 是可选的。
  3. 保存更改并退出编辑器。
  4. 如果禁用插件,则必须运行以下命令来手动删除以下资源:
$ oc delete deployments.apps bitwarden-sdk-server -n external-secrets
Copy to Clipboard Toggle word wrap
$ oc delete certificates.cert-manager.io bitwarden-tls-certs -n external-secrets
Copy to Clipboard Toggle word wrap
$ oc delete service bitwarden-sdk-server -n external-secrets
Copy to Clipboard Toggle word wrap
$ oc delete serviceaccounts bitwarden-sdk-server -n external-secrets
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat