v1

package
v0.0.0-...-fc29aca Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2024 License: UPL-1.0 Imports: 49 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the coherence.oracle.com v1 API group +kubebuilder:object:generate=true +groupName=coherence.oracle.com

Index

Constants

View Source
const (
	ConditionTypeInitialized    ConditionType = "Initialized"
	ConditionTypeWaiting        ConditionType = "Waiting"
	ConditionTypeCreated        ConditionType = "Created"
	ConditionTypeReady          ConditionType = "Ready"
	ConditionTypeScaling        ConditionType = "Scaling"
	ConditionTypeRollingUpgrade ConditionType = "RollingUpgrade"
	ConditionTypeFailed         ConditionType = "Failed"
	ConditionTypeStopped        ConditionType = "Stopped"
	ConditionTypeCompleted      ConditionType = "Completed"

	CoherenceTypeUnknown     CoherenceType = "Unknown"
	CoherenceTypeStatefulSet CoherenceType = "StatefulSet"
	CoherenceTypeJob         CoherenceType = "Job"
)

Coherence resource Condition Types The different eight types of state that a deployment may be in.

Transitions are: Initialized -> Waiting

-> Created

Waiting -> Created Created -> Ready

-> Stopped

Ready -> Scaling

-> RollingUpgrade
-> Stopped

Scaling -> Ready

-> Stopped

RollingUpgrade -> Ready Stopped -> Created

View Source
const (
	// DefaultReplicas is the default number of replicas that will be created for a deployment if no value is specified in the spec
	DefaultReplicas int32 = 3
	// DefaultJobReplicas is the default number of replicas that will be created for a Job deployment if no value is specified in the spec
	DefaultJobReplicas int32 = 1
	// WKAServiceNameSuffix is the suffix appended to a deployment name to give the WKA service name
	WKAServiceNameSuffix = "-wka"
	// HeadlessServiceNameSuffix is the suffix appended to a deployment name to give the StatefulSet headless-service name
	HeadlessServiceNameSuffix = "-sts"

	// CoherenceFinalizer is the name of the finalizer that the Operator adds to Coherence deployments
	CoherenceFinalizer = "coherence.oracle.com/operator"

	// LabelCoherenceDeployment is the label containing the name of the owning Coherence resource
	LabelCoherenceDeployment = "coherenceDeployment"
	// LabelCoherenceCluster is the label containing the Coherence cluster name
	LabelCoherenceCluster = "coherenceCluster"
	// LabelCoherenceRole is the label containing a Coherence role name
	LabelCoherenceRole = "coherenceRole"
	// LabelComponent is the label containing a component name
	LabelComponent = "coherenceComponent"
	// LabelPort is the label associated to an exposed port name
	LabelPort = "coherencePort"
	// LabelCoherenceWKAMember is the label applied to WKA members
	LabelCoherenceWKAMember = "coherenceWKAMember"
	// LabelApp is an optional application label that can be applied to resources
	LabelApp = "app"
	// LabelVersion is the label containing a resource version
	LabelVersion = "version"
	// LabelCoherenceHash is the label for the Coherence resource spec hash
	LabelCoherenceHash = "coherence-hash"

	// LabelComponentCoherenceStatefulSet is the component label value for a Coherence StatefulSet resource
	LabelComponentCoherenceStatefulSet = "coherence"
	// LabelComponentCoherenceHeadless is the component label value for  a Coherence StatefulSet headless Service resource
	LabelComponentCoherenceHeadless = "coherence-headless"
	// LabelComponentCoherencePod is the component label value for a Coherence Pod
	LabelComponentCoherencePod = "coherencePod"
	// LabelComponentPVC is the component label value for Coherence PersistentVolumeClaim
	LabelComponentPVC = "coherence-volume"
	// LabelComponentPortService is the component label value for a Coherence Service
	LabelComponentPortService = "coherence-service"
	// LabelComponentPortServiceMonitor is the component label value for a Coherence ServiceMonitor
	LabelComponentPortServiceMonitor = "coherence-service-monitor"
	// LabelComponentWKA is the component label value for a Coherence WKA Service
	LabelComponentWKA = "coherenceWkaService"
	// LabelCoherenceStore is the component label value for a Coherence state storage Secret
	LabelCoherenceStore = "coherence-storage"

	// StatusSelectorTemplate is the string template for a WKA service selector
	StatusSelectorTemplate = LabelCoherenceCluster + "=%s," + LabelCoherenceDeployment + "=%s"

	// AnnotationFeatureSuspend is the feature annotations
	AnnotationFeatureSuspend = "com.oracle.coherence.operator/feature.suspend"
	// AnnotationOperatorVersion is the Operator version annotations
	AnnotationOperatorVersion = "com.oracle.coherence.operator/version"

	// DefaultServiceAccount is the default k8s service account name.
	DefaultServiceAccount = "default"

	// ContainerNameCoherence is the Coherence container name
	ContainerNameCoherence = "coherence"
	// ContainerNameOperatorInit is the Operator init-container name
	ContainerNameOperatorInit = "coherence-k8s-utils"

	// VolumeNamePersistence is the name of the persistence volume
	VolumeNamePersistence = "persistence-volume"
	// VolumeNameSnapshots is the name of the snapshots volume
	VolumeNameSnapshots = "snapshot-volume"
	// VolumeNameUtils is the name of the utils volume
	VolumeNameUtils = "coh-utils"
	// VolumeNameJVM is the name of the JVM diagnostics volume
	VolumeNameJVM = "jvm"
	// VolumeNameManagementSSL is the name of the management TLS volume
	VolumeNameManagementSSL = "management-ssl-config"
	// VolumeNameMetricsSSL is the name of the metrics TLS volume
	VolumeNameMetricsSSL = "metrics-ssl-config"

	// VolumePathAttributes is the container attributes file volume
	VolumePathAttributes = "attributes"

	// VolumeMountRoot is the root path for volume mounts
	VolumeMountRoot = "/coherence-operator"
	// VolumeMountPathPersistence is the persistence volume mount
	VolumeMountPathPersistence = VolumeMountRoot + "/persistence"
	// VolumeMountPathSnapshots is the snapshot's volume mount
	VolumeMountPathSnapshots = VolumeMountRoot + "/snapshot"
	// VolumeMountPathUtils is the utils volume mount
	VolumeMountPathUtils = VolumeMountRoot + "/utils"
	// VolumeMountPathJVM is the JVM diagnostics volume mount
	VolumeMountPathJVM = VolumeMountRoot + "/jvm"
	// VolumeMountPathManagementCerts is the management certs volume mount
	VolumeMountPathManagementCerts = VolumeMountRoot + "/coherence/certs/management"
	// VolumeMountPathMetricsCerts is the metrics certs volume mount
	VolumeMountPathMetricsCerts = VolumeMountRoot + "/coherence/certs/metrics"

	// RunnerCommand is the start command for the runner
	RunnerCommand = VolumeMountPathUtils + "/runner"

	// RunnerInitCommand is the start command for the Operator init-container
	RunnerInitCommand = "/files/runner"
	// RunnerInit is the command line argument for the Operator init-container
	RunnerInit = "init"

	// ServiceMonitorKind is the Prometheus ServiceMonitor resource API Kind
	ServiceMonitorKind = "ServiceMonitor"
	// ServiceMonitorGroup is the Prometheus ServiceMonitor resource API Group
	ServiceMonitorGroup = "monitoring.coreos.com"
	// ServiceMonitorVersion is the Prometheus ServiceMonitor resource API version
	ServiceMonitorVersion = "v1"
	// ServiceMonitorGroupVersion is the Prometheus ServiceMonitor resource API group version
	ServiceMonitorGroupVersion = ServiceMonitorGroup + "/" + ServiceMonitorVersion

	// PortNameCoherence is the name of the Coherence port
	PortNameCoherence = "coherence"
	// PortNameCoherenceLocal is the name of the Coherence local port
	PortNameCoherenceLocal = "coh-local"
	// PortNameCoherenceCluster is the name of the Coherence cluster port
	PortNameCoherenceCluster = "coh-cluster"
	// PortNameDebug is the name of the debug port
	PortNameDebug = "debug-port"
	// PortNameHealth is the name of the health port
	PortNameHealth = "health"
	// PortNameMetrics is the name of the Coherence management port
	PortNameManagement = "management"
	// PortNameMetrics is the name of the Coherence metrics port
	PortNameMetrics = "metrics"

	// AppProtocolTcp is the appProtocol value for ports that use tcp
	AppProtocolTcp = "tcp"
	// AppProtocolHttp is the appProtocol value for ports that use http
	AppProtocolHttp = "http"

	// DefaultDebugPort is the default debug port
	DefaultDebugPort int32 = 5005
	// DefaultManagementPort is the Coherence manaement debug port
	DefaultManagementPort int32 = 30000
	// DefaultMetricsPort is the default Coherence metrics port
	DefaultMetricsPort int32 = 9612
	// DefaultHealthPort is the default health port
	DefaultHealthPort int32 = 6676
	// DefaultClusterPort is the default Coherence cluster port
	DefaultClusterPort int32 = 7574
	// DefaultUnicastPort is the default Coherence unicast port
	DefaultUnicastPort int32 = 7575
	// DefaultUnicastPortAdjust is the default Coherence unicast port adjust value
	DefaultUnicastPortAdjust int32 = 7576

	// OperatorConfigName is the Operator configuration Secret name
	OperatorConfigName = "coherence-operator-config"
	// OperatorConfigKeyHost is the key used in the Operator configuration Secret
	OperatorConfigKeyHost = "operatorhost"
	// OperatorSiteURL is the default Operator site query URL
	OperatorSiteURL = "http://$(OPERATOR_HOST)/site/$(COH_MACHINE_NAME)"
	// OperatorRackURL is the default Operator rack query URL
	OperatorRackURL = "http://$(OPERATOR_HOST)/rack/$(COH_MACHINE_NAME)"

	// DefaultReadinessPath is the default readiness endpoint path
	DefaultReadinessPath = "/ready"
	// DefaultLivenessPath is the default liveness endpoint path
	DefaultLivenessPath = "/healthz"

	// DefaultCnbpLauncher is the Cloud Native Build Pack launcher executable
	DefaultCnbpLauncher = "/cnb/lifecycle/launcher"

	EnvVarAppType                     = "COH_APP_TYPE"
	EnvVarAppMainClass                = "COH_MAIN_CLASS"
	EnvVarAppMainArgs                 = "COH_MAIN_ARGS"
	EnvVarOperatorHost                = "OPERATOR_HOST"
	EnvVarOperatorTimeout             = "OPERATOR_REQUEST_TIMEOUT"
	EnvVarOperatorAllowResume         = "OPERATOR_ALLOW_RESUME"
	EnvVarOperatorResumeServices      = "OPERATOR_RESUME_SERVICES"
	EnvVarUseOperatorHealthCheck      = "OPERATOR_HEALTH_CHECK"
	EnvVarCoherenceHome               = "COHERENCE_HOME"
	EnvVarCohDependencyModules        = "DEPENDENCY_MODULES"
	EnvVarCohSkipVersionCheck         = "COH_SKIP_VERSION_CHECK"
	EnvVarCohClusterName              = "COH_CLUSTER_NAME"
	EnvVarCohIdentity                 = "COH_IDENTITY"
	EnvVarCohWka                      = "COH_WKA"
	EnvVarCohAppDir                   = "COH_APP_DIR"
	EnvVarCohMachineName              = "COH_MACHINE_NAME"
	EnvVarCohMemberName               = "COH_MEMBER_NAME"
	EnvVarCohPodUID                   = "COH_POD_UID"
	EnvVarCohSkipSite                 = "COH_SKIP_SITE"
	EnvVarCohSite                     = "COH_SITE_INFO_LOCATION"
	EnvVarCohRack                     = "COH_RACK_INFO_LOCATION"
	EnvVarCohRole                     = "COH_ROLE"
	EnvVarCohUtilDir                  = "COH_UTIL_DIR"
	EnvVarCohUtilLibDir               = "COH_UTIL_LIB_DIR"
	EnvVarCohHealthPort               = "COH_HEALTH_PORT"
	EnvVarCohCacheConfig              = "COH_CACHE_CONFIG"
	EnvVarCohOverride                 = "COH_OVERRIDE_CONFIG"
	EnvVarCohLogLevel                 = "COH_LOG_LEVEL"
	EnvVarCohStorage                  = "COH_STORAGE_ENABLED"
	EnvVarCohPersistenceMode          = "COH_PERSISTENCE_MODE"
	EnvVarCohPersistenceDir           = "COH_PERSISTENCE_DIR"
	EnvVarCohSnapshotDir              = "COH_SNAPSHOT_DIR"
	EnvVarCohTracingRatio             = "COH_TRACING_RATIO"
	EnvVarCohAllowEndangered          = "COH_ALLOW_ENDANGERED"
	EnvVarCohMgmtPrefix               = "COH_MGMT"
	EnvVarCohMetricsPrefix            = "COH_METRICS"
	EnvVarCohEnabledSuffix            = "_ENABLED"
	EnvVarCohPortSuffix               = "_PORT"
	EnvVarCohForceExit                = "COH_FORCE_EXIT"
	EnvVarCoherenceLocalPort          = "COHERENCE_LOCALPORT"
	EnvVarCoherenceLocalPortAdjust    = "COHERENCE_LOCALPORT_ADJUST"
	EnvVarEnableIPMonitor             = "COH_ENABLE_IPMONITOR"
	EnvVarSuffixSSLEnabled            = "_SSL_ENABLED"
	EnvVarSuffixSSLCerts              = "_SSL_CERTS"
	EnvVarSuffixSSLKeyStore           = "_SSL_KEYSTORE"
	EnvVarSuffixSSLKeyStoreCredFile   = "_SSL_KEYSTORE_PASSWORD_FILE"
	EnvVarSuffixSSLKeyCredFile        = "_SSL_KEY_PASSWORD_FILE"
	EnvVarSuffixSSLKeyStoreAlgo       = "_SSL_KEYSTORE_ALGORITHM"
	EnvVarSuffixSSLKeyStoreProvider   = "_SSL_KEYSTORE_PROVIDER"
	EnvVarSuffixSSLKeyStoreType       = "_SSL_KEYSTORE_TYPE"
	EnvVarSuffixSSLTrustStore         = "_SSL_TRUSTSTORE"
	EnvVarSuffixSSLTrustStoreCredFile = "_SSL_TRUSTSTORE_PASSWORD_FILE"
	EnvVarSuffixSSLTrustStoreAlgo     = "_SSL_TRUSTSTORE_ALGORITHM"
	EnvVarSuffixSSLTrustStoreProvider = "_SSL_TRUSTSTORE_PROVIDER"
	EnvVarSuffixSSLTrustStoreType     = "_SSL_TRUSTSTORE_TYPE"
	EnvVarSuffixSSLRequireClientCert  = "_SSL_REQUIRE_CLIENT_CERT"
	EnvVarJavaHome                    = "JAVA_HOME"
	EnvVarJavaClasspath               = "CLASSPATH"
	EnvVarJvmClasspathJib             = "JVM_USE_JIB_CLASSPATH"
	EnvVarJvmExtraClasspath           = "JVM_EXTRA_CLASSPATH"
	EnvVarJvmArgs                     = "JVM_ARGS"
	EnvVarJvmUseContainerLimits       = "JVM_USE_CONTAINER_LIMITS"
	EnvVarJvmShowSettings             = "JVM_SHOW_SETTINGS"
	EnvVarJvmDebugEnabled             = "JVM_DEBUG_ENABLED"
	EnvVarJvmDebugPort                = "JVM_DEBUG_PORT"
	EnvVarJvmDebugSuspended           = "JVM_DEBUG_SUSPEND"
	EnvVarJvmDebugAttach              = "JVM_DEBUG_ATTACH"
	EnvVarJvmGcArgs                   = "JVM_GC_ARGS"
	EnvVarJvmGcCollector              = "JVM_GC_COLLECTOR"
	EnvVarJvmGcLogging                = "JVM_GC_LOGGING"
	EnvVarJvmMemoryHeap               = "JVM_HEAP_SIZE"
	EnvVarJvmMemoryInitialHeap        = "JVM_INITIAL_HEAP_SIZE"
	EnvVarJvmMemoryMaxHeap            = "JVM_MAX_HEAP_SIZE"
	EnvVarJvmMaxRAM                   = "JVM_MAX_RAM"
	EnvVarJvmRAMPercentage            = "JVM_RAM_PERCENTAGE"
	EnvVarJvmInitialRAMPercentage     = "JVM_INITIAL_RAM_PERCENTAGE"
	EnvVarJvmMaxRAMPercentage         = "JVM_MAX_RAM_PERCENTAGE"
	EnvVarJvmMinRAMPercentage         = "JVM_MIN_RAM_PERCENTAGE"
	EnvVarJvmMemoryDirect             = "JVM_DIRECT_MEMORY_SIZE"
	EnvVarJvmMemoryStack              = "JVM_STACK_SIZE"
	EnvVarJvmMemoryMeta               = "JVM_METASPACE_SIZE"
	EnvVarJvmMemoryNativeTracking     = "JVM_NATIVE_MEMORY_TRACKING"
	EnvVarJvmOomExit                  = "JVM_OOM_EXIT"
	EnvVarJvmOomHeapDump              = "JVM_OOM_HEAP_DUMP"
	EnvVarSpringBootFatJar            = "COH_SPRING_BOOT_FAT_JAR"
	EnvVarCnbpEnabled                 = "COH_CNBP_ENABLED"
	EnvVarCnbpLauncher                = "COH_CNBP_LAUNCHER"
)
View Source
const JobMutatingWebHookPath = "/mutate-coherence-oracle-com-v1-coherencejob"

JobMutatingWebHookPath This const MUST match the path in the kubebuilder annotation above

View Source
const JobValidatingWebHookPath = "/validate-coherence-oracle-com-v1-coherencejob"

JobValidatingWebHookPath This const MUST match the path in the kubebuilder annotation above

View Source
const MutatingWebHookPath = "/mutate-coherence-oracle-com-v1-coherence"

MutatingWebHookPath This const MUST match the path in the kubebuilder annotation above

View Source
const ValidatingWebHookPath = "/validate-coherence-oracle-com-v1-coherence"

ValidatingWebHookPath This const MUST match the path in the kubebuilder annotation above

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "coherence.oracle.com", Version: "v1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	// AffinityTopologyKey is the affinity topology key for fault domains.
	AffinityTopologyKey = operator.DefaultSiteLabels[0]
)

Functions

func AddEnvVarIfAbsent

func AddEnvVarIfAbsent(dest []corev1.EnvVar, envVar corev1.EnvVar) []corev1.EnvVar

AddEnvVarIfAbsent adds the specified EnvVar to the destination slice if one with the same name does not already exist.

func BoolPtrToString

func BoolPtrToString(b *bool) string

BoolPtrToString converts a bool pointer to a string.

func ComputeHash

func ComputeHash(template interface{}, collisionCount *int32) string

ComputeHash returns a hash value calculated from Coherence spec and The hash will be safe encoded to avoid bad words.

func DeepHashObject

func DeepHashObject(hasher hash.Hash, objectToWrite interface{})

DeepHashObject writes specified object to hash using the spew library which follows pointers and prints actual values of the nested objects ensuring the hash does not change when a pointer changes.

func EnsureCRDs

func EnsureCRDs(ctx context.Context, v *version.Version, scheme *runtime.Scheme, cl client.Client) error

EnsureCRDs ensures that the Operator configuration secret exists in the namespace. CRDs will be created depending on the server version of k8s.

func EnsureContainer

func EnsureContainer(name string, sts *appsv1.StatefulSet) *corev1.Container

EnsureContainer ensures that the StatefulSet has a container with the specified name

func EnsureContainerInPod

func EnsureContainerInPod(name string, podTemplate *corev1.PodTemplateSpec) *corev1.Container

EnsureContainerInPod ensures that the Pod has a container with the specified name

func EnsureHashLabel

func EnsureHashLabel(c CoherenceResource) (string, bool)

func EnsureV1CRDs

func EnsureV1CRDs(ctx context.Context, logger logr.Logger, scheme *runtime.Scheme, cl client.Client) error

EnsureV1CRDs ensures that the Operator configuration secret exists in the namespace.

func FindContainer

func FindContainer(name string, sts *appsv1.StatefulSet) *corev1.Container

FindContainer finds the StatefulSet container with the specified name.

func FindContainerForJob

func FindContainerForJob(name string, job *batchv1.Job) *corev1.Container

FindContainerForJob finds the Job container with the specified name.

func FindContainerInPodTemplate

func FindContainerInPodTemplate(name string, pod *corev1.PodTemplateSpec) *corev1.Container

FindContainerInPodTemplate finds the Job container with the specified name.

func FindInitContainer

func FindInitContainer(name string, sts *appsv1.StatefulSet) *corev1.Container

FindInitContainer finds the StatefulSet init-container with the specified name.

func FindInitContainerInJob

func FindInitContainerInJob(name string, job *batchv1.Job) *corev1.Container

FindInitContainerInJob finds the Job init-container with the specified name.

func FindInitContainerInPodTemplate

func FindInitContainerInPodTemplate(name string, template *corev1.PodTemplateSpec) *corev1.Container

FindInitContainerInPodTemplate finds the PodTemplateSpec init-container with the specified name.

func Int32PtrToString

func Int32PtrToString(i *int32) string

Int32PtrToString converts an int32 pointer to a string.

func Int32PtrToStringWithDefault

func Int32PtrToStringWithDefault(i *int32, d int32) string

Int32PtrToStringWithDefault converts an int32 pointer to a string using the default if the pointer is nil.

func Int32ToString

func Int32ToString(i int32) string

Int32ToString converts an int32 to a string.

func ReplaceContainer

func ReplaceContainer(sts *appsv1.StatefulSet, cNew *corev1.Container)

ReplaceContainer ensures that the StatefulSet has a container with the specified name

func ReplaceContainerInPod

func ReplaceContainerInPod(podTemplate *corev1.PodTemplateSpec, cNew *corev1.Container)

ReplaceContainerInPod ensures that the Pod has a container with the specified name

func ReplaceVolume

func ReplaceVolume(sts *appsv1.StatefulSet, volNew corev1.Volume)

ReplaceVolume ensures that the StatefulSet has a volume with the specified name

func ReplaceVolumeInJob

func ReplaceVolumeInJob(job *batchv1.Job, volNew corev1.Volume)

ReplaceVolume ensures that the StatefulSet has a volume with the specified name

func SetCommonDefaults

func SetCommonDefaults(in CoherenceResource)

SetCommonDefaults sets defaults common to both a Job and StatefulSet

func ValidateJobUpdate

func ValidateJobUpdate(job, oldJob *batchv1.Job) field.ErrorList

ValidateJobUpdate tests if required fields in the Job are set.

func ValidateStatefulSetUpdate

func ValidateStatefulSetUpdate(statefulSet, oldStatefulSet *appsv1.StatefulSet) field.ErrorList

ValidateStatefulSetUpdate tests if required fields in the StatefulSet are set.

Types

type Action

type Action struct {
	// Action name
	// +optional
	Name string `json:"name,omitempty"`

	// This is the spec of some sort of probe to fire when the Coherence resource becomes ready
	Probe *Probe `json:"probe,omitempty"`
	// or this is the spec of a Job to create when the Coherence resource becomes ready
	Job *ActionJob `json:"job,omitempty"`
}

Action is an action to execute when the StatefulSet becomes ready.

func (*Action) DeepCopy

func (in *Action) DeepCopy() *Action

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Action.

func (*Action) DeepCopyInto

func (in *Action) DeepCopyInto(out *Action)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ActionJob

type ActionJob struct {
	// Spec will be used to create a Job, the name is the
	// Coherence deployment name + "-" + the action name
	// The Job will be fire and forget, we do not monitor it in the Operator.
	// We set its owner to be the Coherence resource, so it gets deleted when
	// the Coherence resource is deleted.
	Spec batchv1.JobSpec `json:"spec"`
	// Labels are the extra labels to add to the Job.
	Labels map[string]string `json:"labels,omitempty"`
	// Annotations to add to the Job.
	Annotations map[string]string `json:"annotations,omitempty"`
}

func (*ActionJob) DeepCopy

func (in *ActionJob) DeepCopy() *ActionJob

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionJob.

func (*ActionJob) DeepCopyInto

func (in *ActionJob) DeepCopyInto(out *ActionJob)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ApplicationSpec

type ApplicationSpec struct {
	// The application type to execute.
	// This field would be set if using the Coherence Graal image and running a none-Java
	// application. For example if the application was a Node application this field
	// would be set to "node". The default is to run a plain Java application.
	// +optional
	Type *string `json:"type,omitempty"`
	// Class is the Coherence container main class.  The default value is
	// com.tangosol.net.DefaultCacheServer.
	// If the application type is non-Java this would be the name of the corresponding language specific
	// runnable, for example if the application type is "node" the main may be a Javascript file.
	// +optional
	Main *string `json:"main,omitempty"`
	// Args is the optional arguments to pass to the main class.
	// +listType=atomic
	// +optional
	Args []string `json:"args,omitempty"`
	// The application folder in the custom artifacts Docker image containing
	// application artifacts.
	// This will effectively become the working directory of the Coherence container.
	// If not set the application directory default value is "/app".
	// +optional
	WorkingDir *string `json:"workingDir,omitempty"`
	// Optional settings that may be configured if using a Cloud Native Buildpack Image.
	// For example an image build with the Spring Boot Maven/Gradle plugin.
	// See: https://github.com/paketo-buildpacks/spring-boot and https://buildpacks.io/
	// +optional
	CloudNativeBuildPack *CloudNativeBuildPackSpec `json:"cloudNativeBuildPack,omitempty"`
	// SpringBootFatJar is the full path name to the Spring Boot fat jar if the application
	// image has been built by just adding a Spring Boot fat jar to the image.
	// If this field is set then the application will be run by executing this jar.
	// For example, if this field is "/app/libs/foo.jar" the command line will be "java -jar app/libs/foo.jar"
	// +optional
	SpringBootFatJar *string `json:"springBootFatJar,omitempty"`
}

ApplicationSpec is the specification of the application deployed into the Coherence. +k8s:openapi-gen=true

func (*ApplicationSpec) DeepCopy

func (in *ApplicationSpec) DeepCopy() *ApplicationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSpec.

func (*ApplicationSpec) DeepCopyInto

func (in *ApplicationSpec) DeepCopyInto(out *ApplicationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ApplicationSpec) UpdateCoherenceContainer

func (in *ApplicationSpec) UpdateCoherenceContainer(c *corev1.Container)

UpdateCoherenceContainer updates the Coherence container with the relevant settings.

type CloudNativeBuildPackSpec

type CloudNativeBuildPackSpec struct {
	// Enable or disable buildpack detection.
	// The operator will automatically detect Cloud Native Buildpack images
	// but if this auto-detection fails to work correctly for a specific image
	// then this field can be set to true to signify that the image is a
	// buildpack image or false to signify that it is not a buildpack image.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// +optional
	Launcher *string `json:"launcher,omitempty"`
}

CloudNativeBuildPackSpec is the configuration when using a Cloud Native Buildpack Image. For example an image build with the Spring Boot Maven/Gradle plugin. See: https://github.com/paketo-buildpacks/spring-boot and https://buildpacks.io/

func (*CloudNativeBuildPackSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudNativeBuildPackSpec.

func (*CloudNativeBuildPackSpec) DeepCopyInto

func (in *CloudNativeBuildPackSpec) DeepCopyInto(out *CloudNativeBuildPackSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Coherence

type Coherence struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CoherenceStatefulSetResourceSpec `json:"spec,omitempty"`
	Status CoherenceResourceStatus          `json:"status,omitempty"`
}

Coherence is the top level schema for the Coherence API and custom resource definition (CRD).

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector +kubebuilder:resource:path=coherence,scope=Namespaced,shortName=coh,categories=coherence +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".status.coherenceCluster",description="The name of the Coherence cluster that this deployment belongs to" +kubebuilder:printcolumn:name="Role",type="string",JSONPath=".status.role",description="The role of this deployment in a Coherence cluster" +kubebuilder:printcolumn:name="Replicas",type="integer",JSONPath=".status.replicas",description="The number of Coherence deployments for this deployment" +kubebuilder:printcolumn:name="Ready",type="integer",JSONPath=".status.readyReplicas",description="The number of ready Coherence deployments for this deployment" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="The status of this deployment"

func (*Coherence) AddAnnotation

func (in *Coherence) AddAnnotation(key, value string)

func (*Coherence) AddAnnotationIfMissing

func (in *Coherence) AddAnnotationIfMissing(key, value string)

func (*Coherence) CreateAnnotations

func (in *Coherence) CreateAnnotations() map[string]string

CreateAnnotations returns the annotations to apply to this cluster's deployment (StatefulSet).

func (*Coherence) CreateCommonLabels

func (in *Coherence) CreateCommonLabels() map[string]string

CreateCommonLabels creates the deployment's common label set.

func (*Coherence) CreateGlobalAnnotations

func (in *Coherence) CreateGlobalAnnotations() map[string]string

CreateGlobalAnnotations creates the common annotation set for all resources.

func (*Coherence) CreateGlobalLabels

func (in *Coherence) CreateGlobalLabels() map[string]string

CreateGlobalLabels creates the common label set for all resources.

func (*Coherence) CreateKubernetesResources

func (in *Coherence) CreateKubernetesResources() (Resources, error)

CreateKubernetesResources returns this resource's CoherenceResourceSpec

func (*Coherence) DeepCopy

func (in *Coherence) DeepCopy() *Coherence

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Coherence.

func (*Coherence) DeepCopyInto

func (in *Coherence) DeepCopyInto(out *Coherence)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Coherence) DeepCopyObject

func (in *Coherence) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Coherence) DeepCopyResource

func (in *Coherence) DeepCopyResource() CoherenceResource

func (*Coherence) Default

func (in *Coherence) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*Coherence) FindFullyQualifiedPortServiceName

func (in *Coherence) FindFullyQualifiedPortServiceName(name string) (string, bool)

FindFullyQualifiedPortServiceName returns the fully qualified name of the Service used to expose a named port and a bool indicating whether the named port has a Service.

func (*Coherence) FindFullyQualifiedPortServiceNames

func (in *Coherence) FindFullyQualifiedPortServiceNames() map[string]string

FindFullyQualifiedPortServiceNames returns a map of the exposed ports of this resource mapped to their Service's fully qualified domain name.

func (*Coherence) FindPortServiceName

func (in *Coherence) FindPortServiceName(name string) (string, bool)

FindPortServiceName returns the name of the Service used to expose a named port and a bool indicating whether the named port has a Service.

func (*Coherence) FindPortServiceNames

func (in *Coherence) FindPortServiceNames() map[string]string

FindPortServiceNames returns a map of the port names for this resource mapped to their Service names.

func (*Coherence) GetAPIVersion

func (in *Coherence) GetAPIVersion() string

GetAPIVersion returns the TypeMeta API version

func (*Coherence) GetCoherenceClusterName

func (in *Coherence) GetCoherenceClusterName() string

GetCoherenceClusterName obtains the Coherence cluster name for the Coherence resource.

func (*Coherence) GetEnvVarFrom

func (in *Coherence) GetEnvVarFrom() []corev1.EnvFromSource

func (*Coherence) GetGlobalSpec

func (in *Coherence) GetGlobalSpec() *GlobalSpec

func (*Coherence) GetHeadlessServiceName

func (in *Coherence) GetHeadlessServiceName() string

GetHeadlessServiceName returns the name of the headless Service used for the StatefulSet.

func (*Coherence) GetJobResourceSpec

func (in *Coherence) GetJobResourceSpec() (*CoherenceJobResourceSpec, bool)

GetJobResourceSpec always returns nil and false

func (*Coherence) GetNamespacedName

func (in *Coherence) GetNamespacedName() types.NamespacedName

GetNamespacedName returns the namespace/name key to look up this resource.

func (*Coherence) GetReplicas

func (in *Coherence) GetReplicas() int32

GetReplicas returns the number of replicas required for a deployment. The Replicas field is a pointer and may be nil so this method will return either the actual Replicas value or the default (DefaultReplicas const) if the Replicas field is nil.

func (*Coherence) GetRoleName

func (in *Coherence) GetRoleName() string

GetRoleName returns the role name for a deployment. If the Spec.Role field is set that is used for the role name otherwise the deployment name is used as the role name.

func (*Coherence) GetSpec

func (in *Coherence) GetSpec() *CoherenceResourceSpec

GetSpec returns this resource's CoherenceResourceSpec

func (*Coherence) GetStatefulSetSpec

func (in *Coherence) GetStatefulSetSpec() (*CoherenceStatefulSetResourceSpec, bool)

GetStatefulSetSpec returns this resource's CoherenceStatefulSetResourceSpec

func (*Coherence) GetStatus

func (in *Coherence) GetStatus() *CoherenceResourceStatus

GetStatus returns this resource's CoherenceResourceSpec

func (*Coherence) GetType

func (in *Coherence) GetType() CoherenceType

GetType returns the type for a deployment.

func (*Coherence) GetVersionAnnotation

func (in *Coherence) GetVersionAnnotation() (string, bool)

GetVersionAnnotation if the returns the value of the Operator version annotation and true, if the version annotation is present. If the version annotation is not present this method returns empty string and false.

func (*Coherence) GetWKA

func (in *Coherence) GetWKA() string

GetWKA returns the host name Coherence should for WKA.

func (*Coherence) GetWkaServiceName

func (in *Coherence) GetWkaServiceName() string

GetWkaServiceName returns the name of the headless Service used for Coherence WKA.

func (*Coherence) IsBeforeVersion

func (in *Coherence) IsBeforeVersion(version string) bool

IsBeforeVersion returns true if this Coherence resource Operator version annotation value is before the specified version, or is not set. The version parameter must be a valid SemVer value.

func (*Coherence) IsForceExit

func (in *Coherence) IsForceExit() bool

func (*Coherence) SetReplicas

func (in *Coherence) SetReplicas(replicas int32)

SetReplicas sets the number of replicas required for a deployment.

func (*Coherence) SetupWebhookWithManager

func (in *Coherence) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Coherence) ValidateCreate

func (in *Coherence) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type The optional warnings will be added to the response as warning messages. Return an error if the object is invalid.

func (*Coherence) ValidateDelete

func (in *Coherence) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type The optional warnings will be added to the response as warning messages. Return an error if the object is invalid.

func (*Coherence) ValidateUpdate

func (in *Coherence) ValidateUpdate(previous runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type The optional warnings will be added to the response as warning messages. Return an error if the object is invalid.

type CoherenceJob

type CoherenceJob struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CoherenceJobResourceSpec `json:"spec,omitempty"`
	Status CoherenceResourceStatus  `json:"status,omitempty"`
}

CoherenceJob is the top level schema for the Coherence API and custom resource definition (CRD) for configuring Coherence Job workloads.

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector +kubebuilder:resource:path=coherencejob,scope=Namespaced,shortName=cohjob,categories=coherence +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".status.coherenceCluster",description="The name of the Coherence cluster that this deployment belongs to" +kubebuilder:printcolumn:name="Role",type="string",JSONPath=".status.role",description="The role of this deployment in a Coherence cluster" +kubebuilder:printcolumn:name="Replicas",type="integer",JSONPath=".status.replicas",description="The number of Coherence deployments for this deployment" +kubebuilder:printcolumn:name="Ready",type="integer",JSONPath=".status.readyReplicas",description="The number of ready Coherence deployments for this deployment" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="The status of this deployment" +kubebuilder:printcolumn:name="Active",priority=1,type="integer",JSONPath=".status.active",description="When the Coherence resource is running a Job, the number of pending and running pods" +kubebuilder:printcolumn:name="Succeeded",priority=1,type="integer",JSONPath=".status.succeeded",description="When the Coherence resource is running a Job, the number of pods which reached phase Succeeded" +kubebuilder:printcolumn:name="Failed",priority=1,type="integer",JSONPath=".status.failed",description="When the Coherence resource is running a Job, the number of pods which reached phase Failed"

func (*CoherenceJob) AddAnnotation

func (in *CoherenceJob) AddAnnotation(key, value string)

func (*CoherenceJob) AddAnnotationIfMissing

func (in *CoherenceJob) AddAnnotationIfMissing(key, value string)

func (*CoherenceJob) CreateAnnotations

func (in *CoherenceJob) CreateAnnotations() map[string]string

CreateAnnotations returns the annotations to apply to this cluster's deployment (StatefulSet).

func (*CoherenceJob) CreateCommonLabels

func (in *CoherenceJob) CreateCommonLabels() map[string]string

CreateCommonLabels creates the deployment's common label set.

func (*CoherenceJob) CreateGlobalAnnotations

func (in *CoherenceJob) CreateGlobalAnnotations() map[string]string

CreateGlobalAnnotations creates the common annotation set for all resources.

func (*CoherenceJob) CreateGlobalLabels

func (in *CoherenceJob) CreateGlobalLabels() map[string]string

CreateGlobalLabels creates the common label set for all resources.

func (*CoherenceJob) CreateKubernetesResources

func (in *CoherenceJob) CreateKubernetesResources() (Resources, error)

CreateKubernetesResources returns this resource's CoherenceResourceSpec

func (*CoherenceJob) DeepCopy

func (in *CoherenceJob) DeepCopy() *CoherenceJob

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceJob.

func (*CoherenceJob) DeepCopyInto

func (in *CoherenceJob) DeepCopyInto(out *CoherenceJob)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CoherenceJob) DeepCopyObject

func (in *CoherenceJob) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*CoherenceJob) DeepCopyResource

func (in *CoherenceJob) DeepCopyResource() CoherenceResource

func (*CoherenceJob) Default

func (in *CoherenceJob) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*CoherenceJob) FindFullyQualifiedPortServiceName

func (in *CoherenceJob) FindFullyQualifiedPortServiceName(name string) (string, bool)

FindFullyQualifiedPortServiceName returns the fully qualified name of the Service used to expose a named port and a bool indicating whether the named port has a Service.

func (*CoherenceJob) FindFullyQualifiedPortServiceNames

func (in *CoherenceJob) FindFullyQualifiedPortServiceNames() map[string]string

FindFullyQualifiedPortServiceNames returns a map of the exposed ports of this resource mapped to their Service's fully qualified domain name.

func (*CoherenceJob) FindPortServiceName

func (in *CoherenceJob) FindPortServiceName(name string) (string, bool)

FindPortServiceName returns the name of the Service used to expose a named port and a bool indicating whether the named port has a Service.

func (*CoherenceJob) FindPortServiceNames

func (in *CoherenceJob) FindPortServiceNames() map[string]string

FindPortServiceNames returns a map of the port names for this resource mapped to their Service names.

func (*CoherenceJob) GetAPIVersion

func (in *CoherenceJob) GetAPIVersion() string

func (*CoherenceJob) GetCoherenceClusterName

func (in *CoherenceJob) GetCoherenceClusterName() string

GetCoherenceClusterName obtains the Coherence cluster name for the Coherence resource.

func (*CoherenceJob) GetEnvVarFrom

func (in *CoherenceJob) GetEnvVarFrom() []corev1.EnvFromSource

func (*CoherenceJob) GetGlobalSpec

func (in *CoherenceJob) GetGlobalSpec() *GlobalSpec

func (*CoherenceJob) GetHeadlessServiceName

func (in *CoherenceJob) GetHeadlessServiceName() string

GetHeadlessServiceName returns the name of the headless Service used for the StatefulSet.

func (*CoherenceJob) GetJobResourceSpec

func (in *CoherenceJob) GetJobResourceSpec() (*CoherenceJobResourceSpec, bool)

GetJobResourceSpec returns this resource's CoherenceJobResourceSpec

func (*CoherenceJob) GetNamespacedName

func (in *CoherenceJob) GetNamespacedName() types.NamespacedName

GetNamespacedName returns the namespace/name key to look up this resource.

func (*CoherenceJob) GetReplicas

func (in *CoherenceJob) GetReplicas() int32

GetReplicas returns the number of replicas required for a deployment. The Replicas field is a pointer and may be nil so this method will return either the actual Replicas value or the default (DefaultReplicas const) if the Replicas field is nil.

func (*CoherenceJob) GetRoleName

func (in *CoherenceJob) GetRoleName() string

GetRoleName returns the role name for a deployment. If the Spec.Role field is set that is used for the role name otherwise the deployment name is used as the role name.

func (*CoherenceJob) GetSpec

func (in *CoherenceJob) GetSpec() *CoherenceResourceSpec

GetSpec returns this resource's CoherenceResourceSpec

func (*CoherenceJob) GetStatefulSetSpec

func (in *CoherenceJob) GetStatefulSetSpec() (*CoherenceStatefulSetResourceSpec, bool)

GetStatefulSetSpec always returns nil and false

func (*CoherenceJob) GetStatus

func (in *CoherenceJob) GetStatus() *CoherenceResourceStatus

GetStatus returns this resource's CoherenceResourceSpec

func (*CoherenceJob) GetType

func (in *CoherenceJob) GetType() CoherenceType

GetType returns the type for a deployment.

func (*CoherenceJob) GetVersionAnnotation

func (in *CoherenceJob) GetVersionAnnotation() (string, bool)

GetVersionAnnotation if the returns the value of the Operator version annotation and true, if the version annotation is present. If the version annotation is not present this method returns empty string and false.

func (*CoherenceJob) GetWKA

func (in *CoherenceJob) GetWKA() string

GetWKA returns the host name Coherence should for WKA.

func (*CoherenceJob) GetWkaServiceName

func (in *CoherenceJob) GetWkaServiceName() string

GetWkaServiceName returns the name of the headless Service used for Coherence WKA.

func (*CoherenceJob) IsBeforeVersion

func (in *CoherenceJob) IsBeforeVersion(version string) bool

IsBeforeVersion returns true if this Coherence resource Operator version annotation value is before the specified version, or is not set. The version parameter must be a valid SemVer value.

func (*CoherenceJob) IsForceExit

func (in *CoherenceJob) IsForceExit() bool

func (*CoherenceJob) SetReplicas

func (in *CoherenceJob) SetReplicas(replicas int32)

SetReplicas sets the number of replicas required for a deployment.

func (*CoherenceJob) SetupWebhookWithManager

func (in *CoherenceJob) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*CoherenceJob) ValidateCreate

func (in *CoherenceJob) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*CoherenceJob) ValidateDelete

func (in *CoherenceJob) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*CoherenceJob) ValidateUpdate

func (in *CoherenceJob) ValidateUpdate(previous runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type CoherenceJobList

type CoherenceJobList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CoherenceJob `json:"items"`
}

CoherenceJobList is a list of CoherenceJob resources.

func (*CoherenceJobList) DeepCopy

func (in *CoherenceJobList) DeepCopy() *CoherenceJobList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceJobList.

func (*CoherenceJobList) DeepCopyInto

func (in *CoherenceJobList) DeepCopyInto(out *CoherenceJobList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CoherenceJobList) DeepCopyObject

func (in *CoherenceJobList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CoherenceJobProbe

type CoherenceJobProbe struct {
	Probe `json:",inline"`
	// The number of job Pods that should be ready before executing the Probe.
	// If not set the default will be the same as the job's Completions value.
	// The probe will be executed on all Pods
	// +optional
	ReadyCount *int32 `json:"readyCount,omitempty"`
}

func (*CoherenceJobProbe) DeepCopy

func (in *CoherenceJobProbe) DeepCopy() *CoherenceJobProbe

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceJobProbe.

func (*CoherenceJobProbe) DeepCopyInto

func (in *CoherenceJobProbe) DeepCopyInto(out *CoherenceJobProbe)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CoherenceJobProbeStatus

type CoherenceJobProbeStatus struct {
	Pod           string       `json:"pod,omitempty"`
	LastReadyTime *metav1.Time `json:"lastReadyTime,omitempty"`
	LastProbeTime *metav1.Time `json:"lastProbeTime,omitempty"`
	Success       *bool        `json:"success,omitempty"`
	Error         *string      `json:"error,omitempty"`
}

func (*CoherenceJobProbeStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceJobProbeStatus.

func (*CoherenceJobProbeStatus) DeepCopyInto

func (in *CoherenceJobProbeStatus) DeepCopyInto(out *CoherenceJobProbeStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CoherenceJobResourceSpec

type CoherenceJobResourceSpec struct {
	CoherenceResourceSpec `json:",inline"`

	// The name of the Coherence cluster that this CoherenceJob resource belongs to.
	// A CoherenceJob will typically be part of an existing cluster, so this field is required.
	Cluster string `json:"cluster,omitempty"`

	// Specifies the desired number of successfully finished pods the
	// job should be run with.  Setting to nil means that the success of any
	// pod signals the success of all pods, and allows parallelism to have any positive
	// value.  Setting to 1 means that parallelism is limited to 1 and the success of that
	// pod signals the success of the job.
	// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
	// +optional
	Completions *int32 `json:"completions,omitempty"`

	// SyncCompletions is a flag to indicate that the Operator should always set the
	// Completions value to be the same as the Replicas value.
	// When a Job is then scaled, the Completions value will also be changed.
	// +optional
	SyncCompletionsToReplicas *bool `json:"syncCompletionsToReplicas,omitempty"`

	// Specifies the policy of handling failed pods. In particular, it allows to
	// specify the set of actions and conditions which need to be
	// satisfied to take the associated action.
	// If empty, the default behaviour applies - the counter of failed pods,
	// represented by the job's .status.failed field, is incremented, and it is
	// checked against the backoffLimit. This field cannot be used in combination
	// with restartPolicy=OnFailure.
	//
	// This field is alpha-level. To use this field, you must enable the
	// `JobPodFailurePolicy` feature gate (disabled by default).
	// +optional
	PodFailurePolicy *batchv1.PodFailurePolicy `json:"podFailurePolicy,omitempty"`

	// Specifies the number of retries before marking this job failed.
	// Defaults to 6
	// +optional
	BackoffLimit *int32 `json:"backoffLimit,omitempty"`

	// ttlSecondsAfterFinished limits the lifetime of a Job that has finished
	// execution (either Complete or Failed). If this field is set,
	// ttlSecondsAfterFinished after the Job finishes, it is eligible to be
	// automatically deleted. When the Job is being deleted, its lifecycle
	// guarantees (e.g. finalizers) will be honored. If this field is unset,
	// the Job won't be automatically deleted. If this field is set to zero,
	// the Job becomes eligible to be deleted immediately after it finishes.
	// +optional
	TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty"`

	// CompletionMode specifies how Pod completions are tracked. It can be
	// `NonIndexed` (default) or `Indexed`.
	//
	// `NonIndexed` means that the Job is considered complete when there have
	// been .spec.completions successfully completed Pods. Each Pod completion is
	// homologous to each other.
	//
	// `Indexed` means that the Pods of a
	// Job get an associated completion index from 0 to (.spec.completions - 1),
	// available in the annotation batch.kubernetes.io/job-completion-index.
	// The Job is considered complete when there is one successfully completed Pod
	// for each index.
	// When value is `Indexed`, .spec.completions must be specified and
	// `.spec.parallelism` must be less than or equal to 10^5.
	// In addition, The Pod name takes the form
	// `$(job-name)-$(index)-$(random-string)`,
	// the Pod hostname takes the form `$(job-name)-$(index)`.
	//
	// More completion modes can be added in the future.
	// If the Job controller observes a mode that it doesn't recognize, which
	// is possible during upgrades due to version skew, the controller
	// skips updates for the Job.
	// +optional
	CompletionMode *batchv1.CompletionMode `json:"completionMode,omitempty"`

	// Suspend specifies whether the Job controller should create Pods or not. If
	// a Job is created with suspend set to true, no Pods are created by the Job
	// controller. If a Job is suspended after creation (i.e. the flag goes from
	// false to true), the Job controller will delete all active Pods associated
	// with this Job. Users must design their workload to gracefully handle this.
	// Suspending a Job will reset the StartTime field of the Job, effectively
	// resetting the ActiveDeadlineSeconds timer too. Defaults to false.
	//
	// +optional
	Suspend *bool `json:"suspend,omitempty"`

	// JobAnnotations are free-form yaml that will be added to the Coherence workload's
	// `Job` as annotations.
	// Any annotations should be placed BELOW this "annotations:" key, for example:
	//
	// The default behaviour is to copy all annotations from the `Coherence` resource to the
	// `Job`, specifying any annotations in the `JobAnnotations` will override
	// this behaviour and only include the `JobAnnotations`.
	//
	// annotations:
	//   foo.io/one: "value1"
	//   foo.io/two: "value2"
	//
	// see: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/[Kubernetes Annotations]
	// +optional
	JobAnnotations map[string]string `json:"jobAnnotations,omitempty"`

	// ReadyAction is a probe that will be executed when one or more Pods
	// reach the ready state. The probe will be executed on every Pod that
	// is ready. One the required number of ready Pods is reached the probe
	// will also be executed on every Pod that becomes ready after that time.
	// +optional
	ReadyAction *CoherenceJobProbe `json:"readyAction,omitempty"`

	// ForceExit is a flag to indicate whether the Operator should call System.exit to forcefully exit the process
	// when the configured main class completes execution.
	ForceExit *bool `json:"forceExit,omitempty"`
	// List of sources to populate environment variables in the container.
	// The keys defined within a source must be a C_IDENTIFIER. All invalid keys
	// will be reported as an event when the container is starting. When a key exists in multiple
	// sources, the value associated with the last source will take precedence.
	// Values defined by an Env with a duplicate key will take precedence.
	// Cannot be updated.
	// +optional
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`
	// Global contains attributes that will be applied to all resources managed by the Coherence Operator.
	Global *GlobalSpec `json:"global,omitempty"`
}

CoherenceJobResourceSpec defines the specification of a CoherenceJob resource. +k8s:openapi-gen=true

func (*CoherenceJobResourceSpec) CreateJob

func (in *CoherenceJobResourceSpec) CreateJob(deployment *CoherenceJob) batchv1.Job

CreateJob creates the deployment's Job.

func (*CoherenceJobResourceSpec) CreateJobResource

func (in *CoherenceJobResourceSpec) CreateJobResource(deployment *CoherenceJob) Resource

CreateJobResource creates the deployment's Job resource.

func (*CoherenceJobResourceSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceJobResourceSpec.

func (*CoherenceJobResourceSpec) DeepCopyInto

func (in *CoherenceJobResourceSpec) DeepCopyInto(out *CoherenceJobResourceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CoherenceJobResourceSpec) GetReplicas

func (in *CoherenceJobResourceSpec) GetReplicas() int32

GetReplicas returns the number of replicas required for a deployment. The Replicas field is a pointer and may be nil so this method will return either the actual Replica value or the default (DefaultReplicas const) if the Replicas field is nil.

func (*CoherenceJobResourceSpec) GetRestartPolicy

func (in *CoherenceJobResourceSpec) GetRestartPolicy() *corev1.RestartPolicy

GetRestartPolicy returns the name of the application image to use

func (*CoherenceJobResourceSpec) IsSyncCompletions

func (in *CoherenceJobResourceSpec) IsSyncCompletions() bool

IsSyncCompletions returns true if Completions should always match Parallelism

func (*CoherenceJobResourceSpec) UpdateJob

func (in *CoherenceJobResourceSpec) UpdateJob(spec *batchv1.JobSpec)

UpdateJob updates a JobSpec from the fields in this spec

type CoherenceJobStatus

type CoherenceJobStatus struct {
	CoherenceResourceStatus `json:",inline"`
	ProbeStatus             []CoherenceJobProbeStatus `json:"probeStatus,omitempty"`
}

func (*CoherenceJobStatus) DeepCopy

func (in *CoherenceJobStatus) DeepCopy() *CoherenceJobStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceJobStatus.

func (*CoherenceJobStatus) DeepCopyInto

func (in *CoherenceJobStatus) DeepCopyInto(out *CoherenceJobStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CoherenceList

type CoherenceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Coherence `json:"items"`
}

CoherenceList is a list of Coherence resources.

func (*CoherenceList) DeepCopy

func (in *CoherenceList) DeepCopy() *CoherenceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceList.

func (*CoherenceList) DeepCopyInto

func (in *CoherenceList) DeepCopyInto(out *CoherenceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CoherenceList) DeepCopyObject

func (in *CoherenceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CoherenceResource

type CoherenceResource interface {
	client.Object
	// GetCoherenceClusterName obtains the Coherence cluster name for the Coherence resource.
	GetCoherenceClusterName() string
	// GetWkaServiceName returns the name of the headless Service used for Coherence WKA.
	GetWkaServiceName() string
	// GetHeadlessServiceName returns the name of the headless Service used for the StatefulSet.
	GetHeadlessServiceName() string
	// GetReplicas returns the number of replicas required for a deployment.
	// The Replicas field is a pointer and may be nil so this method will
	// return either the actual Replicas value or the default (DefaultReplicas const)
	// if the Replicas field is nil.
	GetReplicas() int32
	// SetReplicas sets the number of replicas required for a deployment.
	SetReplicas(replicas int32)
	// FindFullyQualifiedPortServiceNames returns a map of the exposed ports of this resource mapped to their Service's
	// fully qualified domain name.
	FindFullyQualifiedPortServiceNames() map[string]string
	// FindFullyQualifiedPortServiceName returns the fully qualified name of the Service used to expose
	// a named port and a bool indicating whether the named port has a Service.
	FindFullyQualifiedPortServiceName(name string) (string, bool)
	// FindPortServiceNames returns a map of the port names for this resource mapped to their Service names.
	FindPortServiceNames() map[string]string
	// FindPortServiceName returns the name of the Service used to expose a named port and a bool indicating
	// whether the named port has a Service.
	FindPortServiceName(name string) (string, bool)
	// CreateCommonLabels creates the deployment's common label set.
	CreateCommonLabels() map[string]string
	// CreateGlobalLabels creates the common label set for all resources.
	CreateGlobalLabels() map[string]string
	// CreateGlobalAnnotations creates the common annotation set for all resources.
	CreateGlobalAnnotations() map[string]string
	// CreateAnnotations returns the annotations to apply to this cluster's
	// deployment (StatefulSet).
	CreateAnnotations() map[string]string
	// GetNamespacedName returns the namespace/name key to look up this resource.
	GetNamespacedName() types.NamespacedName
	// GetRoleName returns the role name for a deployment.
	// If the Spec.Role field is set that is used for the role name
	// otherwise the deployment name is used as the role name.
	GetRoleName() string
	// GetType returns the type for a deployment.
	GetType() CoherenceType
	// GetWKA returns the host name Coherence should for WKA.
	GetWKA() string
	// GetVersionAnnotation if the returns the value of the Operator version annotation and true,
	// if the version annotation is present. If the version annotation is not present this method
	// returns empty string and false.
	GetVersionAnnotation() (string, bool)
	// IsBeforeVersion returns true if this Coherence resource Operator version annotation value is
	// before the specified version, or is not set.
	// The version parameter must be a valid SemVer value.
	IsBeforeVersion(version string) bool
	// GetSpec returns this resource's CoherenceResourceSpec
	GetSpec() *CoherenceResourceSpec
	// GetJobResourceSpec returns this resource's CoherenceJobResourceSpec.
	// If the spec is not a CoherenceJobResourceSpec the bool return value will be false.
	GetJobResourceSpec() (*CoherenceJobResourceSpec, bool)
	// GetStatefulSetSpec returns this resource's CoherenceStatefulSetResourceSpec
	// If the spec is not a CoherenceStatefulSetResourceSpec the bool return value will be false.
	GetStatefulSetSpec() (*CoherenceStatefulSetResourceSpec, bool)
	// GetStatus returns this resource's CoherenceResourceStatus
	GetStatus() *CoherenceResourceStatus
	// AddAnnotation adds an annotation to this resource
	AddAnnotation(key, value string)
	// AddAnnotationIfMissing adds an annotation to this resource if it is not already present
	AddAnnotationIfMissing(key, value string)
	// GetAnnotations returns the annotations on this resource
	GetAnnotations() map[string]string
	// CreateKubernetesResources creates the kubernetes resources defined by this resource
	CreateKubernetesResources() (Resources, error)
	// DeepCopyObject copies this CoherenceResource.
	DeepCopyObject() runtime.Object
	// DeepCopyResource copies this CoherenceResource.
	DeepCopyResource() CoherenceResource
	// GetAPIVersion returns the TypeMeta API version
	GetAPIVersion() string
	// IsForceExit is a flag to determine whether the Operator calls System.exit when the main class finishes.
	IsForceExit() bool
	// GetEnvVarFrom returns the array of EnvVarSource configurations
	GetEnvVarFrom() []corev1.EnvFromSource
	// GetGlobalSpec returns the attributes to be applied to all resources
	GetGlobalSpec() *GlobalSpec
}

CoherenceResource is a common interface implemented by different coherence resources. +kubebuilder:object:generate=false

type CoherenceResourceSpec

type CoherenceResourceSpec struct {
	// The name of the image.
	// More info: https://kubernetes.io/docs/concepts/containers/images
	// +optional
	Image *string `json:"image,omitempty"`
	// Image pull policy.
	// One of Always, Never, IfNotPresent.
	// More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
	// +optional
	ImagePullPolicy *corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any
	// of the images used by this PodSpec.
	// If specified, these secrets will be passed to individual puller implementations for them to use. For example,
	// in the case of docker, only DockerConfig type secrets are honored.
	// More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
	// +listType=map
	// +listMapKey=name
	// +optional
	ImagePullSecrets []LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// The desired number of cluster members of this deployment.
	// This is a pointer to distinguish between explicit zero and not specified.
	// If not specified a default value of 3 will be used.
	// This field cannot be negative.
	// +kubebuilder:validation:Minimum:=0
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`
	// The name of the role that this deployment represents in a Coherence cluster.
	// This value will be used to set the Coherence role property for all members of this role
	// +optional
	Role string `json:"role,omitempty"`
	// An optional app label to apply to resources created for this deployment.
	// This is useful for example to apply an app label for use by Istio.
	// This field follows standard Kubernetes label syntax.
	// +optional
	AppLabel *string `json:"appLabel,omitempty"`
	// An optional version label to apply to resources created for this deployment.
	// This is useful for example to apply a version label for use by Istio.
	// This field follows standard Kubernetes label syntax.
	// +optional
	VersionLabel *string `json:"versionLabel,omitempty"`
	// The optional settings specific to Coherence functionality.
	// +optional
	Coherence *CoherenceSpec `json:"coherence,omitempty"`
	// The optional application specific settings.
	// +optional
	Application *ApplicationSpec `json:"application,omitempty"`
	// The JVM specific options
	// +optional
	JVM *JVMSpec `json:"jvm,omitempty"`
	// Ports specifies additional port mappings for the Pod and additional Services for those ports.
	// +listType=map
	// +listMapKey=name
	// +optional
	Ports []NamedPortSpec `json:"ports,omitempty"`
	// StartQuorum controls the start-up order of this Coherence resource
	// in relation to other Coherence resources.
	// +listType=map
	// +listMapKey=deployment
	// +optional
	StartQuorum []StartQuorum `json:"startQuorum,omitempty"`
	// Env is additional environment variable mappings that will be passed to
	// the Coherence container in the Pod.
	// To specify extra variables add them as name value pairs the same as they
	// would be added to a Pod containers spec.
	// +listType=map
	// +listMapKey=name
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`
	// The extra labels to add to the all the Pods in this deployment.
	// Labels here will add to or override those defined for the cluster.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// Annotations are free-form yaml that will be added to the Coherence cluster member Pods
	// as annotations. Any annotations should be placed BELOW this "annotations:" key,
	// for example:
	//
	// annotations:
	//   foo.io/one: "value1"
	//   foo.io/two: "value2"
	//
	// see: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/[Kubernetes Annotations]
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// List of additional initialization containers to add to the deployment's Pod.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
	// +listType=map
	// +listMapKey=name
	InitContainers []corev1.Container `json:"initContainers,omitempty"`
	// List of additional side-car containers to add to the deployment's Pod.
	// +listType=map
	// +listMapKey=name
	SideCars []corev1.Container `json:"sideCars,omitempty"`
	// A list of ConfigMaps to add as volumes.
	// Each entry in the list will be added as a ConfigMap Volume to the deployment's
	// Pods and as a VolumeMount to all the containers and init-containers in the Pod.
	// +coh:doc=misc_pod_settings/050_configmap_volumes.adoc,Add ConfigMap Volumes
	// +listType=map
	// +listMapKey=name
	ConfigMapVolumes []ConfigMapVolumeSpec `json:"configMapVolumes,omitempty"`
	// A list of Secrets to add as volumes.
	// Each entry in the list will be added as a Secret Volume to the deployment's
	// Pods and as a VolumeMount to all the containers and init-containers in the Pod.
	// +coh:doc=misc_pod_settings/020_secret_volumes.adoc,Add Secret Volumes
	// +listType=map
	// +listMapKey=name
	SecretVolumes []SecretVolumeSpec `json:"secretVolumes,omitempty"`
	// Volumes defines extra volume mappings that will be added to the Coherence Pod.
	//   The content of this yaml should match the normal k8s volumes section of a Pod definition
	//   as described in https://kubernetes.io/docs/concepts/storage/volumes/
	// +listType=map
	// +listMapKey=name
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`
	// VolumeMounts defines extra volume mounts to map to the additional volumes or PVCs declared above
	//   in store.volumes and store.volumeClaimTemplates
	// +listType=map
	// +listMapKey=name
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
	// The port that the health check endpoint will bind to.
	// +optional
	HealthPort *int32 `json:"healthPort,omitempty"`
	// The readiness probe config to be used for the Pods in this deployment.
	// ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
	// +optional
	ReadinessProbe *ReadinessProbeSpec `json:"readinessProbe,omitempty"`
	// The liveness probe config to be used for the Pods in this deployment.
	// ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
	// +optional
	LivenessProbe *ReadinessProbeSpec `json:"livenessProbe,omitempty"`
	// The startup probe config to be used for the Pods in this deployment.
	// See: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
	// +optional
	StartupProbe *ReadinessProbeSpec `json:"startupProbe,omitempty"`
	// ReadinessGates defines a list of additional conditions that the kubelet evaluates for Pod readiness.
	// See: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-readiness-gate
	// +optional
	ReadinessGates []corev1.PodReadinessGate `json:"readinessGates,omitempty"`
	// Resources is the optional resource requests and limits for the containers
	//  ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	// The Coherence operator does not apply any default resources.
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// Affinity controls Pod scheduling preferences.
	//   ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// NodeSelector is the Node labels for pod assignment
	//   ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// Tolerations for nodes that have taints on them.
	//   Useful if you want to dedicate nodes to just run the coherence container
	// For example:
	//   tolerations:
	//   - key: "key"
	//     operator: "Equal"
	//     value: "value"
	//     effect: "NoSchedule"
	//
	//   ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
	// +listType=map
	// +listMapKey=key
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// SecurityContext is the PodSecurityContext that will be added to all the Pods in this deployment.
	// See: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
	// +optional
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`
	// ContainerSecurityContext is the SecurityContext that will be added to the Coherence container in each Pod
	// in this deployment.
	// See: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
	// +optional
	ContainerSecurityContext *corev1.SecurityContext `json:"containerSecurityContext,omitempty"`
	// Share a single process namespace between all the containers in a pod. When this is set containers will
	// be able to view and signal processes from other containers in the same pod, and the first process in each
	// container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set.
	// Optional: Default to false.
	// +optional
	ShareProcessNamespace *bool `json:"shareProcessNamespace,omitempty"`
	// Use the host's ipc namespace. Optional: Default to false.
	// +optional
	HostIPC *bool `json:"hostIPC,omitempty"`
	// Configure various networks and DNS settings for Pods in this role.
	// +optional
	Network *NetworkSpec `json:"network,omitempty"`
	// The configuration for the Coherence operator image name
	// +optional
	CoherenceUtils *ImageSpec `json:"coherenceUtils,omitempty"`
	// The name to use for the service account to use when RBAC is enabled
	// The role bindings must already have been created as this chart does not create them it just
	// sets the serviceAccountName value in the Pod spec.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`
	// Whether to auto-mount the Kubernetes API credentials for a service account
	// +optional
	AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"`
	// The timeout to apply to REST requests made back to the Operator from Coherence Pods.
	// These requests are typically to obtain site and rack information for the Pod.
	// +optional
	OperatorRequestTimeout *int32 `json:"operatorRequestTimeout,omitempty"`
	// ActiveDeadlineSeconds is the optional duration in seconds the pod may be active on the node relative to
	// StartTime before the system will actively try to mark it failed and kill associated containers.
	// Value must be a positive integer.
	// +optional
	ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"`
	// EnableServiceLinks indicates whether information about services should be injected into pod's
	// environment variables, matching the syntax of Docker links.
	// Optional: Defaults to true.
	// +optional
	EnableServiceLinks *bool `json:"enableServiceLinks,omitempty"`
	// PreemptionPolicy is the Policy for preempting pods with lower priority.
	// One of Never, PreemptLowerPriority.
	// Defaults to PreemptLowerPriority if unset.
	// +optional
	PreemptionPolicy *corev1.PreemptionPolicy `json:"preemptionPolicy,omitempty"`
	// PriorityClassName, if specified, indicates the pod's priority. "system-node-critical" and
	// "system-cluster-critical" are two special keywords which indicate the
	// highest priorities with the former being the highest priority. Any other
	// name must be defined by creating a PriorityClass object with that name.
	// If not specified, the pod priority will be default or zero if there is no
	// default.
	// +optional
	PriorityClassName *string `json:"priorityClassName,omitempty"`
	// Restart policy for all containers within the pod.
	// One of Always, OnFailure, Never.
	// Default to Always.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
	// +optional
	RestartPolicy *corev1.RestartPolicy `json:"restartPolicy,omitempty"`
	// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
	// to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
	// If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
	// empty definition that uses the default runtime handler.
	// More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
	// +optional
	RuntimeClassName *string `json:"runtimeClassName,omitempty"`
	// If specified, the pod will be dispatched by specified scheduler.
	// If not specified, the pod will be dispatched by default scheduler.
	// +optional
	SchedulerName *string `json:"schedulerName,omitempty"`
	// TopologySpreadConstraints describes how a group of pods ought to spread across topology
	// domains. Scheduler will schedule pods in a way which abides by the constraints.
	// All topologySpreadConstraints are ANDed.
	// +optional
	// +patchMergeKey=topologyKey
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=topologyKey
	// +listMapKey=whenUnsatisfiable
	TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty" patchStrategy:"merge" patchMergeKey:"topologyKey"`
	// RackLabel is an optional Node label to use for the value of the Coherence member's rack name.
	// The default labels to use are determined by the Operator.
	// +optional
	RackLabel *string `json:"rackLabel,omitempty"`
	// SiteLabel is an optional Node label to use for the value of the Coherence member's site name
	// The default labels to use are determined by the Operator.
	// +optional
	SiteLabel *string `json:"siteLabel,omitempty"`
}

CoherenceResourceSpec defines the specification of a Coherence resource. A Coherence resource is typically one or more Pods that perform the same functionality, for example storage members. +k8s:openapi-gen=true

func (*CoherenceResourceSpec) AddEnvVarIfAbsent

func (in *CoherenceResourceSpec) AddEnvVarIfAbsent(envVar corev1.EnvVar)

AddEnvVarIfAbsent adds the specified EnvVar if one with the same name does not already exist.

func (*CoherenceResourceSpec) CreateCoherenceContainer

func (in *CoherenceResourceSpec) CreateCoherenceContainer(deployment CoherenceResource) corev1.Container

CreateCoherenceContainer creates the Coherence container spec.

func (*CoherenceResourceSpec) CreateCommonEnv

func (in *CoherenceResourceSpec) CreateCommonEnv(deployment CoherenceResource) []corev1.EnvVar

CreateCommonEnv creates the common environment variables added all.

func (*CoherenceResourceSpec) CreateCommonVolumeMounts

func (in *CoherenceResourceSpec) CreateCommonVolumeMounts() []corev1.VolumeMount

CreateCommonVolumeMounts creates the common VolumeMounts added all containers.

func (*CoherenceResourceSpec) CreateDefaultEnv

func (in *CoherenceResourceSpec) CreateDefaultEnv(deployment CoherenceResource) []corev1.EnvVar

CreateDefaultEnv creates the default environment variables for the Coherence container.

func (*CoherenceResourceSpec) CreateDefaultLivenessProbe

func (in *CoherenceResourceSpec) CreateDefaultLivenessProbe() *corev1.Probe

CreateDefaultLivenessProbe creates the default liveness probe.

func (*CoherenceResourceSpec) CreateDefaultPodAffinity

func (in *CoherenceResourceSpec) CreateDefaultPodAffinity(deployment CoherenceResource) *corev1.Affinity

CreateDefaultPodAffinity creates the default Pod Affinity to use in a deployment's StatefulSet.

func (*CoherenceResourceSpec) CreateDefaultReadinessProbe

func (in *CoherenceResourceSpec) CreateDefaultReadinessProbe() *corev1.Probe

CreateDefaultReadinessProbe creates the default readiness probe.

func (*CoherenceResourceSpec) CreateHeadlessService

func (in *CoherenceResourceSpec) CreateHeadlessService(deployment CoherenceResource) Resource

CreateHeadlessService creates the headless Service for the deployment's StatefulSet.

func (*CoherenceResourceSpec) CreateKubernetesResources

func (in *CoherenceResourceSpec) CreateKubernetesResources(d CoherenceResource) []Resource

CreateKubernetesResources creates the Kubernetes resources that should be deployed for this deployment. The order of the resources in the returned array is the order that they should be created or updated in Kubernetes.

func (*CoherenceResourceSpec) CreateOperatorInitContainer

func (in *CoherenceResourceSpec) CreateOperatorInitContainer(deployment CoherenceResource) corev1.Container

CreateOperatorInitContainer creates the Operator init-container spec.

func (*CoherenceResourceSpec) CreatePodSelectorLabels

func (in *CoherenceResourceSpec) CreatePodSelectorLabels(deployment CoherenceResource) map[string]string

CreatePodSelectorLabels creates the selector that can be used to match this deployment's Pods, for example by Services or StatefulSets.

func (*CoherenceResourceSpec) CreatePodTemplateSpec

func (in *CoherenceResourceSpec) CreatePodTemplateSpec(deployment CoherenceResource) corev1.PodTemplateSpec

func (*CoherenceResourceSpec) CreateServicesForPort

func (in *CoherenceResourceSpec) CreateServicesForPort(deployment CoherenceResource) []Resource

CreateServicesForPort creates the Services for each port (and optionally ServiceMonitors)

func (*CoherenceResourceSpec) CreateWKAService

func (in *CoherenceResourceSpec) CreateWKAService(deployment CoherenceResource) Resource

CreateWKAService creates the headless WKA Service

func (*CoherenceResourceSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceResourceSpec.

func (*CoherenceResourceSpec) DeepCopyInto

func (in *CoherenceResourceSpec) DeepCopyInto(out *CoherenceResourceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CoherenceResourceSpec) EnsureCoherenceImage

func (in *CoherenceResourceSpec) EnsureCoherenceImage(coherenceImage *string) bool

EnsureCoherenceImage ensures that the Coherence image is set for the deployment. This ensures that the image is fixed to either that specified in the cluster spec or to the current default and means that the Helm controller does not upgrade the images if the Operator is upgraded.

func (*CoherenceResourceSpec) EnsureCoherenceOperatorImage

func (in *CoherenceResourceSpec) EnsureCoherenceOperatorImage(imageName *string) bool

EnsureCoherenceOperatorImage ensures that the Coherence Operator image is set for the deployment. This ensures that the image is fixed to either that specified in the cluster spec or to the current default and means that the Helm controller does not upgrade the images if the Operator is upgraded.

func (*CoherenceResourceSpec) EnsurePodAffinity

func (in *CoherenceResourceSpec) EnsurePodAffinity(deployment CoherenceResource) *corev1.Affinity

EnsurePodAffinity creates the Pod Affinity either from that configured for the cluster or the default affinity.

func (*CoherenceResourceSpec) FindPortServiceName

func (in *CoherenceResourceSpec) FindPortServiceName(name string, deployment CoherenceResource) (string, bool)

FindPortServiceName returns the name of the Service used to expose a named port and a bool indicating whether the named port has a Service.

func (*CoherenceResourceSpec) FindPortServiceNames

func (in *CoherenceResourceSpec) FindPortServiceNames(deployment CoherenceResource) map[string]string

FindPortServiceNames returns a map of the port names to the names of the Service used to expose those ports.

func (*CoherenceResourceSpec) GetCoherenceImage

func (in *CoherenceResourceSpec) GetCoherenceImage() *string

GetCoherenceImage returns the name of the application image to use

func (*CoherenceResourceSpec) GetCoherenceOperatorImage

func (in *CoherenceResourceSpec) GetCoherenceOperatorImage() *string

GetCoherenceOperatorImage returns the name of the Operator image to use.

func (*CoherenceResourceSpec) GetCoherencePersistence

func (in *CoherenceResourceSpec) GetCoherencePersistence() *PersistenceSpec

GetCoherencePersistence returns the Coherence PersistenceSpec or nil if persistence is not configured.

func (*CoherenceResourceSpec) GetDefaultScalingProbe

func (in *CoherenceResourceSpec) GetDefaultScalingProbe() *Probe

GetDefaultScalingProbe returns a default Scaling probe

func (*CoherenceResourceSpec) GetHealthPort

func (in *CoherenceResourceSpec) GetHealthPort() int32

GetHealthPort returns the port that the health check endpoint will bind to.

func (*CoherenceResourceSpec) GetImagePullSecrets

func (in *CoherenceResourceSpec) GetImagePullSecrets() []corev1.LocalObjectReference

func (*CoherenceResourceSpec) GetManagementPort

func (in *CoherenceResourceSpec) GetManagementPort() int32

func (*CoherenceResourceSpec) GetMetricsPort

func (in *CoherenceResourceSpec) GetMetricsPort() int32

func (*CoherenceResourceSpec) GetReplicas

func (in *CoherenceResourceSpec) GetReplicas() int32

GetReplicas returns the number of replicas required for a deployment. The Replicas field is a pointer and may be nil so this method will return either the actual Replica value or the default (DefaultReplicas const) if the Replicas field is nil.

func (*CoherenceResourceSpec) GetRestartPolicy

func (in *CoherenceResourceSpec) GetRestartPolicy() *corev1.RestartPolicy

GetRestartPolicy returns the name of the application image to use

func (*CoherenceResourceSpec) GetServiceAccountName

func (in *CoherenceResourceSpec) GetServiceAccountName() string

GetServiceAccountName returns the service account name for the cluster.

func (*CoherenceResourceSpec) ProcessSideCars

func (in *CoherenceResourceSpec) ProcessSideCars(deployment CoherenceResource, podTemplate *corev1.PodTemplateSpec)

ProcessSideCars adds any additional init-containers or additional containers to the StatefulSet. This will add any common environment variables to te container too, unless those variable names have already been specified in the container spec

func (*CoherenceResourceSpec) RestartPolicyPointer

func (in *CoherenceResourceSpec) RestartPolicyPointer(policy corev1.RestartPolicy) *corev1.RestartPolicy

func (*CoherenceResourceSpec) SetReplicas

func (in *CoherenceResourceSpec) SetReplicas(replicas int32)

SetReplicas sets the number of replicas required for a deployment.

func (*CoherenceResourceSpec) UpdateDefaultLivenessProbeAction

func (in *CoherenceResourceSpec) UpdateDefaultLivenessProbeAction(probe *corev1.Probe) *corev1.Probe

UpdateDefaultLivenessProbeAction updates the probe with the default liveness probe action.

func (*CoherenceResourceSpec) UpdateDefaultReadinessProbeAction

func (in *CoherenceResourceSpec) UpdateDefaultReadinessProbeAction(probe *corev1.Probe) *corev1.Probe

UpdateDefaultReadinessProbeAction updates the probe with the default readiness probe action.

type CoherenceResourceStatus

type CoherenceResourceStatus struct {
	// The phase of a Coherence resource is a simple, high-level summary of where the
	// Coherence resource is in its lifecycle.
	// The conditions array, the reason and message fields, and the individual container status
	// arrays contain more detail about the pod's status.
	// There are eight possible phase values:
	//
	// Initialized:    The deployment has been accepted by the Kubernetes system.
	// Created:        The deployments secondary resources, (e.g. the StatefulSet, Services etc.) have been created.
	// Ready:          The StatefulSet for the deployment has the correct number of replicas and ready replicas.
	// Waiting:        The deployment's start quorum conditions have not yet been met.
	// Scaling:        The number of replicas in the deployment is being scaled up or down.
	// RollingUpgrade: The StatefulSet is performing a rolling upgrade.
	// Stopped:        The replica count has been set to zero.
	// Completed:      The Coherence resource is running a Job and the Job has completed.
	// Failed:         An error occurred reconciling the deployment and its secondary resources.
	//
	// +optional
	Phase ConditionType `json:"phase,omitempty"`
	// The name of the Coherence cluster that this deployment is part of.
	// +optional
	CoherenceCluster string `json:"coherenceCluster,omitempty"`
	// The type of the Coherence resource.
	// +optional
	Type CoherenceType `json:"type,omitempty"`
	// Replicas is the desired number of members in the Coherence deployment
	// represented by the Coherence resource.
	// +optional
	Replicas int32 `json:"replicas"`
	// CurrentReplicas is the current number of members in the Coherence deployment
	// represented by the Coherence resource.
	// +optional
	CurrentReplicas int32 `json:"currentReplicas"`
	// ReadyReplicas is the number of members in the Coherence deployment
	// represented by the Coherence resource that are in the ready state.
	// +optional
	ReadyReplicas int32 `json:"readyReplicas"`
	// When the Coherence resource is running a Job, the number of pending and running pods.
	// +optional
	Active int32 `json:"active,omitempty"`
	// When the Coherence resource is running a Job, the number of pods which reached phase Succeeded.
	// +optional
	Succeeded int32 `json:"succeeded,omitempty"`
	// When the Coherence resource is running a Job, the number of pods which reached phase Failed.
	// +optional
	Failed int32 `json:"failed,omitempty"`
	// The effective role name for this deployment.
	// This will come from the Spec.Role field if set otherwise the deployment name
	// will be used for the role name
	// +optional
	Role string `json:"role,omitempty"`
	// label query over deployments that should match the replicas count. This is same
	// as the label selector but in the string format to avoid introspection
	// by clients. The string will be in the same format as the query-param syntax.
	// More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
	// +optional
	Selector string `json:"selector,omitempty"`
	// The status conditions.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	Conditions Conditions `json:"conditions,omitempty"`
	// Hash is the hash of the latest applied Coherence spec
	// +optional
	Hash string `json:"hash,omitempty"`
	// ActionsExecuted tracks whether actions were executed
	// +optional
	ActionsExecuted bool `json:"actionsExecuted,omitempty"`
	// +optional
	// +patchMergeKey=pod
	// +patchStrategy=merge
	JobProbes []CoherenceJobProbeStatus `json:"jobProbes,omitempty"`
}

CoherenceResourceStatus defines the observed state of Coherence resource.

func (*CoherenceResourceStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceResourceStatus.

func (*CoherenceResourceStatus) DeepCopyInto

func (in *CoherenceResourceStatus) DeepCopyInto(out *CoherenceResourceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CoherenceResourceStatus) FindJobProbeStatus

func (in *CoherenceResourceStatus) FindJobProbeStatus(pod string) CoherenceJobProbeStatus

func (*CoherenceResourceStatus) MaybeFindJobProbeStatus

func (in *CoherenceResourceStatus) MaybeFindJobProbeStatus(pod string) *CoherenceJobProbeStatus

func (*CoherenceResourceStatus) SetCondition

func (in *CoherenceResourceStatus) SetCondition(deployment CoherenceResource, c Condition) bool

SetCondition sets the current Status Condition

func (*CoherenceResourceStatus) Update

func (in *CoherenceResourceStatus) Update(deployment *Coherence, sts *appsv1.StatefulSetStatus) bool

Update the status based on the condition of the StatefulSet status.

func (*CoherenceResourceStatus) UpdateFromJob

func (in *CoherenceResourceStatus) UpdateFromJob(deployment *CoherenceJob, jobStatus *batchv1.JobStatus, probeStatuses []CoherenceJobProbeStatus) bool

UpdateFromJob the status based on the condition of the Job status.

type CoherenceSpec

type CoherenceSpec struct {
	// CacheConfig is the name of the cache configuration file to use
	// +coh:doc=coherence_settings/030_cache_config.adoc,Configure Cache Config File
	// +optional
	CacheConfig *string `json:"cacheConfig,omitempty"`
	// OverrideConfig is name of the Coherence operational configuration override file,
	// the default is tangosol-coherence-override.xml
	// +coh:doc=coherence_settings/040_override_file.adoc,Configure Operational Config File
	// +optional
	OverrideConfig *string `json:"overrideConfig,omitempty"`
	// A boolean flag indicating whether members of this deployment are storage enabled.
	// This value will set the corresponding coherence.distributed.localstorage System property.
	// If not specified the default value is true.
	// This flag is also used to configure the ScalingPolicy value if a value is not specified. If the
	// StorageEnabled field is not specified or is true the scaling will be safe, if StorageEnabled is
	// set to false scaling will be parallel.
	// +coh:doc=coherence_settings/050_storage_enabled.adoc,Configure Storage Enabled
	// +optional
	StorageEnabled *bool `json:"storageEnabled,omitempty"`
	// Persistence values configure the on-disc data persistence settings.
	// The bool Enabled enables or disabled on disc persistence of data.
	// +coh:doc=coherence_settings/080_persistence.adoc,Configure Persistence
	// +optional
	Persistence *PersistenceSpec `json:"persistence,omitempty"`
	// The Coherence log level, default being 5 (info level).
	// +coh:doc=coherence_settings/060_log_level.adoc,Configure Coherence log level
	// +optional
	LogLevel *int32 `json:"logLevel,omitempty"`
	// Management configures Coherence management over REST
	// Note: Coherence management over REST will is available in Coherence version >= 12.2.1.4.
	// +coh:doc=management_and_diagnostics/010_overview.adoc,Management & Diagnostics
	// +optional
	Management *PortSpecWithSSL `json:"management,omitempty"`
	// Metrics configures Coherence metrics publishing
	// Note: Coherence metrics publishing will is available in Coherence version >= 12.2.1.4.
	// +coh:doc=metrics/010_overview.adoc,Metrics
	// +optional
	Metrics *PortSpecWithSSL `json:"metrics,omitempty"`
	// Tracing is used to configure Coherence distributed tracing functionality.
	// +optional
	Tracing *CoherenceTracingSpec `json:"tracing,omitempty"`
	// AllowEndangeredForStatusHA is a list of Coherence partitioned cache service names
	// that are allowed to be in an endangered state when testing for StatusHA.
	// Instances where a StatusHA check is performed include the readiness probe and when
	// scaling a deployment.
	// This field would not typically be used except in cases where a cache service is
	// configured with a backup count greater than zero but it does not matter if caches in
	// those services loose data due to member departure. Normally, such cache services would
	// have a backup count of zero, which would automatically excluded them from the StatusHA
	// check.
	// +listType=atomic
	// +optional
	AllowEndangeredForStatusHA []string `json:"allowEndangeredForStatusHA,omitempty"`
	// Exclude members of this deployment from being part of the cluster's WKA list.
	// +coh:doc=coherence_settings/070_wka.adoc,Well Known Addressing
	// +optional
	ExcludeFromWKA *bool `json:"excludeFromWKA,omitempty"`
	// Specify an existing Coherence deployment to be used for WKA.
	// If an existing deployment is to be used for WKA the ExcludeFromWKA is
	// implicitly set to true.
	// +coh:doc=coherence_settings/070_wka.adoc,Well Known Addressing
	// +optional
	WKA *CoherenceWKASpec `json:"wka,omitempty"`
	// Certain features rely on a version check prior to starting the server, e.g. metrics requires >= 12.2.1.4.
	// The version check relies on the ability of the start script to find coherence.jar but if due to how the image
	// has been built this check is failing then setting this flag to true will skip version checking and assume
	// that the latest coherence.jar is being used.
	// +optional
	SkipVersionCheck *bool `json:"skipVersionCheck,omitempty"`
	// Enables the Coherence IP Monitor feature.
	// The Operator disables the IP Monitor by default.
	EnableIPMonitor *bool `json:"enableIpMonitor,omitempty"`
	// LocalPort sets the Coherence unicast port.
	// When manually configuring unicast ports, a single port is specified and the second port is automatically selected.
	// If either of the ports are not available, then the default behavior is to select the next available port.
	// For example, if port 9000 is configured for the first port (port1) and it is not available, then the next
	// available port is automatically selected. The second port (port2) is automatically opened and defaults to
	// the next available port after port1 (port1 + 1 if available).
	LocalPort *int32 `json:"localPort,omitempty"`
	// LocalPortAdjust sets the Coherence unicast port adjust value.
	// To specify a range of unicast ports from which ports are selected, include a port value that represents the
	// upper limit of the port range.
	LocalPortAdjust *intstr.IntOrString `json:"localPortAdjust,omitempty"`
}

CoherenceSpec is the section of the CRD configures settings specific to Coherence. +coh:doc=coherence_settings/010_overview.adoc,Coherence Configuration +k8s:openapi-gen=true

func (*CoherenceSpec) AddPersistencePVCs

func (in *CoherenceSpec) AddPersistencePVCs(deployment *Coherence, sts *appsv1.StatefulSet)

AddPersistencePVCs adds the persistence and snapshot persistent volume claims

func (*CoherenceSpec) AddPersistenceVolumeMounts

func (in *CoherenceSpec) AddPersistenceVolumeMounts(c *corev1.Container)

AddPersistenceVolumeMounts adds the persistence and snapshot volume mounts to the specified container

func (*CoherenceSpec) AddPersistenceVolumes

func (in *CoherenceSpec) AddPersistenceVolumes(podTemplate *corev1.PodTemplateSpec)

AddPersistenceVolumes adds the persistence and snapshot volumes

func (*CoherenceSpec) DeepCopy

func (in *CoherenceSpec) DeepCopy() *CoherenceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceSpec.

func (*CoherenceSpec) DeepCopyInto

func (in *CoherenceSpec) DeepCopyInto(out *CoherenceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CoherenceSpec) GetLocalPorts

func (in *CoherenceSpec) GetLocalPorts() (int32, string)

GetLocalPorts returns the Coherence local ports.

func (*CoherenceSpec) GetManagementPort

func (in *CoherenceSpec) GetManagementPort() int32

GetManagementPort returns the management over REST port number.

func (*CoherenceSpec) GetMetricsPort

func (in *CoherenceSpec) GetMetricsPort() int32

GetMetricsPort returns the metrics port number.

func (*CoherenceSpec) GetPersistenceSpec

func (in *CoherenceSpec) GetPersistenceSpec() *PersistenceSpec

GetPersistenceSpec returns the Coherence persistence spcification.

func (*CoherenceSpec) GetWKA

func (in *CoherenceSpec) GetWKA(deployment CoherenceResource) string

GetWKA returns the host name Coherence should for WKA.

func (*CoherenceSpec) IsWKAMember

func (in *CoherenceSpec) IsWKAMember() bool

IsWKAMember returns true if this deployment is a WKA list member.

func (*CoherenceSpec) RequiresWKAService

func (in *CoherenceSpec) RequiresWKAService() bool

RequiresWKAService returns true if this deployment requires a WKA Service.

func (*CoherenceSpec) UpdatePodTemplateSpec

func (in *CoherenceSpec) UpdatePodTemplateSpec(podTemplate *corev1.PodTemplateSpec, deployment CoherenceResource)

UpdatePodTemplateSpec applies Coherence settings to the PodTemplateSpec.

func (*CoherenceSpec) UpdateStatefulSet

func (in *CoherenceSpec) UpdateStatefulSet(deployment *Coherence, sts *appsv1.StatefulSet)

UpdateStatefulSet applies Coherence settings to the StatefulSet.

type CoherenceStatefulSetResourceSpec

type CoherenceStatefulSetResourceSpec struct {
	CoherenceResourceSpec `json:",inline"`
	// The optional name of the Coherence cluster that this Coherence resource belongs to.
	// If this value is set the Pods controlled by this Coherence resource will form a cluster
	// with other Pods controlled by Coherence resources with the same cluster name.
	// If not set the Coherence resource's name will be used as the cluster name.
	// +optional
	Cluster *string `json:"cluster,omitempty"`
	// StatefulSetAnnotations are free-form yaml that will be added to the Coherence cluster
	// `StatefulSet` as annotations.
	// Any annotations should be placed BELOW this "annotations:" key, for example:
	//
	// The default behaviour is to copy all annotations from the `Coherence` resource to the
	// `StatefulSet`, specifying any annotations in the `StatefulSetAnnotations` will override
	// this behaviour and only include the `StatefulSetAnnotations`.
	//
	// annotations:
	//   foo.io/one: "value1"
	//   foo.io/two: "value2"
	//
	// see: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/[Kubernetes Annotations]
	// +optional
	StatefulSetAnnotations map[string]string `json:"statefulSetAnnotations,omitempty"`
	// VolumeClaimTemplates defines extra PVC mappings that will be added to the Coherence Pod.
	// The content of this yaml should match the normal k8s volumeClaimTemplates section of a StatefulSet spec
	// as described in https://kubernetes.io/docs/concepts/storage/persistent-volumes/
	// Every claim in this list must have at least one matching (by name) volumeMount in one
	// container in the template. A claim in this list takes precedence over any volumes in the
	// template, with the same name.
	// +listType=atomic
	// +optional
	VolumeClaimTemplates []PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"`
	// The configuration to control safe scaling.
	// +optional
	Scaling *ScalingSpec `json:"scaling,omitempty"`
	// The configuration of the probe used to signal that services must be suspended
	// before a deployment is stopped.
	// +optional
	SuspendProbe *Probe `json:"suspendProbe,omitempty"`
	// A flag controlling whether storage enabled cache services in this deployment
	// will be suspended before the deployment is shutdown or scaled to zero.
	// The action of suspending storage enabled services when the whole deployment is being
	// stopped ensures that cache services with persistence enabled will shut down cleanly
	// without the possibility of Coherence trying to recover and re-balance partitions
	// as Pods are stopped.
	// The default value if not specified is true.
	// +optional
	SuspendServicesOnShutdown *bool `json:"suspendServicesOnShutdown,omitempty"`
	// ResumeServicesOnStartup allows the Operator to resume suspended Coherence services when
	// the Coherence container is started. This only applies to storage enabled distributed cache
	// services. This ensures that services that are suspended due to the shutdown of a storage
	// tier, but those services are still running (albeit suspended) in other storage disabled
	// deployments, will be resumed when storage comes back.
	// Note that starting Pods with suspended partitioned cache services may stop the Pod reaching the ready state.
	// The default value if not specified is true.
	// +optional
	ResumeServicesOnStartup *bool `json:"resumeServicesOnStartup,omitempty"`
	// AutoResumeServices is a map of Coherence service names to allow more fine-grained control over
	// which services may be auto-resumed by the operator when a Coherence Pod starts.
	// The key to the map is the name of the Coherence service. This should be the fully qualified name
	// if scoped services are being used in Coherence. The value is a bool, set to `true` to allow the
	// service to be auto-resumed or `false` to not allow the service to be auto-resumed.
	// Adding service names to this list will override any value set in `ResumeServicesOnStartup`, so if the
	// `ResumeServicesOnStartup` field is `false` but there are service names in the `AutoResumeServices`, mapped
	// to `true`, those services will still be resumed.
	// Note that starting Pods with suspended partitioned cache services may stop the Pod reaching the ready state.
	// +optional
	AutoResumeServices map[string]bool `json:"autoResumeServices,omitempty"`
	// SuspendServiceTimeout sets the number of seconds to wait for the service suspend
	// call to return (the default is 60 seconds)
	// +optional
	SuspendServiceTimeout *int `json:"suspendServiceTimeout,omitempty"`
	// Whether to perform a StatusHA test on the cluster before performing an update or deletion.
	// This field can be set to "false" to force through an update even when a Coherence deployment is in
	// an unstable state.
	// The default is true, to always check for StatusHA before updating a Coherence deployment.
	// +optional
	HABeforeUpdate *bool `json:"haBeforeUpdate,omitempty"`
	// AllowUnsafeDelete controls whether the Operator will add a finalizer to the Coherence resource
	// so that it can intercept deletion of the resource and initiate a controlled shutdown of the
	// Coherence cluster. The default value is `false`.
	// The primary use for setting this flag to `true` is in CI/CD environments so that cleanup jobs
	// can delete a whole namespace without requiring the Operator to have removed finalizers from
	// any Coherence resources deployed into that namespace.
	// It is not recommended to set this flag to `true` in a production environment, especially when
	// using Coherence persistence features.
	// +optional
	AllowUnsafeDelete *bool `json:"allowUnsafeDelete,omitempty"`
	// Actions to execute once all the Pods are ready after an initial deployment
	// +optional
	Actions []Action `json:"actions,omitempty"`
	// List of sources to populate environment variables in the container.
	// The keys defined within a source must be a C_IDENTIFIER. All invalid keys
	// will be reported as an event when the container is starting. When a key exists in multiple
	// sources, the value associated with the last source will take precedence.
	// Values defined by an Env with a duplicate key will take precedence.
	// Cannot be updated.
	// +optional
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`
	// Global contains attributes that will be applied to all resources managed by the Coherence Operator.
	Global *GlobalSpec `json:"global,omitempty"`
}

CoherenceStatefulSetResourceSpec defines the specification of a Coherence resource. A Coherence resource is typically one or more Pods that perform the same functionality, for example storage members. +k8s:openapi-gen=true

func (*CoherenceStatefulSetResourceSpec) CheckHABeforeUpdate

func (in *CoherenceStatefulSetResourceSpec) CheckHABeforeUpdate() bool

CheckHABeforeUpdate returns true if a StatusHA check should be made before updating a deployment.

func (*CoherenceStatefulSetResourceSpec) CreateStatefulSet

func (in *CoherenceStatefulSetResourceSpec) CreateStatefulSet(deployment *Coherence) appsv1.StatefulSet

CreateStatefulSet creates the deployment's StatefulSet.

func (*CoherenceStatefulSetResourceSpec) CreateStatefulSetResource

func (in *CoherenceStatefulSetResourceSpec) CreateStatefulSetResource(deployment *Coherence) Resource

CreateStatefulSetResource creates the deployment's StatefulSet resource.

func (*CoherenceStatefulSetResourceSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceStatefulSetResourceSpec.

func (*CoherenceStatefulSetResourceSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CoherenceStatefulSetResourceSpec) GetDefaultSuspendProbe

func (in *CoherenceStatefulSetResourceSpec) GetDefaultSuspendProbe() *Probe

GetDefaultSuspendProbe returns the default Suspend probe

func (*CoherenceStatefulSetResourceSpec) GetEffectiveScalingPolicy

func (in *CoherenceStatefulSetResourceSpec) GetEffectiveScalingPolicy() ScalingPolicy

GetEffectiveScalingPolicy returns the scaling policy to be used.

func (*CoherenceStatefulSetResourceSpec) GetScalingProbe

func (in *CoherenceStatefulSetResourceSpec) GetScalingProbe() *Probe

GetScalingProbe returns the Probe to use for checking Phase HA for the deployment. This method will not return nil.

func (*CoherenceStatefulSetResourceSpec) GetSuspendProbe

func (in *CoherenceStatefulSetResourceSpec) GetSuspendProbe() *Probe

GetSuspendProbe returns the Probe to use for signaling to a deployment that services should be suspended prior to the deployment being stopped. This method will not return nil.

func (*CoherenceStatefulSetResourceSpec) IsSuspendServicesOnShutdown

func (in *CoherenceStatefulSetResourceSpec) IsSuspendServicesOnShutdown() bool

IsSuspendServicesOnShutdown returns true if services should be suspended before a cluster is shutdown.

type CoherenceTracingSpec

type CoherenceTracingSpec struct {
	// Ratio is the tracing sampling-ratio, which controls the likelihood of a tracing span being collected.
	// For instance, a value of 1.0 will result in all tracing spans being collected, while a value of 0.1
	// will result in roughly 1 out of every 10 tracing spans being collected.
	//
	// A value of 0 indicates that tracing spans should only be collected if they are already in the context
	// of another tracing span.  With such a configuration, Coherence will not initiate tracing on its own,
	// and it is up to the application to start an outer tracing span, from which Coherence will then collect
	// inner tracing spans.
	//
	// A value of -1 disables tracing completely.
	//
	// The Coherence default is -1 if not overridden. For values other than -1, numbers between 0 and 1 are
	// acceptable.
	//
	// NOTE: This field is a k8s resource.Quantity value as CRDs do not support decimal numbers.
	// See https://godoc.org/k8s.io/apimachinery/pkg/api/resource#Quantity for the different
	// formats of number that may be entered.
	//
	// +optional
	Ratio *resource.Quantity `json:"ratio,omitempty"`
}

CoherenceTracingSpec configures Coherence tracing. +k8s:openapi-gen=true

func (*CoherenceTracingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceTracingSpec.

func (*CoherenceTracingSpec) DeepCopyInto

func (in *CoherenceTracingSpec) DeepCopyInto(out *CoherenceTracingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CoherenceType

type CoherenceType string

type CoherenceWKASpec

type CoherenceWKASpec struct {
	// The name of the existing Coherence deployment to use for WKA.
	// +optional
	Deployment string `json:"deployment"`
	// The optional namespace of the existing Coherence deployment to use for WKA
	// if different from this deployment's namespace.
	// +optional
	Namespace string `json:"namespace,omitempty"`
	// A list of addresses to be used for WKA.
	// If this field is set, the WKA property for the Coherence cluster will be set using this
	// value and the other WKA fields will be ignored.
	// +listType=atomic
	// +optional
	Addresses []string `json:"addresses,omitempty"`
}

CoherenceWKASpec configures Coherence well-known-addressing to use an existing Coherence deployment for WKA. +k8s:openapi-gen=true

func (*CoherenceWKASpec) DeepCopy

func (in *CoherenceWKASpec) DeepCopy() *CoherenceWKASpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceWKASpec.

func (*CoherenceWKASpec) DeepCopyInto

func (in *CoherenceWKASpec) DeepCopyInto(out *CoherenceWKASpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CommonWebHook

type CommonWebHook struct {
}

func (*CommonWebHook) DeepCopy

func (in *CommonWebHook) DeepCopy() *CommonWebHook

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonWebHook.

func (*CommonWebHook) DeepCopyInto

func (in *CommonWebHook) DeepCopyInto(out *CommonWebHook)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Condition

type Condition struct {
	Type               ConditionType          `json:"type"`
	Status             corev1.ConditionStatus `json:"status"`
	Reason             ConditionReason        `json:"reason,omitempty"`
	Message            string                 `json:"message,omitempty"`
	LastTransitionTime metav1.Time            `json:"lastTransitionTime,omitempty"`
}

Condition represents an observation of an object's state. Conditions are an extension mechanism intended to be used when the details of an observation are not a priori known or would not apply to all instances of a given Kind.

Conditions should be added to explicitly convey properties that users and components care about rather than requiring those properties to be inferred from other observations. Once defined, the meaning of a Condition can not be changed arbitrarily - it becomes part of the API, and has the same backwards- and forwards-compatibility concerns of any other part of the API.

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.

func (*Condition) DeepCopyInto

func (c *Condition) DeepCopyInto(cpy *Condition)

DeepCopyInto copies in into out.

func (Condition) IsFalse

func (c Condition) IsFalse() bool

IsFalse returns whether the condition status is "False".

func (Condition) IsTrue

func (c Condition) IsTrue() bool

IsTrue Condition whether the condition status is "True".

func (Condition) IsUnknown

func (c Condition) IsUnknown() bool

IsUnknown returns whether the condition status is "Unknown".

type ConditionReason

type ConditionReason string

ConditionReason is intended to be a one-word, CamelCase representation of the category of cause of the current status. It is intended to be used in concise output, such as one-line kubectl get output, and in summarizing occurrences of causes.

type ConditionType

type ConditionType string

ConditionType is the type of the condition and is typically a CamelCased word or short phrase.

Condition types should indicate state in the "abnormal-true" polarity. For example, if the condition indicates when a policy is invalid, the "is valid" case is probably the norm, so the condition should be called "Invalid".

type Conditions

type Conditions []Condition

Conditions is a set of Condition instances.

func NewConditions

func NewConditions(conds ...Condition) Conditions

NewConditions initializes a set of conditions with the given list of conditions.

func (Conditions) DeepCopy

func (in Conditions) DeepCopy() Conditions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Conditions.

func (Conditions) DeepCopyInto

func (in Conditions) DeepCopyInto(out *Conditions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Conditions) GetCondition

func (in Conditions) GetCondition(t ConditionType) *Condition

GetCondition searches the set of conditions for the condition with the given ConditionType and returns it. If the matching condition is not found, GetCondition returns nil.

func (Conditions) IsFalseFor

func (in Conditions) IsFalseFor(t ConditionType) bool

IsFalseFor searches the set of conditions for a condition with the given ConditionType. If found, it returns `condition.IsFalse()`. If not found, it returns false.

func (Conditions) IsTrueFor

func (in Conditions) IsTrueFor(t ConditionType) bool

IsTrueFor searches the set of conditions for a condition with the given ConditionType. If found, it returns `condition.IsTrue()`. If not found, it returns false.

func (Conditions) IsUnknownFor

func (in Conditions) IsUnknownFor(t ConditionType) bool

IsUnknownFor searches the set of conditions for a condition with the given ConditionType. If found, it returns `condition.IsUnknown()`. If not found, it returns true.

func (Conditions) MarshalJSON

func (in Conditions) MarshalJSON() ([]byte, error)

MarshalJSON marshals the set of conditions as a JSON array, sorted by condition type.

func (*Conditions) RemoveCondition

func (in *Conditions) RemoveCondition(t ConditionType) bool

RemoveCondition removes the condition with the given ConditionType from the conditions set. If no condition with that type is found, RemoveCondition returns without performing any action. If the passed condition type is not found in the set of conditions, RemoveCondition returns false.

func (*Conditions) SetCondition

func (in *Conditions) SetCondition(newCond Condition) bool

SetCondition adds (or updates) the set of conditions with the given condition. It returns a boolean value indicating whether the set condition is new or was a change to the existing condition with the same type.

type ConfigMapVolumeSpec

type ConfigMapVolumeSpec struct {
	// The name of the ConfigMap to mount.
	// This will also be used as the name of the Volume added to the Pod
	// if the VolumeName field is not set.
	Name string `json:"name"`
	// Path within the container at which the volume should be mounted.  Must
	// not contain ':'.
	MountPath string `json:"mountPath"`
	// The optional name to use for the Volume added to the Pod.
	// If not set, the ConfigMap name will be used as the VolumeName.
	// +optional
	VolumeName string `json:"volumeName,omitempty"`
	// Mounted read-only if true, read-write otherwise (false or unspecified).
	// Defaults to false.
	// +optional
	ReadOnly bool `json:"readOnly,omitempty"`
	// Path within the volume from which the container's volume should be mounted.
	// Defaults to "" (volume's root).
	// +optional
	SubPath string `json:"subPath,omitempty"`
	// mountPropagation determines how mounts are propagated from the host
	// to container and the other way around.
	// When not set, MountPropagationNone is used.
	// +optional
	MountPropagation *corev1.MountPropagationMode `json:"mountPropagation,omitempty"`
	// Expanded path within the volume from which the container's volume should be mounted.
	// Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
	// Defaults to "" (volume's root).
	// SubPathExpr and SubPath are mutually exclusive.
	// +optional
	SubPathExpr string `json:"subPathExpr,omitempty"`
	// If unspecified, each key-value pair in the Data field of the referenced
	// ConfigMap will be projected into the volume as a file whose name is the
	// key and content is the value. If specified, the listed keys will be
	// projected into the specified paths, and unlisted keys will not be
	// present. If a key is specified which is not present in the ConfigMap,
	// the volume setup will error unless it is marked optional. Paths must be
	// relative and may not contain the '..' path or start with '..'.
	// +listType=map
	// +listMapKey=key
	// +optional
	Items []corev1.KeyToPath `json:"items,omitempty"`
	// Optional: mode bits to use on created files by default. Must be a
	// value between 0 and 0777. Defaults to 0644.
	// Directories within the path are not affected by this setting.
	// This might be in conflict with other options that affect the file
	// mode, like fsGroup, and the result can be other mode bits set.
	// +optional
	DefaultMode *int32 `json:"defaultMode,omitempty"`
	// Specify whether the ConfigMap or its keys must be defined
	// +optional
	Optional *bool `json:"optional,omitempty"`
}

ConfigMapVolumeSpec represents a ConfigMap that will be added to the deployment's Pods as an additional Volume and as a VolumeMount in the containers. +coh:doc=misc_pod_settings/050_configmap_volumes.adoc,Add ConfigMap Volumes +k8s:openapi-gen=true

func (*ConfigMapVolumeSpec) AddVolumeMounts

func (in *ConfigMapVolumeSpec) AddVolumeMounts(c *corev1.Container)

func (*ConfigMapVolumeSpec) AddVolumes

func (in *ConfigMapVolumeSpec) AddVolumes(podTemplate *corev1.PodTemplateSpec)

AddVolumes adds the Volume and VolumeMount for this ConfigMap spec.

func (*ConfigMapVolumeSpec) DeepCopy

func (in *ConfigMapVolumeSpec) DeepCopy() *ConfigMapVolumeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapVolumeSpec.

func (*ConfigMapVolumeSpec) DeepCopyInto

func (in *ConfigMapVolumeSpec) DeepCopyInto(out *ConfigMapVolumeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GlobalSpec

type GlobalSpec struct {
	// Map of string keys and values that can be used to organize and categorize
	// (scope and select) objects. May match selectors of replication controllers
	// and services.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
	// +optional
	Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,11,rep,name=labels"`

	// Annotations is an unstructured key value map stored with a resource that may be
	// set by external tools to store and retrieve arbitrary metadata. They are not
	// queryable and should be preserved when modifying objects.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
	// +optional
	Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"`
}

GlobalSpec is attributes that will be applied to all resources managed by the Operator.

func (*GlobalSpec) DeepCopy

func (in *GlobalSpec) DeepCopy() *GlobalSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlobalSpec.

func (*GlobalSpec) DeepCopyInto

func (in *GlobalSpec) DeepCopyInto(out *GlobalSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImageSpec

type ImageSpec struct {
	// The image name.
	// More info: https://kubernetes.io/docs/concepts/containers/images
	// +optional
	Image *string `json:"image,omitempty"`
	// Image pull policy.
	// One of Always, Never, IfNotPresent.
	// More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
	// +optional
	ImagePullPolicy *corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
}

ImageSpec defines the settings for a Docker image +k8s:openapi-gen=true

func (*ImageSpec) DeepCopy

func (in *ImageSpec) DeepCopy() *ImageSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.

func (*ImageSpec) DeepCopyInto

func (in *ImageSpec) DeepCopyInto(out *ImageSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ImageSpec) EnsureImage

func (in *ImageSpec) EnsureImage(image *string) bool

EnsureImage ensures that the image value is set.

type JVMSpec

type JVMSpec struct {
	// Classpath specifies additional items to add to the classpath of the JVM.
	// +listType=atomic
	// +optional
	Classpath []string `json:"classpath,omitempty"`
	// Args specifies the options (System properties, -XX: args etc) to pass to the JVM.
	// +listType=atomic
	// +optional
	Args []string `json:"args,omitempty"`
	// The settings for enabling debug mode in the JVM.
	// +optional
	Debug *JvmDebugSpec `json:"debug,omitempty"`
	// If set to true Adds the  -XX:+UseContainerSupport JVM option to ensure that the JVM
	// respects any container resource limits.
	// The default value is true
	// +optional
	UseContainerLimits *bool `json:"useContainerLimits,omitempty"`
	// Set JVM garbage collector options.
	// +optional
	Gc *JvmGarbageCollectorSpec `json:"gc,omitempty"`
	// DiagnosticsVolume is the volume to write JVM diagnostic information to, for example heap dumps, JFRs etc.
	// +optional
	DiagnosticsVolume *corev1.VolumeSource `json:"diagnosticsVolume,omitempty"`
	// Configure the JVM memory options.
	// +optional
	Memory *JvmMemorySpec `json:"memory,omitempty"`
	// A flag indicating whether to automatically add the default classpath for images
	// created by the JIB tool https://github.com/GoogleContainerTools/jib
	// If true then the /app/lib/* /app/classes and /app/resources
	// entries are added to the JVM classpath.
	// The default value fif not specified is true.
	// +optional
	UseJibClasspath *bool `json:"useJibClasspath,omitempty"`
}

JVMSpec is the JVM configuration. +k8s:openapi-gen=true

func (*JVMSpec) DeepCopy

func (in *JVMSpec) DeepCopy() *JVMSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JVMSpec.

func (*JVMSpec) DeepCopyInto

func (in *JVMSpec) DeepCopyInto(out *JVMSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*JVMSpec) UpdatePodTemplate

func (in *JVMSpec) UpdatePodTemplate(podTemplate *corev1.PodTemplateSpec)

UpdatePodTemplate updates the StatefulSet with any JVM specific settings

type JvmDebugSpec

type JvmDebugSpec struct {
	// Enabled is a flag to enable or disable running the JVM in debug mode. Default is disabled.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// A boolean true if the target VM is to be suspended immediately before the main class is loaded;
	// false otherwise. The default value is false.
	// +optional
	Suspend *bool `json:"suspend,omitempty"`
	// Attach specifies the address of the debugger that the JVM should attempt to connect back to
	// instead of listening on a port.
	// +optional
	Attach *string `json:"attach,omitempty"`
	// The port that the debugger will listen on; the default is 5005.
	// +optional
	Port *int32 `json:"port,omitempty"`
}

JvmDebugSpec the JVM Debug specific configuration. +k8s:openapi-gen=true

func (*JvmDebugSpec) CreateEnvVars

func (in *JvmDebugSpec) CreateEnvVars() []corev1.EnvVar

CreateEnvVars creates the JVM debugger environment variables for the Coherence container.

func (*JvmDebugSpec) DeepCopy

func (in *JvmDebugSpec) DeepCopy() *JvmDebugSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JvmDebugSpec.

func (*JvmDebugSpec) DeepCopyInto

func (in *JvmDebugSpec) DeepCopyInto(out *JvmDebugSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*JvmDebugSpec) UpdateCoherenceContainer

func (in *JvmDebugSpec) UpdateCoherenceContainer(c *corev1.Container)

UpdateCoherenceContainer updates the Coherence Container with any JVM specific settings

type JvmGarbageCollectorSpec

type JvmGarbageCollectorSpec struct {
	// The name of the JVM garbage collector to use.
	// G1 - adds the -XX:+UseG1GC option
	// CMS - adds the -XX:+UseConcMarkSweepGC option
	// Parallel - adds the -XX:+UseParallelGC
	// Default - use the JVMs default collector
	// The field value is case insensitive
	// If not set G1 is used.
	// If set to a value other than those above then
	// the default collector for the JVM will be used.
	// +optional
	Collector *string `json:"collector,omitempty"`
	// Args specifies the GC options to pass to the JVM.
	// +listType=atomic
	// +optional
	Args []string `json:"args,omitempty"`
	// Enable the following GC logging args  -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
	// -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime
	// -XX:+PrintGCApplicationConcurrentTime
	// Default is true
	// +optional
	Logging *bool `json:"logging,omitempty"`
}

JvmGarbageCollectorSpec is options for managing the JVM garbage collector. +k8s:openapi-gen=true

func (*JvmGarbageCollectorSpec) CreateEnvVars

func (in *JvmGarbageCollectorSpec) CreateEnvVars() []corev1.EnvVar

CreateEnvVars creates the GC environment variables for the Coherence container.

func (*JvmGarbageCollectorSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JvmGarbageCollectorSpec.

func (*JvmGarbageCollectorSpec) DeepCopyInto

func (in *JvmGarbageCollectorSpec) DeepCopyInto(out *JvmGarbageCollectorSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JvmMemorySpec

type JvmMemorySpec struct {
	// HeapSize sets both the initial and max heap size values for the JVM.
	// This will set both the -XX:InitialHeapSize and -XX:MaxHeapSize JVM options
	// to the same value (the equivalent of setting -Xms and -Xmx to the same value).
	//
	// The format should be the same as that used when specifying these JVM options.
	//
	// If not set the JVM defaults are used.
	// +optional
	HeapSize *string `json:"heapSize,omitempty"`
	// InitialHeapSize sets the initial heap size value for the JVM.
	// This will set the -XX:InitialHeapSize JVM option
	// (the equivalent of setting -Xms).
	//
	// The format should be the same as that used when specifying this JVM options.
	//
	// NOTE: If the HeapSize field is set it will override this field.
	// +optional
	InitialHeapSize *string `json:"initialHeapSize,omitempty"`
	// MaxHeapSize sets the maximum heap size value for the JVM.
	// This will set the -XX:MaxHeapSize JVM option
	// (the equivalent of setting -Xmx).
	//
	// The format should be the same as that used when specifying this JVM options.
	//
	// NOTE: If the HeapSize field is set it will override this field.
	// +optional
	MaxHeapSize *string `json:"maxHeapSize,omitempty"`
	// Sets the JVM option `-XX:MaxRAM=N` which sets the maximum amount of memory used by
	// the JVM to `n`, where `n` is expressed in terms of megabytes (for example, `100m`)
	// or gigabytes (for example `2g`).
	// +optional
	MaxRAM *string `json:"maxRAM,omitempty"`
	// Percentage sets the initial and maximum and minimum heap percentage sizes to the same value,
	// This will set the -XX:InitialRAMPercentage -XX:MinRAMPercentage and -XX:MaxRAMPercentage
	// JVM options to the same value.
	//
	// The JVM will ignore this option if any of the HeapSize, InitialHeapSize or MaxHeapSize
	// options have been set.
	//
	// Valid values are decimal numbers between 0 and 100.
	//
	// NOTE: This field is a k8s resource.Quantity value as CRDs do not support decimal numbers.
	// See https://godoc.org/k8s.io/apimachinery/pkg/api/resource#Quantity for the different
	// formats of number that may be entered.
	//
	// NOTE: This field maps to the -XX:InitialRAMPercentage -XX:MinRAMPercentage and
	// -XX:MaxRAMPercentage JVM options and will be incompatible with some JVMs that
	// do not have this option (e.g. Java 8).
	// +optional
	Percentage *resource.Quantity `json:"percentage,omitempty"`
	// Set initial heap size as a percentage of total memory.
	//
	// The JVM will ignore this option if any of the HeapSize, InitialHeapSize or MaxHeapSize
	// options have been set.
	//
	// Valid values are decimal numbers between 0 and 100.
	//
	// NOTE: If the Percentage field is set it will override this field.
	//
	// NOTE: This field is a k8s resource.Quantity value as CRDs do not support decimal numbers.
	// See https://godoc.org/k8s.io/apimachinery/pkg/api/resource#Quantity for the different
	// formats of number that may be entered.
	//
	// NOTE: This field maps to the -XX:InitialRAMPercentage JVM option and will
	// be incompatible with some JVMs that do not have this option (e.g. Java 8).
	// +optional
	InitialRAMPercentage *resource.Quantity `json:"initialRAMPercentage,omitempty"`
	// Set maximum heap size as a percentage of total memory.
	//
	// The JVM will ignore this option if any of the HeapSize, InitialHeapSize or MaxHeapSize
	// options have been set.
	//
	// Valid values are decimal numbers between 0 and 100.
	//
	// NOTE: If the Percentage field is set it will override this field.
	//
	// NOTE: This field is a k8s resource.Quantity value as CRDs do not support decimal numbers.
	// See https://godoc.org/k8s.io/apimachinery/pkg/api/resource#Quantity for the different
	// formats of number that may be entered.
	//
	// NOTE: This field maps to the -XX:MaxRAMPercentage JVM option and will
	// be incompatible with some JVMs that do not have this option (e.g. Java 8).
	// +optional
	MaxRAMPercentage *resource.Quantity `json:"maxRAMPercentage,omitempty"`
	// Set the minimal JVM Heap size as a percentage of the total memory.
	//
	// This option will be ignored if HeapSize is set.
	//
	// Valid values are decimal numbers between 0 and 100.
	//
	// NOTE: This field is a k8s resource.Quantity value as CRDs do not support decimal numbers.
	// See https://godoc.org/k8s.io/apimachinery/pkg/api/resource#Quantity for the different
	// formats of number that may be entered.
	//
	// NOTE: This field maps the the -XX:MinRAMPercentage JVM option and will
	// be incompatible with some JVMs that do not have this option (e.g. Java 8).
	// +optional
	MinRAMPercentage *resource.Quantity `json:"minRAMPercentage,omitempty"`
	// StackSize is the stack size value to pass to the JVM.
	// The format should be the same as that used for Java's -Xss JVM option.
	// If not set the JVM defaults are used.
	// +optional
	StackSize *string `json:"stackSize,omitempty"`
	// MetaspaceSize is the min/max metaspace size to pass to the JVM.
	// This sets the -XX:MetaspaceSize and -XX:MaxMetaspaceSize=size JVM options.
	// If not set the JVM defaults are used.
	// +optional
	MetaspaceSize *string `json:"metaspaceSize,omitempty"`
	// DirectMemorySize sets the maximum total size (in bytes) of the New I/O (the java.nio package) direct-buffer
	// allocations. This value sets the -XX:MaxDirectMemorySize JVM option.
	// If not set the JVM defaults are used.
	// +optional
	DirectMemorySize *string `json:"directMemorySize,omitempty"`
	// Adds the -XX:NativeMemoryTracking=mode  JVM options
	// where mode is on of "off", "summary" or "detail", the default is "summary"
	// If not set to "off" also add -XX:+PrintNMTStatistics
	// +optional
	NativeMemoryTracking *string `json:"nativeMemoryTracking,omitempty"`
	// Configure the JVM behaviour when an OutOfMemoryError occurs.
	// +optional
	OnOutOfMemory *JvmOutOfMemorySpec `json:"onOutOfMemory,omitempty"`
}

JvmMemorySpec is options for managing the JVM memory. +k8s:openapi-gen=true

func (*JvmMemorySpec) CreateEnvVars

func (in *JvmMemorySpec) CreateEnvVars() []corev1.EnvVar

CreateEnvVars creates the environment variables to add to the Coherence container

func (*JvmMemorySpec) DeepCopy

func (in *JvmMemorySpec) DeepCopy() *JvmMemorySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JvmMemorySpec.

func (*JvmMemorySpec) DeepCopyInto

func (in *JvmMemorySpec) DeepCopyInto(out *JvmMemorySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JvmOutOfMemorySpec

type JvmOutOfMemorySpec struct {
	// If set to true the JVM will exit when an OOM error occurs.
	// Default is true
	// +optional
	Exit *bool `json:"exit,omitempty"`
	// If set to true adds the -XX:+HeapDumpOnOutOfMemoryError JVM option to cause a heap dump
	// to be created when an OOM error occurs.
	// Default is true
	// +optional
	HeapDump *bool `json:"heapDump,omitempty"`
}

JvmOutOfMemorySpec is options for managing the JVM behaviour when an OutOfMemoryError occurs. +k8s:openapi-gen=true

func (*JvmOutOfMemorySpec) CreateEnvVars

func (in *JvmOutOfMemorySpec) CreateEnvVars() []corev1.EnvVar

CreateEnvVars creates the environment variables for the out of memory actions

func (*JvmOutOfMemorySpec) DeepCopy

func (in *JvmOutOfMemorySpec) DeepCopy() *JvmOutOfMemorySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JvmOutOfMemorySpec.

func (*JvmOutOfMemorySpec) DeepCopyInto

func (in *JvmOutOfMemorySpec) DeepCopyInto(out *JvmOutOfMemorySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LocalObjectReference

type LocalObjectReference struct {
	// Name of the referent.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
	Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
}

LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.

func (*LocalObjectReference) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.

func (*LocalObjectReference) DeepCopyInto

func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NamedPortSpec

type NamedPortSpec struct {
	// Name specifies the name of the port.
	Name string `json:"name"`
	// Port specifies the port used.
	// +optional
	Port int32 `json:"port,omitempty"`
	// Protocol for container port. Must be UDP or TCP. Defaults to "TCP"
	// +optional
	Protocol *corev1.Protocol `json:"protocol,omitempty"`
	// The application protocol for this port.
	// This field follows standard Kubernetes label syntax.
	// Un-prefixed names are reserved for IANA standard service names (as per
	// RFC-6335 and http://www.iana.org/assignments/service-names).
	// Non-standard protocols should use prefixed names such as
	// mycompany.com/my-custom-protocol.
	// +optional
	AppProtocol *string `json:"appProtocol,omitempty"`
	// The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
	// Usually assigned by the system. If specified, it will be allocated to the service
	// if unused or else creation of the service will fail.
	// If set, this field must be in the range 30000 - 32767 inclusive.
	// Default is to auto-allocate a port if the ServiceType of this Service requires one.
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
	// +kubebuilder:validation:Minimum:=30000
	// +kubebuilder:validation:Maximum:=32767
	// +optional
	NodePort *int32 `json:"nodePort,omitempty"`
	// Number of port to expose on the host.
	// If specified, this must be a valid port number, 0 < x < 65536.
	// If HostNetwork is specified, this must match ContainerPort.
	// Most containers do not need this.
	// +optional
	HostPort *int32 `json:"hostPort,omitempty"`
	// What host IP to bind the external port to.
	// +optional
	HostIP *string `json:"hostIP,omitempty"`
	// Service configures the Kubernetes Service used to expose the port.
	// +optional
	Service *ServiceSpec `json:"service,omitempty"`
	// The specification of a Prometheus ServiceMonitor resource
	// that will be created for the Service being exposed for this
	// port.
	// +optional
	ServiceMonitor *ServiceMonitorSpec `json:"serviceMonitor,omitempty"`
	// ExposeOnSTS is a flag to indicate that this port should also be exposed on
	// the StatefulSetHeadless service. This is useful in cases where a service mesh
	// such as Istio is being used and ports such as the Extend or gRPC ports are
	// accessed via the StatefulSet service.
	// The default is `true` so all additional ports are exposed on the StatefulSet
	// headless service.
	// +optional
	ExposeOnSTS *bool `json:"exposeOnSts,omitempty"`
}

NamedPortSpec defines a named port for a Coherence component +k8s:openapi-gen=true

func (*NamedPortSpec) CreatePort

func (*NamedPortSpec) CreateService

func (in *NamedPortSpec) CreateService(deployment CoherenceResource) *corev1.Service

CreateService creates the Kubernetes service to expose this port.

func (*NamedPortSpec) CreateServiceMonitor

func (in *NamedPortSpec) CreateServiceMonitor(deployment CoherenceResource) *monitoringv1.ServiceMonitor

CreateServiceMonitor creates the Prometheus ServiceMonitor to expose this port if enabled.

func (*NamedPortSpec) DeepCopy

func (in *NamedPortSpec) DeepCopy() *NamedPortSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedPortSpec.

func (*NamedPortSpec) DeepCopyInto

func (in *NamedPortSpec) DeepCopyInto(out *NamedPortSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NamedPortSpec) GetDefaultAppProtocol

func (in *NamedPortSpec) GetDefaultAppProtocol() *string

func (*NamedPortSpec) GetNodePort

func (in *NamedPortSpec) GetNodePort() int32

func (*NamedPortSpec) GetPort

func (in *NamedPortSpec) GetPort(d CoherenceResource) int32

func (*NamedPortSpec) GetProtocol

func (in *NamedPortSpec) GetProtocol() corev1.Protocol

func (*NamedPortSpec) GetServiceName

func (in *NamedPortSpec) GetServiceName(deployment CoherenceResource) (string, bool)

GetServiceName returns the name of the Service used to expose this port, or returns empty string and false if there is no service for this port.

func (*NamedPortSpec) GetServicePort

func (in *NamedPortSpec) GetServicePort(d CoherenceResource) int32

func (*NamedPortSpec) IsEnabled

func (in *NamedPortSpec) IsEnabled() bool

type NetworkSpec

type NetworkSpec struct {
	// Specifies the DNS parameters of a pod. Parameters specified here will be merged to the
	// generated DNS configuration based on DNSPolicy.
	// +optional
	DNSConfig *PodDNSConfig `json:"dnsConfig,omitempty"`
	// Set DNS policy for the pod. Defaults to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet',
	// 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy
	// selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS
	// policy explicitly to 'ClusterFirstWithHostNet'.
	// +optional
	DNSPolicy *corev1.DNSPolicy `json:"dnsPolicy,omitempty"`
	// HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.
	// This is only valid for non-hostNetwork pods.
	// +listType=map
	// +listMapKey=ip
	// +optional
	HostAliases []corev1.HostAlias `json:"hostAliases,omitempty"`
	// Host networking requested for this pod. Use the host's network namespace. If this option is set,
	// the ports that will be used must be specified. Default to false.
	// +optional
	HostNetwork *bool `json:"hostNetwork,omitempty"`
	// Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.
	// +optional
	Hostname *string `json:"hostname,omitempty"`
	// SetHostnameAsFQDN if true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).
	// In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).
	// In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN.
	// If a pod does not have FQDN, this has no effect.
	// Default to false.
	// +optional
	SetHostnameAsFQDN *bool `json:"setHostnameAsFQDN,omitempty"`
	// Subdomain, if specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>".
	// If not specified, the pod will not have a domain name at all.
	// +optional
	Subdomain *string `json:"subdomain,omitempty"`
}

NetworkSpec configures various networking and DNS settings for Pods in a deployment. +k8s:openapi-gen=true

func (*NetworkSpec) DeepCopy

func (in *NetworkSpec) DeepCopy() *NetworkSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkSpec.

func (*NetworkSpec) DeepCopyInto

func (in *NetworkSpec) DeepCopyInto(out *NetworkSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NetworkSpec) UpdatePodTemplate

func (in *NetworkSpec) UpdatePodTemplate(podTemplate *corev1.PodTemplateSpec)

UpdatePodTemplate updates the specified StatefulSet's network settings.

type PersistenceSpec

type PersistenceSpec struct {
	// The persistence mode to use.
	// Valid choices are "on-demand", "active", "active-async".
	// This field will set the coherence.distributed.persistence-mode System property
	// to "default-" + Mode.
	// +optional
	Mode *string `json:"mode,omitempty"`
	// The persistence storage spec for.
	PersistentStorageSpec `json:",inline"`
	// Snapshot values configure the on-disc persistence data snapshot (backup) settings.
	// These settings enable a different location for persistence snapshot data.
	// If not set then snapshot files will be written to the same volume configured for
	// persistence data in the Persistence section.
	// +optional
	Snapshots *PersistentStorageSpec `json:"snapshots,omitempty"`
}

PersistenceSpec is the spec for Coherence persistence. +k8s:openapi-gen=true

func (*PersistenceSpec) AddVolumeMounts

func (in *PersistenceSpec) AddVolumeMounts(c *corev1.Container)

AddVolumeMounts adds the persistence and snapshot volume mounts to the specified container

func (*PersistenceSpec) CreatePersistenceVolumes

func (in *PersistenceSpec) CreatePersistenceVolumes() []corev1.Volume

CreatePersistenceVolumes adds the persistence and snapshot volumes.

func (*PersistenceSpec) CreatePersistentVolumeClaims

func (in *PersistenceSpec) CreatePersistentVolumeClaims(deployment *Coherence) []corev1.PersistentVolumeClaim

CreatePersistentVolumeClaims creates any PVCs required.

func (*PersistenceSpec) DeepCopy

func (in *PersistenceSpec) DeepCopy() *PersistenceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistenceSpec.

func (*PersistenceSpec) DeepCopyInto

func (in *PersistenceSpec) DeepCopyInto(out *PersistenceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PersistenceSpec) GetMode

func (in *PersistenceSpec) GetMode() *string

GetMode returns the persistence mode to be used.

type PersistentStorageSpec

type PersistentStorageSpec struct {
	// PersistentVolumeClaim allows the configuration of a normal k8s persistent volume claim
	// for persistence data.
	// +optional
	PersistentVolumeClaim *corev1.PersistentVolumeClaimSpec `json:"persistentVolumeClaim,omitempty"` // from k8s.io/api/core/v1
	// Volume allows the configuration of a normal k8s volume mapping
	// for persistence data instead of a persistent volume claim. If a value is defined
	// for store.persistence.volume then no PVC will be created and persistence data
	// will instead be written to this volume. It is up to the deployer to understand
	// the consequences of this and how the guarantees given when using PVCs differ
	// to the storage guarantees for the particular volume type configured here.
	// +optional
	Volume *corev1.VolumeSource `json:"volume,omitempty"` // from k8s.io/api/core/v1
}

PersistentStorageSpec defines the persistence settings for the Coherence +k8s:openapi-gen=true

func (*PersistentStorageSpec) CreatePersistenceVolume

func (in *PersistentStorageSpec) CreatePersistenceVolume(name string) corev1.Volume

CreatePersistenceVolume creates any persistence volumes required.

func (*PersistentStorageSpec) CreatePersistentVolumeClaim

func (in *PersistentStorageSpec) CreatePersistentVolumeClaim(deployment *Coherence, name string) *corev1.PersistentVolumeClaim

CreatePersistentVolumeClaim creates a PersistentVolumeClaim if required

func (*PersistentStorageSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentStorageSpec.

func (*PersistentStorageSpec) DeepCopyInto

func (in *PersistentStorageSpec) DeepCopyInto(out *PersistentStorageSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PersistentVolumeClaim

type PersistentVolumeClaim struct {
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	Metadata PersistentVolumeClaimObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
	// Spec defines the desired characteristics of a volume requested by a pod author.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
	Spec corev1.PersistentVolumeClaimSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`
}

PersistentVolumeClaim is a request for and claim to a persistent volume +k8s:openapi-gen=true

func (*PersistentVolumeClaim) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaim.

func (*PersistentVolumeClaim) DeepCopyInto

func (in *PersistentVolumeClaim) DeepCopyInto(out *PersistentVolumeClaim)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PersistentVolumeClaim) ToPVC

ToPVC converts this PersistentVolumeClaim to a k8s PersistentVolumeClaim.

type PersistentVolumeClaimObjectMeta

type PersistentVolumeClaimObjectMeta struct {
	// Name must be unique within a namespace. Is required when creating resources, although
	// some resources may allow a client to request the generation of an appropriate name
	// automatically. Name is primarily intended for creation idempotence and configuration
	// definition.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/
	Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`

	// Map of string keys and values that can be used to organize and categorize
	// (scope and select) objects. May match selectors of replication controllers
	// and services.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
	// +optional
	Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,11,rep,name=labels"`

	// Annotations is an unstructured key value map stored with a resource that may be
	// set by external tools to store and retrieve arbitrary metadata. They are not
	// queryable and should be preserved when modifying objects.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
	// +optional
	Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"`
}

PersistentVolumeClaimObjectMeta is metadata for the PersistentVolumeClaim. +k8s:openapi-gen=true

func (*PersistentVolumeClaimObjectMeta) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimObjectMeta.

func (*PersistentVolumeClaimObjectMeta) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodDNSConfig

type PodDNSConfig struct {
	// A list of DNS name server IP addresses.
	// This will be appended to the base nameservers generated from DNSPolicy.
	// Duplicated nameservers will be removed.
	// +listType=atomic
	// +optional
	Nameservers []string `json:"nameservers,omitempty"`
	// A list of DNS search domains for host-name lookup.
	// This will be appended to the base search paths generated from DNSPolicy.
	// Duplicated search paths will be removed.
	// +listType=atomic
	// +optional
	Searches []string `json:"searches,omitempty"`
	// A list of DNS resolver options.
	// This will be merged with the base options generated from DNSPolicy.
	// Duplicated entries will be removed. Resolution options given in Options
	// will override those that appear in the base DNSPolicy.
	// +listType=map
	// +listMapKey=name
	// +optional
	Options []corev1.PodDNSConfigOption `json:"options,omitempty"`
}

PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy. +k8s:openapi-gen=true

func (*PodDNSConfig) DeepCopy

func (in *PodDNSConfig) DeepCopy() *PodDNSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDNSConfig.

func (*PodDNSConfig) DeepCopyInto

func (in *PodDNSConfig) DeepCopyInto(out *PodDNSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PodDNSConfig) UpdatePodTemplate

func (in *PodDNSConfig) UpdatePodTemplate(podTemplate *corev1.PodTemplateSpec)

type PortSpecWithSSL

type PortSpecWithSSL struct {
	// Enable or disable flag.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// The port to bind to.
	// +optional
	Port *int32 `json:"port,omitempty"`
	// SSL configures SSL settings for a Coherence component
	// +optional
	SSL *SSLSpec `json:"ssl,omitempty"`
}

PortSpecWithSSL defines a port with SSL settings for a Coherence component +k8s:openapi-gen=true

func (*PortSpecWithSSL) AddSSLVolumes

func (in *PortSpecWithSSL) AddSSLVolumes(sts *appsv1.StatefulSet, c *corev1.Container, volName, path string)

AddSSLVolumes adds the SSL secret volume and volume mount if required

func (*PortSpecWithSSL) AddSSLVolumesForPod

func (in *PortSpecWithSSL) AddSSLVolumesForPod(podTemplate *corev1.PodTemplateSpec, c *corev1.Container, volName, path string)

AddSSLVolumesForPod adds the SSL secret volume and volume mount if required

func (*PortSpecWithSSL) CreateEnvVars

func (in *PortSpecWithSSL) CreateEnvVars(prefix, secretMount string, defaultPort int32) []corev1.EnvVar

CreateEnvVars creates environment variables for the Coherence container

func (*PortSpecWithSSL) DeepCopy

func (in *PortSpecWithSSL) DeepCopy() *PortSpecWithSSL

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortSpecWithSSL.

func (*PortSpecWithSSL) DeepCopyInto

func (in *PortSpecWithSSL) DeepCopyInto(out *PortSpecWithSSL)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PortSpecWithSSL) IsSSLEnabled

func (in *PortSpecWithSSL) IsSSLEnabled() bool

IsSSLEnabled returns true if this port is SSL enabled

type Probe

type Probe struct {
	corev1.ProbeHandler `json:",inline"`
	// Number of seconds after which the handler times out (only applies to http and tcp handlers).
	// Defaults to 1 second. Minimum value is 1.
	// +optional
	TimeoutSeconds *int `json:"timeoutSeconds,omitempty"`
}

Probe is the handler that will be used to determine how to communicate with a Coherence deployment for operations like StatusHA checking and service suspension. StatusHA checking is primarily used during scaling of a deployment, a deployment must be in a safe Phase HA state before scaling takes place. If StatusHA handler is disabled for a deployment (by specifically setting Enabled to false then no check will take place and a deployment will be assumed to be safe). +k8s:openapi-gen=true

func (*Probe) DeepCopy

func (in *Probe) DeepCopy() *Probe

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe.

func (*Probe) DeepCopyInto

func (in *Probe) DeepCopyInto(out *Probe)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Probe) GetTimeout

func (in *Probe) GetTimeout() time.Duration

GetTimeout returns the timeout value in seconds.

type ProbeHandler

type ProbeHandler struct {
	// One and only one of the following should be specified.
	// Exec specifies the action to take.
	// +optional
	Exec *corev1.ExecAction `json:"exec,omitempty"`
	// HTTPGet specifies the http request to perform.
	// +optional
	HTTPGet *corev1.HTTPGetAction `json:"httpGet,omitempty"`
	// TCPSocket specifies an action involving a TCP port.
	// TCP hooks not yet supported
	// +optional
	TCPSocket *corev1.TCPSocketAction `json:"tcpSocket,omitempty"`
}

ProbeHandler is the definition of a probe handler. +k8s:openapi-gen=true

func (*ProbeHandler) DeepCopy

func (in *ProbeHandler) DeepCopy() *ProbeHandler

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProbeHandler.

func (*ProbeHandler) DeepCopyInto

func (in *ProbeHandler) DeepCopyInto(out *ProbeHandler)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReadinessProbeSpec

type ReadinessProbeSpec struct {
	// The action taken to determine the health of a container
	ProbeHandler `json:",inline"`
	// Number of seconds after the container has started before liveness probes are initiated.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	InitialDelaySeconds *int32 `json:"initialDelaySeconds,omitempty"`
	// Number of seconds after which the probe times out.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
	// +optional
	TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"`
	// How often (in seconds) to perform the probe.
	// +optional
	PeriodSeconds *int32 `json:"periodSeconds,omitempty"`
	// Minimum consecutive successes for the probe to be considered successful after having failed.
	// +optional
	SuccessThreshold *int32 `json:"successThreshold,omitempty"`
	// Minimum consecutive failures for the probe to be considered failed after having succeeded.
	// +optional
	FailureThreshold *int32 `json:"failureThreshold,omitempty"`
}

ReadinessProbeSpec defines the settings for the Coherence Pod readiness probe +k8s:openapi-gen=true

func (*ReadinessProbeSpec) DeepCopy

func (in *ReadinessProbeSpec) DeepCopy() *ReadinessProbeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadinessProbeSpec.

func (*ReadinessProbeSpec) DeepCopyInto

func (in *ReadinessProbeSpec) DeepCopyInto(out *ReadinessProbeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ReadinessProbeSpec) UpdateProbeSpec

func (in *ReadinessProbeSpec) UpdateProbeSpec(port int32, path string, probe *corev1.Probe)

UpdateProbeSpec updates the specified probe spec with the required configuration

type Resource

type Resource struct {
	Kind ResourceType  `json:"kind"`
	Name string        `json:"name"`
	Spec client.Object `json:"spec"`
}

Resource is a structure holding a resource to be managed +k8s:deepcopy-gen=false

func (*Resource) As

func (in *Resource) As(o runtime.Object) error

As converts the Spec to the specified value. This is done by serializing the Spec to json and deserializing into the specified object.

func (*Resource) GetFullName

func (in *Resource) GetFullName() string

func (*Resource) IsDelete

func (in *Resource) IsDelete() bool

func (*Resource) IsPresent

func (in *Resource) IsPresent() bool

func (*Resource) SetController

func (in *Resource) SetController(object runtime.Object, scheme *runtime.Scheme) error

SetController sets the controller/owner of the resource

type ResourceType

type ResourceType string
const (
	ResourceTypeCoherence      ResourceType = "Coherence"
	ResourceTypeCoherenceJob   ResourceType = "CoherenceJob"
	ResourceTypeConfigMap      ResourceType = "ConfigMap"
	ResourceTypeSecret         ResourceType = "Secret"
	ResourceTypeService        ResourceType = "Service"
	ResourceTypeServiceMonitor ResourceType = ServiceMonitorKind
	ResourceTypeStatefulSet    ResourceType = "StatefulSet"
	ResourceTypeJob            ResourceType = "Job"
)

func ToResourceType

func ToResourceType(kind string) (ResourceType, error)

func (ResourceType) Name

func (t ResourceType) Name() string

type Resources

type Resources struct {
	Version int32      `json:"version"`
	Items   []Resource `json:"items"`
}

Resources is a cloolection of resources to be managed. +k8s:deepcopy-gen=false

func (Resources) Create

func (in Resources) Create(kind ResourceType, name string, mgr manager.Manager, logger logr.Logger) error

Create the specified resource

func (Resources) DiffForKind

func (in Resources) DiffForKind(kind ResourceType, previous Resources) ([]Resource, int)

DiffForKind obtains the diff between the previous deployment resources of a specific kind and this deployment resources. Returns an array of Resource instances that have difference and a count of the total resources diff'ed.

func (Resources) EnsureGVK

func (in Resources) EnsureGVK(s *runtime.Scheme)

func (Resources) GetResource

func (in Resources) GetResource(kind ResourceType, name string) (Resource, bool)

func (Resources) GetResourcesOfKind

func (in Resources) GetResourcesOfKind(kind ResourceType) []Resource

func (Resources) MarshalJSON

func (in Resources) MarshalJSON() ([]byte, error)

func (Resources) SetController

func (in Resources) SetController(object runtime.Object, scheme *runtime.Scheme) error

SetController sets the deployment as the controller/owner of all of the resources

func (Resources) SetHashLabels

func (in Resources) SetHashLabels(hash string)

SetHashLabels sets the hash label on all the resources.

func (*Resources) UnmarshalJSON

func (in *Resources) UnmarshalJSON(b []byte) error

type SSLSpec

type SSLSpec struct {
	// Enabled is a boolean flag indicating whether enables or disables SSL on the Coherence management
	// over REST endpoint, the default is false (disabled).
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// Secrets is the name of the k8s secret containing the Java key stores and password files.
	//   The secret should be in the same namespace as the Coherence resource.
	//   This value MUST be provided if SSL is enabled on the Coherence management over REST endpoint.
	// +optional
	Secrets *string `json:"secrets,omitempty"`
	// Keystore is the name of the Java key store file in the k8s secret to use as the SSL keystore
	//   when configuring component over REST to use SSL.
	// +optional
	KeyStore *string `json:"keyStore,omitempty"`
	// KeyStorePasswordFile is the name of the file in the k8s secret containing the keystore
	//   password when configuring component over REST to use SSL.
	// +optional
	KeyStorePasswordFile *string `json:"keyStorePasswordFile,omitempty"`
	// KeyStorePasswordFile is the name of the file in the k8s secret containing the key
	//   password when configuring component over REST to use SSL.
	// +optional
	KeyPasswordFile *string `json:"keyPasswordFile,omitempty"`
	// KeyStoreAlgorithm is the name of the keystore algorithm for the keystore in the k8s secret
	//   used when configuring component over REST to use SSL. If not set the default is SunX509
	// +optional
	KeyStoreAlgorithm *string `json:"keyStoreAlgorithm,omitempty"`
	// KeyStoreProvider is the name of the keystore provider for the keystore in the k8s secret
	//   used when configuring component over REST to use SSL.
	// +optional
	KeyStoreProvider *string `json:"keyStoreProvider,omitempty"`
	// KeyStoreType is the name of the Java keystore type for the keystore in the k8s secret used
	//   when configuring component over REST to use SSL. If not set the default is JKS.
	// +optional
	KeyStoreType *string `json:"keyStoreType,omitempty"`
	// TrustStore is the name of the Java trust store file in the k8s secret to use as the SSL
	//   trust store when configuring component over REST to use SSL.
	// +optional
	TrustStore *string `json:"trustStore,omitempty"`
	// TrustStorePasswordFile is the name of the file in the k8s secret containing the trust store
	//   password when configuring component over REST to use SSL.
	// +optional
	TrustStorePasswordFile *string `json:"trustStorePasswordFile,omitempty"`
	// TrustStoreAlgorithm is the name of the keystore algorithm for the trust store in the k8s
	//   secret used when configuring component over REST to use SSL.  If not set the default is SunX509.
	// +optional
	TrustStoreAlgorithm *string `json:"trustStoreAlgorithm,omitempty"`
	// TrustStoreProvider is the name of the keystore provider for the trust store in the k8s
	//   secret used when configuring component over REST to use SSL.
	// +optional
	TrustStoreProvider *string `json:"trustStoreProvider,omitempty"`
	// TrustStoreType is the name of the Java keystore type for the trust store in the k8s secret
	//   used when configuring component over REST to use SSL. If not set the default is JKS.
	// +optional
	TrustStoreType *string `json:"trustStoreType,omitempty"`
	// RequireClientCert is a boolean flag indicating whether the client certificate will be
	//   authenticated by the server (two-way SSL) when configuring component over REST to use SSL.
	//   If not set the default is false
	// +optional
	RequireClientCert *bool `json:"requireClientCert,omitempty"`
}

SSLSpec defines the SSL settings for a Coherence component over REST endpoint. +k8s:openapi-gen=true

func (*SSLSpec) CreateEnvVars

func (in *SSLSpec) CreateEnvVars(prefix, secretMount string) []corev1.EnvVar

CreateEnvVars creates the SSL environment variables

func (*SSLSpec) DeepCopy

func (in *SSLSpec) DeepCopy() *SSLSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSLSpec.

func (*SSLSpec) DeepCopyInto

func (in *SSLSpec) DeepCopyInto(out *SSLSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ScalingPolicy

type ScalingPolicy string

ScalingPolicy describes a policy for scaling a cluster deployment

const (
	// SafeScaling means that a deployment will be scaled up or down in a safe manner to ensure no data loss.
	SafeScaling ScalingPolicy = "Safe"
	// ParallelScaling means that a deployment will be scaled up or down by adding or removing members in parallel.
	// If the members of the deployment are storage enabled then this could cause data loss
	ParallelScaling ScalingPolicy = "Parallel"
	// ParallelUpSafeDownScaling means that a deployment will be scaled up by adding or removing members in parallel
	// but will be scaled down in a safe manner to ensure no data loss.
	ParallelUpSafeDownScaling ScalingPolicy = "ParallelUpSafeDown"
)

Scaling policy constants

type ScalingSpec

type ScalingSpec struct {
	// ScalingPolicy describes how the replicas of the deployment will be scaled.
	// The default if not specified is based upon the value of the StorageEnabled field.
	// If StorageEnabled field is not specified or is true the default scaling will be safe, if StorageEnabled is
	// set to false the default scaling will be parallel.
	// +optional
	Policy *ScalingPolicy `json:"policy,omitempty"`
	// The probe to use to determine whether a deployment is Phase HA.
	// If not set the default handler will be used.
	// In most use-cases the default handler would suffice but in
	// advanced use-cases where the application code has a different
	// concept of Phase HA to just checking Coherence services then
	// a different handler may be specified.
	// +optional
	Probe *Probe `json:"probe,omitempty"`
}

ScalingSpec is the configuration to control safe scaling. +k8s:openapi-gen=true

func (*ScalingSpec) DeepCopy

func (in *ScalingSpec) DeepCopy() *ScalingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalingSpec.

func (*ScalingSpec) DeepCopyInto

func (in *ScalingSpec) DeepCopyInto(out *ScalingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretVolumeSpec

type SecretVolumeSpec struct {
	// The name of the Secret to mount.
	// This will also be used as the name of the Volume added to the Pod
	// if the VolumeName field is not set.
	Name string `json:"name"`
	// Path within the container at which the volume should be mounted.  Must
	// not contain ':'.
	MountPath string `json:"mountPath"`
	// The optional name to use for the Volume added to the Pod.
	// If not set, the Secret name will be used as the VolumeName.
	// +optional
	VolumeName string `json:"volumeName,omitempty"`
	// Mounted read-only if true, read-write otherwise (false or unspecified).
	// Defaults to false.
	// +optional
	ReadOnly bool `json:"readOnly,omitempty"`
	// Path within the volume from which the container's volume should be mounted.
	// Defaults to "" (volume's root).
	// +optional
	SubPath string `json:"subPath,omitempty"`
	// mountPropagation determines how mounts are propagated from the host
	// to container and the other way around.
	// When not set, MountPropagationNone is used.
	// +optional
	MountPropagation *corev1.MountPropagationMode `json:"mountPropagation,omitempty"`
	// Expanded path within the volume from which the container's volume should be mounted.
	// Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
	// Defaults to "" (volume's root).
	// SubPathExpr and SubPath are mutually exclusive.
	// +optional
	SubPathExpr string `json:"subPathExpr,omitempty"`
	// If unspecified, each key-value pair in the Data field of the referenced
	// Secret will be projected into the volume as a file whose name is the
	// key and content is the value. If specified, the listed keys will be
	// projected into the specified paths, and unlisted keys will not be
	// present. If a key is specified which is not present in the Secret,
	// the volume setup will error unless it is marked optional. Paths must be
	// relative and may not contain the '..' path or start with '..'.
	// +listType=map
	// +listMapKey=key
	// +optional
	Items []corev1.KeyToPath `json:"items,omitempty"`
	// Optional: mode bits to use on created files by default. Must be a
	// value between 0 and 0777. Defaults to 0644.
	// Directories within the path are not affected by this setting.
	// This might be in conflict with other options that affect the file
	// mode, like fsGroup, and the result can be other mode bits set.
	// +optional
	DefaultMode *int32 `json:"defaultMode,omitempty"`
	// Specify whether the Secret or its keys must be defined
	// +optional
	Optional *bool `json:"optional,omitempty"`
}

SecretVolumeSpec represents a Secret that will be added to the deployment's Pods as an additional Volume and as a VolumeMount in the containers. +coh:doc=misc_pod_settings/020_secret_volumes.adoc,Add Secret Volumes +k8s:openapi-gen=true

func (*SecretVolumeSpec) AddVolumeMounts

func (in *SecretVolumeSpec) AddVolumeMounts(c *corev1.Container)

func (*SecretVolumeSpec) AddVolumes

func (in *SecretVolumeSpec) AddVolumes(podTemplate *corev1.PodTemplateSpec)

AddVolumes adds the Volume and VolumeMount for this Secret spec.

func (*SecretVolumeSpec) DeepCopy

func (in *SecretVolumeSpec) DeepCopy() *SecretVolumeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretVolumeSpec.

func (*SecretVolumeSpec) DeepCopyInto

func (in *SecretVolumeSpec) DeepCopyInto(out *SecretVolumeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceMonitorSpec

type ServiceMonitorSpec struct {
	// Enabled is a flag to enable or disable creation of a Prometheus ServiceMonitor for a port.
	// If Prometheus ServiceMonitor CR is not installed no ServiceMonitor then even if this flag
	// is true no ServiceMonitor will be created.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// Additional labels to add to the ServiceMonitor.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// The label to use to retrieve the job name from.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec
	// +optional
	JobLabel string `json:"jobLabel,omitempty"`
	// TargetLabels transfers labels on the Kubernetes Service onto the target.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec
	// +listType=atomic
	// +optional
	TargetLabels []string `json:"targetLabels,omitempty"`
	// PodTargetLabels transfers labels on the Kubernetes Pod onto the target.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec
	// +listType=atomic
	// +optional
	PodTargetLabels []string `json:"podTargetLabels,omitempty"`
	// SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec
	// +optional
	SampleLimit *uint64 `json:"sampleLimit,omitempty"`
	// HTTP path to scrape for metrics.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	Path string `json:"path,omitempty"`
	// HTTP scheme to use for scraping.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	Scheme string `json:"scheme,omitempty"`
	// Optional HTTP URL parameters
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	Params map[string][]string `json:"params,omitempty"`
	// Interval at which metrics should be scraped
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	Interval monitoringv1.Duration `json:"interval,omitempty"`
	// Timeout after which the scrape is ended
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	ScrapeTimeout monitoringv1.Duration `json:"scrapeTimeout,omitempty"`
	// TLS configuration to use when scraping the endpoint
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	TLSConfig *monitoringv1.TLSConfig `json:"tlsConfig,omitempty"`
	// File to read bearer token for scraping targets.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	BearerTokenFile string `json:"bearerTokenFile,omitempty"`
	// Secret to mount to read bearer token for scraping targets. The secret
	// needs to be in the same namespace as the service monitor and accessible by
	// the Prometheus Operator.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	BearerTokenSecret *corev1.SecretKeySelector `json:"bearerTokenSecret,omitempty"`
	// HonorLabels chooses the metric labels on collisions with target labels.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	HonorLabels bool `json:"honorLabels,omitempty"`
	// HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	HonorTimestamps *bool `json:"honorTimestamps,omitempty"`
	// BasicAuth allow an endpoint to authenticate over basic authentication
	// More info: https://prometheus.io/docs/operating/configuration/#endpoints
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	BasicAuth *monitoringv1.BasicAuth `json:"basicAuth,omitempty"`
	// MetricRelabelings to apply to samples before ingestion.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +listType=atomic
	// +optional
	MetricRelabelings []*monitoringv1.RelabelConfig `json:"metricRelabelings,omitempty"`
	// Relabelings to apply to samples before scraping.
	// More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +listType=atomic
	// +optional
	Relabelings []*monitoringv1.RelabelConfig `json:"relabelings,omitempty"`
	// ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.
	// See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
	// +optional
	ProxyURL *string `json:"proxyURL,omitempty"`
}

ServiceMonitorSpec the ServiceMonitor spec for a port service. +k8s:openapi-gen=true

func (*ServiceMonitorSpec) CreateEndpoint

func (in *ServiceMonitorSpec) CreateEndpoint() monitoringv1.Endpoint

func (*ServiceMonitorSpec) CreateServiceMonitor

func (in *ServiceMonitorSpec) CreateServiceMonitor() monitoringv1.ServiceMonitorSpec

func (*ServiceMonitorSpec) DeepCopy

func (in *ServiceMonitorSpec) DeepCopy() *ServiceMonitorSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMonitorSpec.

func (*ServiceMonitorSpec) DeepCopyInto

func (in *ServiceMonitorSpec) DeepCopyInto(out *ServiceMonitorSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceSpec

type ServiceSpec struct {
	// Enabled controls whether to create the service yaml or not
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// An optional name to use to override the generated service name.
	// +optional
	Name *string `json:"name,omitempty"`
	// An optional name to use to override the port name.
	// +optional
	PortName *string `json:"portName,omitempty"`
	// The service port value
	// +optional
	Port *int32 `json:"port,omitempty"`
	// Kind is the K8s service type (typically ClusterIP or LoadBalancer)
	// The default is "ClusterIP".
	// +optional
	Type *corev1.ServiceType `json:"type,omitempty"`
	// externalIPs is a list of IP addresses for which nodes in the cluster
	// will also accept traffic for this service.  These IPs are not managed by
	// Kubernetes.  The user is responsible for ensuring that traffic arrives
	// at a node with this IP.  A common example is external load-balancers
	// that are not part of the Kubernetes system.
	// +optional
	// +listType=atomic
	ExternalIPs []string `json:"externalIPs,omitempty"`
	// clusterIP is the IP address of the service and is usually assigned
	// randomly by the master. If an address is specified manually and is not in
	// use by others, it will be allocated to the service; otherwise, creation
	// of the service will fail. This field can not be changed through updates.
	// Valid values are "None", empty string (""), or a valid IP address. "None"
	// can be specified for headless services when proxying is not required.
	// Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
	// type is ExternalName.
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
	// +optional
	ClusterIP *string `json:"clusterIP,omitempty"`
	// ClusterIPs is a list of IP addresses assigned to this service, and are
	// usually assigned randomly.  If an address is specified manually, is
	// in-range (as per system configuration), and is not in use, it will be
	// allocated to the service; otherwise creation of the service will fail.
	// This field may not be changed through updates unless the type field is
	// also being changed to ExternalName (which requires this field to be
	// empty) or the type field is being changed from ExternalName (in which
	// case this field may optionally be specified, as describe above).  Valid
	// values are "None", empty string (""), or a valid IP address.  Setting
	// this to "None" makes a "headless service" (no virtual IP), which is
	// useful when direct endpoint connections are preferred and proxying is
	// not required.  Only applies to types ClusterIP, NodePort, and
	// LoadBalancer. If this field is specified when creating a Service of type
	// ExternalName, creation will fail. This field will be wiped when updating
	// a Service to type ExternalName.  If this field is not specified, it will
	// be initialized from the clusterIP field.  If this field is specified,
	// clients must ensure that clusterIPs[0] and clusterIP have the same
	// value.
	//
	// Unless the "IPv6DualStack" feature gate is enabled, this field is
	// limited to one value, which must be the same as the clusterIP field.  If
	// the feature gate is enabled, this field may hold a maximum of two
	// entries (dual-stack IPs, in either order).  These IPs must correspond to
	// the values of the ipFamilies field. Both clusterIPs and ipFamilies are
	// governed by the ipFamilyPolicy field.
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
	// +listType=atomic
	// +optional
	ClusterIPs []string `json:"clusterIPs,omitempty"`
	// LoadBalancerIP is the IP address of the load balancer
	// +optional
	LoadBalancerIP *string `json:"loadBalancerIP,omitempty"`
	// The extra labels to add to the service.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// Annotations is free form yaml that will be added to the service annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// Supports "ClientIP" and "None". Used to maintain session affinity.
	// Enable client IP based session affinity.
	// Must be ClientIP or None.
	// Defaults to None.
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
	// +optional
	SessionAffinity *corev1.ServiceAffinity `json:"sessionAffinity,omitempty"`
	// If specified and supported by the platform, this will restrict traffic through the cloud-provider
	// load-balancer will be restricted to the specified client IPs. This field will be ignored if the
	// cloud-provider does not support the feature."
	// +listType=atomic
	// +optional
	LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"`
	// externalName is the external reference that kubedns or equivalent will
	// return as a CNAME record for this service. No proxying will be involved.
	// Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
	// and requires Kind to be ExternalName.
	// +optional
	ExternalName *string `json:"externalName,omitempty"`
	// externalTrafficPolicy denotes if this Service desires to route external
	// traffic to node-local or cluster-wide endpoints. "Local" preserves the
	// client source IP and avoids a second hop for LoadBalancer and Nodeport
	// type services, but risks potentially imbalanced traffic spreading.
	// "Cluster" obscures the client source IP and may cause a second hop to
	// another node, but should have good overall load-spreading.
	// +optional
	ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty"`
	// healthCheckNodePort specifies the healthcheck nodePort for the service.
	// If not specified, HealthCheckNodePort is created by the service api
	// backend with the allocated nodePort. Will use user-specified nodePort value
	// if specified by the client. Only effects when Kind is set to LoadBalancer
	// and ExternalTrafficPolicy is set to Local.
	// +optional
	HealthCheckNodePort *int32 `json:"healthCheckNodePort,omitempty"`
	// publishNotReadyAddresses, when set to true, indicates that DNS implementations
	// must publish the notReadyAddresses of subsets for the Endpoints associated with
	// the Service. The default value is false.
	// The primary use case for setting this field is to use a StatefulSet's Headless Service
	// to propagate SRV records for its Pods without respect to their readiness for purpose
	// of peer discovery.
	// +optional
	PublishNotReadyAddresses *bool `json:"publishNotReadyAddresses,omitempty"`
	// sessionAffinityConfig contains the configurations of session affinity.
	// +optional
	SessionAffinityConfig *corev1.SessionAffinityConfig `json:"sessionAffinityConfig,omitempty"`
	// IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this
	// service, and is gated by the "IPv6DualStack" feature gate.  This field
	// is usually assigned automatically based on cluster configuration and the
	// ipFamilyPolicy field. If this field is specified manually, the requested
	// family is available in the cluster, and ipFamilyPolicy allows it, it
	// will be used; otherwise creation of the service will fail.  This field
	// is conditionally mutable: it allows for adding or removing a secondary
	// IP family, but it does not allow changing the primary IP family of the
	// Service.  Valid values are "IPv4" and "IPv6".  This field only applies
	// to Services of types ClusterIP, NodePort, and LoadBalancer, and does
	// apply to "headless" services.  This field will be wiped when updating a
	// Service to type ExternalName.
	//
	// This field may hold a maximum of two entries (dual-stack families, in
	// either order).  These families must correspond to the values of the
	// clusterIPs field, if specified. Both clusterIPs and ipFamilies are
	// governed by the ipFamilyPolicy field.
	// +listType=atomic
	// +optional
	IPFamilies []corev1.IPFamily `json:"ipFamilies,omitempty"`
	// IPFamilyPolicy represents the dual-stack-ness requested or required by
	// this Service, and is gated by the "IPv6DualStack" feature gate.  If
	// there is no value provided, then this field will be set to SingleStack.
	// Services can be "SingleStack" (a single IP family), "PreferDualStack"
	// (two IP families on dual-stack configured clusters or a single IP family
	// on single-stack clusters), or "RequireDualStack" (two IP families on
	// dual-stack configured clusters, otherwise fail). The ipFamilies and
	// clusterIPs fields depend on the value of this field.  This field will be
	// wiped when updating a service to type ExternalName.
	// +optional
	IPFamilyPolicy *corev1.IPFamilyPolicyType `json:"ipFamilyPolicy,omitempty"`
	// allocateLoadBalancerNodePorts defines if NodePorts will be automatically
	// allocated for services with type LoadBalancer.  Default is "true". It may be
	// set to "false" if the cluster load-balancer does not rely on NodePorts.
	// allocateLoadBalancerNodePorts may only be set for services with type LoadBalancer
	// and will be cleared if the type is changed to any other type.
	// This field is alpha-level and is only honored by servers that enable the ServiceLBNodePortControl feature.
	// +optional
	AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty"`
}

ServiceSpec defines the settings for a Service +k8s:openapi-gen=true

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceSpec) GetName

func (in *ServiceSpec) GetName() string

GetName returns the name of the service.

func (*ServiceSpec) IsEnabled

func (in *ServiceSpec) IsEnabled() bool

IsEnabled returns true if a Service should be created.

func (*ServiceSpec) SetServiceType

func (in *ServiceSpec) SetServiceType(t corev1.ServiceType)

SetServiceType sets the Kind of the service.

type StartQuorum

type StartQuorum struct {
	// The name of deployment that this deployment depends on.
	Deployment string `json:"deployment"`
	// The namespace that the deployment that this deployment depends on is installed into.
	// Default to the same namespace as this deployment
	// +optional
	Namespace string `json:"namespace,omitempty"`
	// The number of the Pods that should have been started before this
	// deployments will be started, defaults to all Pods for the deployment.
	// +optional
	PodCount int32 `json:"podCount,omitempty"`
}

StartQuorum defines the order that deployments will be started in a Coherence cluster made up of multiple deployments. +k8s:openapi-gen=true

func (*StartQuorum) DeepCopy

func (in *StartQuorum) DeepCopy() *StartQuorum

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StartQuorum.

func (*StartQuorum) DeepCopyInto

func (in *StartQuorum) DeepCopyInto(out *StartQuorum)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StartQuorumStatus

type StartQuorumStatus struct {
	// The inlined start quorum.
	StartQuorum `json:",inline"`
	// Whether this quorum's condition has been met
	Ready bool `json:"ready"`
}

StartQuorumStatus tracks the state of a deployment's start quorums.

func (*StartQuorumStatus) DeepCopy

func (in *StartQuorumStatus) DeepCopy() *StartQuorumStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StartQuorumStatus.

func (*StartQuorumStatus) DeepCopyInto

func (in *StartQuorumStatus) DeepCopyInto(out *StartQuorumStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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