This repository contains the necessary configurations to deploy and manage a Keycloak instance with Grafana and supporting infrastructure. It uses tools like Helm, Kustomize, Crossplane, and Kubernetes to manage and automate the provisioning of these resources.
Before using this repository, ensure you have the following tools installed:
- kubectl – Kubernetes command-line tool.
- Helm – Package manager for Kubernetes.
- Kustomize – Tool for customizing Kubernetes YAML configurations.
- Crossplane CLI (optional, for managing resources through Crossplane).
- bash – For running scripts.
You also need access to a Kubernetes cluster and necessary permissions to deploy resources.
Ensure that your Kubernetes cluster is up and running. You can use any Kubernetes provider, such as Minikube, EKS, GKE, or AKS.
Before deploying, you may need to configure Helm and Kustomize. The repository includes several Helm and Kustomize configurations to deploy Keycloak, Grafana, and the infrastructure.
To deploy Keycloak, use the Kustomize tool for the resources in the keycloak-instance/
directory:
- Apply the Keycloak resources:
kubectl apply -k keycloak-instance/
This will deploy Keycloak, set up the database, and create the associated secrets.
- Apply Crossplane resources:
helmfile apply -f crossplane/helmfile.yaml
This will configure Crossplane with the necessary provider and resource management configurations for Keycloak.
kubectl apply -k keycloak-provisioning
To deploy Grafana, use Helmfile for the resources in the grafana/
directory:
- Apply the Grafana configuration with Helm:
helmfile apply -f grafana/helmfile.yaml
This will install and configure Grafana using the provided values in grafana-values.yaml
.