Skip to content

Commit 60170c2

Browse files
committed
Modernize for Bzlmod / Bazel 8.0 / modern kubebuilder
- Make compatible with Bzlmod - WORKSPACE is unsupported in Bazel 9. - Add support for arm64.
1 parent 6be1418 commit 60170c2

36 files changed

Lines changed: 1711 additions & 352 deletions

.bazelversion

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8.3.1

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# A custom merge driver for the Bazel lockfile.
2+
# https://bazel.build/external/lockfile#automatic-resolution
3+
MODULE.bazel.lock merge=bazel-lockfile-merge

BUILD.bazel

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
1-
load("@rules_pkg//:pkg.bzl", "pkg_tar")
21
load("@rules_kubebuilder//kubebuilder:def.bzl", "kubebuilder")
2+
load("@rules_pkg//:pkg.bzl", "pkg_tar")
33

44
pkg_tar(
55
name = "release",
66
srcs = glob([
77
"*.bazel",
8-
"*.bzl",
98
]) + [
109
"WORKSPACE",
1110
],
1211
extension = "tar.gz",
1312
package_dir = "rules_kubebuilder",
14-
deps = [
15-
"//controller-gen:release",
16-
"//kubebuilder:release",
17-
"//kustomize:release",
18-
],
1913
)
2014

2115
# This is just an example of how to run kubebuilder via bazel

MODULE.bazel

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
###############################################################################
2+
# Bazel now uses Bzlmod by default to manage external dependencies.
3+
# Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel.
4+
#
5+
# For more details, please check https://github.com/bazelbuild/bazel/issues/18958
6+
###############################################################################
7+
8+
module(
9+
name = "rules_kubebuilder",
10+
version = "0.1.0",
11+
)
12+
13+
# Keep consistent with https://github.com/openai/openai/blob/master/MODULE.bazel
14+
bazel_dep(name = "platforms", version = "1.0.0")
15+
bazel_dep(name = "rules_go", version = "0.55.1")
16+
bazel_dep(name = "rules_pkg", version = "1.0.1")
17+
18+
# Create controller-gen and kustomize repos via local extensions so that
19+
# this module can reference them from its packages (toolchains).
20+
cg = use_extension("@rules_kubebuilder//controller-gen:extensions.bzl", "cg_ext")
21+
cg.controller_gen(
22+
arches = [
23+
"amd64",
24+
"arm64",
25+
],
26+
version = "0.17.1",
27+
) # create controller_gen_<os>_<arch>
28+
use_repo(
29+
cg,
30+
"controller_gen_darwin_amd64",
31+
"controller_gen_darwin_arm64",
32+
"controller_gen_linux_amd64",
33+
"controller_gen_linux_arm64",
34+
)
35+
36+
kz = use_extension("@rules_kubebuilder//kustomize:extensions.bzl", "kz_ext")
37+
kz.kustomize(
38+
arches = [
39+
"amd64",
40+
"arm64",
41+
],
42+
version = "5.7.1",
43+
) # create kustomize_<os>_<arch>
44+
use_repo(
45+
kz,
46+
"kustomize_darwin_amd64",
47+
"kustomize_darwin_arm64",
48+
"kustomize_linux_amd64",
49+
"kustomize_linux_arm64",
50+
)
51+
52+
# Create Kubebuilder SDK repo (used by tests)
53+
kb = use_extension("@rules_kubebuilder//kubebuilder:extensions.bzl", "kb_ext")
54+
kb.kubebuilder_sdk(
55+
name = "kubebuilder_sdk",
56+
version = "4.7.1",
57+
)
58+
use_repo(kb, "kubebuilder_sdk")
59+
60+
# Register toolchains so that local builds/tests in this repository resolve
61+
# the kustomize and controller-gen toolchains. When used as a dependency,
62+
# only the root module's register_toolchains(...) is honored, so these lines
63+
# are effectively ignored by downstream consumers.
64+
register_toolchains(
65+
# controller-gen toolchains
66+
"@rules_kubebuilder//controller-gen:controller_gen_linux_amd64_toolchain",
67+
"@rules_kubebuilder//controller-gen:controller_gen_linux_arm64_toolchain",
68+
"@rules_kubebuilder//controller-gen:controller_gen_darwin_amd64_toolchain",
69+
"@rules_kubebuilder//controller-gen:controller_gen_darwin_arm64_toolchain",
70+
# kustomize toolchains
71+
"@rules_kubebuilder//kustomize:kustomize_linux_amd64_toolchain",
72+
"@rules_kubebuilder//kustomize:kustomize_linux_arm64_toolchain",
73+
"@rules_kubebuilder//kustomize:kustomize_darwin_amd64_toolchain",
74+
"@rules_kubebuilder//kustomize:kustomize_darwin_arm64_toolchain",
75+
)

MODULE.bazel.lock

Lines changed: 383 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)