11.PHONY : deploy deploy-all undeploy undeploy-kserve status help check-kubeconfig sync clear-cache
2- .PHONY : deploy-cert-manager deploy-istio deploy-lws deploy-kserve
2+ .PHONY : deploy-cert-manager deploy-istio deploy-lws deploy-kserve deploy-opendatahub-prerequisites deploy-cert-manager-pki
33.PHONY : test conformance
44
55HELMFILE_CACHE := $(HOME ) /.cache/helmfile
6- KSERVE_REF ?= release-v0.15
76KSERVE_NAMESPACE ?= opendatahub
87
98check-kubeconfig :
1312 @echo " rhaii-on-xks - Infrastructure for llm-d on xKS (AKS/CoreWeave)"
1413 @echo " "
1514 @echo " Deploy:"
16- @echo " make deploy - Deploy cert-manager + istio"
17- @echo " make deploy-all - Deploy all (cert-manager + istio + lws)"
15+ @echo " make deploy - Deploy cert-manager + istio + lws "
16+ @echo " make deploy-all - Deploy all (cert-manager + istio + lws + kserve )"
1817 @echo " make deploy-kserve - Deploy KServe"
1918 @echo " "
2019 @echo " Undeploy:"
@@ -40,10 +39,10 @@ sync: clear-cache
4039deploy : check-kubeconfig clear-cache
4140 helmfile apply --selector name=cert-manager-operator
4241 helmfile apply --selector name=sail-operator
42+ helmfile apply --selector name=lws-operator
4343 @$(MAKE ) status
4444
45- deploy-all : check-kubeconfig clear-cache
46- helmfile apply
45+ deploy-all : check-kubeconfig deploy-cert-manager deploy-istio deploy-lws deploy-kserve
4746 @$(MAKE ) status
4847
4948deploy-cert-manager : check-kubeconfig clear-cache
@@ -55,35 +54,39 @@ deploy-istio: check-kubeconfig clear-cache
5554deploy-lws : check-kubeconfig clear-cache
5655 helmfile apply --selector name=lws-operator
5756
58- deploy-kserve : check-kubeconfig
59- @echo " === Deploying KServe (ref= $( KSERVE_REF ) ) ==="
57+ deploy-opendatahub-prerequisites : check-kubeconfig
58+ @echo " === Deploying OpenDataHub prerequisites ==="
6059 kubectl create namespace $(KSERVE_NAMESPACE ) --dry-run=client -o yaml | kubectl apply -f -
6160 -kubectl get secret redhat-pull-secret -n istio-system -o yaml 2> /dev/null | \
6261 sed ' s/namespace: istio-system/namespace: $(KSERVE_NAMESPACE)/' | \
6362 kubectl apply -f - 2> /dev/null || true
64- kubectl apply -k " https://github.com/opendatahub-io/kserve/config/overlays/odh-test/cert-manager?ref=$( KSERVE_REF) "
63+
64+ deploy-cert-manager-pki : check-kubeconfig deploy-opendatahub-prerequisites
65+ @kubectl get crd clusterissuers.cert-manager.io > /dev/null 2>&1 || \
66+ (echo " ERROR: cert-manager CRDs not found. Run 'make deploy-cert-manager' first." && exit 1)
67+ kubectl apply -f ./charts/kserve/pki-prereq.yaml
6568 kubectl wait --for=condition=Ready clusterissuer/opendatahub-ca-issuer --timeout=120s
66- @echo " Applying CRDs and deployment (CR errors expected, will retry)..."
67- -kustomize build " https://github.com/opendatahub-io/kserve/config/overlays/odh-xks?ref=$( KSERVE_REF) " | kubectl apply --server-side --force-conflicts -f - 2> /dev/null || true
68- @echo " Removing webhooks to allow controller startup..."
69- -kubectl delete validatingwebhookconfiguration llminferenceservice.serving.kserve.io llminferenceserviceconfig.serving.kserve.io --ignore-not-found 2> /dev/null || true
70- kubectl wait --for=condition=Available deployment/kserve-controller-manager -n $(KSERVE_NAMESPACE ) --timeout=300s
71- @echo " Controller ready, applying CRs..."
72- kustomize build " https://github.com/opendatahub-io/kserve/config/overlays/odh-xks?ref=$( KSERVE_REF) " | kubectl apply --server-side --force-conflicts -f -
69+
70+ deploy-kserve : check-kubeconfig deploy-cert-manager-pki
71+ @echo " Applying KServe via Helm..."
72+ helmfile sync --wait --selector name=kserve-rhaii-xks --skip-crds
7373 @echo " === KServe deployed ==="
7474
7575# Undeploy
76- undeploy : check-kubeconfig
76+ undeploy : check-kubeconfig undeploy-kserve
7777 @./scripts/cleanup.sh -y
7878
7979undeploy-kserve : check-kubeconfig
8080 -@kubectl delete llminferenceservice --all -A --ignore-not-found 2> /dev/null || true
8181 -@kubectl delete inferencepool --all -A --ignore-not-found 2> /dev/null || true
82- -@kubectl delete deployment kserve-controller-manager -n $(KSERVE_NAMESPACE ) --ignore-not-found 2> /dev/null || true
82+ -@helm uninstall kserve-rhaii-xks --namespace $(KSERVE_NAMESPACE ) 2> /dev/null || true
8383 -@kubectl delete validatingwebhookconfiguration llminferenceservice.serving.kserve.io llminferenceserviceconfig.serving.kserve.io --ignore-not-found 2> /dev/null || true
84- -@# Removes KServe CRDs and Inference Extension CRDs (InferencePool, InferenceModel )
84+ -@# Removes KServe CRDs and Inference Extension CRDs (Helm does not remove CRDs on uninstall )
8585 -@kubectl get crd -o name | grep -E " serving.kserve.io|inference.networking" | xargs -r kubectl delete --ignore-not-found 2> /dev/null || true
86- -@kubectl delete clusterissuer opendatahub-ca-issuer --ignore-not-found 2> /dev/null || true
86+ -@# Removes cluster-scoped RBAC resources
87+ -@kubectl get clusterrole,clusterrolebinding -o name | grep -i kserve | xargs -r kubectl delete --ignore-not-found 2> /dev/null || true
88+ -@kubectl delete clusterissuer opendatahub-ca-issuer opendatahub-selfsigned-issuer --ignore-not-found 2> /dev/null || true
89+ -@kubectl delete certificate opendatahub-ca -n cert-manager --ignore-not-found 2> /dev/null || true
8790 -@kubectl delete namespace $(KSERVE_NAMESPACE ) --ignore-not-found --wait=false 2> /dev/null || true
8891 @echo " === KServe removed ==="
8992
@@ -103,6 +106,12 @@ status: check-kubeconfig
103106 @echo " lws-operator:"
104107 @kubectl get pods -n openshift-lws-operator 2> /dev/null || echo " Not deployed"
105108 @echo " "
109+ @echo " kserve:"
110+ @kubectl get pods -n $(KSERVE_NAMESPACE ) -l control-plane=kserve-controller-manager 2> /dev/null || echo " Not deployed"
111+ @echo " "
112+ @echo " kserve config:"
113+ @kubectl get llminferenceserviceconfig -n $(KSERVE_NAMESPACE ) 2> /dev/null || echo " Not deployed"
114+ @echo " "
106115 @echo " === API Versions ==="
107116 @echo -n " InferencePool API: "
108117 @if kubectl get crd inferencepools.inference.networking.k8s.io > /dev/null 2>&1 ; then \
0 commit comments