model

package
v0.0.0-...-4b9abfb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2022 License: Apache-2.0 Imports: 24 Imported by: 1

Documentation

Index

Constants

View Source
const (
	ApplicationName                      = "keycloak"
	MonitoringKey                        = "middleware"
	DatabaseSecretName                   = ApplicationName + "-db-secret"
	PostgresqlPersistentVolumeName       = ApplicationName + "-postgresql-claim"
	PostgresqlBackupPersistentVolumeName = ApplicationName + "-backup"
	PostgresqlDeploymentName             = ApplicationName + "-postgresql"
	KeycloakProbesName                   = ApplicationName + "-probes"
	KeycloakMetricsRouteName             = ApplicationName + "-metrics-rewrite"
	KeycloakMetricsRoutePath             = "/auth/realms/master/metrics"
	KeycloakMetricsRouteRewritePath      = "/auth/realms/master"
	PostgresqlDeploymentComponent        = "database"
	PostgresqlServiceName                = ApplicationName + "-postgresql"
	KeycloakDiscoveryServiceName         = ApplicationName + "-discovery"
	KeycloakMonitoringServiceName        = ApplicationName + "-monitoring"
	KeycloakDeploymentName               = ApplicationName
	KeycloakDeploymentComponent          = "keycloak"
	PostgresqlBackupComponent            = "database-backup"
	PostgresqlDatabase                   = "root"
	PostgresqlUsername                   = ApplicationName
	PostgresqlPasswordLength             = 32
	PostgresqlPersistentVolumeCapacity   = "1Gi"
	PostgresqlPersistentVolumeMountPath  = "/var/lib/pgsql/data"
	DatabaseSecretUsernameProperty       = "POSTGRES_USERNAME" // nolint
	DatabaseSecretPasswordProperty       = "POSTGRES_PASSWORD" // nolint
	// Required by the Integreately Backup Image
	DatabaseSecretHostProperty = "POSTGRES_HOST" // nolint
	// Required by the Integreately Backup Image
	DatabaseSecretDatabaseProperty = "POSTGRES_DATABASE" // nolint
	// Required by the Integreately Backup Image
	DatabaseSecretVersionProperty              = "POSTGRES_VERSION"          // nolint
	DatabaseSecretExternalAddressProperty      = "POSTGRES_EXTERNAL_ADDRESS" // nolint
	DatabaseSecretExternalPortProperty         = "POSTGRES_EXTERNAL_PORT"    // nolint
	KeycloakServicePort                        = 8443
	PostgresDefaultPort                        = 5432
	AdminUsernameProperty                      = "ADMIN_USERNAME"
	AdminPasswordProperty                      = "ADMIN_PASSWORD"
	ServingCertSecretName                      = "sso-x509-https-secret" // nolint
	LivenessProbeProperty                      = "liveness_probe.sh"
	ReadinessProbeProperty                     = "readiness_probe.sh"
	RouteLoadBalancingStrategy                 = "source"
	IngressDefaultHost                         = "keycloak.local"
	PostgresqlBackupServiceAccountName         = "keycloak-operator"
	KeycloakExtensionEnvVar                    = "KEYCLOAK_EXTENSIONS"
	KeycloakExtensionPath                      = "/opt/jboss/keycloak/standalone/deployments"
	KeycloakExtensionsInitContainerPath        = "/opt/extensions"
	RhssoExtensionPath                         = "/opt/eap/standalone/deployments"
	ClientSecretName                           = ApplicationName + "-client-secret"
	ClientSecretClientIDProperty               = "CLIENT_ID"
	ClientSecretClientSecretProperty           = "CLIENT_SECRET"
	MaxUnavailableNumberOfPods                 = 1
	ServiceMonitorName                         = ApplicationName + "-service-monitor"
	MigrateBackupName                          = "migrate-backup"
	DatabaseSecretSslModeProperty              = "SSLMODE"
	DatabaseSecretSslCert                      = ApplicationName + "-db-ssl-cert-secret"
	RhssoDatabaseXAConnectionParamsProperty    = "DB_XA_CONNECTION_PROPERTY"
	RhssoDatabaseNONXAConnectionParamsProperty = "DB_CONNECTION_PROPERTY"
	KeycloakDatabaseConnectionParamsProperty   = "JDBC_PARAMS"
	KeycloakCertificatePath                    = "/opt/jboss/.postgresql"
	RhssoCertificatePath                       = "/home/jboss/.postgresql"
)

Constants for a community Keycloak installation

View Source
const (
	KeycloakImage         = "RELATED_IMAGE_KEYCLOAK"
	RHSSOImageOpenJ9      = "RELATED_IMAGE_RHSSO_OPENJ9"
	RHSSOImageOpenJDK     = "RELATED_IMAGE_RHSSO_OPENJDK"
	RHSSOImage            = "RELATED_IMAGE_RHSSO"
	KeycloakInitContainer = "RELATED_IMAGE_KEYCLOAK_INIT_CONTAINER"
	RHSSOInitContainer    = "RELATED_IMAGE_RHSSO_INIT_CONTAINER"
	RHMIBackupContainer   = "RELATED_IMAGE_RHMI_BACKUP_CONTAINER"
	PostgresqlImage       = "RELATED_IMAGE_POSTGRESQL"

	DefaultKeycloakImage         = "quay.io/keycloak/keycloak:legacy"
	DefaultRHSSOImageOpenJ9      = "registry.redhat.io/rh-sso-7/sso75-openj9-openshift-rhel8:7.5"
	DefaultRHSSOImageOpenJDK     = "registry.redhat.io/rh-sso-7/sso75-openshift-rhel8:7.5"
	DefaultKeycloakInitContainer = "quay.io/keycloak/keycloak-init-container:legacy"
	DefaultRHSSOInitContainer    = "registry.redhat.io/rh-sso-7/sso7-rhel8-init-container:7.5"
	DefaultRHMIBackupContainer   = "quay.io/integreatly/backup-container:1.0.16"
	DefaultPostgresqlImage       = "registry.access.redhat.com/rhscl/postgresql-10-rhel7:1"
)
View Source
const (
	LivenessProbeInitialDelay  = 30
	ReadinessProbeInitialDelay = 40
	//10s (curl) + 10s (curl) + 2s (just in case)
	ProbeTimeoutSeconds         = 22
	ProbeTimeBetweenRunsSeconds = 30
	ProbeFailureThreshold       = 10
)
View Source
const (
	LivenessProbeImplementation = `#!/bin/bash
set -e
curl -s --max-time 10 --fail http://$(hostname -i):8080/auth > /dev/null
`
	ReadinessProbeImplementation = `` /* 1037-byte string literal not displayed */

)
View Source
const (
	RHSSOProfile                 = "RHSSO"
	ProfileEnvironmentalVariable = "PROFILE"
)
View Source
const GrafanaDashboardJSON = `` /* 42220-byte string literal not displayed */

Variables

View Source
var Images = NewImageManager()
View Source
var PodLabels = map[string]string{}
View Source
var Profiles = NewProfileManager()

Functions

func AddPodAnnotations

func AddPodAnnotations(cr *v1alpha1.Keycloak, annotations map[string]string) map[string]string

func AddPodLabels

func AddPodLabels(cr *v1alpha1.Keycloak, labels map[string]string) map[string]string

func ClientScopeDifferenceIntersection

FIXME Find a better way to refactor this code with role difference part above returned clientScopes are always from a

func ClientSecret

func ClientSecret(cr *v1alpha1.KeycloakClient) *v1.Secret

func ClientSecretReconciled

func ClientSecretReconciled(cr *v1alpha1.KeycloakClient, currentState *v1.Secret) *v1.Secret

func ClientSecretSelector

func ClientSecretSelector(cr *v1alpha1.KeycloakClient) client.ObjectKey

func DatabaseSecret

func DatabaseSecret(cr *v1alpha1.Keycloak) *v1.Secret

func DatabaseSecretReconciled

func DatabaseSecretReconciled(cr *v1alpha1.Keycloak, currentState *v1.Secret) *v1.Secret

func DatabaseSecretSelector

func DatabaseSecretSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func DeprecatedClientSecret

func DeprecatedClientSecret(cr *v1alpha1.KeycloakClient) *v1.Secret

func DeprecatedClientSecretSelector

func DeprecatedClientSecretSelector(cr *v1alpha1.KeycloakClient) client.ObjectKey

func FilterClientScopesByNames

func FilterClientScopesByNames(clientScopes []v1alpha1.KeycloakClientScope, names []string) (filteredScopes []v1alpha1.KeycloakClientScope)

func GenerateRandomBytes

func GenerateRandomBytes(n int) []byte

GenerateRandomBytes returns securely generated random bytes. It will return an error if the system's secure random number generator fails to function correctly, in which case the caller should not continue.

func GenerateRandomString

func GenerateRandomString(s int) string

GenerateRandomString returns a URL-safe, base64 encoded securely generated random string. It will return an error if the system's secure random number generator fails to function correctly, in which case the caller should not continue.

func GetExternalDatabaseHost

func GetExternalDatabaseHost(secret *v1.Secret) string

func GetExternalDatabaseName

func GetExternalDatabaseName(secret *v1.Secret) string

func GetExternalDatabasePort

func GetExternalDatabasePort(secret *v1.Secret) int32

func GetLabelsSelector

func GetLabelsSelector() map[string]string

func GetRealmUserSecretName

func GetRealmUserSecretName(keycloakNamespace, realmName, userName string) string

func GetServiceEnvVar

func GetServiceEnvVar(suffix string) string

func GrafanaDashboardSelector

func GrafanaDashboardSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func IsIP

func IsIP(host []byte) bool

func KeycloakAdminSecret

func KeycloakAdminSecret(cr *v1alpha1.Keycloak) *v1.Secret

func KeycloakAdminSecretReconciled

func KeycloakAdminSecretReconciled(cr *v1alpha1.Keycloak, currentState *v1.Secret) *v1.Secret

func KeycloakAdminSecretSelector

func KeycloakAdminSecretSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func KeycloakDeployment

func KeycloakDeployment(cr *v1alpha1.Keycloak, dbSecret *v1.Secret, dbSSLSecret *v1.Secret) *v13.StatefulSet

func KeycloakDeploymentReconciled

func KeycloakDeploymentReconciled(cr *v1alpha1.Keycloak, currentState *v13.StatefulSet, dbSecret *v1.Secret, dbSSLSecret *v1.Secret) *v13.StatefulSet

func KeycloakDeploymentSelector

func KeycloakDeploymentSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func KeycloakDiscoveryService

func KeycloakDiscoveryService(cr *v1alpha1.Keycloak) *v1.Service

func KeycloakDiscoveryServiceReconciled

func KeycloakDiscoveryServiceReconciled(cr *v1alpha1.Keycloak, currentState *v1.Service) *v1.Service

func KeycloakDiscoveryServiceSelector

func KeycloakDiscoveryServiceSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func KeycloakExtensionsInitContainers

func KeycloakExtensionsInitContainers(cr *v1alpha1.Keycloak) []v1.Container

func KeycloakIngress

func KeycloakIngress(cr *kc.Keycloak) *networkingv1.Ingress

func KeycloakIngressReconciled

func KeycloakIngressReconciled(cr *kc.Keycloak, currentState *networkingv1.Ingress) *networkingv1.Ingress

func KeycloakIngressSelector

func KeycloakIngressSelector(cr *kc.Keycloak) client.ObjectKey

func KeycloakMetricsRoute

func KeycloakMetricsRoute(cr *kc.Keycloak, keycloakMainRoute *v1.Route) *v1.Route

func KeycloakMetricsRouteReconciled

func KeycloakMetricsRouteReconciled(cr *kc.Keycloak, currentState *v1.Route, keycloakMainRoute *v1.Route) *v1.Route

func KeycloakMetricsRouteSelector

func KeycloakMetricsRouteSelector(cr *kc.Keycloak) client.ObjectKey

func KeycloakMigrationOneTimeBackup

func KeycloakMigrationOneTimeBackup(cr *v1alpha1.KeycloakBackup) *v1alpha1.KeycloakBackup

func KeycloakMigrationOneTimeBackupSelector

func KeycloakMigrationOneTimeBackupSelector(cr *v1alpha1.KeycloakBackup) client.ObjectKey

func KeycloakMonitoringService

func KeycloakMonitoringService(cr *v1alpha1.Keycloak) *v1.Service

func KeycloakMonitoringServiceReconciled

func KeycloakMonitoringServiceReconciled(cr *v1alpha1.Keycloak, currentState *v1.Service) *v1.Service

func KeycloakMonitoringServiceSelector

func KeycloakMonitoringServiceSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func KeycloakPodAffinity

func KeycloakPodAffinity(cr *v1alpha1.Keycloak) *v1.Affinity

func KeycloakProbes

func KeycloakProbes(cr *v1alpha1.Keycloak) *v1.ConfigMap

func KeycloakProbesSelector

func KeycloakProbesSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func KeycloakRoute

func KeycloakRoute(cr *kc.Keycloak) *v1.Route

func KeycloakRouteReconciled

func KeycloakRouteReconciled(cr *kc.Keycloak, currentState *v1.Route) *v1.Route

func KeycloakRouteSelector

func KeycloakRouteSelector(cr *kc.Keycloak) client.ObjectKey

func KeycloakService

func KeycloakService(cr *v1alpha1.Keycloak) *v1.Service

func KeycloakServiceReconciled

func KeycloakServiceReconciled(cr *v1alpha1.Keycloak, currentState *v1.Service) *v1.Service

func KeycloakServiceSelector

func KeycloakServiceSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func KeycloakSslEnvVariables

func KeycloakSslEnvVariables(dbSecret *v1.Secret, env []v1.EnvVar) []v1.EnvVar

func KeycloakVolumeMounts

func KeycloakVolumeMounts(cr *v1alpha1.Keycloak, extensionsPath string, dbSSLSecret *v1.Secret, certificatePath string) []v1.VolumeMount

func KeycloakVolumes

func KeycloakVolumes(cr *v1alpha1.Keycloak, dbSSLSecret *v1.Secret) []v1.Volume

func MergeEnvs

func MergeEnvs(a []v1.EnvVar, b []v1.EnvVar) []v1.EnvVar

This function favors values in "a".

func PodDisruptionBudget

func PodDisruptionBudget(cr *v1alpha1.Keycloak) *v1beta1.PodDisruptionBudget

func PodDisruptionBudgetReconciled

func PodDisruptionBudgetReconciled(cr *v1alpha1.Keycloak, currentState *v1beta1.PodDisruptionBudget) *v1beta1.PodDisruptionBudget

func PodDisruptionBudgetSelector

func PodDisruptionBudgetSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func PostgresqlAWSBackup

func PostgresqlAWSBackup(cr *v1alpha1.KeycloakBackup) *v13.Job

func PostgresqlAWSBackupReconciled

func PostgresqlAWSBackupReconciled(cr *v1alpha1.KeycloakBackup, currentState *v13.Job) *v13.Job

func PostgresqlAWSBackupSelector

func PostgresqlAWSBackupSelector(cr *v1alpha1.KeycloakBackup) client.ObjectKey

func PostgresqlAWSPeriodicBackup

func PostgresqlAWSPeriodicBackup(cr *v1alpha1.KeycloakBackup) *v1beta1.CronJob

func PostgresqlAWSPeriodicBackupReconciled

func PostgresqlAWSPeriodicBackupReconciled(cr *v1alpha1.KeycloakBackup, currentState *v1beta1.CronJob) *v1beta1.CronJob

func PostgresqlAWSPeriodicBackupSelector

func PostgresqlAWSPeriodicBackupSelector(cr *v1alpha1.KeycloakBackup) client.ObjectKey

func PostgresqlBackup

func PostgresqlBackup(cr *v1alpha1.KeycloakBackup) *v13.Job

func PostgresqlBackupPersistentVolumeClaim

func PostgresqlBackupPersistentVolumeClaim(cr *v1alpha1.KeycloakBackup) *v1.PersistentVolumeClaim

func PostgresqlBackupPersistentVolumeClaimReconciled

func PostgresqlBackupPersistentVolumeClaimReconciled(cr *v1alpha1.KeycloakBackup, currentState *v1.PersistentVolumeClaim) *v1.PersistentVolumeClaim

func PostgresqlBackupPersistentVolumeClaimSelector

func PostgresqlBackupPersistentVolumeClaimSelector(cr *v1alpha1.KeycloakBackup) client.ObjectKey

func PostgresqlBackupReconciled

func PostgresqlBackupReconciled(cr *v1alpha1.KeycloakBackup, currentState *v13.Job) *v13.Job

func PostgresqlBackupSelector

func PostgresqlBackupSelector(cr *v1alpha1.KeycloakBackup) client.ObjectKey

func PostgresqlDeployment

func PostgresqlDeployment(cr *v1alpha1.Keycloak, isOpenshift bool) *v13.Deployment

func PostgresqlDeploymentReconciled

func PostgresqlDeploymentReconciled(cr *v1alpha1.Keycloak, currentState *v13.Deployment) *v13.Deployment

func PostgresqlDeploymentSelector

func PostgresqlDeploymentSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func PostgresqlPersistentVolumeClaim

func PostgresqlPersistentVolumeClaim(cr *v1alpha1.Keycloak) *v1.PersistentVolumeClaim

func PostgresqlPersistentVolumeClaimReconciled

func PostgresqlPersistentVolumeClaimReconciled(cr *v1alpha1.Keycloak, currentState *v1.PersistentVolumeClaim) *v1.PersistentVolumeClaim

func PostgresqlPersistentVolumeClaimSelector

func PostgresqlPersistentVolumeClaimSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func PostgresqlService

func PostgresqlService(cr *v1alpha1.Keycloak, dbSecret *v1.Secret, serviceTypeExternal bool) *v1.Service

func PostgresqlServiceEndpoints

func PostgresqlServiceEndpoints(cr *v1alpha1.Keycloak) *v1.Endpoints

func PostgresqlServiceEndpointsReconciled

func PostgresqlServiceEndpointsReconciled(cr *v1alpha1.Keycloak, currentState *v1.Endpoints, currentDatabaseSecret *v1.Secret) *v1.Endpoints

func PostgresqlServiceEndpointsSelector

func PostgresqlServiceEndpointsSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func PostgresqlServiceReconciled

func PostgresqlServiceReconciled(currentState *v1.Service, dbSecret *v1.Secret, serviceTypeExternal bool) *v1.Service

func PostgresqlServiceSelector

func PostgresqlServiceSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func PrometheusRuleSelector

func PrometheusRuleSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func RHSSODeployment

func RHSSODeployment(cr *v1alpha1.Keycloak, dbSecret *v1.Secret, dbSSLSecret *v1.Secret) *v13.StatefulSet

func RHSSODeploymentReconciled

func RHSSODeploymentReconciled(cr *v1alpha1.Keycloak, currentState *v13.StatefulSet, dbSecret *v1.Secret, dbSSLSecret *v1.Secret) *v13.StatefulSet

func RHSSODeploymentSelector

func RHSSODeploymentSelector(cr *v1alpha1.Keycloak) client.ObjectKey

func RHSSOSslEnvVariables

func RHSSOSslEnvVariables(dbSecret *v1.Secret, env []v1.EnvVar) []v1.EnvVar

func RealmCredentialSecret

func RealmCredentialSecret(cr *v1alpha1.KeycloakRealm, user *v1alpha1.KeycloakAPIUser, keycloak *v1alpha1.Keycloak) *v1.Secret

func RealmCredentialSecretSelector

func RealmCredentialSecretSelector(cr *v1alpha1.KeycloakRealm, user *v1alpha1.KeycloakAPIUser, keycloak *v1alpha1.Keycloak) client.ObjectKey

func RoleDifferenceIntersection

returned roles are always from a

func SanitizeNumberOfReplicas

func SanitizeNumberOfReplicas(numberOfReplicas int, isCreate bool) *int32

func SanitizeResourceName

func SanitizeResourceName(name string) string

func SanitizeResourceNameWithAlphaNum

func SanitizeResourceNameWithAlphaNum(text string) string

func ServiceMonitorSelector

func ServiceMonitorSelector(cr *v1alpha1.Keycloak) client.ObjectKey

Types

type ImageManager

type ImageManager struct {
	Images map[string]string
}

func NewImageManager

func NewImageManager() ImageManager

type ProfileManager

type ProfileManager struct {
	Profiles []string
}

func NewProfileManager

func NewProfileManager() ProfileManager

func (*ProfileManager) GetInitContainerImage

func (p *ProfileManager) GetInitContainerImage(cr *v1alpha1.Keycloak) string

func (*ProfileManager) GetKeycloakOrRHSSOImage

func (p *ProfileManager) GetKeycloakOrRHSSOImage(cr *v1alpha1.Keycloak) string

func (*ProfileManager) IsRHSSO

func (p *ProfileManager) IsRHSSO(cr *v1alpha1.Keycloak) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL