CI使用Google Cloud构建

时间:2017-05-29 14:44:19

标签: google-cloud-platform google-kubernetes-engine google-container-registry

受到来自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}'

1 个答案:

答案 0 :(得分:2)

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

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

(完全披露:我是Google Cloud Container Builder的技术负责人。)

更新:基础问题已关闭,现在应该可以使用了。 (有关样本工作用法,请参阅discussion。)