Ошибка объекта Bazel Kubernetes: объекты не переданы для применения (Реестр контейнеров Google) - PullRequest
1 голос
/ 12 февраля 2020

У меня есть правило k8s_object, чтобы применить развертывание к моему кластеру Google Kubernetes. Вот мои настройки:

load("@io_bazel_rules_docker//nodejs:image.bzl", "nodejs_image")
nodejs_image(
    name = "image",
    data = [":lib", "//:package.json"],
    entry_point = ":index.ts",
)

load("@io_bazel_rules_k8s//k8s:object.bzl", "k8s_object")
k8s_object(
  name = "k8s_deployment",
  template = ":gateway.deployment.yaml",
  kind = "deployment",
  cluster = "gke_cents-ideas_europe-west3-b_cents-ideas",
  images = {
    "gcr.io/cents-ideas/gateway:latest": ":image"
  },
)

Но когда я запускаю bazel run //services/gateway:k8s_deployment.apply, я получаю следующую ошибку

INFO: Analyzed target //services/gateway:k8s_deployment.apply (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Target //services/gateway:k8s_deployment.apply up-to-date:
  bazel-bin/services/gateway/k8s_deployment.apply
INFO: Elapsed time: 0.113s, Critical Path: 0.00s
INFO: 0 processes.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
$ /snap/bin/kubectl --kubeconfig= --cluster=gke_cents-ideas_europe-west3-b_cents-ideas --context= --user= apply -f -
2020/02/12 14:52:44 Unable to publish images: unable to publish image gcr.io/cents-ideas/gateway:latest
error: no objects passed to apply

ошибка: нет объектов, переданных для применения Это не добавляет sh новое изображение в Реестр контейнеров Google.

Странно, это работало несколько дней go. Но я ничего не изменил.

Вот полный код, если вам нужно присмотреться: https://github.com/flolude/cents-ideas/blob/069c773ade88dfa8aff492f024a1ade1f8ed282e/services/gateway/BUILD

Обновление

Я не знаю, связано ли это с этой проблемой, но когда я запускаю

gcloud auth configure-docker

, я получаю некоторые предупреждения:

WARNING: `docker-credential-gcloud` not in system PATH.
gcloud's Docker credential helper can be configured but it will not work until this is corrected.
WARNING: Your config file at [/home/flolu/.docker/config.json] contains these credential helper entries:

{
  "credHelpers": {
    "asia.gcr.io": "gcloud", 
    "staging-k8s.gcr.io": "gcloud", 
    "us.gcr.io": "gcloud", 
    "gcr.io": "gcloud", 
    "marketplace.gcr.io": "gcloud", 
    "eu.gcr.io": "gcloud"
  }
}
Adding credentials for all GCR repositories.
WARNING: A long list of credential helpers may cause delays running 'docker build'. We recommend passing the registry name to configure only the registry you are using.
gcloud credential helpers already registered correctly.

1 Ответ

1 голос
/ 12 февраля 2020

У меня google-cloud-sdk установлено через snap install. Что я сделал, чтобы заставить его работать, так это удалил google-cloud-sdk через

snap remove google-cloud-sdk

и затем следовал этим инструкциям , чтобы установить его через

sudo apt install google-cloud-sdk

Теперь это работает прекрасный

...