Skip to content

Commit 203cec8

Browse files
committed
Adding OIDC issuer and realm updates, adding cert-manager and handling self-signed certificates
Signed-off-by: Matthias Wessendorf <[email protected]>
1 parent 6e0285e commit 203cec8

File tree

9 files changed

+645
-52
lines changed

9 files changed

+645
-52
lines changed

.gitignore

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

3131
/bin/
32+
hack/cert-manager-ca/
33+
hack/keycloak-certs/ca.crt

build/keycloak.mk

Lines changed: 135 additions & 49 deletions
Large diffs are not rendered by default.

build/kind.mk

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,19 @@ 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 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
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)