Skip to content

Commit 6de61bd

Browse files
authored
Merge branch 'main' into version_json
Signed-off-by: Etai Lev Ran <elevran@gmail.com>
2 parents 7bb4d38 + c6e7690 commit 6de61bd

File tree

8 files changed

+116
-72
lines changed

8 files changed

+116
-72
lines changed

.github/dependabot.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
version: 2
2+
updates:
3+
4+
# 1. Go module updates
5+
- package-ecosystem: "gomod"
6+
directory: "/"
7+
schedule:
8+
interval: "weekly"
9+
open-pull-requests-limit: 10
10+
commit-message:
11+
prefix: "deps(go)"
12+
labels:
13+
- "dependencies"
14+
- "release-note-none"
15+
groups:
16+
go-dependencies:
17+
patterns:
18+
- "*"
19+
kubernetes:
20+
patterns:
21+
- "k8s.io/*"
22+
- "sigs.k8s.io/*"
23+
24+
# 2. GitHub Actions dependencies
25+
- package-ecosystem: "github-actions"
26+
directory: "/"
27+
schedule:
28+
interval: "weekly"
29+
labels:
30+
- "ci"
31+
- "dependencies"
32+
commit-message:
33+
prefix: "deps(actions)"
34+
35+
# 3. Docker base image updates (e.g., for Dockerfile FROM lines)
36+
- package-ecosystem: "docker"
37+
directory: "/"
38+
schedule:
39+
interval: "weekly"
40+
labels:
41+
- "dependencies"
42+
- "docker"
43+
commit-message:
44+
prefix: "deps(docker)"

.github/workflows/md-link-check.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Markdown Link Checker
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
workflow_dispatch:
9+
10+
jobs:
11+
lychee:
12+
name: Check Markdown Links
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
19+
- name: Install lychee v0.18.1
20+
run: |
21+
curl -Ls https://github.com/lycheeverse/lychee/releases/download/lychee-v0.18.1/lychee-x86_64-unknown-linux-gnu.tar.gz | tar xz
22+
sudo mv lychee /usr/local/bin
23+
24+
- name: Run lychee on Markdown files with config
25+
run: |
26+
find . -name "*.md" -print0 | xargs -0 lychee --config .lychee.toml --verbose --no-progress

.lychee.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Ignore transient failures on gnu.org (it sometimes refuses connections)
2+
exclude = [
3+
"^https://www.gnu.org/software/make/?$"
4+
]
5+
6+
# Timeout in seconds
7+
timeout = 20
8+
9+
# Retry failed links (helpful for flaky sites)
10+
retry_count = 3
11+
12+
# Accept non-200 status codes (429: rate limits)
13+
accept = [200, 429]

DEVELOPMENT.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,15 @@ make env-dev-kind
9292
```
9393

9494
This will build images with your recent changes and load the new images to the
95-
cluster. Note that built image tag should be specified via the `EPP_TAG` environment variable so it is used in the deployment. For example:
95+
cluster. By default the image tag will be `dev`. It will also load `llm-d-inference-sim` image.
96+
97+
**NOTE:** The built image tag can be specified via the `EPP_TAG` environment variable so it is used in the deployment. For example:
9698

9799
```console
98100
EPP_TAG=0.0.4 make env-dev-kind
101+
```
102+
103+
**NOTE:** If you want to load a different tag of llm-d-inference-sim, you can use the environment variable `VLLM_SIMULATOR_TAG` to specify it.
99104

100105
**NOTE**: If you are working on a MacOS with Apple Silicon, it is required to add
101106
the environment variable `GOOS=linux`.

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ ENV GOOS=${TARGETOS:-linux}
3232
ENV GOARCH=${TARGETARCH}
3333
RUN go build -a -o bin/epp -ldflags="-extldflags '-L$(pwd)/lib'" cmd/epp/main.go cmd/epp/health.go
3434

35-
# Use distroless as minimal base image to package the manager binary
36-
# Refer to https://github.com/GoogleContainerTools/distroless for more details
37-
FROM registry.access.redhat.com/ubi9/ubi:latest
35+
# Use ubi9 as a minimal base image to package the manager binary
36+
# Refer to https://catalog.redhat.com/software/containers/ubi9/ubi-minimal/615bd9b4075b022acc111bf5 for more details
37+
FROM registry.access.redhat.com/ubi9/ubi-minimal:latest
3838
WORKDIR /
3939
COPY --from=builder /workspace/bin/epp /app/epp
4040
USER 65532:65532

Makefile

Lines changed: 19 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ SHELL := /usr/bin/env bash
44
TARGETOS ?= $(shell go env GOOS)
55
TARGETARCH ?= $(shell go env GOARCH)
66
PROJECT_NAME ?= llm-d-inference-scheduler
7-
DEV_VERSION ?= 0.0.3
8-
PROD_VERSION ?= 0.0.2
97
IMAGE_REGISTRY ?= ghcr.io/llm-d
108
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)
1211
NAMESPACE ?= hc4ai-operator
1312

1413
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
6766
post-deploy-test: ## Run post deployment tests
6867
echo Success!
6968
@echo "Post-deployment tests passed."
70-
69+
7170
.PHONY: lint
7271
lint: check-golangci-lint ## Run lint
7372
@printf "\033[33;1m==== Running linting ====\033[0m\n"
@@ -82,48 +81,6 @@ build: check-go download-tokenizer ##
8281

8382
##@ Container Build/Push
8483

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-
12784
.PHONY: image-build
12885
image-build: check-container-tool ## Build Docker image ## Build Docker image using $(CONTAINER_TOOL)
12986
@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
181138
echo "Kubernetes installation complete."; \
182139
echo "To use the app, run:"; \
183140
echo "alias $(PROJECT_NAME)='kubectl exec -n $(NAMESPACE) -it $$POD -- /app/$(PROJECT_NAME)'"
184-
141+
185142
.PHONY: uninstall-k8s
186143
uninstall-k8s: check-kubectl check-kustomize check-envsubst ## Uninstall from Kubernetes
187144
export PROJECT_NAME=${PROJECT_NAME}
@@ -208,7 +165,7 @@ install-openshift: check-kubectl check-kustomize check-envsubst ## Install on Op
208165
@POD=$$(kubectl get pod -l app=$(PROJECT_NAME)-statefulset -n $(NAMESPACE) -o jsonpath='{.items[0].metadata.name}'); \
209166
echo "OpenShift installation complete."; \
210167
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)'"
212169

213170
.PHONY: uninstall-openshift
214171
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
234191
@echo "Removing RBAC configuration from deploy/rbac..."
235192
kustomize build deploy/environments/openshift-base/rbac | envsubst '$$PROJECT_NAME $$NAMESPACE $$IMAGE_TAG_BASE $$VERSION' | kubectl delete -f - || true
236193

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+
237201
##@ Tools
238202

239203
.PHONY: check-tools
240204
check-tools: \
241205
check-go \
242206
check-ginkgo \
243207
check-golangci-lint \
244-
check-jq \
245208
check-kustomize \
246209
check-envsubst \
247210
check-container-tool \
248211
check-kubectl \
249-
check-buildah \
250-
check-podman
212+
check-buildah
251213
@echo "✅ All required tools are installed."
252214

253215
.PHONY: check-go
@@ -265,11 +227,6 @@ check-golangci-lint:
265227
@command -v golangci-lint >/dev/null 2>&1 || { \
266228
echo "❌ golangci-lint is not installed. Install from https://golangci-lint.run/usage/install/"; exit 1; }
267229

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-
273230
.PHONY: check-kustomize
274231
check-kustomize:
275232
@command -v kustomize >/dev/null 2>&1 || { \
@@ -301,12 +258,6 @@ check-builder:
301258
echo "✅ Using builder: $(BUILDER)"; \
302259
fi
303260

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-
310261
##@ Alias checking
311262
.PHONY: check-alias
312263
check-alias: check-container-tool
@@ -340,5 +291,10 @@ env-dev-kind: image-build
340291
CLUSTER_NAME=$(KIND_CLUSTER_NAME) \
341292
GATEWAY_HOST_PORT=$(KIND_GATEWAY_HOST_PORT) \
342293
IMAGE_REGISTRY=$(IMAGE_REGISTRY) \
343-
EPP_TAG=$(DEV_VERSION) \
294+
EPP_TAG=$(EPP_TAG) \
344295
./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)

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ callback mechanism the EPP relies on to make routing decisions to model serving
2020
workloads currently.
2121

2222
[Kubernetes]:https://kubernetes.io
23-
[Architecture Documentation]:/docs/architecture.md
23+
[Architecture Documentation]:docs/architecture.md
2424
[Gateway API Inference Extension (GIE)]:https://github.com/kubernetes-sigs/gateway-api-inference-extension
25-
[P/D Disaggregation]:/docs/dp.md
25+
[P/D Disaggregation]:docs/dp.md
2626
[Gateway API]:https://github.com/kubernetes-sigs/gateway-api
2727
[Envoy]:https://github.com/envoyproxy/envoy
2828
[ext-proc]:https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/ext_proc_filter
@@ -33,7 +33,7 @@ Contributions are welcome!
3333

3434
For large changes please [create an issue] first describing the change so the
3535
maintainers can do an assessment, and work on the details with you. See
36-
[DEVELOPMENT.md](/DEVELOPMENT.md) for details on how to work with the codebase.
36+
[DEVELOPMENT.md](DEVELOPMENT.md) for details on how to work with the codebase.
3737

3838
Note that in general features should go to the upstream [Gateway API Inference
3939
Extension (GIE)] project _first_ if applicable. The GIE is a major dependency of

scripts/kind-dev-env.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
2626
: "${VLLM_SIMULATOR_IMAGE:=llm-d-inference-sim}"
2727

2828
# Set a default VLLM_SIMULATOR_TAG if not provided
29-
export VLLM_SIMULATOR_TAG="${VLLM_SIMULATOR_TAG:-0.0.6}"
29+
export VLLM_SIMULATOR_TAG="${VLLM_SIMULATOR_TAG:-v0.1.0}"
3030

3131
# Set a default EPP_IMAGE if not provided
3232
: "${EPP_IMAGE:=llm-d-inference-scheduler}"
3333

3434
# Set a default EPP_TAG if not provided
35-
export EPP_TAG="${EPP_TAG:-0.0.4}"
35+
export EPP_TAG="${EPP_TAG:-dev}"
3636

3737
# Set the default routing side car image tag
3838
export ROUTING_SIDECAR_TAG="${ROUTING_SIDECAR_TAG:-0.0.6}"

0 commit comments

Comments
 (0)