受到来自Google NEXT的this video的大力启发,我开始为我的项目构建CI管道。
目标:每次成功构建标记时都要生成prod群集更新docker镜像。
问题:在我的cloudbuild.yaml中,我指定了构建图像的步骤 - 工作正常,但是我想使用这些图像是更新k8s部署配置以使用这些图像的下一步。但是在构建成功后,图像才会进入容器注册表。
我希望你能看到我在这里遇到的问题,我希望我能找到一个简单的解决方案。
我的cloudbuild.yaml:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/web:${TAG_NAME}', 'web/' ]
- name: 'gcr.io/google_containers/hyperkube:v1.5.3'
env: ["KUBECONFIG=/workspace/kubeconfig"]
entrypoint: '/hyperkube'
args: ['kubectl','set', 'image', 'deployment/web-deployment', 'web=gcr.io/$PROJECT_ID/web:${TAG_NAME}']
- name: 'gcr.io/google_containers/hyperkube:v1.5.3'
env: ['KUBECONFIG=/workspace/kubeconfig']
entrypoint: '/hyperkube'
args: ['kubectl','apply', '-f', 'k8s-all-config.yaml']
images:
- 'gcr.io/$PROJECT_ID/web:${TAG_NAME}'
答案 0 :(得分:2)
简短的故事是,您的构建步骤中使用的凭据目前无法运行kubectl
,hyperkube
或类似的部署工具。
This GitHub issue讨论了一些当前可用的解决方法和跟踪,可以将这种部署工具用作构建的一部分。我们在推出所需更改后的几周内,会在问题发生时更新该问题。
(完全披露:我是Google Cloud Container Builder的技术负责人。)
更新:基础问题已关闭,现在应该可以使用了。 (有关样本工作用法,请参阅discussion。)