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
- Variables
- func AddEnvVarIfAbsent(dest []corev1.EnvVar, envVar corev1.EnvVar) []corev1.EnvVar
- func BoolPtrToString(b *bool) string
- func ComputeHash(template interface{}, collisionCount *int32) string
- func DeepHashObject(hasher hash.Hash, objectToWrite interface{})
- func EnsureCRDs(ctx context.Context, v *version.Version, scheme *runtime.Scheme, ...) error
- func EnsureContainer(name string, sts *appsv1.StatefulSet) *corev1.Container
- func EnsureContainerInPod(name string, podTemplate *corev1.PodTemplateSpec) *corev1.Container
- func EnsureHashLabel(c CoherenceResource) (string, bool)
- func EnsureV1CRDs(ctx context.Context, logger logr.Logger, scheme *runtime.Scheme, ...) error
- func FindContainer(name string, sts *appsv1.StatefulSet) *corev1.Container
- func FindContainerForJob(name string, job *batchv1.Job) *corev1.Container
- func FindContainerInPodTemplate(name string, pod *corev1.PodTemplateSpec) *corev1.Container
- func FindInitContainer(name string, sts *appsv1.StatefulSet) *corev1.Container
- func FindInitContainerInJob(name string, job *batchv1.Job) *corev1.Container
- func FindInitContainerInPodTemplate(name string, template *corev1.PodTemplateSpec) *corev1.Container
- func Int32PtrToString(i *int32) string
- func Int32PtrToStringWithDefault(i *int32, d int32) string
- func Int32ToString(i int32) string
- func ReplaceContainer(sts *appsv1.StatefulSet, cNew *corev1.Container)
- func ReplaceContainerInPod(podTemplate *corev1.PodTemplateSpec, cNew *corev1.Container)
- func ReplaceVolume(sts *appsv1.StatefulSet, volNew corev1.Volume)
- func ReplaceVolumeInJob(job *batchv1.Job, volNew corev1.Volume)
- func SetCommonDefaults(in CoherenceResource)
- func ValidateJobUpdate(job, oldJob *batchv1.Job) field.ErrorList
- func ValidateStatefulSetUpdate(statefulSet, oldStatefulSet *appsv1.StatefulSet) field.ErrorList
- type Action
- type ActionJob
- type ApplicationSpec
- type CloudNativeBuildPackSpec
- type Coherence
- func (in *Coherence) AddAnnotation(key, value string)
- func (in *Coherence) AddAnnotationIfMissing(key, value string)
- func (in *Coherence) CreateAnnotations() map[string]string
- func (in *Coherence) CreateCommonLabels() map[string]string
- func (in *Coherence) CreateGlobalAnnotations() map[string]string
- func (in *Coherence) CreateGlobalLabels() map[string]string
- func (in *Coherence) CreateKubernetesResources() (Resources, error)
- func (in *Coherence) DeepCopy() *Coherence
- func (in *Coherence) DeepCopyInto(out *Coherence)
- func (in *Coherence) DeepCopyObject() runtime.Object
- func (in *Coherence) DeepCopyResource() CoherenceResource
- func (in *Coherence) Default()
- func (in *Coherence) FindFullyQualifiedPortServiceName(name string) (string, bool)
- func (in *Coherence) FindFullyQualifiedPortServiceNames() map[string]string
- func (in *Coherence) FindPortServiceName(name string) (string, bool)
- func (in *Coherence) FindPortServiceNames() map[string]string
- func (in *Coherence) GetAPIVersion() string
- func (in *Coherence) GetCoherenceClusterName() string
- func (in *Coherence) GetEnvVarFrom() []corev1.EnvFromSource
- func (in *Coherence) GetGlobalSpec() *GlobalSpec
- func (in *Coherence) GetHeadlessServiceName() string
- func (in *Coherence) GetInitResources() *corev1.ResourceRequirements
- func (in *Coherence) GetJobResourceSpec() (*CoherenceJobResourceSpec, bool)
- func (in *Coherence) GetNamespacedName() types.NamespacedName
- func (in *Coherence) GetReplicas() int32
- func (in *Coherence) GetRoleName() string
- func (in *Coherence) GetSpec() *CoherenceResourceSpec
- func (in *Coherence) GetStatefulSetSpec() (*CoherenceStatefulSetResourceSpec, bool)
- func (in *Coherence) GetStatus() *CoherenceResourceStatus
- func (in *Coherence) GetType() CoherenceType
- func (in *Coherence) GetVersionAnnotation() (string, bool)
- func (in *Coherence) GetWKA() string
- func (in *Coherence) GetWkaServiceName() string
- func (in *Coherence) IsBeforeVersion(version string) bool
- func (in *Coherence) IsForceExit() bool
- func (in *Coherence) SetReplicas(replicas int32)
- func (in *Coherence) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (in *Coherence) ValidateCreate() (admission.Warnings, error)
- func (in *Coherence) ValidateDelete() (admission.Warnings, error)
- func (in *Coherence) ValidateUpdate(previous runtime.Object) (admission.Warnings, error)
- type CoherenceJob
- func (in *CoherenceJob) AddAnnotation(key, value string)
- func (in *CoherenceJob) AddAnnotationIfMissing(key, value string)
- func (in *CoherenceJob) CreateAnnotations() map[string]string
- func (in *CoherenceJob) CreateCommonLabels() map[string]string
- func (in *CoherenceJob) CreateGlobalAnnotations() map[string]string
- func (in *CoherenceJob) CreateGlobalLabels() map[string]string
- func (in *CoherenceJob) CreateKubernetesResources() (Resources, error)
- func (in *CoherenceJob) DeepCopy() *CoherenceJob
- func (in *CoherenceJob) DeepCopyInto(out *CoherenceJob)
- func (in *CoherenceJob) DeepCopyObject() runtime.Object
- func (in *CoherenceJob) DeepCopyResource() CoherenceResource
- func (in *CoherenceJob) Default()
- func (in *CoherenceJob) FindFullyQualifiedPortServiceName(name string) (string, bool)
- func (in *CoherenceJob) FindFullyQualifiedPortServiceNames() map[string]string
- func (in *CoherenceJob) FindPortServiceName(name string) (string, bool)
- func (in *CoherenceJob) FindPortServiceNames() map[string]string
- func (in *CoherenceJob) GetAPIVersion() string
- func (in *CoherenceJob) GetCoherenceClusterName() string
- func (in *CoherenceJob) GetEnvVarFrom() []corev1.EnvFromSource
- func (in *CoherenceJob) GetGlobalSpec() *GlobalSpec
- func (in *CoherenceJob) GetHeadlessServiceName() string
- func (in *CoherenceJob) GetInitResources() *corev1.ResourceRequirements
- func (in *CoherenceJob) GetJobResourceSpec() (*CoherenceJobResourceSpec, bool)
- func (in *CoherenceJob) GetNamespacedName() types.NamespacedName
- func (in *CoherenceJob) GetReplicas() int32
- func (in *CoherenceJob) GetRoleName() string
- func (in *CoherenceJob) GetSpec() *CoherenceResourceSpec
- func (in *CoherenceJob) GetStatefulSetSpec() (*CoherenceStatefulSetResourceSpec, bool)
- func (in *CoherenceJob) GetStatus() *CoherenceResourceStatus
- func (in *CoherenceJob) GetType() CoherenceType
- func (in *CoherenceJob) GetVersionAnnotation() (string, bool)
- func (in *CoherenceJob) GetWKA() string
- func (in *CoherenceJob) GetWkaServiceName() string
- func (in *CoherenceJob) IsBeforeVersion(version string) bool
- func (in *CoherenceJob) IsForceExit() bool
- func (in *CoherenceJob) SetReplicas(replicas int32)
- func (in *CoherenceJob) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (in *CoherenceJob) ValidateCreate() (admission.Warnings, error)
- func (in *CoherenceJob) ValidateDelete() (admission.Warnings, error)
- func (in *CoherenceJob) ValidateUpdate(previous runtime.Object) (admission.Warnings, error)
- type CoherenceJobList
- type CoherenceJobProbe
- type CoherenceJobProbeStatus
- type CoherenceJobResourceSpec
- func (in *CoherenceJobResourceSpec) CreateJob(deployment *CoherenceJob) batchv1.Job
- func (in *CoherenceJobResourceSpec) CreateJobResource(deployment *CoherenceJob) Resource
- func (in *CoherenceJobResourceSpec) DeepCopy() *CoherenceJobResourceSpec
- func (in *CoherenceJobResourceSpec) DeepCopyInto(out *CoherenceJobResourceSpec)
- func (in *CoherenceJobResourceSpec) GetReplicas() int32
- func (in *CoherenceJobResourceSpec) GetRestartPolicy() *corev1.RestartPolicy
- func (in *CoherenceJobResourceSpec) IsSyncCompletions() bool
- func (in *CoherenceJobResourceSpec) UpdateJob(spec *batchv1.JobSpec)
- type CoherenceJobStatus
- type CoherenceList
- type CoherenceResource
- type CoherenceResourceSpec
- func (in *CoherenceResourceSpec) AddEnvVarIfAbsent(envVar corev1.EnvVar)
- func (in *CoherenceResourceSpec) CreateCoherenceContainer(deployment CoherenceResource) corev1.Container
- func (in *CoherenceResourceSpec) CreateCommonEnv(deployment CoherenceResource) []corev1.EnvVar
- func (in *CoherenceResourceSpec) CreateCommonVolumeMounts() []corev1.VolumeMount
- func (in *CoherenceResourceSpec) CreateDefaultEnv(deployment CoherenceResource) []corev1.EnvVar
- func (in *CoherenceResourceSpec) CreateDefaultLivenessProbe() *corev1.Probe
- func (in *CoherenceResourceSpec) CreateDefaultPodAffinity(deployment CoherenceResource) *corev1.Affinity
- func (in *CoherenceResourceSpec) CreateDefaultReadinessProbe() *corev1.Probe
- func (in *CoherenceResourceSpec) CreateHeadlessService(deployment CoherenceResource) Resource
- func (in *CoherenceResourceSpec) CreateKubernetesResources(d CoherenceResource) []Resource
- func (in *CoherenceResourceSpec) CreateOperatorInitContainer(deployment CoherenceResource) corev1.Container
- func (in *CoherenceResourceSpec) CreatePodSelectorLabels(deployment CoherenceResource) map[string]string
- func (in *CoherenceResourceSpec) CreatePodTemplateSpec(deployment CoherenceResource) corev1.PodTemplateSpec
- func (in *CoherenceResourceSpec) CreateServicesForPort(deployment CoherenceResource) []Resource
- func (in *CoherenceResourceSpec) CreateWKAService(deployment CoherenceResource) Resource
- func (in *CoherenceResourceSpec) DeepCopy() *CoherenceResourceSpec
- func (in *CoherenceResourceSpec) DeepCopyInto(out *CoherenceResourceSpec)
- func (in *CoherenceResourceSpec) EnsureCoherenceImage(coherenceImage *string) bool
- func (in *CoherenceResourceSpec) EnsureCoherenceOperatorImage(imageName *string) bool
- func (in *CoherenceResourceSpec) EnsurePodAffinity(deployment CoherenceResource) *corev1.Affinity
- func (in *CoherenceResourceSpec) FindPortServiceName(name string, deployment CoherenceResource) (string, bool)
- func (in *CoherenceResourceSpec) FindPortServiceNames(deployment CoherenceResource) map[string]string
- func (in *CoherenceResourceSpec) GetCoherenceImage() *string
- func (in *CoherenceResourceSpec) GetCoherenceOperatorImage() *string
- func (in *CoherenceResourceSpec) GetCoherencePersistence() *PersistenceSpec
- func (in *CoherenceResourceSpec) GetDefaultScalingProbe() *Probe
- func (in *CoherenceResourceSpec) GetHealthPort() int32
- func (in *CoherenceResourceSpec) GetImagePullSecrets() []corev1.LocalObjectReference
- func (in *CoherenceResourceSpec) GetManagementPort() int32
- func (in *CoherenceResourceSpec) GetMetricsPort() int32
- func (in *CoherenceResourceSpec) GetReplicas() int32
- func (in *CoherenceResourceSpec) GetRestartPolicy() *corev1.RestartPolicy
- func (in *CoherenceResourceSpec) GetServiceAccountName() string
- func (in *CoherenceResourceSpec) ProcessSideCars(deployment CoherenceResource, podTemplate *corev1.PodTemplateSpec)
- func (in *CoherenceResourceSpec) RestartPolicyPointer(policy corev1.RestartPolicy) *corev1.RestartPolicy
- func (in *CoherenceResourceSpec) SetReplicas(replicas int32)
- func (in *CoherenceResourceSpec) UpdateDefaultLivenessProbeAction(probe *corev1.Probe) *corev1.Probe
- func (in *CoherenceResourceSpec) UpdateDefaultReadinessProbeAction(probe *corev1.Probe) *corev1.Probe
- type CoherenceResourceStatus
- func (in *CoherenceResourceStatus) DeepCopy() *CoherenceResourceStatus
- func (in *CoherenceResourceStatus) DeepCopyInto(out *CoherenceResourceStatus)
- func (in *CoherenceResourceStatus) FindJobProbeStatus(pod string) CoherenceJobProbeStatus
- func (in *CoherenceResourceStatus) MaybeFindJobProbeStatus(pod string) *CoherenceJobProbeStatus
- func (in *CoherenceResourceStatus) SetCondition(deployment CoherenceResource, c Condition) bool
- func (in *CoherenceResourceStatus) Update(deployment *Coherence, sts *appsv1.StatefulSetStatus) bool
- func (in *CoherenceResourceStatus) UpdateFromJob(deployment *CoherenceJob, jobStatus *batchv1.JobStatus, ...) bool
- type CoherenceSpec
- func (in *CoherenceSpec) AddPersistencePVCs(deployment *Coherence, sts *appsv1.StatefulSet)
- func (in *CoherenceSpec) AddPersistenceVolumeMounts(c *corev1.Container)
- func (in *CoherenceSpec) AddPersistenceVolumes(podTemplate *corev1.PodTemplateSpec)
- func (in *CoherenceSpec) DeepCopy() *CoherenceSpec
- func (in *CoherenceSpec) DeepCopyInto(out *CoherenceSpec)
- func (in *CoherenceSpec) GetLocalPorts() (int32, string)
- func (in *CoherenceSpec) GetManagementPort() int32
- func (in *CoherenceSpec) GetMetricsPort() int32
- func (in *CoherenceSpec) GetPersistenceSpec() *PersistenceSpec
- func (in *CoherenceSpec) GetWKA(deployment CoherenceResource) string
- func (in *CoherenceSpec) IsWKAMember() bool
- func (in *CoherenceSpec) RequiresWKAService() bool
- func (in *CoherenceSpec) UpdatePodTemplateSpec(podTemplate *corev1.PodTemplateSpec, deployment CoherenceResource)
- func (in *CoherenceSpec) UpdateStatefulSet(deployment *Coherence, sts *appsv1.StatefulSet)
- type CoherenceStatefulSetResourceSpec
- func (in *CoherenceStatefulSetResourceSpec) CheckHABeforeUpdate() bool
- func (in *CoherenceStatefulSetResourceSpec) CreateStatefulSet(deployment *Coherence) appsv1.StatefulSet
- func (in *CoherenceStatefulSetResourceSpec) CreateStatefulSetResource(deployment *Coherence) Resource
- func (in *CoherenceStatefulSetResourceSpec) DeepCopy() *CoherenceStatefulSetResourceSpec
- func (in *CoherenceStatefulSetResourceSpec) DeepCopyInto(out *CoherenceStatefulSetResourceSpec)
- func (in *CoherenceStatefulSetResourceSpec) GetDefaultSuspendProbe() *Probe
- func (in *CoherenceStatefulSetResourceSpec) GetEffectiveScalingPolicy() ScalingPolicy
- func (in *CoherenceStatefulSetResourceSpec) GetScalingProbe() *Probe
- func (in *CoherenceStatefulSetResourceSpec) GetSuspendProbe() *Probe
- func (in *CoherenceStatefulSetResourceSpec) IsSuspendServicesOnShutdown() bool
- type CoherenceTracingSpec
- type CoherenceType
- type CoherenceWKASpec
- type CommonWebHook
- type Condition
- type ConditionReason
- type ConditionType
- type Conditions
- func (in Conditions) DeepCopy() Conditions
- func (in Conditions) DeepCopyInto(out *Conditions)
- func (in Conditions) GetCondition(t ConditionType) *Condition
- func (in Conditions) IsFalseFor(t ConditionType) bool
- func (in Conditions) IsTrueFor(t ConditionType) bool
- func (in Conditions) IsUnknownFor(t ConditionType) bool
- func (in Conditions) MarshalJSON() ([]byte, error)
- func (in *Conditions) RemoveCondition(t ConditionType) bool
- func (in *Conditions) SetCondition(newCond Condition) bool
- type ConfigMapVolumeSpec
- type GlobalSpec
- type ImageSpec
- type JVMSpec
- type JvmDebugSpec
- type JvmGarbageCollectorSpec
- type JvmMemorySpec
- type JvmOutOfMemorySpec
- type LocalObjectReference
- type NamedPortSpec
- func (in *NamedPortSpec) CreatePort(d CoherenceResource) corev1.ContainerPort
- func (in *NamedPortSpec) CreateService(deployment CoherenceResource) *corev1.Service
- func (in *NamedPortSpec) CreateServiceMonitor(deployment CoherenceResource) *monitoringv1.ServiceMonitor
- func (in *NamedPortSpec) DeepCopy() *NamedPortSpec
- func (in *NamedPortSpec) DeepCopyInto(out *NamedPortSpec)
- func (in *NamedPortSpec) GetDefaultAppProtocol() *string
- func (in *NamedPortSpec) GetNodePort() int32
- func (in *NamedPortSpec) GetPort(d CoherenceResource) int32
- func (in *NamedPortSpec) GetProtocol() corev1.Protocol
- func (in *NamedPortSpec) GetServiceName(deployment CoherenceResource) (string, bool)
- func (in *NamedPortSpec) GetServicePort(d CoherenceResource) int32
- func (in *NamedPortSpec) IsEnabled() bool
- type NetworkSpec
- type PersistenceSpec
- func (in *PersistenceSpec) AddVolumeMounts(c *corev1.Container)
- func (in *PersistenceSpec) CreatePersistenceVolumes() []corev1.Volume
- func (in *PersistenceSpec) CreatePersistentVolumeClaims(deployment *Coherence) []corev1.PersistentVolumeClaim
- func (in *PersistenceSpec) DeepCopy() *PersistenceSpec
- func (in *PersistenceSpec) DeepCopyInto(out *PersistenceSpec)
- func (in *PersistenceSpec) GetMode() *string
- type PersistentStorageSpec
- func (in *PersistentStorageSpec) CreatePersistenceVolume(name string) corev1.Volume
- func (in *PersistentStorageSpec) CreatePersistentVolumeClaim(deployment *Coherence, name string) *corev1.PersistentVolumeClaim
- func (in *PersistentStorageSpec) DeepCopy() *PersistentStorageSpec
- func (in *PersistentStorageSpec) DeepCopyInto(out *PersistentStorageSpec)
- type PersistentVolumeClaim
- type PersistentVolumeClaimObjectMeta
- type PodDNSConfig
- type PortSpecWithSSL
- func (in *PortSpecWithSSL) AddSSLVolumes(sts *appsv1.StatefulSet, c *corev1.Container, volName, path string)
- func (in *PortSpecWithSSL) AddSSLVolumesForPod(podTemplate *corev1.PodTemplateSpec, c *corev1.Container, volName, path string)
- func (in *PortSpecWithSSL) CreateEnvVars(prefix, secretMount string, defaultPort int32) []corev1.EnvVar
- func (in *PortSpecWithSSL) DeepCopy() *PortSpecWithSSL
- func (in *PortSpecWithSSL) DeepCopyInto(out *PortSpecWithSSL)
- func (in *PortSpecWithSSL) IsSSLEnabled() bool
- type Probe
- type ProbeHandler
- type ReadinessProbeSpec
- type Resource
- type ResourceType
- type Resources
- func (in Resources) Create(kind ResourceType, name string, mgr manager.Manager, logger logr.Logger) error
- func (in Resources) DiffForKind(kind ResourceType, previous Resources) ([]Resource, int)
- func (in Resources) EnsureGVK(s *runtime.Scheme)
- func (in Resources) GetResource(kind ResourceType, name string) (Resource, bool)
- func (in Resources) GetResourcesOfKind(kind ResourceType) []Resource
- func (in Resources) MarshalJSON() ([]byte, error)
- func (in Resources) SetController(object runtime.Object, scheme *runtime.Scheme) error
- func (in Resources) SetHashLabels(hash string)
- func (in *Resources) UnmarshalJSON(b []byte) error
- type SSLSpec
- type ScalingPolicy
- type ScalingSpec
- type SecretVolumeSpec
- type ServiceMonitorSpec
- type ServiceSpec
- type StartQuorum
- type StartQuorumStatus
Constants ¶
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
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" )
const JobMutatingWebHookPath = "/mutate-coherence-oracle-com-v1-coherencejob"
JobMutatingWebHookPath This const MUST match the path in the kubebuilder annotation above
const JobValidatingWebHookPath = "/validate-coherence-oracle-com-v1-coherencejob"
JobValidatingWebHookPath This const MUST match the path in the kubebuilder annotation above
const MutatingWebHookPath = "/mutate-coherence-oracle-com-v1-coherence"
MutatingWebHookPath This const MUST match the path in the kubebuilder annotation above
const ValidatingWebHookPath = "/validate-coherence-oracle-com-v1-coherence"
ValidatingWebHookPath This const MUST match the path in the kubebuilder annotation above
Variables ¶
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 )
var ( // AffinityTopologyKey is the affinity topology key for fault domains. AffinityTopologyKey = operator.DefaultSiteLabels[0] )
Functions ¶
func AddEnvVarIfAbsent ¶
AddEnvVarIfAbsent adds the specified EnvVar to the destination slice if one with the same name does not already exist.
func BoolPtrToString ¶
BoolPtrToString converts a bool pointer to a string.
func ComputeHash ¶
ComputeHash returns a hash value calculated from Coherence spec and The hash will be safe encoded to avoid bad words.
func DeepHashObject ¶
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 ¶
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 ¶
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 ¶
Int32PtrToString converts an int32 pointer to a string.
func Int32PtrToStringWithDefault ¶
Int32PtrToStringWithDefault converts an int32 pointer to a string using the default if the pointer is nil.
func Int32ToString ¶
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 ¶
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Action.
func (*Action) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionJob.
func (*ActionJob) DeepCopyInto ¶
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 ¶
func (in *CloudNativeBuildPackSpec) DeepCopy() *CloudNativeBuildPackSpec
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 (*Coherence) AddAnnotationIfMissing ¶
func (*Coherence) CreateAnnotations ¶
CreateAnnotations returns the annotations to apply to this cluster's deployment (StatefulSet).
func (*Coherence) CreateCommonLabels ¶
CreateCommonLabels creates the deployment's common label set.
func (*Coherence) CreateGlobalAnnotations ¶
CreateGlobalAnnotations creates the common annotation set for all resources.
func (*Coherence) CreateGlobalLabels ¶
CreateGlobalLabels creates the common label set for all resources.
func (*Coherence) CreateKubernetesResources ¶
CreateKubernetesResources returns this resource's CoherenceResourceSpec
func (*Coherence) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Coherence.
func (*Coherence) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Coherence) DeepCopyObject ¶
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 ¶
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 ¶
FindFullyQualifiedPortServiceNames returns a map of the exposed ports of this resource mapped to their Service's fully qualified domain name.
func (*Coherence) FindPortServiceName ¶
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 ¶
FindPortServiceNames returns a map of the port names for this resource mapped to their Service names.
func (*Coherence) GetAPIVersion ¶
GetAPIVersion returns the TypeMeta API version
func (*Coherence) GetCoherenceClusterName ¶
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 ¶
GetHeadlessServiceName returns the name of the headless Service used for the StatefulSet.
func (*Coherence) GetInitResources ¶
func (in *Coherence) GetInitResources() *corev1.ResourceRequirements
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 ¶
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 ¶
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 ¶
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) GetWkaServiceName ¶
GetWkaServiceName returns the name of the headless Service used for Coherence WKA.
func (*Coherence) IsBeforeVersion ¶
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 (*Coherence) SetReplicas ¶
SetReplicas sets the number of replicas required for a deployment.
func (*Coherence) SetupWebhookWithManager ¶
func (*Coherence) ValidateCreate ¶
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 ¶
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 ¶
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) GetInitResources ¶
func (in *CoherenceJob) GetInitResources() *corev1.ResourceRequirements
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 ¶
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 ¶
func (in *CoherenceJobProbeStatus) DeepCopy() *CoherenceJobProbeStatus
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"` // InitResources is the optional resource requests and limits for the init-container that the Operator // adds to the Pod. // ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // The Coherence operator does not apply any default resources. // +optional InitResources *corev1.ResourceRequirements `json:"initResources,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 ¶
func (in *CoherenceJobResourceSpec) DeepCopy() *CoherenceJobResourceSpec
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 // GetInitResources returns the optional resource requirements for the init container GetInitResources() *corev1.ResourceRequirements }
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"` // 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 ¶
func (in *CoherenceResourceSpec) DeepCopy() *CoherenceResourceSpec
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 ¶
func (in *CoherenceResourceStatus) DeepCopy() *CoherenceResourceStatus
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"` // InitResources is the optional resource requests and limits for the init-container that the Operator // adds to the Pod. // ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // The Coherence operator does not apply any default resources. // +optional InitResources *corev1.ResourceRequirements `json:"initResources,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 ¶
func (in *CoherenceStatefulSetResourceSpec) DeepCopy() *CoherenceStatefulSetResourceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CoherenceStatefulSetResourceSpec.
func (*CoherenceStatefulSetResourceSpec) DeepCopyInto ¶
func (in *CoherenceStatefulSetResourceSpec) DeepCopyInto(out *CoherenceStatefulSetResourceSpec)
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 ¶
func (in *CoherenceTracingSpec) DeepCopy() *CoherenceTracingSpec
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.
func (*Condition) DeepCopyInto ¶
DeepCopyInto copies in into out.
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.
func (*ImageSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ImageSpec) EnsureImage ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JVMSpec.
func (*JVMSpec) DeepCopyInto ¶
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 ¶
func (in *JvmGarbageCollectorSpec) DeepCopy() *JvmGarbageCollectorSpec
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 ¶
func (in *LocalObjectReference) DeepCopy() *LocalObjectReference
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 (in *NamedPortSpec) CreatePort(d CoherenceResource) corev1.ContainerPort
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 ¶
func (in *PersistentStorageSpec) DeepCopy() *PersistentStorageSpec
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 ¶
func (in *PersistentVolumeClaim) DeepCopy() *PersistentVolumeClaim
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 ¶
func (in *PersistentVolumeClaim) ToPVC() corev1.PersistentVolumeClaim
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 ¶
func (in *PersistentVolumeClaimObjectMeta) DeepCopy() *PersistentVolumeClaimObjectMeta
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimObjectMeta.
func (*PersistentVolumeClaimObjectMeta) DeepCopyInto ¶
func (in *PersistentVolumeClaimObjectMeta) DeepCopyInto(out *PersistentVolumeClaimObjectMeta)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe.
func (*Probe) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Probe) GetTimeout ¶
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 ¶
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 ¶
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 ¶
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) 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 (Resources) SetController ¶
SetController sets the deployment as the controller/owner of all of the resources
func (Resources) SetHashLabels ¶
SetHashLabels sets the hash label on all the resources.
func (*Resources) UnmarshalJSON ¶
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 ¶
CreateEnvVars creates the SSL environment variables
func (*SSLSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSLSpec.
func (*SSLSpec) DeepCopyInto ¶
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.