@@ -5,8 +5,19 @@ 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 placeholder CA certificate for KIND bind mount
10+ @if [ ! -f hack/cert-manager-ca/ca.crt ]; then \
11+ echo " Creating placeholder CA certificate for bind mount..." ; \
12+ mkdir -p hack/cert-manager-ca; \
13+ echo " placeholder" > hack/cert-manager-ca/ca.crt; \
14+ echo " ⚠️ Placeholder CA created - will be replaced with cert-manager CA after cluster creation" ; \
15+ else \
16+ echo " ✅ Placeholder CA already exists" ; \
17+ fi
18+
819.PHONY : kind-create-cluster
9- kind-create-cluster : kind # # Create the kind cluster for development
20+ kind-create-cluster : kind kind-create-certs # # Create the kind cluster for development
1021 @# Set KIND provider for podman on Linux
1122 @if [ " $( shell uname -s) " != " Darwin" ] && echo " $( CONTAINER_ENGINE) " | grep -q " podman" ; then \
1223 export KIND_EXPERIMENTAL_PROVIDER=podman; \
@@ -16,6 +27,23 @@ kind-create-cluster: kind ## Create the kind cluster for development
1627 else \
1728 echo " Creating Kind cluster '$( KIND_CLUSTER_NAME) '..." ; \
1829 $(KIND ) create cluster --name $(KIND_CLUSTER_NAME ) --config config/kind/cluster.yaml; \
30+ echo " Adding ingress-ready label to control-plane node..." ; \
31+ kubectl label node $(KIND_CLUSTER_NAME ) -control-plane ingress-ready=true --overwrite; \
32+ echo " Installing nginx ingress controller..." ; \
33+ kubectl apply -f config/ingress/nginx-ingress.yaml; \
34+ echo " Waiting for ingress controller to be ready..." ; \
35+ kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=90s; \
36+ echo " ✅ Ingress controller ready" ; \
37+ echo " Installing cert-manager..." ; \
38+ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.2/cert-manager.yaml; \
39+ echo " Waiting for cert-manager to be ready..." ; \
40+ kubectl wait --namespace cert-manager --for=condition=ready pod --selector=app.kubernetes.io/instance=cert-manager --timeout=120s; \
41+ kubectl wait --namespace cert-manager --for=condition=ready pod --selector=app.kubernetes.io/name=webhook --timeout=120s; \
42+ echo " ✅ cert-manager ready" ; \
43+ echo " Creating cert-manager ClusterIssuer..." ; \
44+ sleep 5; \
45+ kubectl apply -f config/cert-manager/selfsigned-issuer.yaml; \
46+ echo " ✅ ClusterIssuer created" ; \
1947 fi
2048
2149.PHONY : kind-delete-cluster
0 commit comments