@@ -5,8 +5,17 @@ KIND_CLUSTER_NAME ?= kubernetes-mcp-server
55# Detect container engine (docker or podman)
66CONTAINER_ENGINE ?= $(shell command -v docker 2>/dev/null || command -v podman 2>/dev/null)
77
8+ .PHONY : kind-create-certs
9+ kind-create-certs : # # Generate TLS certificates for Keycloak
10+ @if [ ! -f hack/keycloak-certs/ca.crt ]; then \
11+ echo " Generating Keycloak TLS certificates..." ; \
12+ ./hack/generate-keycloak-certs.sh; \
13+ else \
14+ echo " ✅ Certificates already exist" ; \
15+ fi
16+
817.PHONY : kind-create-cluster
9- kind-create-cluster : kind # # Create the kind cluster for development
18+ kind-create-cluster : kind kind-create-certs # # Create the kind cluster for development
1019 @# Set KIND provider for podman on Linux
1120 @if [ " $( shell uname -s) " != " Darwin" ] && echo " $( CONTAINER_ENGINE) " | grep -q " podman" ; then \
1221 export KIND_EXPERIMENTAL_PROVIDER=podman; \
@@ -16,6 +25,23 @@ kind-create-cluster: kind ## Create the kind cluster for development
1625 else \
1726 echo " Creating Kind cluster '$( KIND_CLUSTER_NAME) '..." ; \
1827 $(KIND ) create cluster --name $(KIND_CLUSTER_NAME ) --config config/kind/cluster.yaml; \
28+ echo " Adding ingress-ready label to control-plane node..." ; \
29+ kubectl label node $(KIND_CLUSTER_NAME ) -control-plane ingress-ready=true --overwrite; \
30+ echo " Installing nginx ingress controller..." ; \
31+ kubectl apply -f config/ingress/nginx-ingress.yaml; \
32+ echo " Waiting for ingress controller to be ready..." ; \
33+ kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=90s; \
34+ echo " ✅ Ingress controller ready" ; \
35+ echo " Installing cert-manager..." ; \
36+ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.2/cert-manager.yaml; \
37+ echo " Waiting for cert-manager to be ready..." ; \
38+ kubectl wait --namespace cert-manager --for=condition=ready pod --selector=app.kubernetes.io/instance=cert-manager --timeout=120s; \
39+ kubectl wait --namespace cert-manager --for=condition=ready pod --selector=app.kubernetes.io/name=webhook --timeout=120s; \
40+ echo " ✅ cert-manager ready" ; \
41+ echo " Creating cert-manager ClusterIssuer..." ; \
42+ sleep 5; \
43+ kubectl apply -f config/cert-manager/selfsigned-issuer.yaml; \
44+ echo " ✅ ClusterIssuer created" ; \
1945 fi
2046
2147.PHONY : kind-delete-cluster
0 commit comments