diff --git a/build/lib/release.sh b/build/lib/release.sh index 458260cccaf..3134e4d7c71 100644 --- a/build/lib/release.sh +++ b/build/lib/release.sh @@ -419,6 +419,12 @@ function kube::release::package_kube_manifests_tarball() { local objects objects=$(cd "${KUBE_ROOT}/cluster/addons" && find . \( -name \*.yaml -or -name \*.yaml.in -or -name \*.json \) | grep -v demo) tar c -C "${KUBE_ROOT}/cluster/addons" ${objects} | tar x -C "${gci_dst_dir}" + # Merge GCE-specific addons with general purpose addons. + local gce_objects + gce_objects=$(cd "${KUBE_ROOT}/cluster/gce/addons" && find . \( -name \*.yaml -or -name \*.yaml.in -or -name \*.json \) \( -not -name \*demo\* \)) + if [[ -n "${gce_objects}" ]]; then + tar c -C "${KUBE_ROOT}/cluster/gce/addons" ${gce_objects} | tar x -C "${gci_dst_dir}" + fi kube::release::clean_cruft diff --git a/cluster/BUILD b/cluster/BUILD index a5b4fbd0025..9891cf52a69 100644 --- a/cluster/BUILD +++ b/cluster/BUILD @@ -33,6 +33,7 @@ pkg_tar( deps = [ "//cluster/addons", "//cluster/gce:gci-trusty-manifests", + "//cluster/gce/addons", "//cluster/saltbase:gci-trusty-salt-manifests", ], ) diff --git a/cluster/gce/BUILD b/cluster/gce/BUILD index 35e6e600ce7..8be2252d98e 100644 --- a/cluster/gce/BUILD +++ b/cluster/gce/BUILD @@ -34,6 +34,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//cluster/gce/addons:all-srcs", "//cluster/gce/gci/mounter:all-srcs", ], tags = ["automanaged"], diff --git a/cluster/gce/addons/BUILD b/cluster/gce/addons/BUILD new file mode 100644 index 00000000000..c3e5620e25b --- /dev/null +++ b/cluster/gce/addons/BUILD @@ -0,0 +1,38 @@ +package(default_visibility = ["//visibility:public"]) + +load("@io_bazel//tools/build_defs/pkg:pkg.bzl", "pkg_tar") + +filegroup( + name = "addon-srcs", + srcs = glob( + [ + "**/*.json", + "**/*.yaml", + "**/*.yaml.in", + ], + exclude = ["**/*demo*/**"], + ), +) + +pkg_tar( + name = "addons", + extension = "tar.gz", + files = [ + ":addon-srcs", + ], + mode = "0644", + strip_prefix = ".", +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/cluster/gce/addons/README.md b/cluster/gce/addons/README.md new file mode 100644 index 00000000000..de55c8e9a01 --- /dev/null +++ b/cluster/gce/addons/README.md @@ -0,0 +1,7 @@ +# GCE Cluster addons + +These cluster add-ons are specific to GCE and GKE clusters. The GCE-specific addon directory is +merged with the general cluster addon directory at release, so addon paths (relative to the addon +directory) must be unique across the 2 directory structures. + +More details on addons in general can be found [here](../../addons/README.md).