diff --git a/.bazelrc b/.bazelrc index e102b401fa0..07b07890820 100644 --- a/.bazelrc +++ b/.bazelrc @@ -173,12 +173,6 @@ coverage --define PL_COVERAGE=true coverage --copt -DPL_COVERAGE coverage --test_tag_filters=-requires_root,-requires_bpf,-no_coverage,-disabled,-no_gcc -# Use stable GIT build tag by default. -build --define BUNDLE_VERSION={STABLE_BUILD_TAG} - -# pre-define as empty so that build all works. This might be overridden for dev vizier builds. -build --define DEV_VIZIER_IMAGE_PREFIX="" - # jenkins.bazelrc is copied from ci/jenkins.bazelrc by Jenkins workers during the build. # The intention is to avoid polluting configurations of bazel for developers. try-import %workspace%/jenkins.bazelrc diff --git a/bazel/images.bzl b/bazel/images.bzl index 2daa4af3c56..5b5ff9d5f51 100644 --- a/bazel/images.bzl +++ b/bazel/images.bzl @@ -14,26 +14,45 @@ # # SPDX-License-Identifier: Apache-2.0 -def image_replacements(image_map, replace): +load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo") + +PROPRIETARY_PREFIX = "gcr.io/pl-dev-infra/" +PUBLIC_PREFIX = "gcr.io/pixie-oss/pixie-prod/" +DEV_PREFIX = "gcr.io/pixie-oss/pixie-dev/" + +def image_replacements(image_map, existing_prefix, new_prefix): replacements = {} - for k in image_map.keys(): - image_tag = k - for old, new in replace.items(): - image_tag = image_tag.replace(old, new) - replacements[k] = image_tag + for image in image_map.keys(): + image = image.removeprefix("$(IMAGE_PREFIX)").removesuffix(":$(BUNDLE_VERSION)") + replacements[existing_prefix + image] = new_prefix + image return replacements -def image_map_with_bundle_version(image_map, replace): - with_version = {} +def _bundle_version_provider_impl(ctx): + return [ + platform_common.TemplateVariableInfo({ + "BUNDLE_VERSION": ctx.attr._bundle_version[BuildSettingInfo].value, + }), + ] - for k, v in image_map.items(): - image_tag = k +bundle_version_provider = rule( + implementation = _bundle_version_provider_impl, + attrs = { + "_bundle_version": attr.label(default = "//k8s:image_version"), + }, +) - for old, new in replace.items(): - image_tag = image_tag.replace(old, new) - k_with_version = "{0}:{1}".format(image_tag, "$(BUNDLE_VERSION)") - with_version[k_with_version] = v +def _image_prefix_provider_impl(ctx): + return [ + platform_common.TemplateVariableInfo({ + "IMAGE_PREFIX": ctx.attr.image_prefix, + }), + ] - return with_version +image_prefix_provider = rule( + implementation = _image_prefix_provider_impl, + attrs = { + "image_prefix": attr.string(mandatory = True), + }, +) diff --git a/ci/cloud_build_release.sh b/ci/cloud_build_release.sh index 958ecfffd7e..616031a8ba4 100755 --- a/ci/cloud_build_release.sh +++ b/ci/cloud_build_release.sh @@ -29,7 +29,6 @@ parse_args() { while test $# -gt 0; do case "$1" in -r) RELEASE=true - prod="True" shift ;; -p) PUBLIC=true @@ -40,8 +39,6 @@ parse_args() { done } -prod="False" - parse_args "$@" repo_path=$(pwd) @@ -56,8 +53,8 @@ echo "The image tag is: ${image_tag}" # We are building the OSS images/YAMLs. In this case, we only want to push the images but not deploy the YAMLs. if [[ "$PUBLIC" == "true" ]]; then - bazel run --stamp -c opt --action_env=GOOGLE_APPLICATION_CREDENTIALS --define BUNDLE_VERSION="${image_tag}" \ - --define public=True //k8s/cloud:cloud_images_push + bazel run --stamp -c opt --action_env=GOOGLE_APPLICATION_CREDENTIALS --//k8s:image_version="${image_tag}" \ + --//k8s:build_type=public //k8s/cloud:cloud_images_push bazel build //tools/licenses:all_licenses --action_env=GOOGLE_APPLICATION_CREDENTIALS @@ -88,16 +85,16 @@ if [[ "$PUBLIC" == "true" ]]; then exit 0 fi -bazel run --stamp -c opt --action_env=GOOGLE_APPLICATION_CREDENTIALS --define BUNDLE_VERSION="${image_tag}" \ - --define prod="${prod}" //k8s/cloud:cloud_images_push +bazel run --stamp -c opt --action_env=GOOGLE_APPLICATION_CREDENTIALS --//k8s:image_version="${image_tag}" \ + --//k8s:build_type=proprietary //k8s/cloud:cloud_images_push yaml_path="${repo_path}/bazel-bin/k8s/cloud/pixie_staging_cloud.yaml" # Build prod YAMLs. if [[ "$RELEASE" == "true" ]]; then yaml_path="${repo_path}/bazel-bin/k8s/cloud/pixie_prod_cloud.yaml" - bazel build --stamp -c opt --define BUNDLE_VERSION="${image_tag}" //k8s/cloud:pixie_prod_cloud + bazel build --stamp -c opt --//k8s:image_version="${image_tag}" //k8s/cloud:pixie_prod_cloud else # Build staging YAMLs. - bazel build --stamp -c opt --define BUNDLE_VERSION="${image_tag}" //k8s/cloud:pixie_staging_cloud + bazel build --stamp -c opt --//k8s:image_version="${image_tag}" //k8s/cloud:pixie_staging_cloud fi kubectl apply -f "$yaml_path" diff --git a/ci/operator_build_release.sh b/ci/operator_build_release.sh index 8b0538609a4..30409bd7d32 100755 --- a/ci/operator_build_release.sh +++ b/ci/operator_build_release.sh @@ -31,7 +31,7 @@ bazel run -c opt //src/utils/artifacts/versions_gen:versions_gen -- \ tags=$(git for-each-ref --sort='-*authordate' --format '%(refname:short)' refs/tags \ | grep "release/operator" | grep -v "\-") -public="True" +build_type="--//k8s:build_type=public" image_path="gcr.io/pixie-oss/pixie-prod/operator/operator_image:${release_tag}" deleter_image_path="gcr.io/pixie-oss/pixie-prod/operator/vizier_deleter:${release_tag}" channel="stable" @@ -42,20 +42,21 @@ bucket="pixie-dev-public" prev_tag=$(echo "$tags" | sed -n '2 p') if [[ $release_tag == *"-"* ]]; then - public="False" + build_type="--//k8s:build_type=dev" image_path="gcr.io/pixie-oss/pixie-dev/operator/operator_image:${release_tag}" deleter_image_path="gcr.io/pixie-oss/pixie-dev/operator/vizier_deleter:${release_tag}" channel="dev" channels="dev" + # TODO(vihang/michelle): Revisit this bucket. bucket="pixie-prod-artifacts" -# The previous version should be the 1st item in the tags. Since this is a non-release build, -# the first item in the tags is the previous release. + # The previous version should be the 1st item in the tags. Since this is a non-release build, + # the first item in the tags is the previous release. prev_tag=$(echo "$tags" | sed -n '1 p') fi # Push operator image. -bazel run --stamp -c opt --define BUNDLE_VERSION="${release_tag}" \ - --stamp --define public="${public}" //k8s/operator:operator_images_push +bazel run --stamp -c opt --//k8s:image_version="${release_tag}" \ + --stamp "${build_type}" //k8s/operator:operator_images_push # Build operator bundle for OLM. tmp_dir="$(mktemp -d)" diff --git a/ci/vizier_build_release.sh b/ci/vizier_build_release.sh index 81062f0533f..500da62ff02 100755 --- a/ci/vizier_build_release.sh +++ b/ci/vizier_build_release.sh @@ -29,31 +29,22 @@ echo "The release tag is: ${release_tag}" bazel run -c opt //src/utils/artifacts/versions_gen:versions_gen -- \ --repo_path "${repo_path}" --artifact_name vizier --versions_file "${versions_file}" -public="True" +build_type="--//k8s:build_type=public" bucket="pixie-dev-public" extra_bazel_args=() if [[ $release_tag == *"-"* ]]; then - public="False" + build_type="--//k8s:build_type=dev" + # TODO(vihang/michelle): Revisit this bucket. bucket="pixie-prod-artifacts" fi -if [[ -n $DEV_ARTIFACT_BUCKET ]]; then - public="False" - bucket="${DEV_ARTIFACT_BUCKET}" - if [[ -z $DEV_IMAGE_PREFIX ]]; then - echo "Must specify DEV_IMAGE_PREFIX, when specifying a dev release with DEV_ARTIFACT_BUCKET" - exit 1 - fi - extra_bazel_args+=("--define" "DEV_VIZIER_IMAGE_PREFIX=${DEV_IMAGE_PREFIX}") - extra_bazel_args+=("--//k8s/vizier:use_dev_vizier_images") -fi output_path="gs://${bucket}/vizier/${release_tag}" latest_output_path="gs://${bucket}/vizier/latest" -bazel run --stamp -c opt --define BUNDLE_VERSION="${release_tag}" \ - --stamp --define public="${public}" //k8s/vizier:vizier_images_push "${extra_bazel_args[@]}" -bazel build --stamp -c opt --define BUNDLE_VERSION="${release_tag}" \ - --stamp --define public="${public}" //k8s/vizier:vizier_yamls "${extra_bazel_args[@]}" +bazel run --stamp -c opt --//k8s:image_version="${release_tag}" \ + --stamp "${build_type}" //k8s/vizier:vizier_images_push "${extra_bazel_args[@]}" +bazel build --stamp -c opt --//k8s:image_version="${release_tag}" \ + --stamp "${build_type}" //k8s/vizier:vizier_yamls "${extra_bazel_args[@]}" output_path="gs://${bucket}/vizier/${release_tag}" yamls_tar="${repo_path}/bazel-bin/k8s/vizier/vizier_yamls.tar" diff --git a/k8s/BUILD.bazel b/k8s/BUILD.bazel new file mode 100644 index 00000000000..cc3fcd15c92 --- /dev/null +++ b/k8s/BUILD.bazel @@ -0,0 +1,70 @@ +# Copyright 2018- The Pixie Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 + +load("@bazel_skylib//rules:common_settings.bzl", "string_flag") +load("//bazel:images.bzl", "DEV_PREFIX", "PROPRIETARY_PREFIX", "PUBLIC_PREFIX", "bundle_version_provider", "image_prefix_provider") + +package(default_visibility = ["//visibility:public"]) + +string_flag( + name = "image_version", + build_setting_default = "latest", +) + +string_flag( + name = "build_type", + build_setting_default = "dev", + values = [ + "public", + "proprietary", + "dev", + ], +) + +config_setting( + name = "dev", + flag_values = { + ":build_type": "dev", + }, +) + +config_setting( + name = "public", + flag_values = { + ":build_type": "public", + }, +) + +config_setting( + name = "proprietary", + flag_values = { + ":build_type": "proprietary", + }, +) + +bundle_version_provider( + name = "bundle_version", +) + +image_prefix_provider( + name = "image_prefix", + image_prefix = select({ + ":dev": DEV_PREFIX, + ":proprietary": PROPRIETARY_PREFIX, + ":public": PUBLIC_PREFIX, + "//conditions:default": DEV_PREFIX, + }), +) diff --git a/k8s/cloud/BUILD.bazel b/k8s/cloud/BUILD.bazel index 6a2ab758316..26427882eee 100644 --- a/k8s/cloud/BUILD.bazel +++ b/k8s/cloud/BUILD.bazel @@ -16,33 +16,29 @@ load("@io_bazel_rules_docker//container:container.bzl", "container_bundle") load("@io_bazel_rules_docker//contrib:push-all.bzl", "container_push") -load("//bazel:images.bzl", "image_map_with_bundle_version", "image_replacements") +load("//bazel:images.bzl", "DEV_PREFIX", "PROPRIETARY_PREFIX", "image_replacements") load("//bazel:kustomize.bzl", "kustomize_build") package(default_visibility = ["//visibility:public"]) -CLOUD_IMAGE_MAP = { - "gcr.io/pixie-oss/pixie-dev/cloud/api_server_image": "//src/cloud/api:api_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/artifact_tracker_server_image": "//src/cloud/artifact_tracker:artifact_tracker_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/auth_server_image": "//src/cloud/auth:auth_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/config_manager_server_image": "//src/cloud/config_manager:config_manager_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/cron_script_server_image": "//src/cloud/cron_script:cron_script_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/indexer_server_image": "//src/cloud/indexer:indexer_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/metrics_server_image": "//src/cloud/metrics:metrics_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/plugin/load_db": "//src/cloud/plugin/load_db:plugin_db_updater_image", - "gcr.io/pixie-oss/pixie-dev/cloud/plugin_server_image": "//src/cloud/plugin:plugin_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/profile_server_image": "//src/cloud/profile:profile_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/project_manager_server_image": "//src/cloud/project_manager:project_manager_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/proxy_server_image": "//src/cloud/proxy:proxy_prod_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/scriptmgr_server_image": "//src/cloud/scriptmgr:scriptmgr_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/vzconn_server_image": "//src/cloud/vzconn:vzconn_server_image", - "gcr.io/pixie-oss/pixie-dev/cloud/vzmgr_server_image": "//src/cloud/vzmgr:vzmgr_server_image", +CLOUD_IMAGE_TO_LABEL = { + "$(IMAGE_PREFIX)cloud/api_server_image:$(BUNDLE_VERSION)": "//src/cloud/api:api_server_image", + "$(IMAGE_PREFIX)cloud/artifact_tracker_server_image:$(BUNDLE_VERSION)": "//src/cloud/artifact_tracker:artifact_tracker_server_image", + "$(IMAGE_PREFIX)cloud/auth_server_image:$(BUNDLE_VERSION)": "//src/cloud/auth:auth_server_image", + "$(IMAGE_PREFIX)cloud/config_manager_server_image:$(BUNDLE_VERSION)": "//src/cloud/config_manager:config_manager_server_image", + "$(IMAGE_PREFIX)cloud/cron_script_server_image:$(BUNDLE_VERSION)": "//src/cloud/cron_script:cron_script_server_image", + "$(IMAGE_PREFIX)cloud/indexer_server_image:$(BUNDLE_VERSION)": "//src/cloud/indexer:indexer_server_image", + "$(IMAGE_PREFIX)cloud/metrics_server_image:$(BUNDLE_VERSION)": "//src/cloud/metrics:metrics_server_image", + "$(IMAGE_PREFIX)cloud/plugin/load_db:$(BUNDLE_VERSION)": "//src/cloud/plugin/load_db:plugin_db_updater_image", + "$(IMAGE_PREFIX)cloud/plugin_server_image:$(BUNDLE_VERSION)": "//src/cloud/plugin:plugin_server_image", + "$(IMAGE_PREFIX)cloud/profile_server_image:$(BUNDLE_VERSION)": "//src/cloud/profile:profile_server_image", + "$(IMAGE_PREFIX)cloud/project_manager_server_image:$(BUNDLE_VERSION)": "//src/cloud/project_manager:project_manager_server_image", + "$(IMAGE_PREFIX)cloud/proxy_server_image:$(BUNDLE_VERSION)": "//src/cloud/proxy:proxy_prod_server_image", + "$(IMAGE_PREFIX)cloud/scriptmgr_server_image:$(BUNDLE_VERSION)": "//src/cloud/scriptmgr:scriptmgr_server_image", + "$(IMAGE_PREFIX)cloud/vzconn_server_image:$(BUNDLE_VERSION)": "//src/cloud/vzconn:vzconn_server_image", + "$(IMAGE_PREFIX)cloud/vzmgr_server_image:$(BUNDLE_VERSION)": "//src/cloud/vzmgr:vzmgr_server_image", } -public_image_replacement = {"gcr.io/pixie-oss/pixie-dev": "gcr.io/pixie-oss/pixie-prod"} - -proprietary_image_replacement = {"gcr.io/pixie-oss/pixie-dev": "gcr.io/pl-dev-infra"} - kustomize_build( name = "pixie_staging_cloud", srcs = glob( @@ -55,9 +51,13 @@ kustomize_build( ), kustomization = "staging/kustomization.yaml", replacements = image_replacements( - image_map = CLOUD_IMAGE_MAP, - replace = proprietary_image_replacement, + existing_prefix = DEV_PREFIX, + image_map = CLOUD_IMAGE_TO_LABEL, + new_prefix = PROPRIETARY_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -72,55 +72,26 @@ kustomize_build( ), kustomization = "prod/kustomization.yaml", replacements = image_replacements( - image_map = CLOUD_IMAGE_MAP, - replace = proprietary_image_replacement, - ), -) - -container_bundle( - name = "staging_cloud_images_bundle", - images = image_map_with_bundle_version( - image_map = CLOUD_IMAGE_MAP, - replace = proprietary_image_replacement, + existing_prefix = DEV_PREFIX, + image_map = CLOUD_IMAGE_TO_LABEL, + new_prefix = PROPRIETARY_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) container_bundle( - name = "prod_cloud_images_bundle", - images = image_map_with_bundle_version( - image_map = CLOUD_IMAGE_MAP, - replace = proprietary_image_replacement, - ), -) - -container_bundle( - name = "public_cloud_images_bundle", - images = image_map_with_bundle_version( - image_map = CLOUD_IMAGE_MAP, - replace = public_image_replacement, - ), + name = "image_bundle", + images = CLOUD_IMAGE_TO_LABEL, + toolchains = [ + "//k8s:image_prefix", + "//k8s:bundle_version", + ], ) container_push( name = "cloud_images_push", - bundle = select({ - ":prod": ":prod_cloud_images_bundle", - ":public": ":public_cloud_images_bundle", - "//conditions:default": ":staging_cloud_images_bundle", - }), + bundle = ":image_bundle", format = "Docker", ) - -config_setting( - name = "public", - values = { - "define": "public=True", - }, -) - -config_setting( - name = "prod", - values = { - "define": "prod=True", - }, -) diff --git a/k8s/operator/BUILD.bazel b/k8s/operator/BUILD.bazel index 17e4bd5ec95..2d0f48fa9f2 100644 --- a/k8s/operator/BUILD.bazel +++ b/k8s/operator/BUILD.bazel @@ -17,45 +17,27 @@ load("@io_bazel_rules_docker//container:container.bzl", "container_bundle") load("@io_bazel_rules_docker//contrib:push-all.bzl", "container_push") load("@rules_pkg//pkg:tar.bzl", "pkg_tar") -load("//bazel:images.bzl", "image_map_with_bundle_version") load("//bazel:kustomize.bzl", "kustomize_build") package(default_visibility = ["//visibility:public"]) -OPERATOR_IMAGE_MAP = { - "gcr.io/pixie-oss/pixie-dev/operator/operator_image": "//src/operator:operator_image", - "gcr.io/pixie-oss/pixie-dev/operator/vizier_deleter": "//src/utils/pixie_deleter:vizier_deleter_image", +OPERATOR_IMAGE_TO_LABEL = { + "$(IMAGE_PREFIX)operator/operator_image:$(BUNDLE_VERSION)": "//src/operator:operator_image", + "$(IMAGE_PREFIX)operator/vizier_deleter:$(BUNDLE_VERSION)": "//src/utils/pixie_deleter:vizier_deleter_image", } -public_image_replacement = {"gcr.io/pixie-oss/pixie-dev": "gcr.io/pixie-oss/pixie-prod"} - -config_setting( - name = "public", - values = {"define": "public=True"}, -) - -container_bundle( - name = "private_operator_images_bundle", - images = image_map_with_bundle_version( - image_map = OPERATOR_IMAGE_MAP, - replace = {}, - ), -) - container_bundle( - name = "public_operator_images_bundle", - images = image_map_with_bundle_version( - image_map = OPERATOR_IMAGE_MAP, - replace = public_image_replacement, - ), + name = "image_bundle", + images = OPERATOR_IMAGE_TO_LABEL, + toolchains = [ + "//k8s:image_prefix", + "//k8s:bundle_version", + ], ) container_push( name = "operator_images_push", - bundle = select({ - ":public": ":public_operator_images_bundle", - "//conditions:default": ":private_operator_images_bundle", - }), + bundle = ":image_bundle", format = "Docker", ) @@ -66,6 +48,9 @@ kustomize_build( exclude = ["crd/base/kustomization.yaml"], ), kustomization = "crd/base/kustomization.yaml", + toolchains = [ + "//k8s:bundle_version", + ], ) pkg_tar( diff --git a/k8s/vizier/BUILD.bazel b/k8s/vizier/BUILD.bazel index 704c81b07c2..a07deb8efdf 100644 --- a/k8s/vizier/BUILD.bazel +++ b/k8s/vizier/BUILD.bazel @@ -14,29 +14,24 @@ # # SPDX-License-Identifier: Apache-2.0 -load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") load("@io_bazel_rules_docker//container:container.bzl", "container_bundle") load("@io_bazel_rules_docker//contrib:push-all.bzl", "container_push") load("@rules_pkg//pkg:tar.bzl", "pkg_tar") -load("//bazel:images.bzl", "image_map_with_bundle_version", "image_replacements") +load("//bazel:images.bzl", "DEV_PREFIX", "PROPRIETARY_PREFIX", "PUBLIC_PREFIX", "image_replacements") load("//bazel:kustomize.bzl", "kustomize_build") package(default_visibility = ["//visibility:public"]) -VIZIER_IMAGE_MAP = { - "gcr.io/pixie-oss/pixie-dev/vizier/cert_provisioner_image": "//src/utils/cert_provisioner:cert_provisioner_image", - "gcr.io/pixie-oss/pixie-dev/vizier/cloud_connector_server_image": "//src/vizier/services/cloud_connector:cloud_connector_server_image", - "gcr.io/pixie-oss/pixie-dev/vizier/kelvin_image": "//src/vizier/services/agent/kelvin:kelvin_image", - "gcr.io/pixie-oss/pixie-dev/vizier/metadata_server_image": "//src/vizier/services/metadata:metadata_server_image", - "gcr.io/pixie-oss/pixie-dev/vizier/pem_image": "//src/vizier/services/agent/pem:pem_image", - "gcr.io/pixie-oss/pixie-dev/vizier/query_broker_server_image": "//src/vizier/services/query_broker:query_broker_server_image", - "gcr.io/pixie-oss/pixie-dev/vizier/vizier_updater_image": "//src/utils/pixie_updater:vizier_updater_image", +VIZIER_IMAGE_TO_LABEL = { + "$(IMAGE_PREFIX)vizier/cert_provisioner_image:$(BUNDLE_VERSION)": "//src/utils/cert_provisioner:cert_provisioner_image", + "$(IMAGE_PREFIX)vizier/cloud_connector_server_image:$(BUNDLE_VERSION)": "//src/vizier/services/cloud_connector:cloud_connector_server_image", + "$(IMAGE_PREFIX)vizier/kelvin_image:$(BUNDLE_VERSION)": "//src/vizier/services/agent/kelvin:kelvin_image", + "$(IMAGE_PREFIX)vizier/metadata_server_image:$(BUNDLE_VERSION)": "//src/vizier/services/metadata:metadata_server_image", + "$(IMAGE_PREFIX)vizier/pem_image:$(BUNDLE_VERSION)": "//src/vizier/services/agent/pem:pem_image", + "$(IMAGE_PREFIX)vizier/query_broker_server_image:$(BUNDLE_VERSION)": "//src/vizier/services/query_broker:query_broker_server_image", + "$(IMAGE_PREFIX)vizier/vizier_updater_image:$(BUNDLE_VERSION)": "//src/utils/pixie_updater:vizier_updater_image", } -public_image_replacement = {"gcr.io/pixie-oss/pixie-dev": "gcr.io/pixie-oss/pixie-prod"} - -dev_image_replacement = {"gcr.io/pixie-oss/pixie-dev": "$(DEV_VIZIER_IMAGE_PREFIX)"} - filegroup( name = "etcd_base", srcs = glob( @@ -108,9 +103,13 @@ kustomize_build( srcs = [":etcd_base"], kustomization = "etcd_metadata/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = public_image_replacement, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = PUBLIC_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -118,9 +117,13 @@ kustomize_build( srcs = [":etcd_base"], kustomization = "etcd_metadata/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = {}, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = PROPRIETARY_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -128,9 +131,13 @@ kustomize_build( srcs = [":etcd_base"], kustomization = "etcd_metadata/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = dev_image_replacement, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = DEV_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -138,9 +145,13 @@ kustomize_build( srcs = [":etcd_autopilot"], kustomization = "etcd_metadata/autopilot/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = public_image_replacement, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = PUBLIC_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -148,9 +159,13 @@ kustomize_build( srcs = [":etcd_autopilot"], kustomization = "etcd_metadata/autopilot/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = {}, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = PROPRIETARY_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -158,9 +173,13 @@ kustomize_build( srcs = [":etcd_autopilot"], kustomization = "etcd_metadata/autopilot/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = dev_image_replacement, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = DEV_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -168,9 +187,13 @@ kustomize_build( srcs = [":persistent_base"], kustomization = "persistent_metadata/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = public_image_replacement, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = PUBLIC_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -178,9 +201,13 @@ kustomize_build( srcs = [":persistent_base"], kustomization = "persistent_metadata/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = {}, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = PROPRIETARY_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -188,9 +215,13 @@ kustomize_build( srcs = [":persistent_base"], kustomization = "persistent_metadata/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = dev_image_replacement, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = DEV_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -198,9 +229,13 @@ kustomize_build( srcs = [":persistent_autopilot"], kustomization = "persistent_metadata/autopilot/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = public_image_replacement, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = PUBLIC_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -208,9 +243,13 @@ kustomize_build( srcs = [":persistent_autopilot"], kustomization = "persistent_metadata/autopilot/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = {}, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = PROPRIETARY_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) kustomize_build( @@ -218,72 +257,36 @@ kustomize_build( srcs = [":persistent_autopilot"], kustomization = "persistent_metadata/autopilot/kustomization.yaml", replacements = image_replacements( - image_map = VIZIER_IMAGE_MAP, - replace = dev_image_replacement, - ), -) - -container_bundle( - name = "private_vizier_images_bundle", - images = image_map_with_bundle_version( - image_map = VIZIER_IMAGE_MAP, - replace = {}, - ), -) - -container_bundle( - name = "public_vizier_images_bundle", - images = image_map_with_bundle_version( - image_map = VIZIER_IMAGE_MAP, - replace = public_image_replacement, + existing_prefix = DEV_PREFIX, + image_map = VIZIER_IMAGE_TO_LABEL, + new_prefix = DEV_PREFIX, ), + toolchains = [ + "//k8s:bundle_version", + ], ) container_bundle( - name = "dev_vizier_images_bundle", - images = image_map_with_bundle_version( - image_map = VIZIER_IMAGE_MAP, - replace = dev_image_replacement, - ), + name = "image_bundle", + images = VIZIER_IMAGE_TO_LABEL, + toolchains = [ + "//k8s:image_prefix", + "//k8s:bundle_version", + ], ) container_push( name = "vizier_images_push", - bundle = select({ - ":dev": ":dev_vizier_images_bundle", - ":public": ":public_vizier_images_bundle", - "//conditions:default": ":private_vizier_images_bundle", - }), + bundle = ":image_bundle", format = "Docker", ) -bool_flag( - name = "use_dev_vizier_images", - build_setting_default = False, -) - -config_setting( - name = "dev", - flag_values = {":use_dev_vizier_images": "True"}, -) - -config_setting( - name = "public", - values = {"define": "public=True"}, -) - genrule( name = "vizier_etcd_image_list", srcs = select({ - ":dev": [ - ":dev_etcd", - ], - ":public": [ - ":public_etcd", - ], - "//conditions:default": [ - ":private_etcd", - ], + "//k8s:dev": [":dev_etcd"], + "//k8s:proprietary": [":private_etcd"], + "//k8s:public": [":public_etcd"], }) + [ "//k8s/vizier_deps:nats_prod", "//k8s/vizier_deps:etcd_prod", @@ -297,15 +300,9 @@ genrule( genrule( name = "vizier_image_list", srcs = select({ - ":dev": [ - ":dev_persist", - ], - ":public": [ - ":public_persist", - ], - "//conditions:default": [ - ":private_persist", - ], + "//k8s:dev": [":dev_persist"], + "//k8s:proprietary": [":private_persist"], + "//k8s:public": [":public_persist"], }) + [ "//k8s/vizier_deps:nats_prod", ], @@ -319,24 +316,24 @@ pkg_tar( name = "vizier_yamls", srcs = select({ - ":dev": [ + "//k8s:dev": [ ":dev_etcd", ":dev_persist", ":dev_etcd_autopilot", ":dev_persist_autopilot", ], - ":public": [ - ":public_etcd", - ":public_persist", - ":public_etcd_autopilot", - ":public_persist_autopilot", - ], - "//conditions:default": [ + "//k8s:proprietary": [ ":private_etcd", ":private_persist", ":private_etcd_autopilot", ":private_persist_autopilot", ], + "//k8s:public": [ + ":public_etcd", + ":public_persist", + ":public_etcd_autopilot", + ":public_persist_autopilot", + ], }) + [ "//k8s/vizier_deps:nats_prod", "//k8s/vizier_deps:etcd_prod",