bazelbuild / rules_k8s

This repository contains rules for interacting with Kubernetes configurations / clusters.
Apache License 2.0
290 stars 136 forks source link

io_kubernetes_build seems to not exist? #688

Open ptarjan opened 2 years ago

ptarjan commented 2 years ago

I already have rules_k8s working using the simple:

load("@io_bazel_rules_k8s//k8s:k8s.bzl", "k8s_repositories")

k8s_repositories()

load("@io_bazel_rules_k8s//k8s:k8s_go_deps.bzl", k8s_go_deps = "deps")

k8s_go_deps()

I'm trying to follow the directions to get rid of the debug message:

    (17:31:25) DEBUG: /cache/bazel/6fadd30f776596320f945376fa05bc65/external/io_bazel_rules_k8s/toolchains/kubectl/kubectl_toolchain.bzl:28:14: No kubectl tool was found or built, executing run for rules_k8s targets might not work.

By adding this before:


+load("@io_bazel_rules_k8s//toolchains/kubectl:kubectl_configure.bzl", "kubectl_configure")
+
+kubectl_configure(
+    name = "k8s_config",
+    build_srcs = True,
+)
+

but then when I run this I get:

$ bazel build @io_kubernetes//...
INFO: Invocation ID: 3657c8df-3d63-4e15-9ce9-daf082813d8d
ERROR: Skipping '@io_kubernetes//...': error loading package under directory '': error loading package '@io_kubernetes//cluster/gce': Unable to find package for @io_kubernetes_build//defs:pkg.bzl: The repository '@io_kubernetes_build' could not be resolved: Repository '@io_kubernetes_build' is not defined.
WARNING: Target pattern parsing failed.
ERROR: error loading package under directory '': error loading package '@io_kubernetes//cluster/gce': Unable to find package for @io_kubernetes_build//defs:pkg.bzl: The repository '@io_kubernetes_build' could not be resolved: Repository '@io_kubernetes_build' is not defined.
INFO: Elapsed time: 0.904s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)
    currently loading: @io_kubernetes//cluster/gce ... (7 packages)

I see a reference in the readme https://github.com/bazelbuild/rules_k8s/blob/ab522ec5bc096612630c2b85c8c23be87e84ecde/toolchains/kubectl/README.md#L93 about it but when I visit that directory https://github.com/kubernetes/kubernetes/tree/master/build/root I don't see a WORKSPACE file.

Can we update the docs for how to do this please?

jvolkman commented 2 years ago

Probably due to https://github.com/bazelbuild/rules_k8s/issues/677

loeffel-io commented 2 years ago

same here

loeffel-io commented 2 years ago

this is a pretty good alternative:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")

http_file(
    name = "k8s_binary",
    downloaded_file_path = "kubectl",
    executable = True,
    sha256 = "da340d96f1d2f6932a888f1f44646a5817edd8512a4aa793a20267524d2900df",
    urls = ["https://storage.googleapis.com/kubernetes-release/release/v1.23.8/bin/darwin/arm64/kubectl"],
)

kubectl_configure(
    name = "k8s_config",
    kubectl_path = "@k8s_binary//file",
)