2.5. 配置 GitOps 受管资源以使用挂载的 secret
您必须通过将卷挂载配置添加到部署,并将容器 pod 配置为使用挂载的 secret 来配置 GitOps 管理的资源。
先决条件
- 您有 AWS Secrets Manager 资源存储在 GitOps 存储库中。
- 您已将 Secret Store Container Storage Interface (SSCSI)驱动程序配置为从 AWS Secret Manager 挂载 secret。
流程
配置 GitOps 受管资源。例如,请考虑将卷挂载配置添加到
app-taxi
应用的部署中,且100-deployment.yaml
文件位于/environments/dev/apps/app-taxi/services/taxi/base/config/
目录中。将卷挂载添加到部署 YAML 文件中,并将容器 pod 配置为使用 secret 供应商类资源和挂载的 secret:
YAML 文件示例
apiVersion: apps/v1 kind: Deployment metadata: name: taxi namespace: dev 1 spec: replicas: 1 template: metadata: # ... spec: containers: - image: nginxinc/nginx-unprivileged:latest imagePullPolicy: Always name: taxi ports: - containerPort: 8080 volumeMounts: - name: secrets-store-inline mountPath: "/mnt/secrets-store" 2 readOnly: true resources: {} serviceAccountName: default volumes: - name: secrets-store-inline csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "my-aws-provider" 3 status: {} # ...
- 将更新的资源 YAML 文件推送到 GitOps 存储库。
- 在 Argo CD UI 中,点目标应用程序页面中的 REFRESH 以应用更新的部署清单。
- 验证目标应用程序页面中都已成功同步所有资源。
验证您是否可以从 pod 卷挂载中的 AWS Secret Manager 访问 secret:
列出 pod 挂载中的 secret:
$ oc exec <deployment_name>-<hash> -n <namespace> -- ls /mnt/secrets-store/
示例命令
$ oc exec taxi-5959644f9-t847m -n dev -- ls /mnt/secrets-store/
输出示例
<secret_name>
查看 pod 挂载中的 secret:
$ oc exec <deployment_name>-<hash> -n <namespace> -- cat /mnt/secrets-store/<secret_name>
示例命令
$ oc exec taxi-5959644f9-t847m -n dev -- cat /mnt/secrets-store/testSecret
输出示例
<secret_value>