Bazel k8s_deploy 没有将 Kubernetes 资源应用到集群
Bazel k8s_deploy Does not Apply Kubernetes Resources to Cluster
我有多个用于部署 Kubernetes 的 Bazel 规则
load("@k8s_deploy//:defaults.bzl", "k8s_deploy")
k8s_object(
name = "k8s_deployment",
kind = "deployment",
cluster = "cents-ideas",
template = ":ideas.deployment.yaml",
images = {
"gcr.io/cents-ideas/ideas:latest": ":image"
},
)
k8s_object(
name = "k8s_service",
kind = "service",
template = ":ideas.service.yaml",
)
我已经将所有这些 k8s_object
放在一个 k8s_objects
中,例如 this:
load("@io_bazel_rules_k8s//k8s:objects.bzl", "k8s_objects")
k8s_objects(
name = "k8s",
objects = [
":k8s_deployment",
":k8s_service"
]
)
最后,我有一个运行 k8s_objects
规则的 cloudbuild.yaml
文件:
steps:
- id: 'push docker images and deploy changes to kubernetes'
name: gcr.io/cloud-builders/bazel
args: ['run', '//:kubernetes']
虽然Cloud Build成功,但Kubernetes资源并没有应用到集群上:
Here 是完整的构建日志。
所以基本上图像被推送到容器注册表,然后修改的 .yaml
文件被记录下来,但是 没有 应用于我的 Google Kubernetes 引擎群集。
我认为您需要为目标加上“.create”或“.replace”后缀,请参阅docs
所以你会想要这样的东西:
bazel run //:k8s.create
其中 k8s 是您的目标名称。
我有多个用于部署 Kubernetes 的 Bazel 规则
load("@k8s_deploy//:defaults.bzl", "k8s_deploy")
k8s_object(
name = "k8s_deployment",
kind = "deployment",
cluster = "cents-ideas",
template = ":ideas.deployment.yaml",
images = {
"gcr.io/cents-ideas/ideas:latest": ":image"
},
)
k8s_object(
name = "k8s_service",
kind = "service",
template = ":ideas.service.yaml",
)
我已经将所有这些 k8s_object
放在一个 k8s_objects
中,例如 this:
load("@io_bazel_rules_k8s//k8s:objects.bzl", "k8s_objects")
k8s_objects(
name = "k8s",
objects = [
":k8s_deployment",
":k8s_service"
]
)
最后,我有一个运行 k8s_objects
规则的 cloudbuild.yaml
文件:
steps:
- id: 'push docker images and deploy changes to kubernetes'
name: gcr.io/cloud-builders/bazel
args: ['run', '//:kubernetes']
虽然Cloud Build成功,但Kubernetes资源并没有应用到集群上:
Here 是完整的构建日志。
所以基本上图像被推送到容器注册表,然后修改的 .yaml
文件被记录下来,但是 没有 应用于我的 Google Kubernetes 引擎群集。
我认为您需要为目标加上“.create”或“.replace”后缀,请参阅docs
所以你会想要这样的东西:
bazel run //:k8s.create
其中 k8s 是您的目标名称。