Skip to content

Commit

Permalink
keycloakCRName and realm are no longer marked as required in Keyc…
Browse files Browse the repository at this point in the history
…loakRealmImport CRD (#21634)

Closes #21607

(cherry picked from commit 6a3ea1a)
  • Loading branch information
vmuzikar committed Jul 17, 2023
1 parent c7920ee commit 1c56f9e
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,15 @@
package org.keycloak.operator.crds.v2alpha1.realmimport;

import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import io.fabric8.generator.annotation.Required;
import org.keycloak.representations.idm.RealmRepresentation;

import jakarta.validation.constraints.NotNull;

public class KeycloakRealmImportSpec {

@NotNull
@Required
@JsonPropertyDescription("The name of the Keycloak CR to reference, in the same namespace.")
private String keycloakCRName;
@NotNull
@Required
@JsonPropertyDescription("The RealmRepresentation to import into Keycloak.")
private RealmRepresentation realm;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import io.fabric8.junit.jupiter.api.KubernetesTest;
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientException;
import io.fabric8.kubernetes.client.dsl.Resource;

import org.junit.jupiter.api.BeforeAll;
Expand All @@ -30,8 +31,10 @@
import java.io.FileNotFoundException;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.keycloak.operator.crds.v2alpha1.realmimport.KeycloakRealmImportBuilder;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;

@KubernetesTest
public class CRDTest {
Expand All @@ -50,6 +53,20 @@ public void testRealmImport() {
roundTrip("/test-serialization-realmimport-cr.yml", KeycloakRealmImport.class);
}

@Test
public void testRealmImportWithoutRequiredFields() {
KeycloakRealmImport cr = new KeycloakRealmImportBuilder()
.withNewMetadata()
.withName("invalid-realm")
.endMetadata()
.withNewSpec()
.endSpec()
.build();

var eMsg = assertThrows(KubernetesClientException.class, () -> client.resource(cr).create()).getMessage();
assertThat(eMsg).contains("spec.keycloakCRName: Required value", "spec.realm: Required value");
}

@Test
public void testKeycloak() {
roundTrip("/test-serialization-keycloak-cr.yml", Keycloak.class);
Expand Down

0 comments on commit 1c56f9e

Please sign in to comment.