You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+24-15Lines changed: 24 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
# Provider keycloak
2
2
`provider-keycloak` is an open-source [Crossplane](https://crossplane.io/) provider declaratively configuring [Keycloak](https://github.com/keycloak/keycloak).
3
-
This provider is generated by using [Upjet](https://github.com/crossplane/upjet) building on the existing [Keycloak Terraform Provider](https://github.com/keycloak/terraform-provider-keycloak).
3
+
This provider is generated by using [Upjet](https://github.com/crossplane/upjet) building on the existing [Keycloak Terraform Provider](https://github.com/keycloak/terraform-provider-keycloak).
4
4
It is installed into a Crossplane control plane and adds the following new functionality:
5
5
6
6
* Custom Resource Definitions (CRDs) that model Keycloak configurations (e.g. realms, clients, roles, protocol mappers, etc.). You can see the full list of managed resources at the [marketplace](https://marketplace.upbound.io/providers/crossplane-contrib/provider-keycloak).
7
-
* Controller to provision these resources in Keycloak based on the users desired state captured in CRDs they create. Reconciling them when the actual state and the desired states are drifting apart.
7
+
* Controller to provision these resources in Keycloak based on the users desired state captured in CRDs they create. Reconciling them when the actual state and the desired states are drifting apart.
8
8
9
9
Check out the examples in the `examples` directory for more information on how to use this provider.
We also support DeploymentRuntimeConfig to enable additional features in the provider.
34
34
35
35
```yaml
36
-
---
36
+
---
37
37
apiVersion: pkg.crossplane.io/v1beta1
38
38
kind: DeploymentRuntimeConfig
39
39
metadata:
@@ -70,7 +70,7 @@ spec:
70
70
71
71
72
72
73
-
### Configuration
73
+
### Configuration
74
74
75
75
- For each keycloak instance you need one or more `ProviderConfig` resources.
76
76
- The `ProviderConfig` resource is used to store the keycloak API server URL, credentials, and other configuration details that are required to connect to the keycloak API server.
@@ -95,7 +95,7 @@ kind: Secret
95
95
metadata:
96
96
name: keycloak-credentials
97
97
namespace: crossplane-system
98
-
labels:
98
+
labels:
99
99
type: provider-credentials
100
100
type: Opaque
101
101
stringData:
@@ -112,6 +112,15 @@ stringData:
112
112
113
113
The secret `keycloak-credentials` contains the keycloak API server URL, credentials, and other configuration details that are required to connect to the keycloak API server. **It supports the same fields as the [terraform provider configuration](https://registry.terraform.io/providers/mrparkers/keycloak/latest/docs#argument-reference)**
114
114
115
+
`url`, optional `admin_url`, and optional `base_path` are validated and normalized by this provider before configuring the Terraform provider:
116
+
117
+
- `url`and `admin_url` must be absolute URLs with scheme and host (for example `https://keycloak.example.com`).
118
+
- `url`and `admin_url` should not include query parameters or fragments.
119
+
- Trailing `/` in `url` and `admin_url` is removed automatically.
120
+
- `base_path`must be empty or start with `/` (for example `/auth`).
121
+
- `base_path: "/"` is normalized to empty string to avoid double-slash request paths.
122
+
- Trailing `/` in non-root `base_path` is removed automatically.
123
+
115
124
As an alternative to using the embedded JSON format shown above, you can also place settings in a plain Kubernetes secret like this:
- `kubectl get crd | grep keycloak.crossplane.io`to list all the CRDs provided by the provider
141
150
- `kubectl explain <CRD_NAME>`for docs on the CLI
142
151
- You can also see the CRDs in the `package/crds` directory
143
152
144
153
145
-
### Functions and Compositions:
154
+
### Functions and Compositions:
146
155
147
156
- [function-keycloak-builtin-objects](https://gitlab.com/corewire/images/crossplane/function-keycloak-builtin-objects) - The function is used to import the builtin objects of a keycloak, e.g. clients and roles. Since v3.0 it also offers the possibility to adapt some default config. Everything you need to know is in the README of the repository.
**Hint:** `TERRAFORM_PROVIDER_VERSION` must be a Release. Releases can be found here: `https://github.com/<owner>/terraform-provider-keycloak/releases`.
200
-
Every ReleaseName should have the prefix "v" (i.e 'v1.0.0'). But if you specify the `TERRAFORM_PROVIDER_VERSION` you need to
208
+
**Hint:** `TERRAFORM_PROVIDER_VERSION` must be a Release. Releases can be found here: `https://github.com/<owner>/terraform-provider-keycloak/releases`.
209
+
Every ReleaseName should have the prefix "v" (i.e 'v1.0.0'). But if you specify the `TERRAFORM_PROVIDER_VERSION` you need to
and installs crossplane, keycloak and the official crossplane provider
247
256
via ArgoCD (for more options run script with `--help`)
@@ -361,7 +370,7 @@ This is used for marking an MR as test for automated tests. [Upjet based control
361
370
362
371
2 - restart provider (scale down, scale up)
363
372
364
-
3 - Clear `status.conditions` of all resources under test with
373
+
3 - Clear `status.conditions` of all resources under test with
365
374
366
375
4 - Set `uptest-old-id` annotation of all resources under test to `.status.atProvider.id`
367
376
@@ -373,7 +382,7 @@ This is used for marking an MR as test for automated tests. [Upjet based control
373
382
374
383
#### Delete Step
375
384
376
-
1 - Delete all resources under test and wait for deletion
385
+
1 - Delete all resources under test and wait for deletion
377
386
378
387
379
388
### Add Tests
@@ -391,7 +400,7 @@ See more details [here](https://github.com/crossplane/uptest?tab=readme-ov-file#
391
400
392
401
Define the available Versions of the resource and implement the [Conversion strategies](https://github.com/crossplane/upjet/blob/main/docs/managing-crd-versions.md#conversion-strategies).
0 commit comments