背景
我准备了一个Kubernetes的manifest文件,在GitOps操作中从circleci构建一个docker镜像,push到ECR,同时将circleci的image tag change的PR发送到GitHub
当时,我也尝试在circleci作业中编辑清单文件
问题,未知点
我尝试使用 yq 命令更改 yaml 文件。
yq -y -i '.images |= map(select(.name=="XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/backend-admin").newTag |= '$CIRCLE_SHA1')' k8s/overlays/dev/bases/kustomization.yaml
清单文件
namespace: production
bases:
- ../../../bases/admin
patchesStrategicMerge:
- patch-admin.yaml
images:
- name: nginx
newTag: 1.15.2
- name: XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/backend
newName: XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/backend
newTag: backend-tag
- name: XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/frontend
newName: XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/frontend
newTag: latest
但发生错误
jq: error: a99cce09747507feb74799e1e1c9459aba43d4a6/0 is not defined at <top-level>, line 1:
.images |= map(select(.name=="XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/backend-admin").newTag |= a99cce09747507feb74799e1e1c9459aba43d4a6)
我认为原因是它包含在我看到各种文章中,但没有一个导致解决方案。
我想知道是否有人知道