v1beta1

package
v0.8.1 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the solr.apache.org v1beta1 API group +kubebuilder:object:generate=true +groupName=solr.apache.org

Index

Constants

View Source
const (
	DefaultPullPolicy = "" // This will use the default pullPolicy of Always when the tag is "latest" and IfNotPresent for all other tags.

	DefaultSolrReplicas = int32(3)
	DefaultSolrRepo     = "library/solr"
	DefaultSolrVersion  = "8.11"
	DefaultSolrJavaMem  = "-Xms1g -Xmx2g"
	DefaultSolrOpts     = ""
	DefaultSolrLogLevel = "INFO"
	DefaultSolrGCTune   = ""

	DefaultBusyBoxImageRepo    = "library/busybox"
	DefaultBusyBoxImageVersion = "1.28.0-glibc"

	DefaultZkReplicas                                = int32(3)
	DefaultZkStorage                                 = "5Gi"
	DefaultZkRepo                                    = "pravega/zookeeper"
	DefaultZkVersion                                 = ""
	DefaultZkVolumeReclaimPolicy VolumeReclaimPolicy = "Retain"

	SolrTechnologyLabel      = "solr-cloud"
	ZookeeperTechnologyLabel = "zookeeper"

	DefaultBasicAuthUsername = "k8s-oper"

	LegacyBackupRepositoryName = "legacy_volume_repository"
)
View Source
const (
	SolrPrometheusExporterTechnologyLabel = "solr-prometheus-exporter"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "solr.apache.org", Version: "v1beta1"}

	// 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
)

Functions

func ImageVersion

func ImageVersion(image string) (version string)

func InternalURLForCloud

func InternalURLForCloud(sc *SolrCloud) string

InternalURLForCloud returns the name of the common service for the cloud

Types

type AdditionalVolume

type AdditionalVolume struct {
	// Name of the volume
	Name string `json:"name"`

	// Source is the source of the Volume to be loaded into the solrCloud Pod
	Source corev1.VolumeSource `json:"source"`

	// DefaultContainerMount defines how to mount this volume into the default container.
	// If this volume is to be used only with sidecar or non-default init containers,
	// then this option is not necessary.
	// +optional
	DefaultContainerMount *corev1.VolumeMount `json:"defaultContainerMount,omitempty"`
}

AdditionalVolume provides information on additional volumes that should be loaded into pods

func (*AdditionalVolume) DeepCopy

func (in *AdditionalVolume) DeepCopy() *AdditionalVolume

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

func (*AdditionalVolume) DeepCopyInto

func (in *AdditionalVolume) DeepCopyInto(out *AdditionalVolume)

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

type AuthenticationType

type AuthenticationType string

+kubebuilder:validation:Enum=Basic

const (
	Basic AuthenticationType = "Basic"
)

type BackupRecurrence added in v0.5.0

type BackupRecurrence struct {
	// Perform a backup on the given schedule, in CRON format.
	//
	// Multiple CRON syntaxes are supported
	//   - Standard CRON (e.g. "CRON_TZ=Asia/Seoul 0 6 * * ?")
	//   - Predefined Schedules (e.g. "@yearly", "@weekly", "@daily", etc.)
	//   - Intervals (e.g. "@every 10h30m")
	//
	// For more information please check this reference:
	// https://pkg.go.dev/github.com/robfig/cron/v3?utm_source=godoc#hdr-CRON_Expression_Format
	Schedule string `json:"schedule"`

	// Define the number of backup points to save for this backup at any given time.
	// The oldest backups will be deleted if too many exist when a backup is taken.
	// If not provided, this defaults to 5.
	//
	// +kubebuilder:default:=5
	// +kubebuilder:validation:Minimum:=1
	// +optional
	MaxSaved int `json:"maxSaved,omitempty"`

	// Disable the recurring backups. Note this will not affect any currently-running backup.
	//
	// +kubebuilder:default:=false
	// +optional
	Disabled bool `json:"disabled,omitempty"`
}

BackupRecurrence defines the recurrence of the incremental backup

func (*BackupRecurrence) DeepCopy added in v0.5.0

func (in *BackupRecurrence) DeepCopy() *BackupRecurrence

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

func (*BackupRecurrence) DeepCopyInto added in v0.5.0

func (in *BackupRecurrence) DeepCopyInto(out *BackupRecurrence)

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

func (*BackupRecurrence) IsEnabled added in v0.5.0

func (recurrence *BackupRecurrence) IsEnabled() bool

type ClientAuthType

type ClientAuthType string

+kubebuilder:validation:Enum=None;Want;Need

const (
	None ClientAuthType = "None"
	Want ClientAuthType = "Want"
	Need ClientAuthType = "Need"
)

type CollectionBackupStatus

type CollectionBackupStatus struct {
	// Solr Collection name
	Collection string `json:"collection"`

	// BackupName of this collection's backup in Solr
	// +optional
	BackupName string `json:"backupName,omitempty"`

	// Whether the collection is being backed up
	// +optional
	InProgress bool `json:"inProgress,omitempty"`

	// Time that the collection backup started at
	// +optional
	StartTime *metav1.Time `json:"startTimestamp,omitempty"`

	// The status of the asynchronous backup call to solr
	// +optional
	AsyncBackupStatus string `json:"asyncBackupStatus,omitempty"`

	// Whether the backup has finished
	Finished bool `json:"finished,omitempty"`

	// Time that the collection backup finished at
	// +optional
	FinishTime *metav1.Time `json:"finishTimestamp,omitempty"`

	// Whether the backup was successful
	// +optional
	Successful *bool `json:"successful,omitempty"`
}

CollectionBackupStatus defines the progress of a Solr Collection's backup

func (*CollectionBackupStatus) DeepCopy

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

func (*CollectionBackupStatus) DeepCopyInto

func (in *CollectionBackupStatus) DeepCopyInto(out *CollectionBackupStatus)

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

type ConfigMapOptions

type ConfigMapOptions struct {
	// Annotations to be added for the ConfigMap.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Labels to be added for the ConfigMap.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Name of a user provided ConfigMap in the same namespace containing a custom solr.xml
	// +optional
	ProvidedConfigMap string `json:"providedConfigMap,omitempty"`
}

ConfigMapOptions defines custom options for configMaps

func (*ConfigMapOptions) DeepCopy

func (in *ConfigMapOptions) DeepCopy() *ConfigMapOptions

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

func (*ConfigMapOptions) DeepCopyInto

func (in *ConfigMapOptions) DeepCopyInto(out *ConfigMapOptions)

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

type ContainerImage

type ContainerImage struct {
	// +optional
	Repository string `json:"repository,omitempty"`
	// +optional
	Tag string `json:"tag,omitempty"`
	// +optional
	PullPolicy corev1.PullPolicy `json:"pullPolicy,omitempty"`
	// +optional
	ImagePullSecret string `json:"imagePullSecret,omitempty"`
}

ContainerImage defines the fields needed for a Docker repository image. The format here matches the predominant format used in Helm charts.

func (*ContainerImage) DeepCopy

func (in *ContainerImage) DeepCopy() *ContainerImage

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

func (*ContainerImage) DeepCopyInto

func (in *ContainerImage) DeepCopyInto(out *ContainerImage)

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

func (*ContainerImage) ToImageName

func (c *ContainerImage) ToImageName() (name string)

type CustomExporterKubeOptions

type CustomExporterKubeOptions struct {
	// SolrPodOptions defines the custom options for the solrPrometheusExporter pods.
	// +optional
	PodOptions *PodOptions `json:"podOptions,omitempty"`

	// DeploymentOptions defines the custom options for the solrPrometheusExporter Deployment.
	// +optional
	DeploymentOptions *DeploymentOptions `json:"deploymentOptions,omitempty"`

	// ServiceOptions defines the custom options for the solrPrometheusExporter Service.
	// +optional
	ServiceOptions *ServiceOptions `json:"serviceOptions,omitempty"`

	// ServiceOptions defines the custom options for the solrPrometheusExporter ConfigMap.
	// +optional
	ConfigMapOptions *ConfigMapOptions `json:"configMapOptions,omitempty"`
}

func (*CustomExporterKubeOptions) DeepCopy

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

func (*CustomExporterKubeOptions) DeepCopyInto

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

type CustomSolrKubeOptions

type CustomSolrKubeOptions struct {
	// SolrPodOptions defines the custom options for solrCloud pods.
	// +optional
	PodOptions *PodOptions `json:"podOptions,omitempty"`

	// StatefulSetOptions defines the custom options for the solrCloud StatefulSet.
	// +optional
	StatefulSetOptions *StatefulSetOptions `json:"statefulSetOptions,omitempty"`

	// CommonServiceOptions defines the custom options for the common solrCloud Service.
	// +optional
	CommonServiceOptions *ServiceOptions `json:"commonServiceOptions,omitempty"`

	// HeadlessServiceOptions defines the custom options for the headless solrCloud Service.
	// +optional
	HeadlessServiceOptions *ServiceOptions `json:"headlessServiceOptions,omitempty"`

	// NodeServiceOptions defines the custom options for the individual solrCloud Node services, if they are created.
	// These services will only be created when exposing SolrNodes externally via an Ingress in the AddressabilityOptions.
	// +optional
	NodeServiceOptions *ServiceOptions `json:"nodeServiceOptions,omitempty"`

	// ServiceOptions defines the custom options for the solrCloud ConfigMap.
	// +optional
	ConfigMapOptions *ConfigMapOptions `json:"configMapOptions,omitempty"`

	// IngressOptions defines the custom options for the solrCloud Ingress.
	// +optional
	IngressOptions *IngressOptions `json:"ingressOptions,omitempty"`
}

func (*CustomSolrKubeOptions) DeepCopy

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

func (*CustomSolrKubeOptions) DeepCopyInto

func (in *CustomSolrKubeOptions) DeepCopyInto(out *CustomSolrKubeOptions)

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

type DeploymentOptions

type DeploymentOptions struct {
	// Annotations to be added for the Deployment.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Labels to be added for the Deployment.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
}

DeploymentOptions defines custom options for Deployments

func (*DeploymentOptions) DeepCopy

func (in *DeploymentOptions) DeepCopy() *DeploymentOptions

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

func (*DeploymentOptions) DeepCopyInto

func (in *DeploymentOptions) DeepCopyInto(out *DeploymentOptions)

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

type ExternalAddressability

type ExternalAddressability struct {
	// The way in which this SolrCloud's service(s) should be made addressable externally.
	Method ExternalAddressabilityMethod `json:"method"`

	// Use the external address to advertise the SolrNode, defaults to false.
	//
	// If false, the external address will be available, however Solr (and clients using the CloudSolrClient in SolrJ) will only be aware of the internal URLs.
	// If true, Solr will startup with the hostname of the external address.
	//
	// NOTE: This option cannot be true when hideNodes is set to true. So it will be auto-set to false if that is the case.
	//
	// +optional
	UseExternalAddress bool `json:"useExternalAddress"`

	// Do not expose the common Solr service externally. This affects a single service.
	// Defaults to false.
	// +optional
	HideCommon bool `json:"hideCommon,omitempty"`

	// Do not expose each of the Solr Node services externally.
	// The number of services this affects could range from 1 (a headless service for ExternalDNS) to the number of Solr pods your cloud contains (individual node services for Ingress/LoadBalancer).
	// Defaults to false.
	// +optional
	HideNodes bool `json:"hideNodes,omitempty"`

	// Override the domainName provided as startup parameters to the operator, used by ingresses and externalDNS.
	// The common and/or node services will be addressable by unique names under the given domain.
	// e.g. given.domain.name.com -> default-example-solrcloud.given.domain.name.com
	//
	// For the LoadBalancer method, this field is optional and will only be used when useExternalAddress=true.
	// If used with the LoadBalancer method, you will need DNS routing to the LoadBalancer IP address through the url template given above.
	DomainName string `json:"domainName"`

	// Provide additional domainNames that the Ingress or ExternalDNS should listen on.
	// This option is ignored with the LoadBalancer method.
	// +optional
	AdditionalDomainNames []string `json:"additionalDomainNames,omitempty"`

	// NodePortOverride defines the port to have all Solr node service(s) listen on and advertise itself as if advertising through an Ingress or LoadBalancer.
	// This overrides the default usage of the podPort.
	//
	// This is option is only used when HideNodes=false, otherwise the the port each Solr Node will advertise itself with the podPort.
	// This option is also unavailable with the ExternalDNS method.
	//
	// If using method=Ingress, your ingress controller is required to listen on this port.
	// If your ingress controller is not listening on the podPort, then this option is required for solr to be addressable via an Ingress.
	//
	// Defaults to 80 (without TLS) or 443 (with TLS) if HideNodes=false and method=Ingress, otherwise this is optional.
	// +optional
	NodePortOverride int `json:"nodePortOverride,omitempty"`

	// IngressTLSTermination tells the SolrCloud Ingress to terminate TLS on incoming connections.
	//
	// This is option is only available when Method=Ingress, because ExternalDNS and LoadBalancer Services do not support TLS termination.
	// This option is also unavailable when the SolrCloud has TLS enabled via `spec.solrTLS`, in this case the Ingress cannot terminate TLS before reaching Solr.
	//
	// When using this option, the UseExternalAddress option will be disabled, since Solr cannot be running in HTTP mode and making internal requests in HTTPS.
	//
	// +optional
	IngressTLSTermination *SolrIngressTLSTermination `json:"ingressTLSTermination,omitempty"`
}

ExternalAddressability defines the config for making Solr services available externally to kubernetes. Be careful when using LoadBalanced and includeNodes, as many IP addresses could be created if you are running many large solrClouds.

func (*ExternalAddressability) DeepCopy

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

func (*ExternalAddressability) DeepCopyInto

func (in *ExternalAddressability) DeepCopyInto(out *ExternalAddressability)

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

func (*ExternalAddressability) HasIngressTLSTermination added in v0.6.0

func (ea *ExternalAddressability) HasIngressTLSTermination() bool

func (*ExternalAddressability) UsesIndividualNodeServices

func (extOpts *ExternalAddressability) UsesIndividualNodeServices() bool

type ExternalAddressabilityMethod

type ExternalAddressabilityMethod string

ExternalAddressabilityMethod is a string enumeration type that enumerates all possible ways that a SolrCloud can be made addressable external to the kubernetes cluster. +kubebuilder:validation:Enum=Ingress;ExternalDNS

const (
	// Use an ingress to make the Solr service(s) externally addressable
	Ingress ExternalAddressabilityMethod = "Ingress"

	// Use ExternalDNS to make the Solr service(s) externally addressable
	ExternalDNS ExternalAddressabilityMethod = "ExternalDNS"

	// Make Solr service(s) type:LoadBalancer to make them externally addressable
	// NOTE: This option is not currently supported.
	LoadBalancer ExternalAddressabilityMethod = "LoadBalancer"
)

type GcsRepository added in v0.5.0

type GcsRepository struct {
	// The name of the GCS bucket that all backup data will be stored in
	Bucket string `json:"bucket"`

	// The name & key of a Kubernetes secret holding a Google cloud service account key.  Must be set unless deployed in
	// GKE and making use of Google's "Workplace Identity" feature.
	//+optional
	GcsCredentialSecret *corev1.SecretKeySelector `json:"gcsCredentialSecret,omitempty"`

	// An already-created chroot within the bucket to store data in. Defaults to the root path "/" if not specified.
	// +optional
	BaseLocation string `json:"baseLocation,omitempty"`
}

func (*GcsRepository) DeepCopy added in v0.5.0

func (in *GcsRepository) DeepCopy() *GcsRepository

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

func (*GcsRepository) DeepCopyInto added in v0.5.0

func (in *GcsRepository) DeepCopyInto(out *GcsRepository)

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

type IndividualSolrBackupStatus added in v0.5.0

type IndividualSolrBackupStatus struct {
	// Version of the Solr being backed up
	// +optional
	SolrVersion string `json:"solrVersion,omitempty"`

	// The time that this backup was initiated
	// +optional
	StartTime metav1.Time `json:"startTimestamp,omitempty"`

	// The status of each collection's backup progress
	// +optional
	CollectionBackupStatuses []CollectionBackupStatus `json:"collectionBackupStatuses,omitempty"`

	// The time that this backup was finished
	// +optional
	FinishTime *metav1.Time `json:"finishTimestamp,omitempty"`

	// Whether the backup was successful
	// +optional
	Successful *bool `json:"successful,omitempty"`

	// Whether the backup has finished
	// +optional
	Finished bool `json:"finished,omitempty"`
}

IndividualSolrBackupStatus defines the observed state of a single issued SolrBackup

func (*IndividualSolrBackupStatus) DeepCopy added in v0.5.0

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

func (*IndividualSolrBackupStatus) DeepCopyInto added in v0.5.0

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

type IngressOptions

type IngressOptions struct {
	// Annotations to be added for the Ingress.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Labels to be added for the Ingress.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// IngressClassName is the name of the IngressClass cluster resource. The
	// associated IngressClass defines which controller will implement the resource.
	//
	// +kubebuilder:validation:Pattern:=[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=63
	// +optional
	IngressClassName *string `json:"ingressClassName,omitempty"`
}

IngressOptions defines custom options for ingresses

func (*IngressOptions) DeepCopy

func (in *IngressOptions) DeepCopy() *IngressOptions

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

func (*IngressOptions) DeepCopyInto

func (in *IngressOptions) DeepCopyInto(out *IngressOptions)

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

type ManagedUpdateOptions

type ManagedUpdateOptions struct {

	// The maximum number of pods that can be unavailable during the update.
	// Value can be an absolute number (ex: 5) or a percentage of the desired number of pods (ex: 10%).
	// Absolute number is calculated from percentage by rounding down.
	// If the provided number is 0 or negative, then all pods will be allowed to be updated in unison.
	//
	// Defaults to 25%.
	//
	// +optional
	MaxPodsUnavailable *intstr.IntOrString `json:"maxPodsUnavailable,omitempty"`

	// The maximum number of replicas for each shard that can be unavailable during the update.
	// Value can be an absolute number (ex: 5) or a percentage of replicas in a shard (ex: 25%).
	// Absolute number is calculated from percentage by rounding down.
	// If the provided number is 0 or negative, then all replicas will be allowed to be updated in unison.
	//
	// Defaults to 1.
	//
	// +optional
	MaxShardReplicasUnavailable *intstr.IntOrString `json:"maxShardReplicasUnavailable,omitempty"`
}

ManagedUpdateOptions control the desired behavior of managed rolling update.

func (*ManagedUpdateOptions) DeepCopy

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

func (*ManagedUpdateOptions) DeepCopyInto

func (in *ManagedUpdateOptions) DeepCopyInto(out *ManagedUpdateOptions)

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

type MountedTLSDirectory added in v0.4.0

type MountedTLSDirectory struct {
	// The path on the main Solr container where the TLS files are mounted by some external agent or CSI Driver
	Path string `json:"path"`

	// Override the name of the keystore file; no default, if you don't supply this setting, then the corresponding
	// env vars and Java system properties will not be configured for the pod template
	// +optional
	KeystoreFile string `json:"keystoreFile,omitempty"`

	// Override the name of the keystore password file; defaults to keystore-password, if "keystorePassword" is not provided.
	// +optional
	KeystorePasswordFile string `json:"keystorePasswordFile,omitempty"`

	// Set the password of the keystore explicitly. Cannot be used with "keystorePasswordFile"
	// +optional
	KeystorePassword string `json:"keystorePassword,omitempty"`

	// Override the name of the truststore file; no default, if you don't supply this setting, then the corresponding
	// env vars and Java system properties will not be configured for the pod template
	// +optional
	TruststoreFile string `json:"truststoreFile,omitempty"`

	// Override the name of the truststore password file; defaults to the same value as the KeystorePasswordFile, if "truststorePassword" is not provided.
	// +optional
	TruststorePasswordFile string `json:"truststorePasswordFile,omitempty"`

	// Set the password of the truststore explicitly. If "keystorePassword" is provided, and "truststorePasswordFile" is not, this will be defaulted to "keystorePassword".
	// +optional
	TruststorePassword string `json:"truststorePassword,omitempty"`
}

func (*MountedTLSDirectory) DeepCopy added in v0.4.0

func (in *MountedTLSDirectory) DeepCopy() *MountedTLSDirectory

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

func (*MountedTLSDirectory) DeepCopyInto added in v0.4.0

func (in *MountedTLSDirectory) DeepCopyInto(out *MountedTLSDirectory)

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

type PersistentVolumeClaimTemplate

type PersistentVolumeClaimTemplate struct {
	// May contain labels and annotations that will be copied into the PVC
	// when creating it. No other fields are allowed and will be rejected during
	// validation.
	//
	// +optional
	ObjectMeta TemplateMeta `json:"metadata,omitempty"`

	// The specification for the PersistentVolumeClaim. The entire content is
	// copied unchanged into the PVC that gets created from this
	// template. The same fields as in a PersistentVolumeClaim
	// are also valid here.
	//
	// +optional
	Spec corev1.PersistentVolumeClaimSpec `json:"spec,omitempty"`
}

PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.

func (*PersistentVolumeClaimTemplate) DeepCopy

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

func (*PersistentVolumeClaimTemplate) DeepCopyInto

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

type PodOptions

type PodOptions struct {
	// The scheduling constraints on pods.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// Resources is the resource requirements for the default container.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Additional non-data volumes to load into the default container.
	// +optional
	Volumes []AdditionalVolume `json:"volumes,omitempty"`

	// PodSecurityContext is the security context for the pod.
	// +optional
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`

	// Additional environment variables to pass to the default container.
	// +optional
	EnvVariables []corev1.EnvVar `json:"envVars,omitempty"`

	// Annotations to be added for pods.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Labels to be added for pods.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Tolerations to be added for the StatefulSet.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Node Selector to be added for the StatefulSet.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Liveness probe parameters
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"`

	// Readiness probe parameters
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"`

	// Startup probe parameters
	// +optional
	StartupProbe *corev1.Probe `json:"startupProbe,omitempty"`

	// PriorityClassName for the pod
	// +optional
	PriorityClassName string `json:"priorityClassName,omitempty"`

	// Lifecycle for the main container
	// +optional
	Lifecycle *corev1.Lifecycle `json:"lifecycle,omitempty"`

	// Sidecar containers to run in the pod. These are in addition to the Solr Container
	// +optional
	SidecarContainers []corev1.Container `json:"sidecarContainers,omitempty"`

	// Additional init containers to run in the pod.
	// These will run along with the init container that sets up the "solr.xml".
	// +optional
	InitContainers []corev1.Container `json:"initContainers,omitempty"`

	// ImagePullSecrets to apply to the pod.
	// These are for init/sidecarContainers in addition to the imagePullSecret defined for the
	// solr image.
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	// Optional duration in seconds the pod needs to terminate gracefully.
	// +kubebuilder:validation:Minimum=10
	// +optional
	TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"`

	// Optional Service Account to run the pod under.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// Optional PodSpreadTopologyConstraints to use when scheduling pods.
	// More information here: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
	//
	// Note: There is no need to provide a "labelSelector", as the operator will inject the labels for you if not provided.
	//
	// +patchMergeKey=topologyKey
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=topologyKey
	// +listMapKey=whenUnsatisfiable
	// +optional
	TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`

	// DefaultInitContainerResources are the resource requirements for the default init container(s) created by the Solr Operator, if any are created.
	// +optional
	DefaultInitContainerResources corev1.ResourceRequirements `json:"defaultInitContainerResources,omitempty"`
}

PodOptions defines the common pod configuration for Pods, including when used in deployments, stateful-sets, etc.

func (*PodOptions) DeepCopy

func (in *PodOptions) DeepCopy() *PodOptions

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

func (*PodOptions) DeepCopyInto

func (in *PodOptions) DeepCopyInto(out *PodOptions)

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

type S3Credentials added in v0.5.0

type S3Credentials struct {
	// The name & key of a Kubernetes secret holding an AWS Access Key ID
	// +optional
	AccessKeyIdSecret *corev1.SecretKeySelector `json:"accessKeyIdSecret,omitempty"`

	// The name & key of a Kubernetes secret holding an AWS Secret Access Key
	// +optional
	SecretAccessKeySecret *corev1.SecretKeySelector `json:"secretAccessKeySecret,omitempty"`

	// The name & key of a Kubernetes secret holding an AWS Session Token
	// +optional
	SessionTokenSecret *corev1.SecretKeySelector `json:"sessionTokenSecret,omitempty"`

	// The name & key of a Kubernetes secret holding an AWS credentials file
	// +optional
	CredentialsFileSecret *corev1.SecretKeySelector `json:"credentialsFileSecret,omitempty"`
}

func (*S3Credentials) DeepCopy added in v0.5.0

func (in *S3Credentials) DeepCopy() *S3Credentials

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

func (*S3Credentials) DeepCopyInto added in v0.5.0

func (in *S3Credentials) DeepCopyInto(out *S3Credentials)

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

type S3Repository added in v0.5.0

type S3Repository struct {
	// The S3 region to store the backup data in
	Region string `json:"region"`

	// The name of the S3 bucket that all backup data will be stored in
	Bucket string `json:"bucket"`

	// Options for specifying S3Credentials. This is optional in case you want to mount this information yourself.
	// However, if you do not include these credentials, and you do not load them yourself via a mount or EnvVars,
	// you will likely see errors when taking s3 backups.
	//
	// If running in EKS, you can create an IAMServiceAccount that uses a role permissioned for this S3 bucket.
	// Then use that serviceAccountName for your SolrCloud, and the credentials should be auto-populated.
	//
	// +optional
	Credentials *S3Credentials `json:"credentials,omitempty"`

	// An already-created chroot within the bucket to store data in. Defaults to the root path "/" if not specified.
	// +optional
	BaseLocation string `json:"baseLocation,omitempty"`

	// The full endpoint URL to use when connecting with S3 (or a supported S3 compatible interface)
	// +optional
	Endpoint string `json:"endpoint,omitempty"`

	// The full proxy URL to use when connecting with S3
	// +optional
	ProxyUrl string `json:"proxyUrl,omitempty"`
}

func (*S3Repository) DeepCopy added in v0.5.0

func (in *S3Repository) DeepCopy() *S3Repository

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

func (*S3Repository) DeepCopyInto added in v0.5.0

func (in *S3Repository) DeepCopyInto(out *S3Repository)

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

type ServiceOptions

type ServiceOptions struct {
	// Annotations to be added for the Service.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Labels to be added for the Service.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
}

ServiceOptions defines custom options for services

func (*ServiceOptions) DeepCopy

func (in *ServiceOptions) DeepCopy() *ServiceOptions

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

func (*ServiceOptions) DeepCopyInto

func (in *ServiceOptions) DeepCopyInto(out *ServiceOptions)

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

type SolrAddressabilityOptions

type SolrAddressabilityOptions struct {
	// External defines the way in which this SolrCloud nodes should be made addressable externally, from outside the Kubernetes cluster.
	// If none is provided, the Solr Cloud will not be made addressable externally.
	// +optional
	External *ExternalAddressability `json:"external,omitempty"`

	// PodPort defines the port to have the Solr Pod listen on.
	// Defaults to 8983
	// +optional
	PodPort int `json:"podPort,omitempty"`

	// CommonServicePort defines the port to have the common Solr service listen on.
	// Defaults to 80 (when not using TLS) or 443 (when using TLS)
	// +optional
	CommonServicePort int `json:"commonServicePort,omitempty"`

	// KubeDomain allows for the specification of an override of the default "cluster.local" Kubernetes cluster domain.
	// Only use this option if the Kubernetes cluster has been setup with a custom domain.
	// +optional
	KubeDomain string `json:"kubeDomain,omitempty"`
}

func (*SolrAddressabilityOptions) DeepCopy

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

func (*SolrAddressabilityOptions) DeepCopyInto

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

type SolrAvailabilityOptions added in v0.7.0

type SolrAvailabilityOptions struct {
	// Define PodDisruptionBudget(s) to ensure availability of Solr
	// +optional
	PodDisruptionBudget SolrPodDisruptionBudgetOptions `json:"podDisruptionBudget,omitempty"`
}

func (*SolrAvailabilityOptions) DeepCopy added in v0.7.0

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

func (*SolrAvailabilityOptions) DeepCopyInto added in v0.7.0

func (in *SolrAvailabilityOptions) DeepCopyInto(out *SolrAvailabilityOptions)

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

type SolrBackup

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

	Spec   SolrBackupSpec   `json:"spec,omitempty"`
	Status SolrBackupStatus `json:"status,omitempty"`
}

SolrBackup is the Schema for the solrbackups API

func (*SolrBackup) DeepCopy

func (in *SolrBackup) DeepCopy() *SolrBackup

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

func (*SolrBackup) DeepCopyInto

func (in *SolrBackup) DeepCopyInto(out *SolrBackup)

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

func (*SolrBackup) DeepCopyObject

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

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

func (*SolrBackup) PersistenceJobName

func (sb *SolrBackup) PersistenceJobName() string

PersistenceJobName returns the name of the persistence job for the backup

func (*SolrBackup) SharedLabels

func (sb *SolrBackup) SharedLabels() map[string]string

func (*SolrBackup) SharedLabelsWith

func (sb *SolrBackup) SharedLabelsWith(labels map[string]string) map[string]string

func (*SolrBackup) WithDefaults

func (sb *SolrBackup) WithDefaults() bool

WithDefaults set default values when not defined in the spec.

type SolrBackupList

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

SolrBackupList contains a list of SolrBackup

func (*SolrBackupList) DeepCopy

func (in *SolrBackupList) DeepCopy() *SolrBackupList

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

func (*SolrBackupList) DeepCopyInto

func (in *SolrBackupList) DeepCopyInto(out *SolrBackupList)

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

func (*SolrBackupList) DeepCopyObject

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

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

type SolrBackupRepository added in v0.5.0

type SolrBackupRepository struct {
	// A name used to identify this local storage profile.  Values should follow RFC-1123.  (See here for more details:
	// https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names)
	//
	// +kubebuilder:validation:Pattern:=[a-zA-Z0-9]([-_a-zA-Z0-9]*[a-zA-Z0-9])?
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=100
	Name string `json:"name"`

	// A GCSRepository for Solr to use when backing up and restoring collections.
	//+optional
	GCS *GcsRepository `json:"gcs,omitempty"`

	// An S3Repository for Solr to use when backing up and restoring collections.
	//+optional
	S3 *S3Repository `json:"s3,omitempty"`

	// Allows specification of a "repository" for Solr to use when backing up data "locally".
	//+optional
	Volume *VolumeRepository `json:"volume,omitempty"`
}

+kubebuilder:validation:MinProperties:=2 +kubebuilder:validation:MaxProperties:=2

func (*SolrBackupRepository) DeepCopy added in v0.5.0

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

func (*SolrBackupRepository) DeepCopyInto added in v0.5.0

func (in *SolrBackupRepository) DeepCopyInto(out *SolrBackupRepository)

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

type SolrBackupSpec

type SolrBackupSpec struct {
	// A reference to the SolrCloud to create a backup for
	//
	// +kubebuilder:validation:Pattern:=[a-z0-9]([-a-z0-9]*[a-z0-9])?
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=63
	SolrCloud string `json:"solrCloud"`

	// The name of the repository to use for the backup.  Defaults to "legacy_local_repository" if not specified (the
	// auto-configured repository for legacy singleton volumes).
	//
	// +kubebuilder:validation:Pattern:=[a-zA-Z0-9]([-_a-zA-Z0-9]*[a-zA-Z0-9])?
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=100
	// +optional
	RepositoryName string `json:"repositoryName,omitempty"`

	// The list of collections to backup.
	// +optional
	Collections []string `json:"collections,omitempty"`

	// The location to store the backup in the specified backup repository.
	// +optional
	Location string `json:"location,omitempty"`

	// Set this backup to be taken recurrently, with options for scheduling and storage.
	//
	// NOTE: This is only supported for Solr Clouds version 8.9+, as it uses the incremental backup API.
	//
	// +optional
	Recurrence *BackupRecurrence `json:"recurrence,omitempty"`
}

SolrBackupSpec defines the desired state of SolrBackup

func (*SolrBackupSpec) DeepCopy

func (in *SolrBackupSpec) DeepCopy() *SolrBackupSpec

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

func (*SolrBackupSpec) DeepCopyInto

func (in *SolrBackupSpec) DeepCopyInto(out *SolrBackupSpec)

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

type SolrBackupStatus

type SolrBackupStatus struct {
	// The current Backup Status, which all fields are added to this struct
	IndividualSolrBackupStatus `json:",inline"`

	// The scheduled time for the next backup to occur
	// +optional
	NextScheduledTime *metav1.Time `json:"nextScheduledTime,omitempty"`

	// The status history of recurring backups
	// +optional
	History []IndividualSolrBackupStatus `json:"history,omitempty"`
}

SolrBackupStatus defines the observed state of SolrBackup

func (*SolrBackupStatus) DeepCopy

func (in *SolrBackupStatus) DeepCopy() *SolrBackupStatus

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

func (*SolrBackupStatus) DeepCopyInto

func (in *SolrBackupStatus) DeepCopyInto(out *SolrBackupStatus)

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

type SolrCloud

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

	Spec   SolrCloudSpec   `json:"spec,omitempty"`
	Status SolrCloudStatus `json:"status,omitempty"`
}

SolrCloud is the Schema for the solrclouds API

func (*SolrCloud) AdvertisedNodeHost

func (sc *SolrCloud) AdvertisedNodeHost(nodeName string) string

func (*SolrCloud) BasicAuthSecretName

func (sc *SolrCloud) BasicAuthSecretName() string

func (*SolrCloud) CommonExternalPrefix

func (sc *SolrCloud) CommonExternalPrefix() string

func (*SolrCloud) CommonIngressName

func (sc *SolrCloud) CommonIngressName() string

CommonIngressName returns the name of the common ingress for the cloud

func (*SolrCloud) CommonPortSuffix

func (sc *SolrCloud) CommonPortSuffix(external bool) string

func (*SolrCloud) CommonServiceName

func (sc *SolrCloud) CommonServiceName() string

CommonServiceName returns the name of the common service for the cloud

func (*SolrCloud) ConfigMapName

func (sc *SolrCloud) ConfigMapName() string

ConfigMapName returns the name of the cloud config-map

func (*SolrCloud) DataVolumeName added in v0.7.0

func (sc *SolrCloud) DataVolumeName() string

func (*SolrCloud) DeepCopy

func (in *SolrCloud) DeepCopy() *SolrCloud

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

func (*SolrCloud) DeepCopyInto

func (in *SolrCloud) DeepCopyInto(out *SolrCloud)

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

func (*SolrCloud) DeepCopyObject

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

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

func (*SolrCloud) ExternalCommonUrl

func (sc *SolrCloud) ExternalCommonUrl(domainName string, withPort bool) (url string)

func (*SolrCloud) ExternalDnsDomain

func (sc *SolrCloud) ExternalDnsDomain(domainName string) string

func (*SolrCloud) ExternalNodeUrl

func (sc *SolrCloud) ExternalNodeUrl(nodeName string, domainName string, withPort bool) (url string)

func (*SolrCloud) GetAllSolrPodNames added in v0.5.0

func (sc *SolrCloud) GetAllSolrPodNames() []string

func (*SolrCloud) GetRandomSolrPodName added in v0.8.0

func (sc *SolrCloud) GetRandomSolrPodName() string

func (*SolrCloud) GetSolrPodName added in v0.8.0

func (sc *SolrCloud) GetSolrPodName(podNumber int) string

func (*SolrCloud) GetSolrPodNames added in v0.8.1

func (sc *SolrCloud) GetSolrPodNames(replicas int) []string

func (*SolrCloud) HeadlessServiceName

func (sc *SolrCloud) HeadlessServiceName() string

HeadlessServiceName returns the name of the headless service for the cloud

func (*SolrCloud) InternalCommonUrl

func (sc *SolrCloud) InternalCommonUrl(withPort bool) (url string)

func (*SolrCloud) InternalNodeUrl

func (sc *SolrCloud) InternalNodeUrl(nodeName string, withPort bool) string

func (*SolrCloud) NodeHeadlessUrl

func (sc *SolrCloud) NodeHeadlessUrl(nodeName string, withPort bool) (url string)

func (*SolrCloud) NodeIngressPrefix

func (sc *SolrCloud) NodeIngressPrefix(nodeName string) string

func (*SolrCloud) NodePort

func (sc *SolrCloud) NodePort() int

func (*SolrCloud) NodePortSuffix

func (sc *SolrCloud) NodePortSuffix(external bool) string

func (*SolrCloud) NodeServiceUrl

func (sc *SolrCloud) NodeServiceUrl(nodeName string, withPort bool) (url string)

func (*SolrCloud) PortToSuffix

func (sc *SolrCloud) PortToSuffix(port int, external bool) string

func (*SolrCloud) ProvidedZookeeperAddress

func (sc *SolrCloud) ProvidedZookeeperAddress() string

ProvidedZookeeperAddress returns the client address of the provided zk cluster

func (*SolrCloud) ProvidedZookeeperName

func (sc *SolrCloud) ProvidedZookeeperName() string

ProvidedZookeeperName returns the provided zk cluster

func (*SolrCloud) SecurityBootstrapSecretName

func (sc *SolrCloud) SecurityBootstrapSecretName() string

func (*SolrCloud) SharedLabels

func (sc *SolrCloud) SharedLabels() map[string]string

func (*SolrCloud) SharedLabelsWith

func (sc *SolrCloud) SharedLabelsWith(labels map[string]string) map[string]string

func (*SolrCloud) StatefulSetName

func (sc *SolrCloud) StatefulSetName() string

StatefulSetName returns the name of the statefulset for the cloud

func (*SolrCloud) UrlScheme

func (sc *SolrCloud) UrlScheme(external bool) string

func (*SolrCloud) UsesHeadlessService

func (sc *SolrCloud) UsesHeadlessService() bool

UsesHeadlessService returns whether the given solrCloud requires a headless service to be created for it. solrCloud: SolrCloud instance

func (*SolrCloud) UsesIndividualNodeServices

func (sc *SolrCloud) UsesIndividualNodeServices() bool

UsesIndividualNodeServices returns whether the given solrCloud requires a individual node services to be created for it. solrCloud: SolrCloud instance

func (*SolrCloud) UsesPersistentStorage

func (sc *SolrCloud) UsesPersistentStorage() bool

func (*SolrCloud) WithDefaults

func (sc *SolrCloud) WithDefaults(logger logr.Logger) bool

WithDefaults set default values when not defined in the spec.

func (*SolrCloud) ZkConnectionString

func (sc *SolrCloud) ZkConnectionString() string

ZkConnectionString returns the zkConnectionString for the cloud

type SolrCloudList

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

SolrCloudList contains a list of SolrCloud

func (*SolrCloudList) DeepCopy

func (in *SolrCloudList) DeepCopy() *SolrCloudList

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

func (*SolrCloudList) DeepCopyInto

func (in *SolrCloudList) DeepCopyInto(out *SolrCloudList)

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

func (*SolrCloudList) DeepCopyObject

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

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

type SolrCloudReference

type SolrCloudReference struct {
	// The name of a solr cloud running within the kubernetes cluster
	// +optional
	Name string `json:"name,omitempty"`

	// The namespace of a solr cloud running within the kubernetes cluster
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// The ZK Connection information for a cloud, could be used for solr's running outside of the kube cluster
	// +optional
	ZookeeperConnectionInfo *ZookeeperConnectionInfo `json:"zkConnectionInfo,omitempty"`
}

SolrCloudReference defines a reference to an internal or external solrCloud. Internal (to the kube cluster) clouds should be specified via the Name and Namespace options. External clouds should be specified by their Zookeeper connection information.

func (*SolrCloudReference) DeepCopy

func (in *SolrCloudReference) DeepCopy() *SolrCloudReference

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

func (*SolrCloudReference) DeepCopyInto

func (in *SolrCloudReference) DeepCopyInto(out *SolrCloudReference)

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

type SolrCloudSpec

type SolrCloudSpec struct {
	// The number of solr nodes to run
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`

	// The information for the Zookeeper this SolrCloud should connect to
	// Can be a zookeeper that is running, or one that is created by the solr operator
	// +optional
	ZookeeperRef *ZookeeperRef `json:"zookeeperRef,omitempty"`

	// +optional
	SolrImage *ContainerImage `json:"solrImage,omitempty"`

	// Customize how the cloud data is stored.
	// If neither "persistent" or "ephemeral" is provided, then ephemeral storage will be used by default.
	//
	// +optional
	StorageOptions SolrDataStorageOptions `json:"dataStorage,omitempty"`

	// Provide custom options for kubernetes objects created for the Solr Cloud.
	// +optional
	CustomSolrKubeOptions CustomSolrKubeOptions `json:"customSolrKubeOptions,omitempty"`

	// Customize how Solr is addressed both internally and externally in Kubernetes.
	// +optional
	SolrAddressability SolrAddressabilityOptions `json:"solrAddressability,omitempty"`

	// Define how Solr rolling updates are executed.
	// +optional
	UpdateStrategy SolrUpdateStrategy `json:"updateStrategy,omitempty"`

	// Define how Solr nodes should be available.
	// +optional
	Availability SolrAvailabilityOptions `json:"availability,omitempty"`

	// Configure how Solr nodes should be scaled.
	// +optional
	Scaling SolrScalingOptions `json:"scaling,omitempty"`

	// +optional
	BusyBoxImage *ContainerImage `json:"busyBoxImage,omitempty"`

	// +optional
	SolrJavaMem string `json:"solrJavaMem,omitempty"`

	// You can add common system properties to the SOLR_OPTS environment variable
	// SolrOpts is the string interface for these optional settings
	// +optional
	SolrOpts string `json:"solrOpts,omitempty"`

	// This will add java system properties for connecting to Zookeeper.
	// SolrZkOpts is the string interface for these optional settings
	// +optional
	SolrZkOpts string `json:"solrZkOpts,omitempty"`

	// Set the Solr Log level, defaults to INFO
	// +optional
	SolrLogLevel string `json:"solrLogLevel,omitempty"`

	// Set GC Tuning configuration through GC_TUNE environment variable
	// +optional
	SolrGCTune string `json:"solrGCTune,omitempty"`

	// Options to enable the server TLS certificate for Solr pods
	// +optional
	SolrTLS *SolrTLSOptions `json:"solrTLS,omitempty"`

	// Options to configure client TLS certificate for Solr pods
	// +optional
	SolrClientTLS *SolrTLSOptions `json:"solrClientTLS,omitempty"`

	// Options to enable Solr security
	// +optional
	SolrSecurity *SolrSecurityOptions `json:"solrSecurity,omitempty"`

	// Allows specification of multiple different "repositories" for Solr to use when backing up data.
	//+optional
	//+listType:=map
	//+listMapKey:=name
	BackupRepositories []SolrBackupRepository `json:"backupRepositories,omitempty"`

	// List of Solr Modules to be loaded when starting Solr
	// Note: You do not need to specify a module if it is required by another property (e.g. backupRepositories[].gcs)
	//
	//+optional
	SolrModules []string `json:"solrModules,omitempty"`

	// List of paths in the Solr Docker image to load in the classpath.
	// Note: Solr Modules will be auto-loaded if specified in the "solrModules" property. There is no need to specify them here as well.
	//
	//+optional
	AdditionalLibs []string `json:"additionalLibs,omitempty"`
}

SolrCloudSpec defines the desired state of SolrCloud

func (*SolrCloudSpec) DeepCopy

func (in *SolrCloudSpec) DeepCopy() *SolrCloudSpec

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

func (*SolrCloudSpec) DeepCopyInto

func (in *SolrCloudSpec) DeepCopyInto(out *SolrCloudSpec)

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

type SolrCloudStatus

type SolrCloudStatus struct {
	// SolrNodes contain the statuses of each solr node running in this solr cloud.
	//+listType:=map
	//+listMapKey:=name
	SolrNodes []SolrNodeStatus `json:"solrNodes"`

	// Replicas is the number of pods created by the StatefulSet
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=0
	Replicas int32 `json:"replicas"`

	// PodSelector for SolrCloud pods, required by the HPA
	PodSelector string `json:"podSelector"`

	// ReadyReplicas is the number of ready pods in the cluster
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=0
	ReadyReplicas int32 `json:"readyReplicas"`

	// UpToDateNodes is the number of Solr Node pods that are running the latest pod spec
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=0
	UpToDateNodes int32 `json:"upToDateNodes"`

	// The version of solr that the cloud is running
	Version string `json:"version"`

	// The version of solr that the cloud is meant to be running.
	// Will only be provided when the cloud is migrating between versions
	// +optional
	TargetVersion string `json:"targetVersion,omitempty"`

	// InternalCommonAddress is the internal common http address for all solr nodes
	InternalCommonAddress string `json:"internalCommonAddress"`

	// ExternalCommonAddress is the external common http address for all solr nodes.
	// Will only be provided when an ingressUrl is provided for the cloud
	// +optional
	ExternalCommonAddress *string `json:"externalCommonAddress,omitempty"`

	// ZookeeperConnectionInfo is the information on how to connect to the used Zookeeper
	ZookeeperConnectionInfo ZookeeperConnectionInfo `json:"zookeeperConnectionInfo"`

	// BackupRestoreReady announces whether the solrCloud has the backupRestorePVC mounted to all pods
	// and therefore is ready for backups and restores.
	// +optional
	BackupRestoreReady bool `json:"backupRestoreReady"`

	// BackupRepositoriesAvailable lists the backupRepositories specified in the SolrCloud and whether they are available across all Pods.
	// +optional
	BackupRepositoriesAvailable map[string]bool `json:"backupRepositoriesAvailable,omitempty"`
}

SolrCloudStatus defines the observed state of SolrCloud

func (*SolrCloudStatus) DeepCopy

func (in *SolrCloudStatus) DeepCopy() *SolrCloudStatus

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

func (*SolrCloudStatus) DeepCopyInto

func (in *SolrCloudStatus) DeepCopyInto(out *SolrCloudStatus)

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

func (SolrCloudStatus) DissectZkInfo

func (scs SolrCloudStatus) DissectZkInfo() (zkConnectionString string, zkServer string, zkChRoot string)

func (SolrCloudStatus) ZkConnectionString

func (scs SolrCloudStatus) ZkConnectionString() string

type SolrDataStorageOptions

type SolrDataStorageOptions struct {

	// PersistentStorage is the specification for how the persistent Solr data storage should be configured.
	//
	// This option cannot be used with the "ephemeral" option.
	//
	// +optional
	PersistentStorage *SolrPersistentDataStorageOptions `json:"persistent,omitempty"`

	// EphemeralStorage is the specification for how the ephemeral Solr data storage should be configured.
	//
	// This option cannot be used with the "persistent" option.
	// Ephemeral storage is used by default if neither "persistent" or "ephemeral" is provided.
	//
	// +optional
	EphemeralStorage *SolrEphemeralDataStorageOptions `json:"ephemeral,omitempty"`
}

func (*SolrDataStorageOptions) DeepCopy

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

func (*SolrDataStorageOptions) DeepCopyInto

func (in *SolrDataStorageOptions) DeepCopyInto(out *SolrDataStorageOptions)

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

type SolrEphemeralDataStorageOptions

type SolrEphemeralDataStorageOptions struct {
	// HostPathVolumeSource is an optional config to specify a path on the host machine to store Solr data.
	//
	// If hostPath is omitted, then the default EmptyDir is used, otherwise hostPath takes precedence over EmptyDir.
	// +optional
	HostPath *corev1.HostPathVolumeSource `json:"hostPath,omitempty"`
	//EmptyDirVolumeSource is an optional config for the emptydir volume that will store Solr data.
	// +optional
	EmptyDir *corev1.EmptyDirVolumeSource `json:"emptyDir,omitempty"`
}

func (*SolrEphemeralDataStorageOptions) DeepCopy

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

func (*SolrEphemeralDataStorageOptions) DeepCopyInto

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

type SolrIngressTLSTermination added in v0.6.0

type SolrIngressTLSTermination struct {

	// UseDefaultTLSSecret determines whether the ingress should use the default TLS secret provided by the Ingress implementation.
	//
	// For example, using nginx: https://kubernetes.github.io/ingress-nginx/user-guide/tls/#default-ssl-certificate
	//
	// +optional
	UseDefaultTLSSecret bool `json:"useDefaultTLSSecret,omitempty"`

	// TLSSecret defines a TLS Secret to use for TLS termination of all exposed addresses for this SolrCloud in the Ingress.
	//
	// +optional
	TLSSecret string `json:"tlsSecret,omitempty"`
}

SolrIngressTLSTermination defines how a SolrCloud should have TLS Termination enabled. Only one option can be provided.

+kubebuilder:validation:MaxProperties=1

func (*SolrIngressTLSTermination) DeepCopy added in v0.6.0

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

func (*SolrIngressTLSTermination) DeepCopyInto added in v0.6.0

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

type SolrNodeStatus

type SolrNodeStatus struct {
	// The name of the pod running the node
	Name string `json:"name"`

	// The name of the Kubernetes Node which the pod is running on
	NodeName string `json:"nodeName"`

	// An address the node can be connected to from within the Kube cluster
	InternalAddress string `json:"internalAddress"`

	// An address the node can be connected to from outside of the Kube cluster
	// Will only be provided when an ingressUrl is provided for the cloud
	// +optional
	ExternalAddress string `json:"externalAddress,omitempty"`

	// Is the node up and running
	Ready bool `json:"ready"`

	// The version of solr that the node is running
	Version string `json:"version"`

	// This Solr Node pod is using the latest version of solrcloud pod spec.
	SpecUpToDate bool `json:"specUpToDate"`

	// This Solr Node pod is scheduled for deletion
	// +optional
	ScheduledForDeletion bool `json:"scheduledForDeletion"`
}

SolrNodeStatus is the status of a solrNode in the cloud, with readiness status and internal and external addresses

func (*SolrNodeStatus) DeepCopy

func (in *SolrNodeStatus) DeepCopy() *SolrNodeStatus

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

func (*SolrNodeStatus) DeepCopyInto

func (in *SolrNodeStatus) DeepCopyInto(out *SolrNodeStatus)

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

type SolrPersistentDataStorageOptions

type SolrPersistentDataStorageOptions struct {

	// VolumeReclaimPolicy determines how the Solr Cloud's PVCs will be treated after the cloud is deleted.
	//   - Retain: This is the default Kubernetes policy, where PVCs created for StatefulSets are not deleted when the StatefulSet is deleted.
	//   - Delete: The PVCs will be deleted by the Solr Operator after the SolrCloud object is deleted.
	// The default value is Retain, so no data will be deleted unless explicitly configured.
	// +optional
	VolumeReclaimPolicy VolumeReclaimPolicy `json:"reclaimPolicy,omitempty"`

	// PersistentVolumeClaimTemplate is the PVC object for the solr node to store its data.
	// Within metadata, the Name, Labels and Annotations are able to be specified, but defaults will be provided if necessary.
	// The entire Spec is customizable, however there will be defaults provided if necessary.
	// This field is optional. If no PVC spec is provided, then a default will be provided.
	// +optional
	PersistentVolumeClaimTemplate PersistentVolumeClaimTemplate `json:"pvcTemplate,omitempty"`
}

func (*SolrPersistentDataStorageOptions) DeepCopy

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

func (*SolrPersistentDataStorageOptions) DeepCopyInto

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

type SolrPodDisruptionBudgetMethod added in v0.7.0

type SolrPodDisruptionBudgetMethod string

SolrPodDisruptionBudgetMethod is a string enumeration type that enumerates all possible ways that a SolrCloud can have PodDisruptionBudgets managed. +kubebuilder:validation:Enum=ClusterWide

const (
	// ClusterWidePDB will result in a single cluster-wide PDB being created to ensure availability of the SolrCloud.
	// This will not take replica/shard readiness into account.
	ClusterWidePDB SolrPodDisruptionBudgetMethod = "ClusterWide"
)

type SolrPodDisruptionBudgetOptions added in v0.7.0

type SolrPodDisruptionBudgetOptions struct {
	// What method should be used when creating PodDisruptionBudget(s)
	// +kubebuilder:default=true
	Enabled *bool `json:"enabled"`

	// What method should be used when creating PodDisruptionBudget(s)
	// +kubebuilder:default=ClusterWide
	Method SolrPodDisruptionBudgetMethod `json:"method,omitempty"`
}

func (*SolrPodDisruptionBudgetOptions) DeepCopy added in v0.7.0

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

func (*SolrPodDisruptionBudgetOptions) DeepCopyInto added in v0.7.0

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

type SolrPrometheusExporter

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

	Spec   SolrPrometheusExporterSpec   `json:"spec,omitempty"`
	Status SolrPrometheusExporterStatus `json:"status,omitempty"`
}

SolrPrometheusExporter is the Schema for the solrprometheusexporters API

func (*SolrPrometheusExporter) BusyBoxImage added in v0.4.0

func (sc *SolrPrometheusExporter) BusyBoxImage() *ContainerImage

func (*SolrPrometheusExporter) DeepCopy

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

func (*SolrPrometheusExporter) DeepCopyInto

func (in *SolrPrometheusExporter) DeepCopyInto(out *SolrPrometheusExporter)

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

func (*SolrPrometheusExporter) DeepCopyObject

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

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

func (*SolrPrometheusExporter) MetricsConfigMapName

func (sc *SolrPrometheusExporter) MetricsConfigMapName() string

MetricsConfigMapName returns the name of the metrics service for the cloud

func (*SolrPrometheusExporter) MetricsDeploymentName

func (sc *SolrPrometheusExporter) MetricsDeploymentName() string

MetricsDeploymentName returns the name of the metrics deployment for the cloud

func (*SolrPrometheusExporter) MetricsIngressPrefix

func (sc *SolrPrometheusExporter) MetricsIngressPrefix() string

func (*SolrPrometheusExporter) MetricsIngressUrl

func (sc *SolrPrometheusExporter) MetricsIngressUrl(ingressBaseUrl string) string

func (*SolrPrometheusExporter) MetricsServiceName

func (sc *SolrPrometheusExporter) MetricsServiceName() string

MetricsServiceName returns the name of the metrics service for the cloud

func (*SolrPrometheusExporter) SharedLabels

func (spe *SolrPrometheusExporter) SharedLabels() map[string]string

func (*SolrPrometheusExporter) SharedLabelsWith

func (spe *SolrPrometheusExporter) SharedLabelsWith(labels map[string]string) map[string]string

func (*SolrPrometheusExporter) WithDefaults

func (spe *SolrPrometheusExporter) WithDefaults() bool

WithDefaults set default values when not defined in the spec.

type SolrPrometheusExporterList

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

SolrPrometheusExporterList contains a list of SolrPrometheusExporter

func (*SolrPrometheusExporterList) DeepCopy

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

func (*SolrPrometheusExporterList) DeepCopyInto

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

func (*SolrPrometheusExporterList) DeepCopyObject

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

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

type SolrPrometheusExporterSpec

type SolrPrometheusExporterSpec struct {
	// Reference of the Solr instance to collect metrics for
	SolrReference SolrReference `json:"solrReference"`

	// Image of Solr Prometheus Exporter to run.
	// +optional
	Image *ContainerImage `json:"image,omitempty"`

	// Provide custom options for kubernetes objects created for the SolrPrometheusExporter.
	// +optional
	CustomKubeOptions CustomExporterKubeOptions `json:"customKubeOptions,omitempty"`

	// The entrypoint into the exporter. Defaults to the official docker-solr location.
	// +optional
	ExporterEntrypoint string `json:"exporterEntrypoint,omitempty"`

	// Number of threads to use for the prometheus exporter
	// Defaults to 1
	// +optional
	NumThreads int32 `json:"numThreads,omitempty"`

	// The interval to scrape Solr at (in seconds)
	// Defaults to 60 seconds
	// +optional
	ScrapeInterval int32 `json:"scrapeInterval,omitempty"`

	// The xml config for the metrics
	// +optional
	Config string `json:"metricsConfig,omitempty"`

	// An initContainer is needed to create a wrapper script around the exporter entrypoint when TLS is enabled
	// with the `spec.solrReference.solrTLS.mountedTLSDir` option
	// +optional
	BusyBoxImage *ContainerImage `json:"busyBoxImage,omitempty"`

	// Perform a scheduled restart on the given schedule, in CRON format.
	//
	// Multiple CRON syntaxes are supported
	//   - Standard CRON (e.g. "CRON_TZ=Asia/Seoul 0 6 * * ?")
	//   - Predefined Schedules (e.g. "@yearly", "@weekly", etc.)
	//   - Intervals (e.g. "@every 10h30m")
	//
	// For more information please check this reference:
	// https://pkg.go.dev/github.com/robfig/cron/v3?utm_source=godoc#hdr-CRON_Expression_Format
	//
	// +optional
	RestartSchedule string `json:"restartSchedule,omitempty"`
}

SolrPrometheusExporterSpec defines the desired state of SolrPrometheusExporter

func (*SolrPrometheusExporterSpec) DeepCopy

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

func (*SolrPrometheusExporterSpec) DeepCopyInto

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

type SolrPrometheusExporterStatus

type SolrPrometheusExporterStatus struct {

	// Is the prometheus exporter up and running
	Ready bool `json:"ready"`
}

SolrPrometheusExporterStatus defines the observed state of SolrPrometheusExporter

func (*SolrPrometheusExporterStatus) DeepCopy

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

func (*SolrPrometheusExporterStatus) DeepCopyInto

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

type SolrReference

type SolrReference struct {
	// Reference of a solrCloud instance
	// +optional
	Cloud *SolrCloudReference `json:"cloud,omitempty"`

	// Reference of a standalone solr instance
	// +optional
	Standalone *StandaloneSolrReference `json:"standalone,omitempty"`

	// Settings to configure the SolrJ client used to request metrics from TLS enabled Solr pods
	// +optional
	SolrTLS *SolrTLSOptions `json:"solrTLS,omitempty"`

	// If Solr is secured, you'll need to provide credentials for the Prometheus exporter to authenticate via a
	// kubernetes.io/basic-auth secret which must contain a username and password. If basic auth is enabled on the
	// SolrCloud instance, the default secret (unless you are supplying your own) is named using the pattern:
	// <SOLR_CLOUD_NAME>-solrcloud-basic-auth. If using the security.json bootstrapped by the Solr operator,
	// then the username is "k8s-oper".
	// +optional
	BasicAuthSecret string `json:"basicAuthSecret,omitempty"`
}

SolrReference defines a reference to an internal or external solrCloud or standalone solr One, and only one, of Cloud or Standalone must be provided.

func (*SolrReference) DeepCopy

func (in *SolrReference) DeepCopy() *SolrReference

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

func (*SolrReference) DeepCopyInto

func (in *SolrReference) DeepCopyInto(out *SolrReference)

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

type SolrScalingOptions added in v0.8.0

type SolrScalingOptions struct {
	// VacatePodsOnScaleDown determines whether Solr replicas are moved off of a Pod before the Pod is
	// deleted due to the SolrCloud scaling down.
	//
	// +kubebuilder:default=true
	// +optional
	VacatePodsOnScaleDown *bool `json:"vacatePodsOnScaleDown,omitempty"`

	// PopulatePodsOnScaleUp determines whether Solr replicas should be moved to newly-created Pods that have been
	// created due to the SolrCloud scaling up.
	//
	// This feature is only available to users using Solr 9.3 or newer.
	// If this is set to "true" for a cloud that is running an unsupported version of Solr, the replicas will not be moved.
	//
	// +kubebuilder:default=true
	// +optional
	PopulatePodsOnScaleUp *bool `json:"populatePodsOnScaleUp,omitempty"`
}

func (*SolrScalingOptions) DeepCopy added in v0.8.0

func (in *SolrScalingOptions) DeepCopy() *SolrScalingOptions

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

func (*SolrScalingOptions) DeepCopyInto added in v0.8.0

func (in *SolrScalingOptions) DeepCopyInto(out *SolrScalingOptions)

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

type SolrSecurityOptions

type SolrSecurityOptions struct {
	// Indicates the authentication plugin type that is being used by Solr; for now only "Basic" is supported by the
	// Solr operator but support for other authentication plugins may be added in the future.
	AuthenticationType AuthenticationType `json:"authenticationType,omitempty"`

	// Secret (kubernetes.io/basic-auth) containing credentials the operator should use for API requests to secure Solr pods.
	// If you provide this secret, then the operator assumes you've also configured your own security.json file and
	// uploaded it to Solr. If you change the password for this user using the Solr security API, then you *must* update
	// the secret with the new password or the operator will be  locked out of Solr and API requests will fail,
	// ultimately causing a CrashBackoffLoop for all pods if probe endpoints are secured (see 'probesRequireAuth' setting).
	//
	// If you don't supply this secret, then the operator creates a kubernetes.io/basic-auth secret containing the password
	// for the "k8s-oper" user. All API requests from the operator are made as the "k8s-oper" user, which is configured
	// with read-only access to a minimal set of endpoints. In addition, the operator bootstraps a default security.json
	// file and credentials for two additional users: admin and solr. The 'solr' user has basic read access to Solr
	// resources. Once the security.json is bootstrapped, the operator will not update it! You're expected to use the
	// 'admin' user to access the Security API to make further changes. It's strictly a bootstrapping operation.
	// +optional
	BasicAuthSecret string `json:"basicAuthSecret,omitempty"`

	// Flag to indicate if the configured HTTP endpoint(s) used for the probes require authentication; defaults
	// to false. If you set to true, then probes will use a local command on the main container to hit the secured
	// endpoints with credentials sourced from an env var instead of HTTP directly.
	// +optional
	ProbesRequireAuth bool `json:"probesRequireAuth,omitempty"`

	// Configure a user-provided security.json from a secret to allow for advanced security config.
	// If not specified, the operator bootstraps a security.json with basic auth enabled.
	// This is a bootstrapping config only; once Solr is initialized, the security config should be managed by the security API.
	// +optional
	BootstrapSecurityJson *corev1.SecretKeySelector `json:"bootstrapSecurityJson,omitempty"`
}

func (*SolrSecurityOptions) DeepCopy

func (in *SolrSecurityOptions) DeepCopy() *SolrSecurityOptions

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

func (*SolrSecurityOptions) DeepCopyInto

func (in *SolrSecurityOptions) DeepCopyInto(out *SolrSecurityOptions)

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

type SolrTLSOptions

type SolrTLSOptions struct {
	// TLS Secret containing a pkcs12 keystore; required for Solr pods unless mountedTLSDir is used
	// +optional
	PKCS12Secret *corev1.SecretKeySelector `json:"pkcs12Secret,omitempty"`

	// Secret containing the key store password; this field is required unless mountedTLSDir is used, as most JVMs do not support pkcs12 keystores without a password
	// +optional
	KeyStorePasswordSecret *corev1.SecretKeySelector `json:"keyStorePasswordSecret,omitempty"`

	// TLS Secret containing a pkcs12 truststore; if not provided, then the keystore and password are used for the truststore
	// The specified key is used as the truststore file name when mounted into Solr pods
	// +optional
	TrustStoreSecret *corev1.SecretKeySelector `json:"trustStoreSecret,omitempty"`

	// Secret containing the trust store password; if not provided the keyStorePassword will be used
	// +optional
	TrustStorePasswordSecret *corev1.SecretKeySelector `json:"trustStorePasswordSecret,omitempty"`

	// Determines the client authentication method, either None, Want, or Need;
	// this affects K8s ability to call liveness / readiness probes so use cautiously.
	// Only applies for server certificates, has no effect on client certificates
	// +kubebuilder:default=None
	ClientAuth ClientAuthType `json:"clientAuth,omitempty"`

	// Verify client's hostname during SSL handshake
	// Only applies for server configuration
	// +optional
	VerifyClientHostname bool `json:"verifyClientHostname,omitempty"`

	// TLS certificates contain host/ip "peer name" information that is validated by default.
	// +optional
	CheckPeerName bool `json:"checkPeerName,omitempty"`

	// Opt-in flag to restart Solr pods after TLS secret updates, such as if the cert is renewed; default is false.
	// This option only applies when using the `spec.solrTLS.pkcs12Secret` option; when using the `spec.solrTLS.mountedTLSDir` option,
	// you need to ensure pods get restarted before the certs expire, see `spec.updateStrategy.restartSchedule` for scheduling restarts.
	// +optional
	RestartOnTLSSecretUpdate bool `json:"restartOnTLSSecretUpdate,omitempty"`

	// Used to specify a path where the keystore, truststore, and password files for the TLS certificate are mounted by an external agent or CSI driver.
	// This option is typically used with `spec.updateStrategy.restartSchedule` to restart Solr pods before the mounted TLS cert expires.
	// +optional
	MountedTLSDir *MountedTLSDirectory `json:"mountedTLSDir,omitempty"`
}

func (*SolrTLSOptions) DeepCopy

func (in *SolrTLSOptions) DeepCopy() *SolrTLSOptions

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

func (*SolrTLSOptions) DeepCopyInto

func (in *SolrTLSOptions) DeepCopyInto(out *SolrTLSOptions)

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

type SolrUpdateMethod

type SolrUpdateMethod string

SolrUpdateMethod is a string enumeration type that enumerates all possible ways that a SolrCloud can have rolling updates managed. +kubebuilder:validation:Enum=Managed;StatefulSet;Manual

const (
	// Let the Solr Operator manage rolling updates to keep collections/shards available while updating pods in parallel.
	// This is the default option.
	ManagedUpdate SolrUpdateMethod = "Managed"

	// Use the default StatefulSet rolling updates logic. One pod at a time, starting with the highest ordinal.
	StatefulSetUpdate SolrUpdateMethod = "StatefulSet"

	// The Solr Operator and Kubernetes will not delete pods for updates. The user will be responsible for this.
	ManualUpdate SolrUpdateMethod = "Manual"
)

type SolrUpdateStrategy

type SolrUpdateStrategy struct {
	// Method defines the way in which SolrClouds should be updated when the podSpec changes.
	// +optional
	Method SolrUpdateMethod `json:"method,omitempty"`

	// Options for Solr Operator Managed rolling updates.
	// +optional
	ManagedUpdateOptions ManagedUpdateOptions `json:"managed,omitempty"`

	// Perform a scheduled restart on the given schedule, in CRON format.
	//
	// Multiple CRON syntaxes are supported
	//   - Standard CRON (e.g. "CRON_TZ=Asia/Seoul 0 6 * * ?")
	//   - Predefined Schedules (e.g. "@yearly", "@weekly", etc.)
	//   - Intervals (e.g. "@every 10h30m")
	//
	// For more information please check this reference:
	// https://pkg.go.dev/github.com/robfig/cron/v3?utm_source=godoc#hdr-CRON_Expression_Format
	//
	// +optional
	RestartSchedule string `json:"restartSchedule,omitempty"`
}

func (*SolrUpdateStrategy) DeepCopy

func (in *SolrUpdateStrategy) DeepCopy() *SolrUpdateStrategy

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

func (*SolrUpdateStrategy) DeepCopyInto

func (in *SolrUpdateStrategy) DeepCopyInto(out *SolrUpdateStrategy)

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

type StandaloneSolrReference

type StandaloneSolrReference struct {
	// The address of the standalone solr
	Address string `json:"address"`
}

SolrPrometheusExporterStatus defines the observed state of SolrPrometheusExporter

func (*StandaloneSolrReference) DeepCopy

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

func (*StandaloneSolrReference) DeepCopyInto

func (in *StandaloneSolrReference) DeepCopyInto(out *StandaloneSolrReference)

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

type StatefulSetOptions

type StatefulSetOptions struct {
	// Annotations to be added for the StatefulSet.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Labels to be added for the StatefulSet.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// PodManagementPolicy defines the policy for creating pods under a stateful set.
	// Override the default value of Parallel.
	// This cannot be updated on an existing StatefulSet, the StatefulSet must be deleted and recreated for a change in this field to take effect.
	//
	// +optional
	// +kubebuilder:validation:Enum=OrderedReady;Parallel
	PodManagementPolicy appsv1.PodManagementPolicyType `json:"podManagementPolicy,omitempty"`
}

StatefulSetOptions defines custom options for StatefulSets

func (*StatefulSetOptions) DeepCopy

func (in *StatefulSetOptions) DeepCopy() *StatefulSetOptions

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

func (*StatefulSetOptions) DeepCopyInto

func (in *StatefulSetOptions) DeepCopyInto(out *StatefulSetOptions)

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

type TemplateMeta

type TemplateMeta 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: http://kubernetes.io/docs/user-guide/identifiers#names
	// +optional
	Name string `json:"name,omitempty"`

	// 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: http://kubernetes.io/docs/user-guide/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: http://kubernetes.io/docs/user-guide/annotations
	// +optional
	Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"`
}

TemplateMeta is metadata for templated resources.

func (*TemplateMeta) DeepCopy

func (in *TemplateMeta) DeepCopy() *TemplateMeta

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

func (*TemplateMeta) DeepCopyInto

func (in *TemplateMeta) DeepCopyInto(out *TemplateMeta)

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

type VolumeReclaimPolicy

type VolumeReclaimPolicy string

VolumeReclaimPolicy is a string enumeration type that enumerates all possible ways that a SolrCloud can treat it's PVCs after its death +kubebuilder:validation:Enum=Retain;Delete

const (
	// All pod PVCs are retained after the SolrCloud is deleted.
	VolumeReclaimPolicyRetain VolumeReclaimPolicy = "Retain"

	// All pod PVCs are deleted after the SolrCloud is deleted.
	VolumeReclaimPolicyDelete VolumeReclaimPolicy = "Delete"
)

type VolumeRepository added in v0.5.0

type VolumeRepository struct {
	// This is a volumeSource for a volume that will be mounted to all solrNodes to store backups and load restores.
	// The data within the volume will be namespaced for this instance, so feel free to use the same volume for multiple clouds.
	// Since the volume will be mounted to all solrNodes, it must be able to be written from multiple pods.
	// If a PVC reference is given, the PVC must have `accessModes: - ReadWriteMany`.
	// Other options are to use a NFS volume.
	Source corev1.VolumeSource `json:"source"`

	// Select a custom directory name to mount the backup/restore data in the given volume.
	// If not specified, then the name of the solrcloud will be used by default.
	// +optional
	Directory string `json:"directory,omitempty"`
}

func (*VolumeRepository) DeepCopy added in v0.5.0

func (in *VolumeRepository) DeepCopy() *VolumeRepository

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

func (*VolumeRepository) DeepCopyInto added in v0.5.0

func (in *VolumeRepository) DeepCopyInto(out *VolumeRepository)

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

type ZKEphemeral added in v0.5.0

type ZKEphemeral struct {
	//EmptyDirVolumeSource is optional and this will create the emptydir volume
	//It has two parameters Medium and SizeLimit which are optional as well
	//Medium specifies What type of storage medium should back this directory.
	//SizeLimit specifies Total amount of local storage required for this EmptyDir volume.
	EmptyDirVolumeSource corev1.EmptyDirVolumeSource `json:"emptydirvolumesource,omitempty"`
}

func (*ZKEphemeral) DeepCopy added in v0.5.0

func (in *ZKEphemeral) DeepCopy() *ZKEphemeral

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

func (*ZKEphemeral) DeepCopyInto added in v0.5.0

func (in *ZKEphemeral) DeepCopyInto(out *ZKEphemeral)

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

type ZKPersistence added in v0.5.0

type ZKPersistence struct {
	// VolumeReclaimPolicy is a zookeeper operator configuration. If it's set to Delete,
	// the corresponding PVCs will be deleted by the operator when zookeeper cluster is deleted.
	// The default value is Retain.
	VolumeReclaimPolicy VolumeReclaimPolicy `json:"reclaimPolicy,omitempty"`
	// PersistentVolumeClaimSpec is the spec to describe PVC for the container
	// This field is optional. If no PVC is specified default persistentvolume
	// will get created.
	PersistentVolumeClaimSpec corev1.PersistentVolumeClaimSpec `json:"spec,omitempty"`
	// Annotations specifies the annotations to attach to pvc the operator
	// creates.
	Annotations map[string]string `json:"annotations,omitempty"`
}

func (*ZKPersistence) DeepCopy added in v0.5.0

func (in *ZKPersistence) DeepCopy() *ZKPersistence

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

func (*ZKPersistence) DeepCopyInto added in v0.5.0

func (in *ZKPersistence) DeepCopyInto(out *ZKPersistence)

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

type ZookeeperACL

type ZookeeperACL struct {
	// The name of the Kubernetes Secret that stores the username and password for the ACL.
	// This secret must be in the same namespace as the solrCloud or prometheusExporter is running in.
	SecretRef string `json:"secret"`

	// The name of the key in the given secret that contains the ACL username
	UsernameKey string `json:"usernameKey"`

	// The name of the key in the given secret that contains the ACL password
	PasswordKey string `json:"passwordKey"`
}

ZookeeperACL defines acls to connect to a protected Zookeeper

func (*ZookeeperACL) DeepCopy

func (in *ZookeeperACL) DeepCopy() *ZookeeperACL

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

func (*ZookeeperACL) DeepCopyInto

func (in *ZookeeperACL) DeepCopyInto(out *ZookeeperACL)

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

type ZookeeperConfig added in v0.5.0

type ZookeeperConfig struct {
	// InitLimit is the amount of time, in ticks, to allow followers to connect
	// and sync to a leader.
	//
	// Default value is 10.
	InitLimit int `json:"initLimit,omitempty"`

	// TickTime is the length of a single tick, which is the basic time unit used
	// by Zookeeper, as measured in milliseconds
	//
	// The default value is 2000.
	TickTime int `json:"tickTime,omitempty"`

	// SyncLimit is the amount of time, in ticks, to allow followers to sync with
	// Zookeeper.
	//
	// The default value is 2.
	SyncLimit int `json:"syncLimit,omitempty"`

	// Clients can submit requests faster than ZooKeeper can process them, especially
	// if there are a lot of clients. Zookeeper will throttle Clients so that requests
	// won't exceed global outstanding limit.
	//
	// The default value is 1000
	GlobalOutstandingLimit int `json:"globalOutstandingLimit,omitempty"`

	// To avoid seeks ZooKeeper allocates space in the transaction log file in
	// blocks of preAllocSize kilobytes
	//
	// The default value is 64M
	PreAllocSize int `json:"preAllocSize,omitempty"`

	// ZooKeeper records its transactions using snapshots and a transaction log
	// The number of transactions recorded in the transaction log before a snapshot
	// can be taken is determined by snapCount
	//
	// The default value is 100,000
	SnapCount int `json:"snapCount,omitempty"`

	// Zookeeper maintains an in-memory list of last committed requests for fast
	// synchronization with followers
	//
	// The default value is 500
	CommitLogCount int `json:"commitLogCount,omitempty"`

	// Snapshot size limit in Kb
	//
	// The defult value is 4GB
	SnapSizeLimitInKb int `json:"snapSizeLimitInKb,omitempty"`

	// Limits the total number of concurrent connections that can be made to a
	//zookeeper server
	//
	// The defult value is 0, indicating no limit
	MaxCnxns int `json:"maxCnxns,omitempty"`

	// Limits the number of concurrent connections that a single client, identified
	// by IP address, may make to a single member of the ZooKeeper ensemble.
	//
	// The default value is 60
	MaxClientCnxns int `json:"maxClientCnxns,omitempty"`

	// The minimum session timeout in milliseconds that the server will allow the
	// client to negotiate
	//
	// The default value is 4000
	MinSessionTimeout int `json:"minSessionTimeout,omitempty"`

	// The maximum session timeout in milliseconds that the server will allow the
	// client to negotiate.
	//
	// The default value is 40000
	MaxSessionTimeout int `json:"maxSessionTimeout,omitempty"`

	// Retain the snapshots according to retain count
	//
	// The default value is 3
	AutoPurgeSnapRetainCount int `json:"autoPurgeSnapRetainCount,omitempty"`

	// The time interval in hours for which the purge task has to be triggered
	//
	// Disabled by default
	AutoPurgePurgeInterval int `json:"autoPurgePurgeInterval,omitempty"`

	// QuorumListenOnAllIPs when set to true the ZooKeeper server will listen for
	// connections from its peers on all available IP addresses, and not only the
	// address configured in the server list of the configuration file. It affects
	// the connections handling the ZAB protocol and the Fast Leader Election protocol.
	//
	// The default value is false.
	QuorumListenOnAllIPs bool `json:"quorumListenOnAllIPs,omitempty"`

	// key-value map of additional zookeeper configuration parameters
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	AdditionalConfig map[string]string `json:"additionalConfig,omitempty"`
}

ZookeeperConfig is the current configuration of each Zookeeper node, which sets these values in the config-map

func (*ZookeeperConfig) DeepCopy added in v0.5.0

func (in *ZookeeperConfig) DeepCopy() *ZookeeperConfig

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

func (*ZookeeperConfig) DeepCopyInto added in v0.5.0

func (in *ZookeeperConfig) DeepCopyInto(out *ZookeeperConfig)

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

type ZookeeperConnectionInfo

type ZookeeperConnectionInfo struct {
	// The connection string to connect to the ensemble from within the Kubernetes cluster
	// +optional
	InternalConnectionString string `json:"internalConnectionString,omitempty"`

	// The connection string to connect to the ensemble from outside of the Kubernetes cluster
	// If external and no internal connection string is provided, the external cnx string will be used as the internal cnx string
	// +optional
	ExternalConnectionString *string `json:"externalConnectionString,omitempty"`

	// The ChRoot to connect solr at
	// +optional
	ChRoot string `json:"chroot,omitempty"`

	// ZooKeeper ACL to use when connecting with ZK.
	// This ACL should have ALL permission in the given chRoot.
	// +optional
	AllACL *ZookeeperACL `json:"acl,omitempty"`

	// ZooKeeper ACL to use when connecting with ZK for reading operations.
	// This ACL should have READ permission in the given chRoot.
	// +optional
	ReadOnlyACL *ZookeeperACL `json:"readOnlyAcl,omitempty"`
}

ZookeeperConnectionInfo is the information on how to connect to the Solr Zookeeper Cluster

func (*ZookeeperConnectionInfo) DeepCopy

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

func (*ZookeeperConnectionInfo) DeepCopyInto

func (in *ZookeeperConnectionInfo) DeepCopyInto(out *ZookeeperConnectionInfo)

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

func (ZookeeperConnectionInfo) ZkConnectionString

func (zkInfo ZookeeperConnectionInfo) ZkConnectionString() string

type ZookeeperPodPolicy

type ZookeeperPodPolicy struct {
	// The scheduling constraints on pods.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// Node Selector to be added on pods.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Tolerations to be added on pods.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// List of environment variables to set in the main ZK container.
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`

	// Resources is the resource requirements for the Zookeeper container.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Optional Service Account to run the zookeeper pods under.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// Labels specifies the labels to attach to pods the operator creates for
	// the zookeeper cluster.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Annotations specifies the annotations to attach to zookeeper pods
	// creates.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// SecurityContext specifies the security context for the entire zookeeper pod
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context
	// +optional
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`

	// TerminationGracePeriodSeconds is the amount of time that kubernetes will
	// give for a zookeeper pod instance to shutdown normally.
	// The default value is 30.
	// +optional
	// +kubebuilder:validation:Minimum=0
	TerminationGracePeriodSeconds int64 `json:"terminationGracePeriodSeconds,omitempty"`

	// ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	// TopologySpreadConstraints to apply to the pods
	// +optional
	TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
}

ZookeeperPodPolicy defines the common pod configuration for Pods, including when used in deployments, stateful-sets, etc.

func (*ZookeeperPodPolicy) DeepCopy

func (in *ZookeeperPodPolicy) DeepCopy() *ZookeeperPodPolicy

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

func (*ZookeeperPodPolicy) DeepCopyInto

func (in *ZookeeperPodPolicy) DeepCopyInto(out *ZookeeperPodPolicy)

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

type ZookeeperRef

type ZookeeperRef struct {
	// A zookeeper ensemble that is run independently of the solr operator
	// If an externalConnectionString is provided, but no internalConnectionString is, the external will be used as the internal
	// +optional
	ConnectionInfo *ZookeeperConnectionInfo `json:"connectionInfo,omitempty"`

	// Create a new Zookeeper Ensemble with the following spec
	// Note: This option will not allow the SolrCloud to run across kube-clusters.
	// Note: Requires
	//   - The zookeeperOperator flag to be provided to the Solr Operator
	//   - A zookeeper operator to be running
	// +optional
	ProvidedZookeeper *ZookeeperSpec `json:"provided,omitempty"`
}

ZookeeperRef defines the zookeeper ensemble for solr to connect to If no ConnectionString is provided, the solr-cloud controller will create and manage an internal ensemble

func (*ZookeeperRef) DeepCopy

func (in *ZookeeperRef) DeepCopy() *ZookeeperRef

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

func (*ZookeeperRef) DeepCopyInto

func (in *ZookeeperRef) DeepCopyInto(out *ZookeeperRef)

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

func (*ZookeeperRef) GetACLs

func (ref *ZookeeperRef) GetACLs() (allACL *ZookeeperACL, readOnlyACL *ZookeeperACL)

type ZookeeperSpec

type ZookeeperSpec struct {

	// Number of members to create up for the ZK ensemble
	// Defaults to 3
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default=3
	Replicas *int32 `json:"replicas,omitempty"`

	// Image of Zookeeper to run
	// +optional
	Image *ContainerImage `json:"image,omitempty"`

	// Labels specifies the labels to attach to all resources the operator
	// creates for the zookeeper cluster, including StatefulSet, Pod,
	// PersistentVolumeClaim, Service, ConfigMap, et al.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// Persistence is the configuration for zookeeper persistent layer.
	// PersistentVolumeClaimSpec and VolumeReclaimPolicy can be specified in here.
	// At anypoint only one of Persistence or Ephemeral should be present in the manifest
	// +optional
	Persistence *ZKPersistence `json:"persistence,omitempty"`

	// Ephemeral is the configuration which helps create ephemeral storage
	// At anypoint only one of Persistence or Ephemeral should be present in the manifest
	// +optional
	Ephemeral *ZKEphemeral `json:"ephemeral,omitempty"`

	// Customization options for the Zookeeper Pod
	// +optional
	ZookeeperPod ZookeeperPodPolicy `json:"zookeeperPodPolicy,omitempty"`

	// The ChRoot to connect solr at
	// +optional
	ChRoot string `json:"chroot,omitempty"`

	// ZooKeeper ACL to use when connecting with ZK.
	// This ACL should have ALL permission in the given chRoot.
	// +optional
	AllACL *ZookeeperACL `json:"acl,omitempty"`

	// ZooKeeper ACL to use when connecting with ZK for reading operations.
	// This ACL should have READ permission in the given chRoot.
	// +optional
	ReadOnlyACL *ZookeeperACL `json:"readOnlyAcl,omitempty"`

	// Additional Zookeeper Configuration settings
	// +optional
	Config ZookeeperConfig `json:"config,omitempty"`

	// Probes specifies the timeout values for the Readiness and Liveness Probes
	// for the zookeeper pods.
	// +optional
	Probes *zkApi.Probes `json:"probes,omitempty"`

	// Volumes defines to support customized volumes
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// VolumeMounts defines to support customized volumeMounts
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`

	// MaxUnavailableReplicas defines the
	// MaxUnavailable Replicas in pdb.
	// Default is 1.
	// +optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default=1
	MaxUnavailableReplicas int32 `json:"maxUnavailableReplicas,omitempty"`

	// Containers defines to support multi containers
	// +optional
	Containers []corev1.Container `json:"containers,omitempty"`

	// Init containers to support initialization
	// +optional
	InitContainers []corev1.Container `json:"initContainers,omitempty"`

	// AdminServerService defines the policy to create AdminServer Service
	// for the zookeeper cluster.
	AdminServerService zkApi.AdminServerServicePolicy `json:"adminServerService,omitempty"`

	// ClientService defines the policy to create client Service
	// for the zookeeper cluster.
	ClientService zkApi.ClientServicePolicy `json:"clientService,omitempty"`

	// HeadlessService defines the policy to create headless Service
	// for the zookeeper cluster.
	HeadlessService zkApi.HeadlessServicePolicy `json:"headlessService,omitempty"`
}

ZookeeperSpec defines the internal zookeeper ensemble to run with the given spec

func (*ZookeeperSpec) DeepCopy

func (in *ZookeeperSpec) DeepCopy() *ZookeeperSpec

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

func (*ZookeeperSpec) DeepCopyInto

func (in *ZookeeperSpec) DeepCopyInto(out *ZookeeperSpec)

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

func (*ZookeeperSpec) WithDefaults added in v0.4.0

func (z *ZookeeperSpec) WithDefaults() (changed bool)

Jump to

Keyboard shortcuts

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