2.3. 在 GitOps 仓库中存储 AWS Secret Manager 资源
本指南提供了一些示例,可帮助您将 GitOps 工作流与 Secrets Store Container Storage Interface (SSCSI) Driver Operator 搭配使用,将 secret 从 AWS Secret Manager 挂载到 OpenShift Container Platform 中的 CSI 卷。
在托管的 control plane 集群中不支持使用带有 AWS Secret Manager 的 SSCSI Driver Operator。
先决条件
-
您可以使用
cluster-admin
权限访问集群。 - 访问 OpenShift Container Platform web 控制台。
-
您已提取并准备好
ccoctl
二进制文件。 -
已安装
jq
CLI 工具。 - 您的集群安装在 AWS 上,并使用 AWS 安全令牌服务 (STS)。
- 您已将 AWS Secrets Manager 配置为存储所需的 secret。
- 在集群中安装了 SSCSI Driver Operator。
- 在集群中安装了 Red Hat OpenShift GitOps Operator。
- 您有一个 GitOps 存储库可以使用 secret。
- 您可以使用 Argo CD admin 帐户登录到 Argo CD 实例。
流程
安装 AWS Secrets Manager 供应商并添加资源:
在 GitOps 仓库中,创建一个目录并添加
aws-provider.yaml
文件,使用以下配置来部署 AWS Secret Manager 供应商的资源:重要SSCSI 驱动程序的 AWS Secret Manager 供应商是一个上游供应商。
此配置会根据上游 AWS 文档中提供的配置进行修改,以便它可以与 OpenShift Container Platform 正常工作。对此配置的更改可能会影响功能。
aws-provider.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 GitOps 仓库中添加
secret-provider-app.yaml
文件,为 AWS Secret Manager 创建应用程序和部署资源:secret-provider-app.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 更新
repoURL
字段的值,以指向您的 GitOps 存储库。
将资源与默认的 Argo CD 实例同步,以在集群中部署这些资源:
在部署应用程序的
openshift-cluster-csi-drivers
命名空间中添加标签,以便openshift-gitops
命名空间中的 Argo CD 实例可以管理它:oc label namespace openshift-cluster-csi-drivers argocd.argoproj.io/managed-by=openshift-gitops
$ oc label namespace openshift-cluster-csi-drivers argocd.argoproj.io/managed-by=openshift-gitops
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 GitOps 存储库中的资源应用到集群,包括您刚才推送的
aws-provider.yaml
文件:输出示例
application.argoproj.io/argo-app created application.argoproj.io/secret-provider-app created ...
application.argoproj.io/argo-app created application.argoproj.io/secret-provider-app created ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在 Argo CD UI 中,您可以观察 csi-secrets-store-provider-aws
daemonset 继续同步资源。要解决这个问题,您必须配置 SSCSI 驱动程序来从 AWS Secret Manager 挂载 secret。