This repository contains Kubernetes manifests for deploying Keycloak, an open-source Identity and Access Management (IAM) solution. The configuration uses an Nginx Ingress Controller to expose Keycloak to the public internet securely.
- A Kubernetes cluster.
kubectl
configured to interact with your cluster.- Nginx Ingress Controller installed in your cluster.
- Domain name (e.g.,
domain.com
) pointing to your ingress controller's IP address.
This setup includes:
- Deployment: Runs Keycloak in development mode (
start-dev
). - Service: Exposes Keycloak within the cluster.
- Ingress: Provides external access to Keycloak via the configured domain.
deployment.yaml
: Defines the Keycloak Deployment, Service, and Ingress resources.
The Keycloak container is configured with the following environment variables:
Variable | Value | Description |
---|---|---|
KEYCLOAK_ADMIN |
admin |
Default admin username. |
KEYCLOAK_ADMIN_PASSWORD |
admin |
Default admin password. |
KC_HOSTNAME |
https://domain.com |
External hostname for Keycloak. |
KC_PROXY |
edge |
Proxy setting for handling SSL termination. |
-
Clone this repository:
git clone https://github.com/your-username/your-repo.git cd your-repo
-
Apply the manifests:
kubectl apply -f deployment.yaml
-
Verify that all resources are created:
kubectl get all
-
Access Keycloak at
https://domain.com
. Use the admin credentials (admin/admin
) to log in.