Joh*_*ohn 1 docker kubernetes kustomize
泊坞窗图像标记是可变的,在image:latest和image:1.0能都指向image@sha256:.....,但版本时1.1被释放,image:latest存储在注册表中可以指向一个图像以不同的SHA摘要。现在拉取带有特定标签的镜像并不意味着下次会拉取相同的镜像。
如果 Kubernetes YAMl 资源定义通过标签(而不是摘要)引用映像,那么在部署资源定义之前,是否有办法确定每个映像实际将解析为什么 sha 摘要?使用kustomize还是支持此功能kubectl?
用例是想确定(我想采取解决资源定义的哈希什么实际上已经被部署到其他前部署在一个环境中,然后可以使用它来了解是否image:1.0被部署到PROD是指相同image:1.0的是已部署到 UAT)。
是否有任何工具可用于支持此功能?
例如,给定以下 YAML,有没有办法用解析的摘要替换所有图像?
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: image1
image: image1:1.1
command:
- /bin/sh -c some command
- name: image2
image: image2:2.2
command:
- /bin/sh -c some other command
Run Code Online (Sandbox Code Playgroud)
要得到这样的东西:
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: image1
image: image1@sha:....
command:
- /bin/sh -c some command
- name: image2
image: image2@sha:....
command:
- /bin/sh -c some other command
Run Code Online (Sandbox Code Playgroud)
我希望能够通过工具执行管道 yaml(可能来自cat,kustomize或kubectl ... --dry-run)之类的操作,然后传递给kubectl apply -f:
cat mydeployment.yaml | some-tool | kubectl apply -f -
Run Code Online (Sandbox Code Playgroud)
编辑:
其背景是需要能够向审计员/监管者证明即将部署到一个环境 (PROD) 的内容正是已成功部署到另一个环境 (UAT) 的内容。我想在部署模板中使用普通标签,并在部署到 UAT 时拍摄模板的快照,其中标签替换为已解析图像的摘要。该快照将是部署的内容(通过kubectl或类似方式)。部署到 PROD 时,将使用相同的快照。
| 归档时间: |
|
| 查看次数: |
3225 次 |
| 最近记录: |