ProviderConfig
ProviderConfig Reference
The ProviderConfig resource stores connection details for a Keycloak instance.
API Details
| Field | Value |
|---|---|
| API Group | keycloak.crossplane.io |
| API Version | v1beta1 |
| Kind | ProviderConfig |
| Scope | Cluster |
Specification
apiVersion: keycloak.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
name: keycloak-provider-config
spec:
credentials:
source: Secret
secretRef:
name: keycloak-credentials # Name of the Secret
key: credentials # Key within the Secret
namespace: crossplane-system # Namespace of the SecretCredential Source Options
JSON Format (Single Key)
The most common approach — all settings in a single JSON object:
apiVersion: v1
kind: Secret
metadata:
name: keycloak-credentials
namespace: crossplane-system
type: Opaque
stringData:
credentials: |
{
"client_id": "admin-cli",
"username": "admin",
"password": "admin",
"url": "https://keycloak.example.com",
"base_path": "/auth",
"realm": "master"
}Flat Key Format
Individual keys for each setting:
apiVersion: v1
kind: Secret
metadata:
name: keycloak-credentials
namespace: crossplane-system
type: Opaque
stringData:
client_id: "admin-cli"
username: "admin"
password: "admin"
url: "https://keycloak.example.com"
base_path: "/auth"
realm: "master"Client Credentials Grant
For service-to-service authentication without a username/password:
apiVersion: v1
kind: Secret
metadata:
name: keycloak-credentials
namespace: crossplane-system
type: Opaque
stringData:
credentials: |
{
"client_id": "my-service-account",
"client_secret": "secret-value",
"url": "https://keycloak.example.com",
"realm": "master"
}Multiple Instances
You can manage multiple Keycloak instances by creating multiple ProviderConfig resources:
apiVersion: keycloak.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
name: keycloak-staging
spec:
credentials:
source: Secret
secretRef:
name: keycloak-staging-credentials
key: credentials
namespace: crossplane-system
---
apiVersion: keycloak.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
name: keycloak-production
spec:
credentials:
source: Secret
secretRef:
name: keycloak-production-credentials
key: credentials
namespace: crossplane-systemThen reference the appropriate config in each resource:
spec:
providerConfigRef:
name: keycloak-production