spinnaker对接AWS ECR
问题描述 当在使用 docker login 登录 ECR 时需要获取对应的密钥,而在 aws 中可以运行 aws ecr get-login 以获取登录的密钥。这里存在的问题是,AWS ECR 的密钥有效期是 12 小时,必须做到每 12 小时轮换一次。在配置时,就需要解决 clouddriver 可以实时使用最新密钥登录来获取镜像仓库中容器版本。那么问题就变成了:如何可以解决这个限制并允许 Spinnaker 与 AWS ECR 交互? 问题参考 ecr-token-refresh 在实施过程中,参考了 “Using AWS ECR with Spinnaker and Kubernetes” [1] 文章,这篇文章属于官方博客。在这里提到一个方法:“使用 sidecar 来间接刷新 aws ecr 密钥,来完成 clouddriver 可以正常获取密钥。 这里提到的一个项目 ”ecr-token-refresh“ [2] ,这是作者自己编写的一个程序,该程序会定期刷新 ecr 的身份验证令牌。 在参考这个项目实施时,官方提示是下面配置,但和其他传统的 spinnaker 镜像仓库的配置是相同的,要让 --password-file 是动态的。 bash 1 2 3 4 5 $ hal config provider docker-registry account add my-docker-registry \ --address https://<aws-account-number>....