|
| 1 | +# Keycloak IdP for development and testing |
| 2 | + |
| 3 | +KEYCLOAK_NAMESPACE = keycloak |
| 4 | +KEYCLOAK_ADMIN_USER = admin |
| 5 | +KEYCLOAK_ADMIN_PASSWORD = admin |
| 6 | + |
| 7 | +.PHONY: keycloak-install |
| 8 | +keycloak-install: ## Install Keycloak for local development |
| 9 | + @echo "Installing Keycloak (dev mode using official image)..." |
| 10 | + @kubectl apply -f config/keycloak/deployment.yaml |
| 11 | + @echo "Waiting for Keycloak to be ready..." |
| 12 | + @kubectl wait --for=condition=ready pod -l app=keycloak -n $(KEYCLOAK_NAMESPACE) --timeout=120s || true |
| 13 | + @echo "" |
| 14 | + @echo "Keycloak installed!" |
| 15 | + @echo "Admin credentials: $(KEYCLOAK_ADMIN_USER) / $(KEYCLOAK_ADMIN_PASSWORD)" |
| 16 | + @echo "Run 'make keycloak-forward' to access at http://localhost:8090" |
| 17 | + |
| 18 | +.PHONY: keycloak-uninstall |
| 19 | +keycloak-uninstall: ## Uninstall Keycloak |
| 20 | + @kubectl delete -f config/keycloak/deployment.yaml 2>/dev/null || true |
| 21 | + |
| 22 | +.PHONY: keycloak-forward |
| 23 | +keycloak-forward: ## Port forward Keycloak to localhost:8090 |
| 24 | + @echo "Forwarding Keycloak to http://localhost:8090" |
| 25 | + @echo "Login: $(KEYCLOAK_ADMIN_USER) / $(KEYCLOAK_ADMIN_PASSWORD)" |
| 26 | + kubectl port-forward -n $(KEYCLOAK_NAMESPACE) svc/keycloak 8090:80 |
| 27 | + |
| 28 | +.PHONY: keycloak-status |
| 29 | +keycloak-status: ## Show Keycloak status and connection info |
| 30 | + @if kubectl get svc -n $(KEYCLOAK_NAMESPACE) keycloak >/dev/null 2>&1; then \ |
| 31 | + echo "========================================"; \ |
| 32 | + echo "Keycloak Status"; \ |
| 33 | + echo "========================================"; \ |
| 34 | + echo ""; \ |
| 35 | + echo "Status: Installed"; \ |
| 36 | + echo ""; \ |
| 37 | + echo "Admin Console:"; \ |
| 38 | + echo " URL: http://localhost:8090 (run: make keycloak-forward)"; \ |
| 39 | + echo " Username: $(KEYCLOAK_ADMIN_USER)"; \ |
| 40 | + echo " Password: $(KEYCLOAK_ADMIN_PASSWORD)"; \ |
| 41 | + echo ""; \ |
| 42 | + echo "OIDC Endpoints (master realm):"; \ |
| 43 | + echo " Discovery: http://localhost:8090/realms/master/.well-known/openid-configuration"; \ |
| 44 | + echo " Token: http://localhost:8090/realms/master/protocol/openid-connect/token"; \ |
| 45 | + echo " Authorize: http://localhost:8090/realms/master/protocol/openid-connect/auth"; \ |
| 46 | + echo " UserInfo: http://localhost:8090/realms/master/protocol/openid-connect/userinfo"; \ |
| 47 | + echo " JWKS: http://localhost:8090/realms/master/protocol/openid-connect/certs"; \ |
| 48 | + echo ""; \ |
| 49 | + echo "========================================"; \ |
| 50 | + else \ |
| 51 | + echo "Keycloak is not installed. Run: make keycloak-install"; \ |
| 52 | + fi |
| 53 | + |
| 54 | +.PHONY: keycloak-logs |
| 55 | +keycloak-logs: ## Tail Keycloak logs |
| 56 | + @kubectl logs -n $(KEYCLOAK_NAMESPACE) -l app=keycloak -f --tail=100 |
0 commit comments