Skip to content

Commit 8f805f0

Browse files
authored
refactor: move deploy manifests and provider targets to per-provider structure (#111)
1 parent 04f03bd commit 8f805f0

49 files changed

Lines changed: 1669 additions & 506 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/e2e-backend.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ jobs:
5050
5151
- name: Build and deploy KAITO provider
5252
run: |
53-
make kaito-provider-docker-build KAITO_PROVIDER_IMG=kaito-provider:e2e
53+
make -C providers/kaito docker-build IMG=kaito-provider:e2e
5454
kind load docker-image kaito-provider:e2e --name kubeairunway-backend-e2e
55-
make kaito-provider-deploy KAITO_PROVIDER_IMG=kaito-provider:e2e
55+
make -C providers/kaito deploy IMG=kaito-provider:e2e
5656
kubectl wait --for=condition=Available deployment -n kubeairunway-system -l control-plane=kaito-provider --timeout=120s
5757
5858
- name: Wait for provider registration

.github/workflows/e2e-controller.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ jobs:
4545
4646
- name: Build and deploy KAITO provider
4747
run: |
48-
make kaito-provider-docker-build KAITO_PROVIDER_IMG=kaito-provider:e2e
48+
make -C providers/kaito docker-build IMG=kaito-provider:e2e
4949
kind load docker-image kaito-provider:e2e --name kubeairunway-e2e
50-
make kaito-provider-deploy KAITO_PROVIDER_IMG=kaito-provider:e2e
50+
make -C providers/kaito deploy IMG=kaito-provider:e2e
5151
kubectl wait --for=condition=Available deployment -n kubeairunway-system -l control-plane=kaito-provider --timeout=120s
5252
5353
- name: Wait for provider registration

.github/workflows/e2e-gateway.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ jobs:
7171
7272
- name: Build and deploy KAITO provider
7373
run: |
74-
make kaito-provider-docker-build KAITO_PROVIDER_IMG=kaito-provider:e2e
74+
make -C providers/kaito docker-build IMG=kaito-provider:e2e
7575
kind load docker-image kaito-provider:e2e --name kubeairunway-gw-e2e
76-
make kaito-provider-deploy KAITO_PROVIDER_IMG=kaito-provider:e2e
76+
make -C providers/kaito deploy IMG=kaito-provider:e2e
7777
kubectl wait --for=condition=Available deployment -n kubeairunway-system -l control-plane=kaito-provider --timeout=120s
7878
7979
- name: Wait for provider registration

.github/workflows/test.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,19 @@ jobs:
6565

6666
- name: Check for manifest drift
6767
run: |
68-
if ! diff -u deploy/kubernetes/controller.yaml /tmp/controller.yaml; then
69-
echo "❌ deploy/kubernetes/controller.yaml is out of date."
68+
if ! diff -u deploy/controller.yaml /tmp/controller.yaml; then
69+
echo "❌ deploy/controller.yaml is out of date."
70+
echo "Run 'make generate-deploy-manifests' and commit the result."
71+
exit 1
72+
fi
73+
74+
- name: Generate dashboard manifest
75+
run: controller/bin/kustomize build backend/config/default > /tmp/dashboard.yaml
76+
77+
- name: Check for dashboard manifest drift
78+
run: |
79+
if ! diff -u deploy/dashboard.yaml /tmp/dashboard.yaml; then
80+
echo "❌ deploy/dashboard.yaml is out of date."
7081
echo "Run 'make generate-deploy-manifests' and commit the result."
7182
exit 1
7283
fi

CONTRIBUTING.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,13 @@ Providers are independent Go operators in `providers/<name>/`. See existing prov
170170
- Map provider resource status back to `ModelDeployment` status
171171
- Self-register an `InferenceProviderConfig` with capabilities, selection rules, and installation info
172172
173-
3. **Add Makefile targets** in the root `Makefile`:
173+
3. **Add a Makefile** in the provider directory (`providers/<name>/Makefile`):
174174
```bash
175-
make <name>-provider-build # Build provider binary
176-
make <name>-provider-docker-build # Build Docker image
177-
make <name>-provider-deploy # Deploy to cluster
175+
cd providers/<name>
176+
make build # Build provider binary
177+
make docker-build # Build Docker image
178+
make deploy # Deploy to cluster
179+
make generate-deploy-manifests # Generate deploy YAML
178180
```
179181

180182
## Adding a New Model

Makefile

Lines changed: 11 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
11
.PHONY: install dev dev-frontend dev-backend build compile lint test clean help
22
.PHONY: controller-build controller-docker-build controller-install controller-deploy controller-generate generate-deploy-manifests
3-
.PHONY: kaito-provider-build kaito-provider-docker-build kaito-provider-deploy
4-
.PHONY: dynamo-provider-build dynamo-provider-docker-build dynamo-provider-deploy
5-
.PHONY: kuberay-provider-build kuberay-provider-docker-build kuberay-provider-deploy
6-
.PHONY: llmd-provider-build llmd-provider-docker-build llmd-provider-deploy
73

84
# Controller image
95
CONTROLLER_IMG ?= ghcr.io/kaito-project/kubeairunway/controller:latest
106

7+
# Dashboard image
8+
DASHBOARD_IMG ?= ghcr.io/kaito-project/kubeairunway/dashboard:latest
9+
1110
# Gateway API Inference Extension version
1211
GAIE_VERSION ?= v1.3.1
1312

14-
# Provider images
15-
KAITO_PROVIDER_IMG ?= ghcr.io/kaito-project/kubeairunway/kaito-provider:latest
16-
DYNAMO_PROVIDER_IMG ?= ghcr.io/kaito-project/kubeairunway/dynamo-provider:latest
17-
KUBERAY_PROVIDER_IMG ?= ghcr.io/kaito-project/kubeairunway/kuberay-provider:latest
18-
LLMD_PROVIDER_IMG ?= ghcr.io/kaito-project/kubeairunway/llmd-provider:latest
19-
2013
# Default target
2114
help:
2215
@echo "KubeAIRunway Development Commands"
@@ -44,21 +37,7 @@ help:
4437
@echo " controller-install Install CRDs into cluster"
4538
@echo " controller-deploy Deploy controller to cluster"
4639
@echo " controller-generate Generate CRD manifests and code"
47-
@echo " generate-deploy-manifests Generate deploy/kubernetes/controller.yaml"
48-
@echo ""
49-
@echo "Provider Targets:"
50-
@echo " kaito-provider-build Build the KAITO provider binary"
51-
@echo " kaito-provider-docker-build Build KAITO provider Docker image"
52-
@echo " kaito-provider-deploy Deploy KAITO provider to cluster"
53-
@echo " dynamo-provider-build Build the Dynamo provider binary"
54-
@echo " dynamo-provider-docker-build Build Dynamo provider Docker image"
55-
@echo " dynamo-provider-deploy Deploy Dynamo provider to cluster"
56-
@echo " kuberay-provider-build Build the KubeRay provider binary"
57-
@echo " kuberay-provider-docker-build Build KubeRay provider Docker image"
58-
@echo " kuberay-provider-deploy Deploy KubeRay provider to cluster"
59-
@echo " llmd-provider-build Build the llm-d provider binary"
60-
@echo " llmd-provider-docker-build Build llm-d provider Docker image"
61-
@echo " llmd-provider-deploy Deploy llm-d provider to cluster"
40+
@echo " generate-deploy-manifests Generate deploy/controller.yaml"
6241
@echo ""
6342
@echo " help Show this help message"
6443

@@ -171,75 +150,13 @@ controller-test:
171150
cd controller && go test ./... -coverprofile cover.out
172151
@echo "✅ Controller tests completed"
173152

174-
# Generate deploy manifests for controller
153+
# Generate deploy manifests for controller and dashboard
175154
generate-deploy-manifests:
176155
cd controller && $(MAKE) kustomize
177156
cd controller/config/manager && ../../bin/kustomize edit set image controller=$(CONTROLLER_IMG)
178-
cd controller && bin/kustomize build config/default > ../deploy/kubernetes/controller.yaml
179-
@echo "✅ Generated deploy/kubernetes/controller.yaml"
180-
181-
# ==================== Provider Targets ====================
182-
183-
# Build the KAITO provider binary
184-
kaito-provider-build:
185-
cd providers/kaito && go build -o bin/provider ./cmd/main.go
186-
@echo "✅ KAITO provider built"
187-
188-
# Build the Dynamo provider binary
189-
dynamo-provider-build:
190-
cd providers/dynamo && go build -o bin/provider ./cmd/main.go
191-
@echo "✅ Dynamo provider built"
192-
193-
# Build KAITO provider Docker image
194-
kaito-provider-docker-build:
195-
docker build -f providers/kaito/Dockerfile -t $(KAITO_PROVIDER_IMG) .
196-
@echo "✅ KAITO provider image built: $(KAITO_PROVIDER_IMG)"
197-
198-
# Build Dynamo provider Docker image
199-
dynamo-provider-docker-build:
200-
docker build -f providers/dynamo/Dockerfile -t $(DYNAMO_PROVIDER_IMG) .
201-
@echo "✅ Dynamo provider image built: $(DYNAMO_PROVIDER_IMG)"
202-
203-
# Deploy KAITO provider to the K8s cluster
204-
kaito-provider-deploy:
205-
cd providers/kaito/config/manager && kustomize edit set image IMAGE_PLACEHOLDER=$(KAITO_PROVIDER_IMG)
206-
kustomize build providers/kaito/config/default | kubectl apply -f -
207-
@echo "✅ KAITO provider deployed"
208-
209-
# Deploy Dynamo provider to the K8s cluster
210-
dynamo-provider-deploy:
211-
cd providers/dynamo/config/manager && kustomize edit set image IMAGE_PLACEHOLDER=$(DYNAMO_PROVIDER_IMG)
212-
kustomize build providers/dynamo/config/default | kubectl apply -f -
213-
@echo "✅ Dynamo provider deployed"
214-
215-
# Build KubeRay provider binary
216-
kuberay-provider-build:
217-
cd providers/kuberay && go build -o bin/provider ./cmd/main.go
218-
@echo "✅ KubeRay provider built"
219-
220-
# Build KubeRay provider Docker image
221-
kuberay-provider-docker-build:
222-
docker build -f providers/kuberay/Dockerfile -t $(KUBERAY_PROVIDER_IMG) .
223-
@echo "✅ KubeRay provider image built: $(KUBERAY_PROVIDER_IMG)"
224-
225-
# Deploy KubeRay provider to the K8s cluster
226-
kuberay-provider-deploy:
227-
cd providers/kuberay/config/manager && kustomize edit set image IMAGE_PLACEHOLDER=$(KUBERAY_PROVIDER_IMG)
228-
kustomize build providers/kuberay/config/default | kubectl apply -f -
229-
@echo "✅ KubeRay provider deployed"
230-
231-
# Build the llm-d provider binary
232-
llmd-provider-build:
233-
cd providers/llmd && go build -o bin/provider ./cmd/main.go
234-
@echo "✅ llm-d provider built"
235-
236-
# Build llm-d provider Docker image
237-
llmd-provider-docker-build:
238-
docker build --platform linux/amd64 -f providers/llmd/Dockerfile -t $(LLMD_PROVIDER_IMG) .
239-
@echo "✅ llm-d provider image built: $(LLMD_PROVIDER_IMG)"
240-
241-
# Deploy llm-d provider to the K8s cluster
242-
llmd-provider-deploy:
243-
cd providers/llmd/config/manager && kustomize edit set image IMAGE_PLACEHOLDER=$(LLMD_PROVIDER_IMG)
244-
kustomize build providers/llmd/config/default | kubectl apply -f -
245-
@echo "✅ llm-d provider deployed"
157+
cd controller && bin/kustomize build config/default > ../deploy/controller.yaml
158+
@echo "✅ Generated deploy/controller.yaml"
159+
cd backend/config/manager && ../../../controller/bin/kustomize edit set image IMAGE_PLACEHOLDER=$(DASHBOARD_IMG)
160+
controller/bin/kustomize build backend/config/default > deploy/dashboard.yaml
161+
@git checkout backend/config/manager/kustomization.yaml 2>/dev/null || true
162+
@echo "✅ Generated deploy/dashboard.yaml"

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@ Open **http://localhost:3001**
5252

5353
```bash
5454
# Install CRDs and controller (required)
55-
kubectl apply -f https://raw.githubusercontent.com/kaito-project/kubeairunway/main/deploy/kubernetes/controller.yaml
55+
kubectl apply -f https://raw.githubusercontent.com/kaito-project/kubeairunway/main/deploy/controller.yaml
5656

5757
# Install dashboard UI (optional)
58-
kubectl apply -f https://raw.githubusercontent.com/kaito-project/kubeairunway/main/deploy/kubernetes/dashboard.yaml
58+
kubectl apply -f https://raw.githubusercontent.com/kaito-project/kubeairunway/main/deploy/dashboard.yaml
5959
kubectl port-forward -n kubeairunway-system svc/kubeairunway 3001:80
6060
```
6161

62-
Open **http://localhost:3001** — see [deployment docs](deploy/kubernetes/README.md) for more options.
62+
Open **http://localhost:3001** — see [deployment docs](deploy/README.md) for more options.
6363

6464
### Getting Started
6565

@@ -102,7 +102,7 @@ The controller automatically selects the best engine and provider, creates provi
102102
| Providers | [docs/providers.md](docs/providers.md) |
103103
| Observability | [docs/observability.md](docs/observability.md) |
104104
| Development | [docs/development.md](docs/development.md) |
105-
| Kubernetes Deployment | [deploy/kubernetes/README.md](deploy/kubernetes/README.md) |
105+
| Kubernetes Deployment | [deploy/README.md](deploy/README.md) |
106106
| Gateway Integration | [docs/gateway.md](docs/gateway.md) |
107107
| Headlamp Plugin | [docs/headlamp-plugin.md](docs/headlamp-plugin.md) |
108108
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
resources:
2+
- ../rbac
3+
- ../manager
4+
transformers:
5+
- namespace-transformer.yaml
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: builtin
2+
kind: NamespaceTransformer
3+
metadata:
4+
name: namespace-transformer
5+
namespace: kubeairunway-system
6+
unsetOnly: true
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
resources:
2+
- manager.yaml
3+
images:
4+
- name: IMAGE_PLACEHOLDER
5+
newName: ghcr.io/kaito-project/kubeairunway/dashboard
6+
newTag: latest
7+
apiVersion: kustomize.config.k8s.io/v1beta1
8+
kind: Kustomization

0 commit comments

Comments
 (0)