Skip to content

Commit 4c3a10f

Browse files
committed
Add inferencepool chart push mechanics
1 parent 296247b commit 4c3a10f

File tree

4 files changed

+74
-2
lines changed

4 files changed

+74
-2
lines changed

Diff for: Makefile

+19-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ IMAGE_BUILD_CMD ?= $(DOCKER_BUILDX_CMD) build
2828
IMAGE_BUILD_EXTRA_OPTS ?=
2929
SYNCER_IMAGE_BUILD_EXTRA_OPTS ?=
3030
BBR_IMAGE_BUILD_EXTRA_OPTS ?=
31-
IMAGE_REGISTRY ?= us-central1-docker.pkg.dev/k8s-staging-images/gateway-api-inference-extension
31+
STAGING_IMAGE_REGISTRY ?= us-central1-docker.pkg.dev/k8s-staging-images
32+
IMAGE_REGISTRY ?= $(STAGING_IMAGE_REGISTRY)/gateway-api-inference-extension
3233
IMAGE_NAME := epp
3334
IMAGE_REPO ?= $(IMAGE_REGISTRY)/$(IMAGE_NAME)
3435
IMAGE_TAG ?= $(IMAGE_REPO):$(GIT_TAG)
@@ -291,6 +292,12 @@ install: manifests kustomize ## Install CRDs into the K8s cluster specified in ~
291292
uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
292293
$(KUSTOMIZE) build config/crd | $(KUBECTL) delete --ignore-not-found=$(ignore-not-found) -f -
293294

295+
296+
##@ Helm
297+
PHONY: inferencepool-helm-chart-push
298+
inferencepool-helm-chart-push: yq helm
299+
CHART=inferencepool EXTRA_TAG="$(EXTRA_TAG)" IMAGE_REGISTRY="$(IMAGE_REGISTRY)" YQ="$(YQ)" HELM="$(HELM)" ./hack/push-chart.sh
300+
294301
##@ Release
295302

296303
.PHONY: release-quickstart
@@ -320,12 +327,15 @@ KUSTOMIZE ?= $(LOCALBIN)/kustomize
320327
CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen
321328
ENVTEST ?= $(LOCALBIN)/setup-envtest
322329
GOLANGCI_LINT = $(LOCALBIN)/golangci-lint
330+
HELM = $(PROJECT_DIR)/bin/helm
331+
YQ = $(PROJECT_DIR)/bin/yq
323332

324333
## Tool Versions
325334
KUSTOMIZE_VERSION ?= v5.4.3
326335
CONTROLLER_TOOLS_VERSION ?= v0.16.1
327336
ENVTEST_VERSION ?= release-0.19
328337
GOLANGCI_LINT_VERSION ?= v1.62.2
338+
HELM_VERSION ?= v3.17.1
329339

330340
.PHONY: kustomize
331341
kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary.
@@ -347,6 +357,14 @@ golangci-lint: $(GOLANGCI_LINT) ## Download golangci-lint locally if necessary.
347357
$(GOLANGCI_LINT): $(LOCALBIN)
348358
$(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/cmd/golangci-lint,$(GOLANGCI_LINT_VERSION))
349359

360+
.PHONY: yq
361+
yq: ## Download yq locally if necessary.
362+
GOBIN=$(PROJECT_DIR)/bin GO111MODULE=on go install github.com/mikefarah/yq/[email protected]
363+
364+
.PHONY: helm
365+
helm: ## Download helm locally if necessary.
366+
GOBIN=$(PROJECT_DIR)/bin GO111MODULE=on go install helm.sh/helm/v3/cmd/helm@$(HELM_VERSION)
367+
350368
# go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist
351369
# $1 - target path with name of binary
352370
# $2 - package url which can be installed

Diff for: cloudbuild.yaml

+7
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ steps:
2020
- GIT_TAG=$_GIT_TAG
2121
- EXTRA_TAG=$_PULL_BASE_REF
2222
- DOCKER_BUILDX_CMD=/buildx-entrypoint
23+
- name: gcr.io/k8s-testimages/gcb-docker-gcloud:v20220830-45cbff55bc
24+
entrypoint: make
25+
args:
26+
- inferencepool-helm-chart-push
27+
env:
28+
- GIT_TAG=$_GIT_TAG
29+
- EXTRA_TAG=$_PULL_BASE_REF
2330
- name: gcr.io/k8s-testimages/gcb-docker-gcloud:v20220830-45cbff55bc
2431
entrypoint: make
2532
args:

Diff for: config/charts/inferencepool/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
apiVersion: v2
2-
name: InferencePool
2+
name: inferencepool
33
description: A Helm chart for InferencePool
44

55
type: application

Diff for: hack/push-chart.sh

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env bash
2+
3+
# Copyright 2025 The Kubernetes Authors.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
set -o errexit
18+
set -o nounset
19+
set -o pipefail
20+
21+
DEST_CHART_DIR=${DEST_CHART_DIR:-bin/}
22+
23+
EXTRA_TAG=${EXTRA_TAG:-$(git branch --show-current)}
24+
GIT_TAG=${GIT_TAG:-$(git tag | sort | grep -v rc | tail -n1)-$(git describe --tags --dirty --always)}
25+
26+
STAGING_IMAGE_REGISTRY=${STAGING_IMAGE_REGISTRY:-us-central1-docker.pkg.dev/k8s-staging-images}
27+
IMAGE_REGISTRY=${IMAGE_REGISTRY:-${STAGING_IMAGE_REGISTRY}/gateway-api-inference-extension}
28+
HELM_CHART_REPO=${HELM_CHART_REPO:-${STAGING_IMAGE_REGISTRY}/gateway-api-inference-extension/charts}
29+
CHART=${CHART:-inferencepool}
30+
31+
HELM=${HELM:-./bin/helm}
32+
33+
readonly semver_regex='^v([0-9]+)(\.[0-9]+){1,2}$'
34+
35+
chart_version=${GIT_TAG}
36+
if [[ ${EXTRA_TAG} =~ ${semver_regex} ]]
37+
then
38+
${YQ} -i '.inferenceExtension.image.tag=strenv(EXTRA_TAG)' config/charts/inferencepool/values.yaml
39+
chart_version=${EXTRA_TAG}
40+
fi
41+
42+
# Create the package
43+
${HELM} package --version "${chart_version}" --app-version "${chart_version}" "config/charts/${CHART}" -d "${DEST_CHART_DIR}"
44+
45+
# Push the package
46+
echo "pushing chart to ${HELM_CHART_REPO}"
47+
${HELM} push "bin/${CHART}-${chart_version}.tgz" "oci://${HELM_CHART_REPO}"

0 commit comments

Comments
 (0)