温馨提示:本文翻译自stackoverflow.com,查看原文请点击:Cloud Build kubectl - How to Apply Output of Previous Step to Kubernetes Cluster
bazel google-cloud-build google-kubernetes-engine kubectl kubernetes

Cloud Build kubectl - 如何将上一步的输出应用于Kubernetes集群

发布于 2020-04-12 13:06:22

我有一个cloudbuild.yaml运行Bazel命令的简单文件。该命令以日志输出形式返回Kubernetes配置。

我的目标是取得第一步的输出,并将其应用于我的Kubernetes集群。

steps:
  - name: gcr.io/cloud-builders/bazel
    args: ["run", "//:kubernetes"]

  - name: "gcr.io/cloud-builders/kubectl"
    args: ["apply", "<log output of previous step>"]
    env:
      - "CLOUDSDK_COMPUTE_ZONE=europe-west3-a"
      - "CLOUDSDK_CONTAINER_CLUSTER=cents-ideas"

更新资料

我尝试了以下方法:

- name: gcr.io/cloud-builders/bazel
  entrypoint: /bin/bash
  args:
    [
      "bazel",
      "run",
      "//:kubernetes",
      " > kubernetes.yaml",
    ]

- name: "gcr.io/cloud-builders/kubectl"
  args: ["apply", "-f", "kubernetes.yaml"]
  env:
    - "CLOUDSDK_COMPUTE_ZONE=europe-west3-a"
    - "CLOUDSDK_CONTAINER_CLUSTER=cents-ideas"

但是然后我得到这个错误:

Running: kubectl apply -f kubernetes.yaml
error: the path "kubernetes.yaml" does not exist

查看更多

提问者
Florian Ludewig
被浏览
75
Emil Gi 2020-02-04 21:24

正如大家已经在这里建议的那样使用

cloudbuild.yaml像这样调整您的文件:

- name: gcr.io/cloud-builders/bazel
  entrypoint: /bin/bash
  args:
    [
      "bazel",
      "run",
      "//:kubernetes",
      " > /workspace/kubernetes.yaml",
    ]

- name: "gcr.io/cloud-builders/kubectl"
  args: ["apply", "-f", "/workspace/kubernetes.yaml"]
  env:
    - "CLOUDSDK_COMPUTE_ZONE=europe-west3-a"
    - "CLOUDSDK_CONTAINER_CLUSTER=cents-ideas"