io.github.microcks.operator.api.base.v1alpha1.KeycloakSpec Maven / Gradle / Ivy
/*
* Copyright The Microcks Authors.
*
* 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 io.github.microcks.operator.api.base.v1alpha1;
import io.github.microcks.operator.api.model.ImageSpec;
import io.github.microcks.operator.api.model.IngressSpec;
import io.github.microcks.operator.api.model.OpenShiftSpec;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import io.sundr.builder.annotations.Buildable;
import java.util.Map;
/**
* Representation of the Keycloak part of an operator-managed Microcks installation.
* @author laurent
*/
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({ "install", "realm", "image", "url", "privateUrl", "ingress", "persistent", "volumeSize", "storageClassName",
"pvcAnnotations", "serviceAccount", "serviceAccountCredentials", "openshift" })
@Buildable(editableEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder")
public class KeycloakSpec {
@JsonPropertyDescription("Install Keycloak or reuse an existing instance? Default to true.")
private boolean install = true;
@JsonPropertyDescription("Keycloak realm to use for authentication on Microcks")
private String realm;
@JsonPropertyDescription("The container image to use for Keycloak")
private ImageSpec image;
@JsonProperty("url")
@JsonPropertyDescription("Keycloak root URL to use for access and Ingress if created")
private String url;
@JsonProperty("privateUrl")
@JsonPropertyDescription("A private URL - a full URL here - used by the Microcks component to internally join Keycloak. This is also known as `backendUrl` in Keycloak. When specified, the `keycloak.url` is used as `frontendUrl` in Keycloak terms.")
private String privateUrl;
@JsonPropertyDescription("Configuration to apply to Ingress if created")
private IngressSpec ingress;
@JsonPropertyDescription("Use persistent storage or ephemeral one? Default to true.")
private boolean persistent = true;
@JsonPropertyDescription("The container image to use for PostgreSQL database")
private ImageSpec postgresImage;
@JsonPropertyDescription("Size of persistent storage volume if persistent")
private String volumeSize;
@JsonPropertyDescription("Name of storage class to use if not relying on default")
private String storageClassName;
@JsonPropertyDescription("Annotations to be added to managed Persistent Volume Claim")
private Map pvcAnnotations;
@JsonPropertyDescription("Service Account for connecting external services to Microcks")
private String serviceAccount;
@JsonPropertyDescription("Service Account credentials for external services")
private String serviceAccountCredentials;
@JsonPropertyDescription("Flag to enable/disable the Service Account dedicated to the operator for connecting to Keycloak. Default to true.")
private boolean operatorServiceAccountEnabled = true;
@JsonPropertyDescription("Configuration of OpenShift specific settings")
private OpenShiftSpec openshift;
public KeycloakSpec() {
}
public boolean isInstall() {
return install;
}
public void setInstall(boolean install) {
this.install = install;
}
public String getRealm() {
return realm;
}
public void setRealm(String realm) {
this.realm = realm;
}
public ImageSpec getImage() {
return image;
}
public void setImage(ImageSpec image) {
this.image = image;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getPrivateUrl() {
return privateUrl;
}
public void setPrivateUrl(String privateUrl) {
this.privateUrl = privateUrl;
}
public IngressSpec getIngress() {
return ingress;
}
public void setIngress(IngressSpec ingress) {
this.ingress = ingress;
}
public boolean isPersistent() {
return persistent;
}
public void setPersistent(boolean persistent) {
this.persistent = persistent;
}
public ImageSpec getPostgresImage() {
return postgresImage;
}
public void setPostgresImage(ImageSpec postgresImage) {
this.postgresImage = postgresImage;
}
public String getVolumeSize() {
return volumeSize;
}
public void setVolumeSize(String volumeSize) {
this.volumeSize = volumeSize;
}
public String getStorageClassName() {
return storageClassName;
}
public void setStorageClassName(String storageClassName) {
this.storageClassName = storageClassName;
}
public Map getPvcAnnotations() {
return pvcAnnotations;
}
public void setPvcAnnotations(Map pvcAnnotations) {
this.pvcAnnotations = pvcAnnotations;
}
public String getServiceAccount() {
return serviceAccount;
}
public void setServiceAccount(String serviceAccount) {
this.serviceAccount = serviceAccount;
}
public String getServiceAccountCredentials() {
return serviceAccountCredentials;
}
public void setServiceAccountCredentials(String serviceAccountCredentials) {
this.serviceAccountCredentials = serviceAccountCredentials;
}
public boolean isOperatorServiceAccountEnabled() {
return operatorServiceAccountEnabled;
}
public void setOperatorServiceAccountEnabled(boolean operatorServiceAccountEnabled) {
this.operatorServiceAccountEnabled = operatorServiceAccountEnabled;
}
public OpenShiftSpec getOpenshift() {
return openshift;
}
public void setOpenshift(OpenShiftSpec openshift) {
this.openshift = openshift;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy