v1beta1

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2021 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	DefaultAWSCliImageRepo    = "infrastructureascode/aws-cli"
	DefaultAWSCliImageVersion = "1.16.204"
	DefaultS3Retries          = 5
)
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  = "7.7.0"
	DefaultSolrStorage  = "5Gi"
	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 = zk.VolumeReclaimPolicyRetain

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

	DefaultBasicAuthUsername = "k8s-oper"
)
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 BackupPersistenceStatus

type BackupPersistenceStatus struct {
	// 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"`

	// Whether the persistence 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"`
}

BackupPersistenceStatus defines the status of persisting Solr backup data

func (*BackupPersistenceStatus) DeepCopy

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

func (*BackupPersistenceStatus) DeepCopyInto

func (in *BackupPersistenceStatus) DeepCopyInto(out *BackupPersistenceStatus)

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

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"`

	// 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:"additionalDomains,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 if HideNodes=false and method=Ingress, otherwise this is optional.
	// +optional
	NodePortOverride int `json:"nodePortOverride,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) UsesIndividualNodeServices

func (extOpts *ExternalAddressability) UsesIndividualNodeServices() bool

type ExternalAddressabilityMethod

type ExternalAddressabilityMethod string

ExternalAddressability 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 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"`
}

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"`
}

Spec to 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 PersistenceSource

type PersistenceSource struct {
	// Persist to an s3 compatible endpoint
	// +optional
	S3 *S3PersistenceSource `json:"S3,omitempty"`

	// Persist to a volume
	// +optional
	Volume *VolumePersistenceSource `json:"volume,omitempty"`
}

PersistenceSource defines the location and method of persisting the backup data. Exactly one member must be specified.

func (*PersistenceSource) DeepCopy

func (in *PersistenceSource) DeepCopy() *PersistenceSource

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

func (*PersistenceSource) DeepCopyInto

func (in *PersistenceSource) DeepCopyInto(out *PersistenceSource)

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 container.
	// This field cannot be updated once the cluster is created.
	// +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"`

	// 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"`
}

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 S3PersistenceSource

type S3PersistenceSource struct {
	// The S3 compatible endpoint URL
	// +optional
	EndpointUrl string `json:"endpointUrl,omitempty"`

	// The Default region to use with AWS.
	// Can also be provided through a configFile in the secrets.
	// Overridden by any endpointUrl value provided.
	// +optional
	Region string `json:"region,omitempty"`

	// The S3 bucket to store/find the backup data
	Bucket string `json:"bucket"`

	// The key for the referenced tarred & zipped backup file
	// Defaults to the name of the backup/restore + '.tgz'
	// +optional
	Key string `json:"key"`

	// The number of retries to communicate with S3
	// +optional
	Retries *int32 `json:"retries,omitempty"`

	// The secrets to use when configuring and authenticating s3 calls
	Secrets S3Secrets `json:"secrets"`

	// Image containing the AWS Cli
	// +optional
	AWSCliImage ContainerImage `json:"AWSCliImage,omitempty"`
}

S3PersistenceSource defines the specs for connecting to s3 for persistence

func (*S3PersistenceSource) DeepCopy

func (in *S3PersistenceSource) DeepCopy() *S3PersistenceSource

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

func (*S3PersistenceSource) DeepCopyInto

func (in *S3PersistenceSource) DeepCopyInto(out *S3PersistenceSource)

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

type S3Secrets

type S3Secrets struct {
	// The name of the secrets object to use
	Name string `json:"fromSecret"`

	// The key (within the provided secret) of an AWS Config file to use
	// +optional
	ConfigFile string `json:"configFile,omitempty"`

	// The key (within the provided secret) of an AWS Credentials file to use
	// +optional
	CredentialsFile string `json:"credentialsFile,omitempty"`

	// The key (within the provided secret) of the Access Key ID to use
	// +optional
	AccessKeyId string `json:"accessKeyId,omitempty"`

	// The key (within the provided secret) of the Secret Access Key to use
	// +optional
	SecretAccessKey string `json:"secretAccessKey,omitempty"`
}

S3Secrets describes the secrets provided for accessing s3.

func (*S3Secrets) DeepCopy

func (in *S3Secrets) DeepCopy() *S3Secrets

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

func (*S3Secrets) DeepCopyInto

func (in *S3Secrets) DeepCopyInto(out *S3Secrets)

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
	// +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 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 +kubebuilder:categories=all +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="Cloud",type="string",JSONPath=".spec.solrCloud",description="Solr Cloud" +kubebuilder:printcolumn:name="Finished",type="boolean",JSONPath=".status.finished",description="Whether the backup has finished" +kubebuilder:printcolumn:name="Successful",type="boolean",JSONPath=".status.successful",description="Whether the backup was successful" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

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

HeadlessServiceName returns the name of the headless service for the cloud

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 SolrBackupRestoreOptions

type SolrBackupRestoreOptions 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 namespaces 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.
	Volume corev1.VolumeSource `json:"volume"`

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

func (*SolrBackupRestoreOptions) DeepCopy

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

func (*SolrBackupRestoreOptions) DeepCopyInto

func (in *SolrBackupRestoreOptions) DeepCopyInto(out *SolrBackupRestoreOptions)

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
	SolrCloud string `json:"solrCloud"`

	// The list of collections to backup. If empty, all collections in the cloud will be backed up.
	// +optional
	Collections []string `json:"collections,omitempty"`

	// Persistence is the specification on how to persist the backup data.
	Persistence PersistenceSource `json:"persistence"`
}

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 {
	// Version of the Solr being backed up
	SolrVersion string `json:"solrVersion"`

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

	// Whether the backups are in progress of being persisted
	PersistenceStatus BackupPersistenceStatus `json:"persistenceStatus"`

	// Version of the Solr being backed up
	// +optional
	FinishTime *metav1.Time `json:"finishTimestamp,omitempty"`

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

	// Whether the backup has finished
	Finished bool `json:"finished,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 +kubebuilder:resource:shortName=solr +kubebuilder:categories=all +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.readyReplicas,selectorpath=.status.podSelector +kubebuilder:storageversion +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".status.version",description="Solr Version of the cloud" +kubebuilder:printcolumn:name="TargetVersion",type="string",JSONPath=".status.targetVersion",description="Target Solr Version of the cloud" +kubebuilder:printcolumn:name="DesiredNodes",type="integer",JSONPath=".spec.replicas",description="Number of solr nodes configured to run in the cloud" +kubebuilder:printcolumn:name="Nodes",type="integer",JSONPath=".status.replicas",description="Number of solr nodes running" +kubebuilder:printcolumn:name="ReadyNodes",type="integer",JSONPath=".status.readyReplicas",description="Number of solr nodes connected to the cloud" +kubebuilder:printcolumn:name="UpToDateNodes",type="integer",JSONPath=".status.upToDateNodes",description="Number of solr nodes running the latest SolrCloud pod spec" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

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

func (sc *SolrCloud) CommonExternalUrl(domainName string) 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() 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) 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) GetAllSolrNodeNames

func (sc *SolrCloud) GetAllSolrNodeNames() []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() string

func (*SolrCloud) NodeServiceUrl

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

func (*SolrCloud) PortToSuffix

func (sc *SolrCloud) PortToSuffix(port int) 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() 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() 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"`

	// +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"`

	// 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 TLS between Solr pods
	// +optional
	SolrTLS *SolrTLSOptions `json:"solrTLS,omitempty"`

	// Options to enable Solr security
	// +optional
	SolrSecurity *SolrSecurityOptions `json:"solrSecurity,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.
	SolrNodes []SolrNodeStatus `json:"solrNodes"`

	// Replicas is the number of number of desired replicas in the cluster
	Replicas int32 `json:"replicas"`

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

	// ReadyReplicas is the number of number of ready replicas in the cluster
	ReadyReplicas int32 `json:"readyReplicas"`

	// UpToDateNodes is the number of number of Solr Node pods that are running the latest pod spec
	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.
	BackupRestoreReady bool `json:"backupRestoreReady"`
}

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"`

	// Options required for backups & restores to be enabled for this solrCloud.
	// +optional
	BackupRestoreOptions *SolrBackupRestoreOptions `json:"backupRestoreOptions,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 {
	//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 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"`
}

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 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 +kubebuilder:resource:shortName=solrmetrics +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="Ready",type="boolean",JSONPath=".status.ready",description="Whether the prometheus exporter is ready" +kubebuilder:printcolumn:name="Scrape Interval",type="integer",JSONPath=".spec.scrapeInterval",description="Scrape interval for metrics (in ms)" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

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"`
}

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 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"`
}

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
	PKCS12Secret *corev1.SecretKeySelector `json:"pkcs12Secret"`

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

	// 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.
	// +kubebuilder:default=None
	ClientAuth ClientAuthType `json:"clientAuth,omitempty"`

	// Verify client's hostname during SSL handshake
	// +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.
	// +optional
	RestartOnTLSSecretUpdate bool `json:"restartOnTLSSecretUpdate,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 having 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"`
}

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 VolumePersistenceSource

type VolumePersistenceSource struct {
	// The volume for persistence
	VolumeSource corev1.VolumeSource `json:"source"`

	// The location of the persistence directory within the volume
	// +optional
	Path string `json:"path,omitempty"`

	// The filename of the tarred & zipped backup file
	// Defaults to the name of the backup/restore + '.tgz'
	// +optional
	Filename string `json:"filename"`

	// BusyBox image for manipulating and moving data
	// +optional
	BusyBoxImage ContainerImage `json:"busyBoxImage,omitempty"`
}

UploadSpec defines the location and method of uploading the backup data

func (*VolumePersistenceSource) DeepCopy

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

func (*VolumePersistenceSource) DeepCopyInto

func (in *VolumePersistenceSource) DeepCopyInto(out *VolumePersistenceSource)

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 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"`
}

ZookeeperSpec defines the internal zookeeper ensemble to run for solr

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 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"`
}

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

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 container.
	// This field cannot be updated once the cluster is created.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,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
	Replicas *int32 `json:"replicas,omitempty"`

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

	// Persistence is the configuration for zookeeper persistent layer.
	// PersistentVolumeClaimSpec and VolumeReclaimPolicy can be specified in here.
	// +optional
	Persistence *zk.Persistence `json:"persistence,omitempty"`

	// Pod resources for 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"`
}

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.

Jump to

Keyboard shortcuts

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