CI 使用 Google 云构建进行设置

CI set up with Google Cloud build

受到来自 Google 的 this video 的极大启发 NEXT 我已经开始为我的项目构建 CI 管道。

目标:每次使用标签成功构建时,让产品集群更新 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}'

简而言之,您构建步骤中使用的凭据目前无法 运行 kubectlhyperkube 或类似的部署工具。

This GitHub issue 讨论了一些当前可用的解决方法和跟踪,以便在您的构建中使用这种部署工具。我们将在几周内推出所需的更改,并将在问题发生时更新它。

(全面披露:我是 Google Cloud Container Builder 的技术主管。)

更新:基础问题已解决,现在应该可以了。 (有关示例工作用法,请参阅 discussion。)