@@ -4,11 +4,10 @@ SHELL := /usr/bin/env bash
4
4
TARGETOS ?= $(shell go env GOOS)
5
5
TARGETARCH ?= $(shell go env GOARCH)
6
6
PROJECT_NAME ?= llm-d-inference-scheduler
7
- DEV_VERSION ?= 0.0.3
8
- PROD_VERSION ?= 0.0.2
9
7
IMAGE_REGISTRY ?= ghcr.io/llm-d
10
8
IMAGE_TAG_BASE ?= $(IMAGE_REGISTRY ) /$(PROJECT_NAME )
11
- IMG = $(IMAGE_TAG_BASE ) :$(DEV_VERSION )
9
+ EPP_TAG ?= dev
10
+ IMG = $(IMAGE_TAG_BASE ) :$(EPP_TAG )
12
11
NAMESPACE ?= hc4ai-operator
13
12
14
13
CONTAINER_TOOL := $(shell { command -v docker >/dev/null 2>&1 && echo docker; } || { command -v podman >/dev/null 2>&1 && echo podman; } || echo "")
@@ -67,7 +66,7 @@ test-integration: download-tokenizer
67
66
post-deploy-test : # # Run post deployment tests
68
67
echo Success!
69
68
@echo " Post-deployment tests passed."
70
-
69
+
71
70
.PHONY : lint
72
71
lint : check-golangci-lint # # Run lint
73
72
@printf " \033[33;1m==== Running linting ====\033[0m\n"
@@ -82,48 +81,6 @@ build: check-go download-tokenizer ##
82
81
83
82
# #@ Container Build/Push
84
83
85
- .PHONY : buildah-build
86
- @if [ " $( BUILDER) " = " buildah" ]; then \
87
- echo " 🔧 Buildah detected: Performing multi-arch build..." ; \
88
- FINAL_TAG=$(IMG ) ; \
89
- for arch in amd64; do \
90
- ARCH_TAG=$$ FINAL_TAG-$$ arch; \
91
- echo " 📦 Building for architecture: $$ arch" ; \
92
- buildah build \
93
- --arch=$$arch \
94
- --os=linux \
95
- --layers -t $(IMG)-$$arch . || exit 1; \
96
- echo "🚀 Pushing image: $(IMG)-$$arch"; \
97
- buildah push $(IMG)-$$arch docker://$(IMG)-$$arch || exit 1; \
98
- done; \
99
- echo "🧼 Removing existing manifest (if any)..."; \
100
- buildah manifest rm $$FINAL_TAG || true; \
101
- echo "🧱 Creating and pushing manifest list: $(IMG)"; \
102
- buildah manifest create $(IMG); \
103
- for arch in amd64; do \
104
- ARCH_TAG=$$FINAL_TAG-$$arch; \
105
- buildah manifest add $$FINAL_TAG $$ARCH_TAG; \
106
- done; \
107
- buildah manifest push --all $(IMG) docker://$(IMG); \
108
- elif [ "$(BUILDER)" = "docker" ]; then \
109
- echo "🐳 Docker detected: Building with buildx..."; \
110
- sed -e '1 s/\(^FROM\)/FROM --platform=$${BUILDPLATFORM}/' Dockerfile > Dockerfile.cross; \
111
- - docker buildx create --use --name image-builder || true; \
112
- docker buildx use image-builder; \
113
- docker buildx build --push \
114
- --platform=$(PLATFORMS) \
115
- --tag $(IMG) -f Dockerfile.cross . || exit 1; \
116
- docker buildx rm image-builder || true; \
117
- rm Dockerfile.cross; \
118
- elif [ "$(BUILDER)" = "podman" ]; then \
119
- echo "⚠️ Podman detected: Building single-arch image..."; \
120
- podman build -t $(IMG) . || exit 1; \
121
- podman push $(IMG) || exit 1; \
122
- else \
123
- echo "❌ No supported container tool available."; \
124
- exit 1; \
125
- fi
126
-
127
84
.PHONY : image-build
128
85
image-build : check-container-tool # # Build Docker image ## Build Docker image using $(CONTAINER_TOOL)
129
86
@printf " \033[33;1m==== Building Docker image $( IMG) ====\033[0m\n"
@@ -181,7 +138,7 @@ install-k8s: check-kubectl check-kustomize check-envsubst ## Install on Kubernet
181
138
echo " Kubernetes installation complete." ; \
182
139
echo " To use the app, run:" ; \
183
140
echo " alias $( PROJECT_NAME) ='kubectl exec -n $( NAMESPACE) -it $$ POD -- /app/$( PROJECT_NAME) '"
184
-
141
+
185
142
.PHONY : uninstall-k8s
186
143
uninstall-k8s : check-kubectl check-kustomize check-envsubst # # Uninstall from Kubernetes
187
144
export PROJECT_NAME=${PROJECT_NAME}
@@ -208,7 +165,7 @@ install-openshift: check-kubectl check-kustomize check-envsubst ## Install on Op
208
165
@POD=$$(kubectl get pod -l app=$(PROJECT_NAME ) -statefulset -n $(NAMESPACE ) -o jsonpath='{.items[0].metadata.name}' ) ; \
209
166
echo " OpenShift installation complete." ; \
210
167
echo " To use the app, run:" ; \
211
- echo " alias $( PROJECT_NAME) ='kubectl exec -n $( NAMESPACE) -it $$ POD -- /app/$( PROJECT_NAME) '"
168
+ echo " alias $( PROJECT_NAME) ='kubectl exec -n $( NAMESPACE) -it $$ POD -- /app/$( PROJECT_NAME) '"
212
169
213
170
.PHONY : uninstall-openshift
214
171
uninstall-openshift : check-kubectl check-kustomize check-envsubst # # Uninstall from OpenShift
@@ -234,20 +191,25 @@ uninstall-rbac: check-kubectl check-kustomize check-envsubst ## Uninstall RBAC
234
191
@echo " Removing RBAC configuration from deploy/rbac..."
235
192
kustomize build deploy/environments/openshift-base/rbac | envsubst ' $$PROJECT_NAME $$NAMESPACE $$IMAGE_TAG_BASE $$VERSION' | kubectl delete -f - || true
236
193
194
+ # #@ Environment
195
+ .PHONY : env
196
+ env : # # Print environment variables
197
+ @echo " IMAGE_TAG_BASE=$( IMAGE_TAG_BASE) "
198
+ @echo " IMG=$( IMG) "
199
+ @echo " CONTAINER_TOOL=$( CONTAINER_TOOL) "
200
+
237
201
# #@ Tools
238
202
239
203
.PHONY : check-tools
240
204
check-tools : \
241
205
check-go \
242
206
check-ginkgo \
243
207
check-golangci-lint \
244
- check-jq \
245
208
check-kustomize \
246
209
check-envsubst \
247
210
check-container-tool \
248
211
check-kubectl \
249
- check-buildah \
250
- check-podman
212
+ check-buildah
251
213
@echo "✅ All required tools are installed."
252
214
253
215
.PHONY : check-go
@@ -265,11 +227,6 @@ check-golangci-lint:
265
227
@command -v golangci-lint > /dev/null 2>&1 || { \
266
228
echo " ❌ golangci-lint is not installed. Install from https://golangci-lint.run/usage/install/" ; exit 1; }
267
229
268
- .PHONY : check-jq
269
- check-jq :
270
- @command -v jq > /dev/null 2>&1 || { \
271
- echo " ❌ jq is not installed. Install it from https://stedolan.github.io/jq/download/" ; exit 1; }
272
-
273
230
.PHONY : check-kustomize
274
231
check-kustomize :
275
232
@command -v kustomize > /dev/null 2>&1 || { \
@@ -301,12 +258,6 @@ check-builder:
301
258
echo " ✅ Using builder: $( BUILDER) " ; \
302
259
fi
303
260
304
- .PHONY : check-podman
305
- check-podman :
306
- @command -v podman > /dev/null 2>&1 || { \
307
- echo " ⚠️ Podman is not installed. You can install it with:" ; \
308
- echo " 🔧 sudo apt install podman OR brew install podman" ; exit 1; }
309
-
310
261
# #@ Alias checking
311
262
.PHONY : check-alias
312
263
check-alias : check-container-tool
@@ -340,5 +291,10 @@ env-dev-kind: image-build
340
291
CLUSTER_NAME=$(KIND_CLUSTER_NAME ) \
341
292
GATEWAY_HOST_PORT=$(KIND_GATEWAY_HOST_PORT ) \
342
293
IMAGE_REGISTRY=$(IMAGE_REGISTRY ) \
343
- EPP_TAG=$(DEV_VERSION ) \
294
+ EPP_TAG=$(EPP_TAG ) \
344
295
./scripts/kind-dev-env.sh
296
+
297
+ .PHONY : clean-env-dev-kind
298
+ clean-env-dev-kind :
299
+ @echo " INFO: cleaning up kind cluster $( KIND_CLUSTER_NAME) "
300
+ kind delete cluster --name $(KIND_CLUSTER_NAME )
0 commit comments