mirror of
https://github.com/keycloak/keycloak.git
synced 2026-05-26 13:50:48 +00:00
fix: promotes keycloak and realm import to v2beta1 (#45840)
closes: #45795 Signed-off-by: Steve Hawkins <shawkins@redhat.com>
This commit is contained in:
@@ -178,8 +178,10 @@ jobs:
|
||||
- name: Deploy an example Keycloak and wait for it to be ready
|
||||
working-directory: operator/scripts
|
||||
run: |
|
||||
./check-crd-installed.sh keycloaks
|
||||
./check-crd-installed.sh keycloakrealmimports
|
||||
./check-crd-installed.sh keycloaks.v2alpha1.k8s.keycloak.org
|
||||
./check-crd-installed.sh keycloakrealmimports.v2alpha1.k8s.keycloak.org
|
||||
./check-crd-installed.sh keycloaks.v2beta1.k8s.keycloak.org
|
||||
./check-crd-installed.sh keycloakrealmimports.v2beta1.k8s.keycloak.org
|
||||
./deploy-examples.sh
|
||||
|
||||
- name: Single namespace cleanup
|
||||
|
||||
@@ -318,6 +318,13 @@ Running {project_name} on a database that is not using UTF-8 as a charset is now
|
||||
|
||||
In the current version {project_name} will log a warning if the database is not configured to use UTF-8 encoding. Future versions might refuse to work with database that is not configured to use UTF-8 encoding.
|
||||
|
||||
=== `Keycloak` and `KeycloakRealmImport` CRDs v2beta1 version
|
||||
|
||||
To better capture the maturity of Operator CRDs for the `Keycloak` and `KeycloakRealmImport`, the resources now include a `v2beta1` version.
|
||||
The previous `v2alpha1` version for these resources is deprecated but still served. You can keep using it but we recommend upgrading to `v2beta1` at your earliest convenience.
|
||||
There are currently no differences in the schema between the two versions,
|
||||
so you will just need to update the relevant `apiVersion` references.
|
||||
|
||||
// ------------------------ Removed features ------------------------ //
|
||||
== Removed features
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ metadata:
|
||||
namespace: keycloak-cluster
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
name: keycloak
|
||||
minReplicas: 2
|
||||
|
||||
@@ -45,7 +45,7 @@ data:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-actionTokens[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: actiontokens
|
||||
@@ -73,7 +73,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-authenticationSessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: authenticationsessions
|
||||
@@ -106,7 +106,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-clientSessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: clientsessions
|
||||
@@ -139,7 +139,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-loginFailures[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: loginfailures
|
||||
@@ -172,7 +172,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-offlineClientSessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: offlineclientsessions
|
||||
@@ -205,7 +205,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-offlineSessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: offlinesessions
|
||||
@@ -238,7 +238,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-sessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: sessions
|
||||
@@ -271,7 +271,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-work[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: work
|
||||
|
||||
@@ -179,7 +179,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-actionTokens[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: actiontokens
|
||||
@@ -214,7 +214,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-authenticationSessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: authenticationsessions
|
||||
@@ -254,7 +254,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-loginFailures[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: loginfailures
|
||||
@@ -294,7 +294,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-work[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: work
|
||||
|
||||
@@ -179,7 +179,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-actionTokens[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: actiontokens
|
||||
@@ -214,7 +214,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-authenticationSessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: authenticationsessions
|
||||
@@ -254,7 +254,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-loginFailures[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: loginfailures
|
||||
@@ -294,7 +294,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-work[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: work
|
||||
|
||||
@@ -191,7 +191,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-actionTokens[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: actiontokens
|
||||
@@ -226,7 +226,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-authenticationSessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: authenticationsessions
|
||||
@@ -266,7 +266,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-clientSessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: clientsessions
|
||||
@@ -306,7 +306,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-loginFailures[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: loginfailures
|
||||
@@ -346,7 +346,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-offlineClientSessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: offlineclientsessions
|
||||
@@ -386,7 +386,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-offlineSessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: offlinesessions
|
||||
@@ -426,7 +426,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-sessions[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: sessions
|
||||
@@ -466,7 +466,7 @@ spec:
|
||||
---
|
||||
# Source: ispn-helm/templates/infinispan.yaml
|
||||
# tag::infinispan-cache-work[]
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Cache
|
||||
metadata:
|
||||
name: work
|
||||
|
||||
@@ -89,7 +89,7 @@ spec:
|
||||
# There are several callouts in this YAML marked with `# <1>' etc. See 'running/keycloak-deployment.adoc` for the details.
|
||||
# tag::keycloak[]
|
||||
# tag::keycloak-ispn[]
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
labels:
|
||||
|
||||
@@ -76,7 +76,7 @@ spec:
|
||||
# There are several callouts in this YAML marked with `# <1>' etc. See 'running/keycloak-deployment.adoc` for the details.
|
||||
# tag::keycloak[]
|
||||
# tag::keycloak-ispn[]
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
labels:
|
||||
|
||||
@@ -23,7 +23,7 @@ The following `Batch` CR takes a site offline as described in the operational pr
|
||||
|
||||
[source,yaml,subs="+attributes"]
|
||||
----
|
||||
apiVersion: infinispan.org/v2alpha1
|
||||
apiVersion: infinispan.org/v2beta1
|
||||
kind: Batch
|
||||
metadata:
|
||||
name: take-offline
|
||||
|
||||
+1
-1
@@ -274,7 +274,7 @@ Perform the following on each of the {project_name} clusters:
|
||||
[source,yaml]
|
||||
----
|
||||
<#noparse>
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: keycloak
|
||||
|
||||
@@ -58,7 +58,7 @@ kubectl --namespace keycloak create secret generic keycloak-db-secret \
|
||||
+
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
labels:
|
||||
|
||||
@@ -68,7 +68,7 @@ The Keycloak CR has first-class citizen configuration options for telemetry. The
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
|
||||
@@ -18,7 +18,7 @@ similar pattern in the CR and use the `httpsPort` field. The following example i
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -86,7 +86,7 @@ The values can be expressed as plain text strings or Secret object references as
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -117,7 +117,7 @@ Here's an example setting JAVA_OPTS_APPEND:
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -156,7 +156,7 @@ The following example illustrates injecting labels, annotations, volumes, and vo
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -184,7 +184,7 @@ The Keycloak CR exposes options to set periodSeconds and failureThreshold on eac
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -209,7 +209,7 @@ Specifically, you can disable the hostname and TLS as shown in the following exa
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -235,7 +235,7 @@ You can specify your custom values based on your requirements as follows:
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -263,7 +263,7 @@ An example utilizing all scheduling fields:
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -306,7 +306,7 @@ For example the following will remove the use of any server Pod scheduling for t
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -325,7 +325,7 @@ You can specify the `port` and the `additionalOptions` as follows:
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -351,7 +351,7 @@ Use the truststores stanza of the Keycloak spec to specify Secrets or ConfigMaps
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -414,7 +414,7 @@ You can change tracing configuration via Keycloak CR fields as follows:
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -457,7 +457,7 @@ To disable the NetworkPolicy, set `spec.networkPolicy.enabled` in your Keycloak
|
||||
.Keycloak CR with Network Policies enabled
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -473,7 +473,7 @@ These rules specify from where (the source) the traffic is allowed, and it is po
|
||||
.Extended Network Policy configuration
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -508,7 +508,7 @@ Based on those requirements, the Keycloak CR would be like this (most parts are
|
||||
.Keycloak CR
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -542,7 +542,7 @@ If you need to set custom labels or annotations to keycloak service you can do t
|
||||
.Custom service labels and annotations
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -604,7 +604,7 @@ A ServiceMonitor is only created if the `metrics-enabled` option is set.
|
||||
.Enable Keycloak metrics
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -657,7 +657,7 @@ You can configure the `interval` and `scrapeTimeout` fields and also `annotation
|
||||
.Modified ServiceMonitor
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -681,7 +681,7 @@ You can prevent the Operator from creating a ServiceMonitor by configuring the K
|
||||
.Disabled ServiceMonitor
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
|
||||
@@ -143,7 +143,7 @@ You can customize several fields using the Keycloak CRD. For a basic deployment,
|
||||
Create YAML file `example-kc.yaml`:
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -206,7 +206,7 @@ Edit YAML file `example-kc.yaml`:
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -233,7 +233,7 @@ Example TLS Termination YAML:
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -266,7 +266,7 @@ Edit YAML file `example-kc.yaml`:
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -305,7 +305,7 @@ If you Ingress implementation sets and overwrites either `Forwarded` or `X-Forwa
|
||||
in the Keycloak CR as follows:
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
|
||||
@@ -32,7 +32,7 @@ To provide a custom image, you define the `image` field in the Keycloak CR as sh
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
@@ -56,7 +56,7 @@ While it is considered a best practice to use a pre-augmented image, if you want
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
|
||||
@@ -26,7 +26,7 @@ The following is an example of a Realm Import Custom Resource (CR):
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: KeycloakRealmImport
|
||||
metadata:
|
||||
name: my-realm-kc
|
||||
@@ -53,7 +53,7 @@ Create YAML file `example-realm-import.yaml`:
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: KeycloakRealmImport
|
||||
metadata:
|
||||
name: my-realm-kc
|
||||
@@ -102,7 +102,7 @@ The `KeycloakRealmImport` CR allows you to leverage this functionality via the `
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: KeycloakRealmImport
|
||||
metadata:
|
||||
name: my-realm-kc
|
||||
|
||||
@@ -32,7 +32,7 @@ Specify the update strategy within the `spec` section of the Keycloak CR YAML de
|
||||
|
||||
[source,yaml]
|
||||
----
|
||||
apiVersion: k8s.keycloak.org/v2alpha1
|
||||
apiVersion: k8s.keycloak.org/v2beta1
|
||||
kind: Keycloak
|
||||
metadata:
|
||||
name: example-kc
|
||||
|
||||
@@ -46,6 +46,10 @@
|
||||
</dependency>
|
||||
|
||||
<!-- Fabric8 -->
|
||||
<dependency>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>crd-generator-api-v2</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>generator-annotations</artifactId>
|
||||
|
||||
@@ -69,6 +69,11 @@ yq ea -i '.spec.install.spec.deployments[0].spec.template.metadata.labels.name =
|
||||
yq ea -i '.spec.install.spec.deployments[0].spec.template.spec.containers[0].env += [{"name": "POD_NAME", "valueFrom": {"fieldRef": {"fieldPath": "metadata.name"}}}]' "$CSV_PATH"
|
||||
yq ea -i '.spec.install.spec.deployments[0].spec.template.spec.containers[0].env += [{"name": "OPERATOR_NAME", "value": "keycloak-operator"}]' "$CSV_PATH"
|
||||
|
||||
# Create entries for both alpha1 and beta1 - the indexing is dependent on whether the client crs are present
|
||||
yq ea -i '.spec.customresourcedefinitions.owned += [.spec.customresourcedefinitions.owned[] | select(.version == "v2beta1")]' "$CSV_PATH"
|
||||
yq ea -i '.spec.customresourcedefinitions.owned[2].version = "v2alpha1"' "$CSV_PATH"
|
||||
yq ea -i '.spec.customresourcedefinitions.owned[3].version = "v2alpha1"' "$CSV_PATH"
|
||||
|
||||
{ set +x; } 2>/dev/null
|
||||
echo ""
|
||||
echo "Created OLM bundle ok!"
|
||||
|
||||
@@ -24,11 +24,12 @@ import java.util.TreeMap;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.ValueOrSecret;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.ValueOrSecret;
|
||||
|
||||
public final class Constants {
|
||||
public static final String CRDS_GROUP = "k8s.keycloak.org";
|
||||
public static final String CRDS_VERSION = "v2alpha1";
|
||||
public static final String CRDS_VERSION = "v2beta1";
|
||||
public static final String CRDS_VERSION_ALPHA = "v2alpha1";
|
||||
public static final String SHORT_NAME = "kc";
|
||||
public static final String NAME = "keycloak";
|
||||
public static final String PLURAL_NAME = "keycloaks";
|
||||
|
||||
@@ -21,8 +21,8 @@ import java.util.Optional;
|
||||
|
||||
import org.keycloak.operator.controllers.KeycloakDistConfigurator;
|
||||
import org.keycloak.operator.controllers.WatchedResources;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.update.UpdateType;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.apps.StatefulSet;
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package org.keycloak.operator;
|
||||
|
||||
import io.fabric8.crdv2.generator.CRDPostProcessor;
|
||||
import io.fabric8.kubernetes.api.model.HasMetadata;
|
||||
import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition;
|
||||
|
||||
public class MultiVersionCRDPostProcessor implements CRDPostProcessor {
|
||||
|
||||
@Override
|
||||
public HasMetadata process(HasMetadata crd, String crdSpecVersion) {
|
||||
CustomResourceDefinition v1crd = (CustomResourceDefinition) crd;
|
||||
var mainVersion = v1crd.getSpec().getVersions().get(0);
|
||||
if (!Constants.CRDS_VERSION_ALPHA.equals(mainVersion.getName())) {
|
||||
v1crd.getSpec().getVersions()
|
||||
.add(mainVersion.edit().withDeprecated()
|
||||
.withDeprecationWarning("Please migrate to " + Constants.CRDS_VERSION)
|
||||
.withName(Constants.CRDS_VERSION_ALPHA).withStorage(false).build());
|
||||
}
|
||||
return v1crd;
|
||||
}
|
||||
|
||||
}
|
||||
+2
-2
@@ -5,8 +5,8 @@ import java.util.UUID;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.BootstrapAdminSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.BootstrapAdminSpec;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.Secret;
|
||||
import io.fabric8.kubernetes.api.model.SecretBuilder;
|
||||
|
||||
+7
-7
@@ -64,11 +64,11 @@ import org.keycloak.operator.crds.v2alpha1.client.KeycloakClientSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.client.KeycloakClientStatus;
|
||||
import org.keycloak.operator.crds.v2alpha1.client.KeycloakClientStatusBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.client.KeycloakClientStatusCondition;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusCondition;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.FeatureSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusCondition;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.FeatureSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.representations.admin.v2.BaseClientRepresentation;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.Secret;
|
||||
@@ -85,7 +85,7 @@ import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
|
||||
import io.quarkus.logging.Log;
|
||||
import org.apache.http.conn.ssl.NoopHostnameVerifier;
|
||||
|
||||
import static org.keycloak.operator.crds.v2alpha1.CRDUtils.isTlsConfigured;
|
||||
import static org.keycloak.operator.crds.v2beta1.CRDUtils.isTlsConfigured;
|
||||
|
||||
/**
|
||||
* Base class for Client controllers.
|
||||
@@ -214,7 +214,7 @@ public abstract class KeycloakClientBaseController<R extends CustomResource<? ex
|
||||
|
||||
return updateControl;
|
||||
}
|
||||
|
||||
|
||||
private boolean isServerReady(Context<R> context, R resource) {
|
||||
StatefulSet existingDeployment = context.getClient().resources(StatefulSet.class)
|
||||
.inNamespace(resource.getMetadata().getNamespace()).withName(resource.getSpec().getKeycloakCRName())
|
||||
|
||||
@@ -28,12 +28,12 @@ import org.keycloak.operator.Config;
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.ContextUtils;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatus;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HostnameSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HostnameSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatus;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HostnameSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HostnameSpecBuilder;
|
||||
import org.keycloak.operator.update.UpdateLogicFactory;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.ConfigMap;
|
||||
|
||||
+16
-16
@@ -37,19 +37,19 @@ import org.keycloak.operator.Config;
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.ContextUtils;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.ValueOrSecret;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.CacheSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpManagementSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.ProbeSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.SchedulingSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.Truststore;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.TruststoreSource;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.UnsupportedSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.UpdateSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.ValueOrSecret;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.CacheSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpManagementSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.ProbeSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.SchedulingSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.Truststore;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.TruststoreSource;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.UnsupportedSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.UpdateSpec;
|
||||
import org.keycloak.operator.update.impl.RecreateOnImageChangeUpdateLogic;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.ConfigMap;
|
||||
@@ -77,9 +77,9 @@ import io.quarkus.logging.Log;
|
||||
|
||||
import static org.keycloak.operator.Utils.addResources;
|
||||
import static org.keycloak.operator.controllers.KeycloakDistConfigurator.getKeycloakOptionEnvVarName;
|
||||
import static org.keycloak.operator.crds.v2alpha1.CRDUtils.LEGACY_MANAGEMENT_ENABLED;
|
||||
import static org.keycloak.operator.crds.v2alpha1.CRDUtils.isTlsConfigured;
|
||||
import static org.keycloak.operator.crds.v2alpha1.deployment.spec.TelemetrySpec.convertResourceAttributesToString;
|
||||
import static org.keycloak.operator.crds.v2beta1.CRDUtils.LEGACY_MANAGEMENT_ENABLED;
|
||||
import static org.keycloak.operator.crds.v2beta1.CRDUtils.isTlsConfigured;
|
||||
import static org.keycloak.operator.crds.v2beta1.deployment.spec.TelemetrySpec.convertResourceAttributesToString;
|
||||
|
||||
@KubernetesDependent(
|
||||
informer = @Informer(labelSelector = Constants.DEFAULT_LABELS_AS_STRING)
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ package org.keycloak.operator.controllers;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.Service;
|
||||
import io.fabric8.kubernetes.api.model.ServiceBuilder;
|
||||
|
||||
+13
-13
@@ -36,19 +36,19 @@ import jakarta.enterprise.context.ApplicationScoped;
|
||||
|
||||
import org.keycloak.common.util.CollectionUtil;
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.ValueOrSecret;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.BootstrapAdminSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.DatabaseSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.FeatureSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HostnameSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpManagementSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.ProxySpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.TelemetrySpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.TracingSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.TransactionsSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.ValueOrSecret;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.BootstrapAdminSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.DatabaseSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.FeatureSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HostnameSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpManagementSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.ProxySpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.TelemetrySpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.TracingSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.TransactionsSpec;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.EnvVar;
|
||||
import io.fabric8.kubernetes.api.model.EnvVarBuilder;
|
||||
|
||||
+3
-3
@@ -23,8 +23,8 @@ import java.util.Optional;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.IngressSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.IngressSpec;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
|
||||
import io.fabric8.kubernetes.api.model.networking.v1.IngressBuilder;
|
||||
@@ -39,7 +39,7 @@ import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition;
|
||||
import io.quarkus.logging.Log;
|
||||
import org.jboss.logging.Logger;
|
||||
|
||||
import static org.keycloak.operator.crds.v2alpha1.CRDUtils.isTlsConfigured;
|
||||
import static org.keycloak.operator.crds.v2beta1.CRDUtils.isTlsConfigured;
|
||||
|
||||
@KubernetesDependent(
|
||||
informer = @Informer(labelSelector = Constants.DEFAULT_LABELS_AS_STRING)
|
||||
|
||||
+6
-6
@@ -23,12 +23,12 @@ import java.util.function.Predicate;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpManagementSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.NetworkPolicySpec;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpManagementSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.NetworkPolicySpec;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.IntOrString;
|
||||
import io.fabric8.kubernetes.api.model.networking.v1.NetworkPolicy;
|
||||
|
||||
+4
-4
@@ -23,10 +23,10 @@ import jakarta.inject.Inject;
|
||||
import org.keycloak.operator.Config;
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.ContextUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportStatus;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportStatusBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImportStatus;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImportStatusBuilder;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.apps.StatefulSet;
|
||||
import io.fabric8.kubernetes.api.model.apps.StatefulSetStatus;
|
||||
|
||||
+6
-6
@@ -25,12 +25,12 @@ import java.util.Set;
|
||||
import org.keycloak.operator.Config;
|
||||
import org.keycloak.operator.ContextUtils;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.ImportSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.SchedulingSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.Placeholder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.ImportSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.SchedulingSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImportSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.Placeholder;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.Container;
|
||||
import io.fabric8.kubernetes.api.model.EnvVarBuilder;
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ package org.keycloak.operator.controllers;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImport;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.Secret;
|
||||
import io.fabric8.kubernetes.api.model.SecretBuilder;
|
||||
|
||||
+4
-4
@@ -22,9 +22,9 @@ import java.util.Optional;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpManagementSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpManagementSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpSpec;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.IntOrString;
|
||||
import io.fabric8.kubernetes.api.model.Service;
|
||||
@@ -36,7 +36,7 @@ import io.javaoperatorsdk.operator.api.reconciler.Context;
|
||||
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
|
||||
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
|
||||
|
||||
import static org.keycloak.operator.crds.v2alpha1.CRDUtils.isTlsConfigured;
|
||||
import static org.keycloak.operator.crds.v2beta1.CRDUtils.isTlsConfigured;
|
||||
|
||||
@KubernetesDependent(
|
||||
informer = @Informer(labelSelector = Constants.DEFAULT_LABELS_AS_STRING)
|
||||
|
||||
+4
-4
@@ -7,8 +7,8 @@ import java.util.Optional;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.ServiceMonitorSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.ServiceMonitorSpec;
|
||||
|
||||
import io.fabric8.kubernetes.client.KubernetesClientException;
|
||||
import io.fabric8.kubernetes.client.Watcher;
|
||||
@@ -25,8 +25,8 @@ import io.quarkiverse.operatorsdk.annotations.CSVMetadata;
|
||||
import io.quarkus.logging.Log;
|
||||
|
||||
import static org.keycloak.operator.controllers.KeycloakDeploymentDependentResource.managementEndpoint;
|
||||
import static org.keycloak.operator.crds.v2alpha1.CRDUtils.METRICS_ENABLED;
|
||||
import static org.keycloak.operator.crds.v2alpha1.CRDUtils.configuredOptions;
|
||||
import static org.keycloak.operator.crds.v2beta1.CRDUtils.METRICS_ENABLED;
|
||||
import static org.keycloak.operator.crds.v2beta1.CRDUtils.configuredOptions;
|
||||
|
||||
@KubernetesDependent(
|
||||
informer = @Informer(labelSelector = Constants.DEFAULT_LABELS_AS_STRING)
|
||||
|
||||
+2
-2
@@ -82,7 +82,7 @@ import io.quarkiverse.operatorsdk.annotations.SharedCSVMetadata;
|
||||
"""
|
||||
[
|
||||
{
|
||||
"apiVersion": "k8s.keycloak.org/v2alpha1",
|
||||
"apiVersion": "k8s.keycloak.org/v2beta1",
|
||||
"kind": "Keycloak",
|
||||
"metadata": {
|
||||
"name": "example-keycloak",
|
||||
@@ -101,7 +101,7 @@ import io.quarkiverse.operatorsdk.annotations.SharedCSVMetadata;
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion": "k8s.keycloak.org/v2alpha1",
|
||||
"apiVersion": "k8s.keycloak.org/v2beta1",
|
||||
"kind": "KeycloakRealmImport",
|
||||
"metadata": {
|
||||
"name": "example-keycloak-realm-import",
|
||||
|
||||
+4
-4
@@ -31,10 +31,10 @@ import jakarta.enterprise.context.ApplicationScoped;
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.ContextUtils;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.UpdateSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.UpdateSpec;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.ContainerFluent;
|
||||
import io.fabric8.kubernetes.api.model.HasMetadata;
|
||||
|
||||
@@ -28,7 +28,7 @@ import java.util.stream.Stream;
|
||||
import jakarta.enterprise.context.ApplicationScoped;
|
||||
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.HasMetadata;
|
||||
import io.fabric8.kubernetes.api.model.apps.StatefulSet;
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.client;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.StatusCondition;
|
||||
import org.keycloak.operator.crds.v2beta1.StatusCondition;
|
||||
|
||||
// TODO: we may want to simply eliminate this until a specialization is needed
|
||||
public class KeycloakClientStatusCondition extends StatusCondition {
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ import io.sundr.builder.annotations.BuildableReference;
|
||||
displayName="KeycloakOIDCClient"
|
||||
)
|
||||
@Group(Constants.CRDS_GROUP)
|
||||
@Version(Constants.CRDS_VERSION)
|
||||
@Version(Constants.CRDS_VERSION_ALPHA)
|
||||
@Buildable(editableEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder",
|
||||
lazyCollectionInitEnabled = false, refs = {
|
||||
@BuildableReference(io.fabric8.kubernetes.api.model.ObjectMeta.class),
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ import io.sundr.builder.annotations.BuildableReference;
|
||||
displayName="KeycloakSAMLClient"
|
||||
)
|
||||
@Group(Constants.CRDS_GROUP)
|
||||
@Version(Constants.CRDS_VERSION)
|
||||
@Version(Constants.CRDS_VERSION_ALPHA)
|
||||
@Buildable(editableEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder",
|
||||
lazyCollectionInitEnabled = false, refs = {
|
||||
@BuildableReference(io.fabric8.kubernetes.api.model.ObjectMeta.class),
|
||||
|
||||
+5
-5
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1;
|
||||
package org.keycloak.operator.crds.v2beta1;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
@@ -25,10 +25,10 @@ import java.util.Optional;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.FeatureSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.FeatureSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpSpec;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import io.fabric8.kubernetes.api.model.Container;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1;
|
||||
package org.keycloak.operator.crds.v2beta1;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
+5
-10
@@ -14,7 +14,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
|
||||
@@ -28,20 +28,15 @@ import io.quarkiverse.operatorsdk.annotations.CSVMetadata;
|
||||
import io.sundr.builder.annotations.Buildable;
|
||||
import io.sundr.builder.annotations.BuildableReference;
|
||||
|
||||
@CSVMetadata(
|
||||
description="Represents a Keycloak Instance",
|
||||
displayName="Keycloak"
|
||||
)
|
||||
@CSVMetadata(description = "Represents a Keycloak Instance", displayName = "Keycloak")
|
||||
@Group(Constants.CRDS_GROUP)
|
||||
@Version(Constants.CRDS_VERSION)
|
||||
@Version(value = Constants.CRDS_VERSION, storage = true)
|
||||
@ShortNames(Constants.SHORT_NAME)
|
||||
@Plural(Constants.PLURAL_NAME)
|
||||
@Buildable(editableEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder",
|
||||
lazyCollectionInitEnabled = false, refs = {
|
||||
@Buildable(editableEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder", lazyCollectionInitEnabled = false, refs = {
|
||||
@BuildableReference(io.fabric8.kubernetes.api.model.ObjectMeta.class),
|
||||
@BuildableReference(io.fabric8.kubernetes.client.CustomResource.class),
|
||||
@BuildableReference(KeycloakSpec.class)
|
||||
})
|
||||
@BuildableReference(KeycloakSpec.class) })
|
||||
public class Keycloak extends CustomResource<KeycloakSpec, KeycloakStatus> implements Namespaced {
|
||||
|
||||
}
|
||||
+22
-22
@@ -14,34 +14,34 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.AdminSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.BootstrapAdminSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.CacheSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.DatabaseSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.FeatureSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HostnameSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpManagementSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.ImportSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.IngressSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.NetworkPolicySpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.ProbeSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.ProxySpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.SchedulingSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.ServiceMonitorSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.TelemetrySpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.TracingSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.TransactionsSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.Truststore;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.UnsupportedSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.UpdateSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.AdminSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.BootstrapAdminSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.CacheSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.DatabaseSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.FeatureSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HostnameSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpManagementSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HttpSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.ImportSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.IngressSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.NetworkPolicySpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.ProbeSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.ProxySpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.SchedulingSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.ServiceMonitorSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.TelemetrySpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.TracingSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.TransactionsSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.Truststore;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.UnsupportedSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.UpdateSpec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -27,7 +27,7 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.StatusCondition;
|
||||
import org.keycloak.operator.crds.v2beta1.StatusCondition;
|
||||
|
||||
/**
|
||||
* @author Vaclav Muzikar <vmuzikar@redhat.com>
|
||||
+2
-2
@@ -15,9 +15,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.StatusCondition;
|
||||
import org.keycloak.operator.crds.v2beta1.StatusCondition;
|
||||
|
||||
/**
|
||||
* @author Vaclav Muzikar <vmuzikar@redhat.com>
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.fabric8.kubernetes.api.model.ConfigMapKeySelector;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
+4
-4
@@ -14,12 +14,12 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakSpec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
+4
-4
@@ -15,15 +15,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakSpec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
+4
-4
@@ -15,15 +15,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakSpec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
+4
-4
@@ -1,10 +1,10 @@
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakSpec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
@@ -25,7 +25,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
import io.sundr.builder.annotations.Buildable;
|
||||
|
||||
import static org.keycloak.operator.crds.v2alpha1.deployment.spec.TelemetrySpec.convertResourceAttributesToString;
|
||||
import static org.keycloak.operator.crds.v2beta1.deployment.spec.TelemetrySpec.convertResourceAttributesToString;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Buildable(editableEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder")
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.fabric8.generator.annotation.Required;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
|
||||
+4
-4
@@ -15,15 +15,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.deployment.spec;
|
||||
package org.keycloak.operator.crds.v2beta1.deployment.spec;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakSpec;
|
||||
import org.keycloak.operator.update.UpdateStrategy;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.keycloak.operator.crds.v2alpha1.realmimport;
|
||||
package org.keycloak.operator.crds.v2beta1.realmimport;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.representations.idm.ComponentExportRepresentation;
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.keycloak.operator.crds.v2alpha1.realmimport;
|
||||
package org.keycloak.operator.crds.v2beta1.realmimport;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
+2
-2
@@ -14,14 +14,14 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.keycloak.operator.crds.v2alpha1.realmimport;
|
||||
package org.keycloak.operator.crds.v2beta1.realmimport;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
|
||||
import static org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportStatusCondition.DONE;
|
||||
import static org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImportStatusCondition.DONE;
|
||||
|
||||
public class KeycloakRealmImportStatus {
|
||||
private List<KeycloakRealmImportStatusCondition> conditions;
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.realmimport;
|
||||
package org.keycloak.operator.crds.v2beta1.realmimport;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
+2
-2
@@ -15,9 +15,9 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.realmimport;
|
||||
package org.keycloak.operator.crds.v2beta1.realmimport;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.StatusCondition;
|
||||
import org.keycloak.operator.crds.v2beta1.StatusCondition;
|
||||
|
||||
public class KeycloakRealmImportStatusCondition extends StatusCondition {
|
||||
public static final String DONE = "Done";
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.crds.v2alpha1.realmimport;
|
||||
package org.keycloak.operator.crds.v2beta1.realmimport;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -19,8 +19,8 @@ package org.keycloak.operator.update;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusAggregator;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.apps.StatefulSet;
|
||||
import io.javaoperatorsdk.operator.api.reconciler.Context;
|
||||
|
||||
@@ -21,8 +21,8 @@ import jakarta.enterprise.context.ApplicationScoped;
|
||||
import jakarta.inject.Inject;
|
||||
|
||||
import org.keycloak.operator.controllers.KeycloakUpdateJobDependentResource;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.UpdateSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.UpdateSpec;
|
||||
import org.keycloak.operator.update.impl.AutoUpdateLogic;
|
||||
import org.keycloak.operator.update.impl.ExplicitUpdateLogic;
|
||||
import org.keycloak.operator.update.impl.RecreateOnImageChangeUpdateLogic;
|
||||
|
||||
@@ -23,8 +23,8 @@ import java.util.Optional;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.keycloak.operator.controllers.KeycloakUpdateJobDependentResource;
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.ContainerState;
|
||||
import io.fabric8.kubernetes.api.model.ContainerStateTerminated;
|
||||
|
||||
@@ -26,9 +26,9 @@ import java.util.stream.Collectors;
|
||||
|
||||
import org.keycloak.operator.ContextUtils;
|
||||
import org.keycloak.operator.controllers.KeycloakDeploymentDependentResource;
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.update.UpdateLogic;
|
||||
import org.keycloak.operator.update.UpdateType;
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.keycloak.operator.ContextUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.UpdateSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.UpdateSpec;
|
||||
|
||||
import io.javaoperatorsdk.operator.api.reconciler.Context;
|
||||
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
|
||||
|
||||
+2
-2
@@ -21,8 +21,8 @@ import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.keycloak.operator.ContextUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.CRDUtils;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.update.UpdateType;
|
||||
|
||||
import io.fabric8.kubernetes.api.model.Container;
|
||||
|
||||
@@ -32,3 +32,5 @@ quarkus.operator-sdk.namespaces=JOSDK_WATCH_CURRENT
|
||||
quarkus.operator-sdk.generate-with-watched-namespaces=JOSDK_WATCH_CURRENT
|
||||
|
||||
quarkus.docker.additional-args=--ulimit,nofile=1024000
|
||||
|
||||
quarkus.operator-sdk.crd.post-processor=org.keycloak.operator.MultiVersionCRDPostProcessor
|
||||
|
||||
+2
-2
@@ -17,8 +17,8 @@
|
||||
|
||||
package org.keycloak.operator.controllers;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakBuilder;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
||||
@@ -21,11 +21,11 @@ import java.io.FileNotFoundException;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.client.KeycloakOIDCClient;
|
||||
import org.keycloak.operator.crds.v2alpha1.client.KeycloakOIDCClientBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusAggregator;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImportBuilder;
|
||||
import org.keycloak.operator.testsuite.integration.BaseOperatorTest;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
import org.keycloak.operator.update.UpdateStrategy;
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright 2022 Red Hat, Inc. and/or its affiliates
|
||||
* and other contributors as indicated by the @author tags.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.keycloak.operator.testsuite.apiserver;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.testsuite.integration.BaseOperatorTest;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.fabric8.kubeapitest.junit.EnableKubeAPIServer;
|
||||
import io.fabric8.kubernetes.client.KubernetesClient;
|
||||
import org.awaitility.Awaitility;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
@EnableKubeAPIServer
|
||||
public class CRDUpgradeTest {
|
||||
|
||||
static KubernetesClient client;
|
||||
|
||||
static final ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
@Test
|
||||
public void testKeycloak() throws FileNotFoundException {
|
||||
//start with the v2alpha1 crd
|
||||
K8sUtils.set(client, this.getClass().getResourceAsStream("/v2alpha1-keycloak-crd.yaml"));
|
||||
|
||||
Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS).ignoreExceptions().until(() -> {
|
||||
return !client.getApiResources("k8s.keycloak.org/v2alpha1").getResources().isEmpty();
|
||||
});
|
||||
|
||||
var resource = client.resource(getClass().getResourceAsStream("/example-keycloak.yaml"));
|
||||
var result = resource.create();
|
||||
assertEquals("k8s.keycloak.org/v2alpha1", result.getApiVersion());
|
||||
|
||||
// update the CRD
|
||||
BaseOperatorTest.createCRDs(client);
|
||||
|
||||
// ensure that v2beta1 works
|
||||
var kc = client.resources(Keycloak.class).withName("example-kc").get();
|
||||
assertEquals("k8s.keycloak.org/v2beta1", kc.getApiVersion());
|
||||
assertEquals("xforwarded", kc.getSpec().getProxySpec().getHeaders());
|
||||
}
|
||||
|
||||
}
|
||||
+6
-6
@@ -51,12 +51,12 @@ import org.keycloak.operator.controllers.KeycloakSAMLClientController;
|
||||
import org.keycloak.operator.controllers.KeycloakUpdateJobDependentResource;
|
||||
import org.keycloak.operator.crds.v2alpha1.client.KeycloakOIDCClient;
|
||||
import org.keycloak.operator.crds.v2alpha1.client.KeycloakSAMLClient;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatus;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportStatus;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatus;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImportStatus;
|
||||
import org.keycloak.operator.testsuite.apiserver.ApiServerHelper;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
|
||||
@@ -21,9 +21,9 @@ import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusCondition;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.CacheSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusCondition;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.CacheSpecBuilder;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.utils.CRAssert;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
|
||||
+4
-4
@@ -23,10 +23,10 @@ import java.util.function.Function;
|
||||
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.controllers.KeycloakServiceDependentResource;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusCondition;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportStatusCondition;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusCondition;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImportStatusCondition;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.utils.CRAssert;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
|
||||
+6
-6
@@ -37,12 +37,12 @@ import org.keycloak.operator.crds.v2alpha1.client.KeycloakOIDCClientBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.client.KeycloakOIDCClientRepresentation.AuthWithSecretRef;
|
||||
import org.keycloak.operator.crds.v2alpha1.client.KeycloakSAMLClient;
|
||||
import org.keycloak.operator.crds.v2alpha1.client.KeycloakSAMLClientBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.ValueOrSecret;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.AdminSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.BootstrapAdminSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.FeatureSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.TruststoreBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.ValueOrSecret;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.AdminSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.BootstrapAdminSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.FeatureSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.TruststoreBuilder;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
|
||||
|
||||
+6
-6
@@ -35,12 +35,12 @@ import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.controllers.KeycloakAdminSecretDependentResource;
|
||||
import org.keycloak.operator.controllers.KeycloakDistConfigurator;
|
||||
import org.keycloak.operator.controllers.KeycloakServiceDependentResource;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusCondition;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.ValueOrSecret;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.BootstrapAdminSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.FeatureSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HostnameSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusCondition;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.ValueOrSecret;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.BootstrapAdminSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.FeatureSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HostnameSpecBuilder;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.unit.WatchedResourcesTest;
|
||||
import org.keycloak.operator.testsuite.utils.CRAssert;
|
||||
|
||||
+4
-4
@@ -22,10 +22,10 @@ import java.util.Map;
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.controllers.KeycloakController;
|
||||
import org.keycloak.operator.controllers.KeycloakIngressDependentResource;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HostnameSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.IngressSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.IngressSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HostnameSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.IngressSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.IngressSpecBuilder;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
|
||||
|
||||
+3
-3
@@ -22,9 +22,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.keycloak.operator.controllers.KeycloakServiceDependentResource;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.FeatureSpec;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.UnsupportedSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.FeatureSpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.UnsupportedSpec;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.utils.TrustAllSSLContext;
|
||||
import org.keycloak.representations.idm.ClientRepresentation;
|
||||
|
||||
+4
-4
@@ -23,10 +23,10 @@ import java.util.Map;
|
||||
import org.keycloak.operator.Constants;
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.controllers.KeycloakController;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.HostnameSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.IngressSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.NetworkPolicySpec;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.HostnameSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.IngressSpecBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.NetworkPolicySpec;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.utils.CRAssert;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
package org.keycloak.operator.testsuite.integration;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.ValueOrSecret;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.ValueOrSecret;
|
||||
import org.keycloak.utils.StringUtil;
|
||||
|
||||
import io.quarkus.test.junit.QuarkusTest;
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@
|
||||
|
||||
package org.keycloak.operator.testsuite.integration;
|
||||
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.spec.TruststoreBuilder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.spec.TruststoreBuilder;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.unit.WatchedResourcesTest;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ import java.util.Collections;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.keycloak.operator.Utils;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.utils.CRAssert;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
@@ -42,7 +42,7 @@ import org.junit.jupiter.api.Test;
|
||||
|
||||
import static java.util.concurrent.TimeUnit.MINUTES;
|
||||
|
||||
import static org.keycloak.operator.crds.v2alpha1.deployment.KeycloakStatusCondition.HAS_ERRORS;
|
||||
import static org.keycloak.operator.crds.v2beta1.deployment.KeycloakStatusCondition.HAS_ERRORS;
|
||||
import static org.keycloak.operator.testsuite.utils.K8sUtils.deployKeycloak;
|
||||
import static org.keycloak.operator.testsuite.utils.K8sUtils.getResourceFromFile;
|
||||
|
||||
|
||||
+11
-14
@@ -25,9 +25,9 @@ import jakarta.inject.Inject;
|
||||
|
||||
import org.keycloak.operator.Config;
|
||||
import org.keycloak.operator.controllers.KeycloakServiceDependentResource;
|
||||
import org.keycloak.operator.crds.v2alpha1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2alpha1.realmimport.Placeholder;
|
||||
import org.keycloak.operator.crds.v2beta1.deployment.Keycloak;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImport;
|
||||
import org.keycloak.operator.crds.v2beta1.realmimport.Placeholder;
|
||||
import org.keycloak.operator.testsuite.apiserver.DisabledIfApiServerTest;
|
||||
import org.keycloak.operator.testsuite.utils.CRAssert;
|
||||
import org.keycloak.operator.testsuite.utils.K8sUtils;
|
||||
@@ -53,9 +53,9 @@ import static java.util.concurrent.TimeUnit.SECONDS;
|
||||
|
||||
import static org.keycloak.operator.Constants.KEYCLOAK_HTTPS_PORT;
|
||||
import static org.keycloak.operator.controllers.KeycloakDistConfigurator.getKeycloakOptionEnvVarName;
|
||||
import static org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportStatusCondition.DONE;
|
||||
import static org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportStatusCondition.HAS_ERRORS;
|
||||
import static org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportStatusCondition.STARTED;
|
||||
import static org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImportStatusCondition.DONE;
|
||||
import static org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImportStatusCondition.HAS_ERRORS;
|
||||
import static org.keycloak.operator.crds.v2beta1.realmimport.KeycloakRealmImportStatusCondition.STARTED;
|
||||
import static org.keycloak.operator.testsuite.utils.K8sUtils.deployKeycloak;
|
||||
import static org.keycloak.operator.testsuite.utils.K8sUtils.getResourceFromFile;
|
||||
import static org.keycloak.operator.testsuite.utils.K8sUtils.inClusterCurl;
|
||||
@@ -134,14 +134,11 @@ public class RealmImportTest extends BaseOperatorTest {
|
||||
deployKeycloak(k8sclient, kc, false);
|
||||
|
||||
// Act
|
||||
k8sclient.getKubernetesSerialization().registerKubernetesResource(KeycloakRealmImport.class);
|
||||
K8sUtils.set(k8sclient, getClass().getResourceAsStream("/example-realm.yaml"), obj -> {
|
||||
KeycloakRealmImport realmImport = (KeycloakRealmImport) obj;
|
||||
realmImport.getSpec().getRealm().setSmtpServer(Map.of("port", "${MY_SMTP_PORT}", "host", "${MY_SMTP_SERVER}", "from", "admin@keycloak.org"));
|
||||
realmImport.getSpec().setPlaceholders(Map.of("MY_SMTP_PORT", new Placeholder(new SecretKeySelectorBuilder().withName("keycloak-smtp-secret").withKey("SMTP_PORT").build()),
|
||||
"MY_SMTP_SERVER", new Placeholder(new SecretKeySelectorBuilder().withName("keycloak-smtp-secret").withKey("SMTP_SERVER").build())));
|
||||
return realmImport;
|
||||
});
|
||||
KeycloakRealmImport realmImport = k8sclient.getKubernetesSerialization().unmarshal(getClass().getResourceAsStream("/example-realm.yaml"), KeycloakRealmImport.class);
|
||||
realmImport.getSpec().getRealm().setSmtpServer(Map.of("port", "${MY_SMTP_PORT}", "host", "${MY_SMTP_SERVER}", "from", "admin@keycloak.org"));
|
||||
realmImport.getSpec().setPlaceholders(Map.of("MY_SMTP_PORT", new Placeholder(new SecretKeySelectorBuilder().withName("keycloak-smtp-secret").withKey("SMTP_PORT").build()),
|
||||
"MY_SMTP_SERVER", new Placeholder(new SecretKeySelectorBuilder().withName("keycloak-smtp-secret").withKey("SMTP_SERVER").build())));
|
||||
K8sUtils.set(k8sclient, realmImport);
|
||||
|
||||
// Assert
|
||||
var envvars = assertWorkingRealmImport(kc);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user