Skip to content

Commit 0b77d92

Browse files
committed
Adding OIDC issuer and realm updates, adding cert-manager, updates to code for self-signed certs
1 parent 0dcf928 commit 0b77d92

File tree

19 files changed

+910
-54
lines changed

19 files changed

+910
-54
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,4 @@ python/kubernetes_mcp_server.egg-info/
2929
!python/kubernetes-mcp-server
3030

3131
/bin/
32+
hack/cert-manager-ca/

build/keycloak.mk

Lines changed: 129 additions & 41 deletions
Large diffs are not rendered by default.

build/kind.mk

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,17 @@ KIND_CLUSTER_NAME ?= kubernetes-mcp-server
55
# Detect container engine (docker or podman)
66
CONTAINER_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
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
apiVersion: cert-manager.io/v1
2+
kind: ClusterIssuer
3+
metadata:
4+
name: selfsigned-issuer
5+
spec:
6+
selfSigned: {}
7+
---
8+
apiVersion: cert-manager.io/v1
9+
kind: Certificate
10+
metadata:
11+
name: selfsigned-ca
12+
namespace: cert-manager
13+
spec:
14+
isCA: true
15+
commonName: selfsigned-ca
16+
secretName: selfsigned-ca-secret
17+
privateKey:
18+
algorithm: ECDSA
19+
size: 256
20+
issuerRef:
21+
name: selfsigned-issuer
22+
kind: ClusterIssuer
23+
group: cert-manager.io
24+
---
25+
apiVersion: cert-manager.io/v1
26+
kind: ClusterIssuer
27+
metadata:
28+
name: selfsigned-ca-issuer
29+
spec:
30+
ca:
31+
secretName: selfsigned-ca-secret

0 commit comments

Comments
 (0)