v1alpha1

package
v1.16.0-alpha.0 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

+kubebuilder:validation:Optional +groupName=scylla.scylladb.com

Index

Constants

View Source
const (
	AvailableCondition   = "Available"
	ProgressingCondition = "Progressing"
	DegradedCondition    = "Degraded"
)

Variables

View Source
var (
	GroupName    = "scylla.scylladb.com"
	GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}

	// Install is a function which adds this version to a scheme
	Install = schemeBuilder.AddToScheme

	// SchemeGroupVersion generated code relies on this name
	// Deprecated
	SchemeGroupVersion = GroupVersion
	// AddToScheme exists solely to keep the old generators creating valid code
	// DEPRECATED
	AddToScheme = schemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource generated code relies on this being here, but it logically belongs to the group DEPRECATED

Types

type AlternatorOptions added in v1.15.0

type AlternatorOptions struct {
	// writeIsolation specifies the isolation level.
	WriteIsolation string `json:"writeIsolation,omitempty"`

	// servingCertificate references a TLS certificate for serving secure traffic.
	// +kubebuilder:default:={type:"OperatorManaged"}
	// +optional
	ServingCertificate *TLSCertificate `json:"servingCertificate,omitempty"`
}

AlternatorOptions holds Alternator settings.

func (*AlternatorOptions) DeepCopy added in v1.15.0

func (in *AlternatorOptions) DeepCopy() *AlternatorOptions

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

func (*AlternatorOptions) DeepCopyInto added in v1.15.0

func (in *AlternatorOptions) DeepCopyInto(out *AlternatorOptions)

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

type BroadcastAddressType added in v1.15.0

type BroadcastAddressType string
const (
	// BroadcastAddressTypePodIP selects the IP address from Pod.
	BroadcastAddressTypePodIP BroadcastAddressType = "PodIP"

	// BroadcastAddressTypeServiceClusterIP selects the IP address from Service.spec.ClusterIP
	BroadcastAddressTypeServiceClusterIP BroadcastAddressType = "ServiceClusterIP"

	// BroadcastAddressTypeServiceLoadBalancerIngress selects the IP address or Hostname from Service.status.ingress[0]
	BroadcastAddressTypeServiceLoadBalancerIngress BroadcastAddressType = "ServiceLoadBalancerIngress"
)

type BroadcastOptions added in v1.15.0

type BroadcastOptions struct {
	// type specifies the address type that is broadcasted.
	Type BroadcastAddressType `json:"type"`

	// podIP holds options related to Pod IP address.
	// +optional
	PodIP *PodIPAddressOptions `json:"podIP,omitempty"`
}

BroadcastOptions hold options related to address broadcasted by ScyllaDB node.

func (*BroadcastOptions) DeepCopy added in v1.15.0

func (in *BroadcastOptions) DeepCopy() *BroadcastOptions

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

func (*BroadcastOptions) DeepCopyInto added in v1.15.0

func (in *BroadcastOptions) DeepCopyInto(out *BroadcastOptions)

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

type CQLExposeIngressOptions added in v1.15.0

type CQLExposeIngressOptions struct {
	ObjectTemplateMetadata `json:",inline"`

	// ingressClassName specifies Ingress class name.
	// +optional
	IngressClassName string `json:"ingressClassName,omitempty"`
}

CQLExposeIngressOptions defines configuration options for Ingress objects associated with cluster nodes.

func (*CQLExposeIngressOptions) DeepCopy added in v1.15.0

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

func (*CQLExposeIngressOptions) DeepCopyInto added in v1.15.0

func (in *CQLExposeIngressOptions) DeepCopyInto(out *CQLExposeIngressOptions)

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

type CQLExposeOptions added in v1.15.0

type CQLExposeOptions struct {
	// ingress specifies an Ingress configuration options.
	// If provided and enabled, Ingress objects routing to CQL SSL port are generated for each ScyllaDB node
	// with the following options.
	Ingress *CQLExposeIngressOptions `json:"ingress,omitempty"`
}

CQLExposeOptions hold options related to exposing CQL backend.

func (*CQLExposeOptions) DeepCopy added in v1.15.0

func (in *CQLExposeOptions) DeepCopy() *CQLExposeOptions

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

func (*CQLExposeOptions) DeepCopyInto added in v1.15.0

func (in *CQLExposeOptions) DeepCopyInto(out *CQLExposeOptions)

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

type Components added in v1.9.0

type Components struct {
	// prometheus holds configuration for the prometheus instance, if any.
	// +optional
	Prometheus *PrometheusSpec `json:"prometheus,omitempty"`

	// grafana holds configuration for the grafana instance, if any.
	// +optional
	Grafana *GrafanaSpec `json:"grafana,omitempty"`
}

Components holds the options to configure individual applications.

func (*Components) DeepCopy added in v1.9.0

func (in *Components) DeepCopy() *Components

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

func (*Components) DeepCopyInto added in v1.9.0

func (in *Components) DeepCopyInto(out *Components)

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

type DeviceDiscovery added in v1.9.0

type DeviceDiscovery struct {
	// nameRegex is a regular expression filtering devices by their name.
	// +optional
	NameRegex string `json:"nameRegex"`

	// modelRegex is a regular expression filtering devices by their model name.
	// +optional
	ModelRegex string `json:"modelRegex"`
}

DeviceDiscovery specifies options for device discovery.

func (*DeviceDiscovery) DeepCopy added in v1.9.0

func (in *DeviceDiscovery) DeepCopy() *DeviceDiscovery

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

func (*DeviceDiscovery) DeepCopyInto added in v1.9.0

func (in *DeviceDiscovery) DeepCopyInto(out *DeviceDiscovery)

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

type ExposeOptions added in v1.15.0

type ExposeOptions struct {
	// cql specifies expose options for CQL SSL backend.
	// +optional
	CQL *CQLExposeOptions `json:"cql,omitempty"`

	// nodeService controls properties of Service dedicated for each ScyllaDBDatacenter node.
	// +kubebuilder:default:={type:"ClusterIP"}
	NodeService *NodeServiceTemplate `json:"nodeService,omitempty"`

	// BroadcastOptions defines how ScyllaDB node publishes its IP address to other nodes and clients.
	BroadcastOptions *NodeBroadcastOptions `json:"broadcastOptions,omitempty"`
}

ExposeOptions hold options related to exposing ScyllaDBDatacenter backends.

func (*ExposeOptions) DeepCopy added in v1.15.0

func (in *ExposeOptions) DeepCopy() *ExposeOptions

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

func (*ExposeOptions) DeepCopyInto added in v1.15.0

func (in *ExposeOptions) DeepCopyInto(out *ExposeOptions)

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

type FilesystemConfiguration added in v1.9.0

type FilesystemConfiguration struct {
	// device is a path to the device where the desired filesystem should be created.
	Device string `json:"device"`

	// type is a desired filesystem type.
	Type FilesystemType `json:"type"`
}

FilesystemConfiguration specifies filesystem configuration options.

func (*FilesystemConfiguration) DeepCopy added in v1.9.0

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

func (*FilesystemConfiguration) DeepCopyInto added in v1.9.0

func (in *FilesystemConfiguration) DeepCopyInto(out *FilesystemConfiguration)

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

type FilesystemType added in v1.9.0

type FilesystemType string

FilesystemType is a type of filesystem.

const (
	// XFSFilesystem represents an XFS filesystem type.
	XFSFilesystem FilesystemType = "xfs"
)

type GrafanaAuthentication added in v1.9.0

type GrafanaAuthentication struct {
	// insecureEnableAnonymousAccess allows access to Grafana without authentication.
	// +optional
	InsecureEnableAnonymousAccess bool `json:"insecureEnableAnonymousAccess,omitempty"`
}

GrafanaAuthentication holds the options to configure Grafana authentication.

func (*GrafanaAuthentication) DeepCopy added in v1.9.0

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

func (*GrafanaAuthentication) DeepCopyInto added in v1.9.0

func (in *GrafanaAuthentication) DeepCopyInto(out *GrafanaAuthentication)

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

type GrafanaExposeOptions added in v1.9.0

type GrafanaExposeOptions struct {
	// webInterface specifies expose options for the user web interface.
	// +optional
	WebInterface *HTTPSExposeOptions `json:"webInterface,omitempty"`
}

GrafanaExposeOptions holds options related to exposing Grafana app.

func (*GrafanaExposeOptions) DeepCopy added in v1.9.0

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

func (*GrafanaExposeOptions) DeepCopyInto added in v1.9.0

func (in *GrafanaExposeOptions) DeepCopyInto(out *GrafanaExposeOptions)

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

type GrafanaSpec added in v1.9.0

type GrafanaSpec struct {
	// placement describes restrictions for the nodes Grafana is scheduled on.
	// +optional
	Placement *PlacementSpec `json:"placement,omitempty"`

	// resources the Grafana container will use.
	Resources corev1.ResourceRequirements `json:"resources"`

	// exposeOptions specifies options for exposing Grafana UI.
	// +optional
	ExposeOptions *GrafanaExposeOptions `json:"exposeOptions,omitempty"`

	// servingCertSecretName is the name of the secret holding a serving cert-key pair.
	// If not specified, the operator will create a self-signed CA that creates
	// the default serving cert-key pair.
	// +optional
	ServingCertSecretName string `json:"servingCertSecretName,omitempty"`

	// authentication hold the authentication options for accessing Grafana.
	// +optional
	Authentication GrafanaAuthentication `json:"authentication,omitempty"`
}

GrafanaSpec holds the options to configure Grafana.

func (*GrafanaSpec) DeepCopy added in v1.9.0

func (in *GrafanaSpec) DeepCopy() *GrafanaSpec

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

func (*GrafanaSpec) DeepCopyInto added in v1.9.0

func (in *GrafanaSpec) DeepCopyInto(out *GrafanaSpec)

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

type HTTPSExposeOptions added in v1.9.0

type HTTPSExposeOptions struct {
	// ingress is an Ingress configuration options.
	// +optional
	Ingress *IngressOptions `json:"ingress,omitempty"`
}

HTTPSExposeOptions holds options related to exposing HTTPS backend.

func (*HTTPSExposeOptions) DeepCopy added in v1.9.0

func (in *HTTPSExposeOptions) DeepCopy() *HTTPSExposeOptions

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

func (*HTTPSExposeOptions) DeepCopyInto added in v1.9.0

func (in *HTTPSExposeOptions) DeepCopyInto(out *HTTPSExposeOptions)

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

type IngressOptions added in v1.9.0

type IngressOptions struct {
	// disabled controls if Ingress object creation is disabled.
	// +optional
	Disabled *bool `json:"disabled,omitempty"`

	// ingressClassName specifies Ingress class name.
	IngressClassName string `json:"ingressClassName,omitempty"`

	// annotations specifies custom annotations merged into every Ingress object.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// dnsDomains is a list of DNS domains this ingress is reachable by.
	// +optional
	DNSDomains []string `json:"dnsDomains,omitempty"`
}

IngressOptions defines configuration options for Ingress objects.

func (*IngressOptions) DeepCopy added in v1.9.0

func (in *IngressOptions) DeepCopy() *IngressOptions

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

func (*IngressOptions) DeepCopyInto added in v1.9.0

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

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

type LocalDiskSetup added in v1.9.0

type LocalDiskSetup struct {
	// loops is a list of loop device configurations.
	LoopDevices []LoopDeviceConfiguration `json:"loopDevices"`

	// raids is a list of raid configurations.
	RAIDs []RAIDConfiguration `json:"raids"`

	// filesystems is a list of filesystem configurations.
	Filesystems []FilesystemConfiguration `json:"filesystems"`

	// mounts is a list of mount configuration.
	Mounts []MountConfiguration `json:"mounts"`
}

LocalDiskSetup specifies configuration of local disk setup.

func (*LocalDiskSetup) DeepCopy added in v1.9.0

func (in *LocalDiskSetup) DeepCopy() *LocalDiskSetup

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

func (*LocalDiskSetup) DeepCopyInto added in v1.9.0

func (in *LocalDiskSetup) DeepCopyInto(out *LocalDiskSetup)

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

type LoopDeviceConfiguration added in v1.12.0

type LoopDeviceConfiguration struct {
	// name specifies the name of the symlink that will point to actual loop device, created under `/dev/loops/`.
	Name string `json:"name"`

	// imagePath specifies path on host where backing image file for loop device should be located.
	ImagePath string `json:"imagePath"`

	// size specifies the size of the loop device.
	Size resource.Quantity `json:"size"`
}

LoopDeviceConfiguration specifies loop device configuration options.

func (*LoopDeviceConfiguration) DeepCopy added in v1.12.0

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

func (*LoopDeviceConfiguration) DeepCopyInto added in v1.12.0

func (in *LoopDeviceConfiguration) DeepCopyInto(out *LoopDeviceConfiguration)

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

type MountConfiguration added in v1.9.0

type MountConfiguration struct {
	// device is path to a device that should be mounted.
	Device string `json:"device"`

	// mountPoint is a path where the device should be mounted at.
	// If the mountPoint is a symlink, the mount will be set up for the target.
	MountPoint string `json:"mountPoint"`

	// fsType specifies the filesystem on the device.
	FSType string `json:"fsType"`

	// unsupportedOptions is a list of mount options used during device mounting.
	// unsupported in this field name means that we won't support all the available options passed down using this field.
	// +optional
	UnsupportedOptions []string `json:"unsupportedOptions"`
}

MountConfiguration specifies mount configuration options.

func (*MountConfiguration) DeepCopy added in v1.9.0

func (in *MountConfiguration) DeepCopy() *MountConfiguration

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

func (*MountConfiguration) DeepCopyInto added in v1.9.0

func (in *MountConfiguration) DeepCopyInto(out *MountConfiguration)

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

type NodeBroadcastOptions added in v1.15.0

type NodeBroadcastOptions struct {
	// nodes specify options related to the address that is broadcasted for communication with other nodes.
	// This field controls the `broadcast_address` value in ScyllaDB config.
	// +kubebuilder:default:={type:"PodIP"}
	Nodes BroadcastOptions `json:"nodes"`

	// clients specify options related to the address that is broadcasted for communication with clients.
	// This field controls the `broadcast_rpc_address` value in ScyllaDB config.
	// +kubebuilder:default:={type:"PodIP"}
	Clients BroadcastOptions `json:"clients"`
}

NodeBroadcastOptions hold options related to addresses broadcasted by ScyllaDB node.

func (*NodeBroadcastOptions) DeepCopy added in v1.15.0

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

func (*NodeBroadcastOptions) DeepCopyInto added in v1.15.0

func (in *NodeBroadcastOptions) DeepCopyInto(out *NodeBroadcastOptions)

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

type NodeConfig

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

	Spec   NodeConfigSpec   `json:"spec,omitempty"`
	Status NodeConfigStatus `json:"status,omitempty"`
}

func (*NodeConfig) DeepCopy

func (in *NodeConfig) DeepCopy() *NodeConfig

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

func (*NodeConfig) DeepCopyInto

func (in *NodeConfig) DeepCopyInto(out *NodeConfig)

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

func (*NodeConfig) DeepCopyObject

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

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

type NodeConfigCondition

type NodeConfigCondition struct {
	// type is the type of the NodeConfig condition.
	Type NodeConfigConditionType `json:"type"`

	// status represents the state of the condition, one of True, False, or Unknown.
	Status corev1.ConditionStatus `json:"status"`

	// observedGeneration represents the .metadata.generation that the condition was set based upon.
	// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
	// with respect to the current state of the instance.
	// +optional
	// +kubebuilder:validation:Minimum=0
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// lastTransitionTime is last time the condition transitioned from one status to another.
	LastTransitionTime metav1.Time `json:"lastTransitionTime"`

	// reason is the reason for condition's last transition.
	Reason string `json:"reason"`

	// message is a human-readable message indicating details about the transition.
	Message string `json:"message"`
}

func NewNodeConfigCondition added in v1.15.0

func NewNodeConfigCondition(c metav1.Condition) NodeConfigCondition

func (*NodeConfigCondition) DeepCopy

func (in *NodeConfigCondition) DeepCopy() *NodeConfigCondition

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

func (*NodeConfigCondition) DeepCopyInto

func (in *NodeConfigCondition) DeepCopyInto(out *NodeConfigCondition)

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

func (*NodeConfigCondition) ToMetaV1Condition added in v1.15.0

func (c *NodeConfigCondition) ToMetaV1Condition() metav1.Condition

type NodeConfigConditionType

type NodeConfigConditionType string
const (
	// NodeConfigReconciledConditionType indicates that the NodeConfig is fully deployed and available.
	// Deprecated: NodeConfigReconciledConditionType is deprecated. Use standard workload conditions instead.
	NodeConfigReconciledConditionType NodeConfigConditionType = "Reconciled"
)

type NodeConfigConditions added in v1.15.0

type NodeConfigConditions []NodeConfigCondition

func NewNodeConfigConditions added in v1.15.0

func NewNodeConfigConditions(cs []metav1.Condition) NodeConfigConditions

func (NodeConfigConditions) DeepCopy added in v1.15.0

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

func (NodeConfigConditions) DeepCopyInto added in v1.15.0

func (in NodeConfigConditions) DeepCopyInto(out *NodeConfigConditions)

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

func (NodeConfigConditions) ToMetaV1Conditions added in v1.15.0

func (c NodeConfigConditions) ToMetaV1Conditions() []metav1.Condition

type NodeConfigList

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

func (*NodeConfigList) DeepCopy

func (in *NodeConfigList) DeepCopy() *NodeConfigList

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

func (*NodeConfigList) DeepCopyInto

func (in *NodeConfigList) DeepCopyInto(out *NodeConfigList)

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

func (*NodeConfigList) DeepCopyObject

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

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

type NodeConfigNodeStatus

type NodeConfigNodeStatus struct {
	Name            string   `json:"name"`
	TunedNode       bool     `json:"tunedNode"`
	TunedContainers []string `json:"tunedContainers"`
}

func (*NodeConfigNodeStatus) DeepCopy

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

func (*NodeConfigNodeStatus) DeepCopyInto

func (in *NodeConfigNodeStatus) DeepCopyInto(out *NodeConfigNodeStatus)

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

type NodeConfigPlacement

type NodeConfigPlacement struct {
	// affinity is a group of affinity scheduling rules for NodeConfig Pods.
	Affinity corev1.Affinity `json:"affinity"`

	// tolerations is a group of tolerations NodeConfig Pods are going to have.
	Tolerations []corev1.Toleration `json:"tolerations"`

	// nodeSelector is a selector which must be true for the NodeConfig Pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// +kubebuilder:validation:Required
	NodeSelector map[string]string `json:"nodeSelector"`
}

func (*NodeConfigPlacement) DeepCopy

func (in *NodeConfigPlacement) DeepCopy() *NodeConfigPlacement

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

func (*NodeConfigPlacement) DeepCopyInto

func (in *NodeConfigPlacement) DeepCopyInto(out *NodeConfigPlacement)

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

type NodeConfigSpec

type NodeConfigSpec struct {
	// placement contains scheduling rules for NodeConfig Pods.
	// +kubebuilder:validation:Required
	Placement NodeConfigPlacement `json:"placement"`

	// disableOptimizations controls if nodes matching placement requirements
	// are going to be optimized. Turning off optimizations on already optimized
	// Nodes does not revert changes.
	DisableOptimizations bool `json:"disableOptimizations"`

	// localDiskSetup contains options of automatic local disk setup.
	// +optional
	LocalDiskSetup *LocalDiskSetup `json:"localDiskSetup"`
}

func (*NodeConfigSpec) DeepCopy

func (in *NodeConfigSpec) DeepCopy() *NodeConfigSpec

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

func (*NodeConfigSpec) DeepCopyInto

func (in *NodeConfigSpec) DeepCopyInto(out *NodeConfigSpec)

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

type NodeConfigStatus

type NodeConfigStatus struct {
	// observedGeneration indicates the most recent generation observed by the controller.
	ObservedGeneration int64 `json:"observedGeneration"`

	// conditions represents the latest available observations of current state.
	// +optional
	Conditions NodeConfigConditions `json:"conditions"`

	// nodeStatuses hold the status for each tuned node.
	NodeStatuses []NodeConfigNodeStatus `json:"nodeStatuses"`
}

func (*NodeConfigStatus) DeepCopy

func (in *NodeConfigStatus) DeepCopy() *NodeConfigStatus

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

func (*NodeConfigStatus) DeepCopyInto

func (in *NodeConfigStatus) DeepCopyInto(out *NodeConfigStatus)

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

type NodeServiceTemplate added in v1.15.0

type NodeServiceTemplate struct {
	ObjectTemplateMetadata `json:",inline"`

	// type specifies the Kubernetes Service type.
	Type NodeServiceType `json:"type"`

	// externalTrafficPolicy controls value of service.spec.externalTrafficPolicy of each node Service.
	// Check Kubernetes corev1.Service documentation about semantic of this field.
	// +optional
	ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicy `json:"externalTrafficPolicy,omitempty"`

	// allocateLoadBalancerNodePorts controls value of service.spec.allocateLoadBalancerNodePorts of each node Service.
	// Check Kubernetes corev1.Service documentation about semantic of this field.
	// +optional
	AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty"`

	// loadBalancerClass controls value of service.spec.loadBalancerClass of each node Service.
	// Check Kubernetes corev1.Service documentation about semantic of this field.
	// +optional
	LoadBalancerClass *string `json:"loadBalancerClass,omitempty"`

	// internalTrafficPolicy controls value of service.spec.internalTrafficPolicy of each node Service.
	// Check Kubernetes corev1.Service documentation about semantic of this field.
	// +optional
	InternalTrafficPolicy *corev1.ServiceInternalTrafficPolicy `json:"internalTrafficPolicy,omitempty"`
}

func (*NodeServiceTemplate) DeepCopy added in v1.15.0

func (in *NodeServiceTemplate) DeepCopy() *NodeServiceTemplate

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

func (*NodeServiceTemplate) DeepCopyInto added in v1.15.0

func (in *NodeServiceTemplate) DeepCopyInto(out *NodeServiceTemplate)

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

type NodeServiceType added in v1.15.0

type NodeServiceType string
const (
	// NodeServiceTypeHeadless means nodes will be exposed via Headless Service.
	NodeServiceTypeHeadless NodeServiceType = "Headless"

	// NodeServiceTypeClusterIP means nodes will be exposed via ClusterIP Service.
	NodeServiceTypeClusterIP NodeServiceType = "ClusterIP"

	// NodeServiceTypeLoadBalancer means nodes will be exposed via LoadBalancer Service.
	NodeServiceTypeLoadBalancer NodeServiceType = "LoadBalancer"
)

type ObjectTemplateMetadata added in v1.15.0

type ObjectTemplateMetadata struct {
	// labels specify a custom key value map that gets merged with managed object labels.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// annotations specify a custom key value map that gets merged with managed object annotations.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

func (*ObjectTemplateMetadata) DeepCopy added in v1.15.0

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

func (*ObjectTemplateMetadata) DeepCopyInto added in v1.15.0

func (in *ObjectTemplateMetadata) DeepCopyInto(out *ObjectTemplateMetadata)

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

type OperatorManagedTLSCertificateOptions added in v1.15.0

type OperatorManagedTLSCertificateOptions struct {
	// additionalDNSNames represents external DNS names that the certificates should be signed for.
	// +optional
	AdditionalDNSNames []string `json:"additionalDNSNames,omitempty"`

	// additionalIPAddresses represents external IP addresses that the certificates should be signed for.
	// +optional
	AdditionalIPAddresses []string `json:"additionalIPAddresses,omitempty"`
}

func (*OperatorManagedTLSCertificateOptions) DeepCopy added in v1.15.0

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

func (*OperatorManagedTLSCertificateOptions) DeepCopyInto added in v1.15.0

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

type Placement added in v1.15.0

type Placement struct {
	// nodeAffinity describes node affinity scheduling rules for the Pod.
	// +optional
	NodeAffinity *corev1.NodeAffinity `json:"nodeAffinity,omitempty"`

	// podAffinity describes Pod affinity scheduling rules.
	// +optional
	PodAffinity *corev1.PodAffinity `json:"podAffinity,omitempty"`

	// podAntiAffinity describes Pod anti-affinity scheduling rules.
	// +optional
	PodAntiAffinity *corev1.PodAntiAffinity `json:"podAntiAffinity,omitempty"`

	// tolerations describe Pod toleration rules.
	// This allows the Pod to tolerate any taint that matches the triple <key,value,effect>
	// using the matching operator.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}

Placement holds configuration options related to scheduling.

func (*Placement) DeepCopy added in v1.15.0

func (in *Placement) DeepCopy() *Placement

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

func (*Placement) DeepCopyInto added in v1.15.0

func (in *Placement) DeepCopyInto(out *Placement)

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

type PlacementSpec added in v1.9.0

type PlacementSpec struct {
	// nodeAffinity describes node affinity scheduling rules for the pod.
	// +optional
	NodeAffinity *corev1.NodeAffinity `json:"nodeAffinity,omitempty"`

	// podAffinity describes pod affinity scheduling rules.
	// +optional
	PodAffinity *corev1.PodAffinity `json:"podAffinity,omitempty"`

	// podAntiAffinity describes pod anti-affinity scheduling rules.
	// +optional
	PodAntiAffinity *corev1.PodAntiAffinity `json:"podAntiAffinity,omitempty"`

	// tolerations allow the pod to tolerate any taint that matches the triple <key,value,effect>
	// using the matching operator.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}

PlacementSpec defines pod placement. TODO: move this to corev1.Affinity in v1alpha2

func (*PlacementSpec) DeepCopy added in v1.9.0

func (in *PlacementSpec) DeepCopy() *PlacementSpec

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

func (*PlacementSpec) DeepCopyInto added in v1.9.0

func (in *PlacementSpec) DeepCopyInto(out *PlacementSpec)

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

type PodIPAddressOptions added in v1.15.0

type PodIPAddressOptions struct {
	// sourceType specifies source of the Pod IP.
	// +kubebuilder:default:="Status"
	Source PodIPSourceType `json:"source"`
}

PodIPAddressOptions hold options related to Pod IP address.

func (*PodIPAddressOptions) DeepCopy added in v1.15.0

func (in *PodIPAddressOptions) DeepCopy() *PodIPAddressOptions

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

func (*PodIPAddressOptions) DeepCopyInto added in v1.15.0

func (in *PodIPAddressOptions) DeepCopyInto(out *PodIPAddressOptions)

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

type PodIPInterfaceOptions added in v1.15.0

type PodIPInterfaceOptions struct {
	// interfaceName specifies interface name within a Pod from which address is taken from.
	InterfaceName string `json:"interfaceName,omitempty"`
}

func (*PodIPInterfaceOptions) DeepCopy added in v1.15.0

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

func (*PodIPInterfaceOptions) DeepCopyInto added in v1.15.0

func (in *PodIPInterfaceOptions) DeepCopyInto(out *PodIPInterfaceOptions)

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

type PodIPSourceType added in v1.15.0

type PodIPSourceType string
const (
	// StatusPodIPSource specifies that the PodIP is taken from Pod.Status.PodIP
	StatusPodIPSource PodIPSourceType = "Status"
)

type PrometheusExposeOptions added in v1.9.0

type PrometheusExposeOptions struct {
	// webInterface specifies expose options for the user web interface.
	// +optional
	WebInterface *HTTPSExposeOptions `json:"webInterface,omitempty"`
}

PrometheusExposeOptions holds options related to exposing Prometheus app.

func (*PrometheusExposeOptions) DeepCopy added in v1.9.0

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

func (*PrometheusExposeOptions) DeepCopyInto added in v1.9.0

func (in *PrometheusExposeOptions) DeepCopyInto(out *PrometheusExposeOptions)

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

type PrometheusSpec added in v1.9.0

type PrometheusSpec struct {
	// placement describes restrictions for the nodes Prometheus is scheduled on.
	// +optional
	Placement *PlacementSpec `json:"placement,omitempty"`

	// resources the Prometheus container will use.
	Resources corev1.ResourceRequirements `json:"resources"`

	// exposeOptions specifies options for exposing Prometheus UI.
	// +optional
	ExposeOptions *PrometheusExposeOptions `json:"exposeOptions,omitempty"`

	// storage describes the underlying storage that Prometheus will consume.
	// +optional
	Storage *Storage `json:"storage"`
}

PrometheusSpec holds the spec prometheus options.

func (*PrometheusSpec) DeepCopy added in v1.9.0

func (in *PrometheusSpec) DeepCopy() *PrometheusSpec

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

func (*PrometheusSpec) DeepCopyInto added in v1.9.0

func (in *PrometheusSpec) DeepCopyInto(out *PrometheusSpec)

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

type RAID0Options added in v1.9.0

type RAID0Options struct {
	// devices defines which devices constitute the raid array.
	Devices DeviceDiscovery `json:"devices"`
}

RAID0Options specifies raid0 options.

func (*RAID0Options) DeepCopy added in v1.9.0

func (in *RAID0Options) DeepCopy() *RAID0Options

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

func (*RAID0Options) DeepCopyInto added in v1.9.0

func (in *RAID0Options) DeepCopyInto(out *RAID0Options)

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

type RAIDConfiguration added in v1.9.0

type RAIDConfiguration struct {
	// name specifies the name of the raid device to be created under in `/dev/md/`.
	Name string `json:"name"`

	// type is a type of raid array.
	Type RAIDType `json:"type"`

	// RAID0 specifies RAID0 options.
	// +optional
	RAID0 *RAID0Options `json:"RAID0,omitempty"`
}

RAIDConfiguration is a configuration of a raid array.

func (*RAIDConfiguration) DeepCopy added in v1.9.0

func (in *RAIDConfiguration) DeepCopy() *RAIDConfiguration

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

func (*RAIDConfiguration) DeepCopyInto added in v1.9.0

func (in *RAIDConfiguration) DeepCopyInto(out *RAIDConfiguration)

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

type RAIDType added in v1.9.0

type RAIDType string

RAIDType is a raid array type.

const (
	// RAID0Type represents RAID0 array type.
	RAID0Type RAIDType = "RAID0"
)

type RackSpec added in v1.15.0

type RackSpec struct {
	RackTemplate `json:",inline"`

	// name specifies the name of the ScyllaDB Rack. Used as rack name in GossipingPropertyFileSnitch.
	// This field is immutable.
	Name string `json:"name"`
}

RackSpec is the desired state for a ScyllaDB Rack.

func (*RackSpec) DeepCopy added in v1.15.0

func (in *RackSpec) DeepCopy() *RackSpec

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

func (*RackSpec) DeepCopyInto added in v1.15.0

func (in *RackSpec) DeepCopyInto(out *RackSpec)

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

type RackStatus added in v1.15.0

type RackStatus struct {
	// name specifies the name of datacenter this status describes.
	Name string `json:"name,omitempty"`

	// version specifies the current version of ScyllaDB in use.
	CurrentVersion string `json:"currentVersion"`

	// updatedVersion specifies the updated version of ScyllaDB.
	UpdatedVersion string `json:"updatedVersion"`

	// nodes specify the total number of nodes requested in rack.
	// +optional
	Nodes *int32 `json:"nodes,omitempty"`

	// currentNodes specify the total number of nodes created in rack.
	CurrentNodes *int32 `json:"currentNodes,omitempty"`

	// updatedNodes specify the number of nodes matching the current spec in rack.
	// +optional
	UpdatedNodes *int32 `json:"updatedNodes,omitempty"`

	// readyNodes specify the total number of ready nodes in rack.
	// +optional
	ReadyNodes *int32 `json:"readyNodes,omitempty"`

	// availableNodes specify the total number of available nodes in rack.
	// +optional
	AvailableNodes *int32 `json:"availableNodes,omitempty"`

	// stale indicates if the current rack status is collected for a previous generation.
	// stale should eventually become false when the appropriate controller writes a fresh status.
	// +optional
	Stale *bool `json:"stale,omitempty"`
}

RackStatus is the status of a ScyllaDB Rack

func (*RackStatus) DeepCopy added in v1.15.0

func (in *RackStatus) DeepCopy() *RackStatus

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

func (*RackStatus) DeepCopyInto added in v1.15.0

func (in *RackStatus) DeepCopyInto(out *RackStatus)

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

type RackTemplate added in v1.15.0

type RackTemplate struct {
	// nodes specify the desired number of nodes in rack.
	// +optional
	Nodes *int32 `json:"nodes,omitempty"`

	// placement describes restrictions for the nodes ScyllaDB is scheduled on.
	// +optional
	Placement *Placement `json:"placement,omitempty"`

	// topologyLabelSelector specifies a label selector which will be used to target nodes at specified topology constraints.
	// Datacenter topologyLabelSelector is merged with rack topologyLabelSelector and then converted into nodeAffinity
	// targeting nodes having specified topology.
	// +optional
	TopologyLabelSelector map[string]string `json:"topologyLabelSelector,omitempty"`

	// scyllaDB specifies ScyllaDB properties for this rack.
	// These override the settings set on Datacenter level.
	// +optional
	ScyllaDB *ScyllaDBTemplate `json:"scyllaDB,omitempty"`

	// scyllaDBManagerAgent specifies ScyllaDB Manager Agent properties for this rack.
	// These override the settings set on Datacenter level.
	// +optional
	ScyllaDBManagerAgent *ScyllaDBManagerAgentTemplate `json:"scyllaDBManagerAgent,omitempty"`
}

func (*RackTemplate) DeepCopy added in v1.15.0

func (in *RackTemplate) DeepCopy() *RackTemplate

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

func (*RackTemplate) DeepCopyInto added in v1.15.0

func (in *RackTemplate) DeepCopyInto(out *RackTemplate)

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

type ScyllaDB added in v1.15.0

type ScyllaDB struct {
	// image holds a reference to the ScyllaDB container image.
	Image string `json:"image"`

	// externalSeeds specifies the external seeds to propagate to ScyllaDB binary on startup as "seeds" parameter of seed-provider.
	// +optional
	ExternalSeeds []string `json:"externalSeeds,omitempty"`

	// alternatorOptions designates this cluster an Alternator cluster.
	// +optional
	AlternatorOptions *AlternatorOptions `json:"alternatorOptions,omitempty"`

	// additionalScyllaDBArguments specify a list of arguments appended to the ScyllaDB binary during startup.
	// When set, ScyllaDB may behave unexpectedly, and every such setup is considered unsupported.
	// Instead, consider using customConfigMapRef for setting custom ScyllaDB configuration options.
	// +optional
	AdditionalScyllaDBArguments []string `json:"additionalScyllaDBArguments,omitempty"`

	// developerMode determines if the cluster runs in developer-mode.
	// +optional
	EnableDeveloperMode *bool `json:"enableDeveloperMode,omitempty"`
}

ScyllaDB holds configuration options related to ScyllaDB.

func (*ScyllaDB) DeepCopy added in v1.15.0

func (in *ScyllaDB) DeepCopy() *ScyllaDB

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

func (*ScyllaDB) DeepCopyInto added in v1.15.0

func (in *ScyllaDB) DeepCopyInto(out *ScyllaDB)

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

type ScyllaDBDatacenter added in v1.15.0

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

	// spec defines the desired state of this ScyllaDBDatacenter.
	Spec ScyllaDBDatacenterSpec `json:"spec,omitempty"`

	// status specifies the current status of this ScyllaDBDatacenter.
	Status ScyllaDBDatacenterStatus `json:"status,omitempty"`
}

ScyllaDBDatacenter defines a monitoring instance for ScyllaDB clusters.

func (*ScyllaDBDatacenter) DeepCopy added in v1.15.0

func (in *ScyllaDBDatacenter) DeepCopy() *ScyllaDBDatacenter

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

func (*ScyllaDBDatacenter) DeepCopyInto added in v1.15.0

func (in *ScyllaDBDatacenter) DeepCopyInto(out *ScyllaDBDatacenter)

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

func (*ScyllaDBDatacenter) DeepCopyObject added in v1.15.0

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

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

type ScyllaDBDatacenterList added in v1.15.0

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

func (*ScyllaDBDatacenterList) DeepCopy added in v1.15.0

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

func (*ScyllaDBDatacenterList) DeepCopyInto added in v1.15.0

func (in *ScyllaDBDatacenterList) DeepCopyInto(out *ScyllaDBDatacenterList)

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

func (*ScyllaDBDatacenterList) DeepCopyObject added in v1.15.0

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

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

type ScyllaDBDatacenterSpec added in v1.15.0

type ScyllaDBDatacenterSpec struct {
	// metadata controls shared metadata for all pods created based on this spec.
	// +optional
	Metadata *ObjectTemplateMetadata `json:"metadata,omitempty"`

	// clusterName specifies the name of the ScyllaDB cluster.
	// When joining two DCs, their cluster name must match.
	// This field is immutable.
	ClusterName string `json:"clusterName"`

	// datacenterName specifies the name of the ScyllaDB datacenter. Used as datacenter name in GossipingPropertyFileSnitch.
	// If empty, it's taken from the 'scylladbdatacenter.metadata.name'.
	// +optional
	DatacenterName *string `json:"datacenterName,omitempty"`

	// scyllaDB holds a specification of ScyllaDB.
	ScyllaDB ScyllaDB `json:"scyllaDB"`

	// scyllaDBManagerAgent holds a specification of ScyllaDB Manager Agent.
	// +optional
	ScyllaDBManagerAgent *ScyllaDBManagerAgent `json:"scyllaDBManagerAgent,omitempty"`

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

	// dnsPolicy defines how a pod's DNS will be configured.
	// +optional
	DNSPolicy *corev1.DNSPolicy `json:"dnsPolicy,omitempty"`

	// dnsDomains specifies a list of DNS domains this cluster is reachable by.
	// These domains are used when setting up the infrastructure, like certificates.
	// +optional
	DNSDomains []string `json:"dnsDomains,omitempty"`

	// forceRedeploymentReason specifies the latest redeployment reason.
	// Can be used to force a rolling restart of all racks in this DC by providing a unique string.
	// +optional
	ForceRedeploymentReason *string `json:"forceRedeploymentReason,omitempty"`

	// exposeOptions specifies parameters related to exposing ScyllaDBDatacenter backends.
	// +optional
	ExposeOptions *ExposeOptions `json:"exposeOptions,omitempty"`

	// rackTemplate provides a template for every rack.
	// Every rack inherits properties specified in the template, unless it's overwritten on the rack level.
	// +optional
	RackTemplate *RackTemplate `json:"rackTemplate,omitempty"`

	// racks specify the racks in the datacenter.
	Racks []RackSpec `json:"racks"`

	// disableAutomaticOrphanedNodeReplacement controls if automatic orphan node replacement should be disabled.
	// +optional
	DisableAutomaticOrphanedNodeReplacement *bool `json:"disableAutomaticOrphanedNodeReplacement,omitempty"`

	// minTerminationGracePeriodSeconds specifies minimum duration in seconds to wait before every drained node is
	// terminated. This gives time to potential load balancer in front of a node to notice that node is not ready anymore
	// and stop forwarding new requests.
	// This applies only when node is terminated gracefully.
	// If not provided, Operator will determine this value.
	// EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field.
	// +optional
	MinTerminationGracePeriodSeconds *int32 `json:"minTerminationGracePeriodSeconds,omitempty"`

	// minReadySeconds specifies the minimum number of seconds for which a newly created ScyllaDB node should be ready
	// for it to be considered available.
	// When used to control load balanced traffic, this can give the load balancer in front of a node enough time to
	// notice that the node is ready and start forwarding traffic in time. Because it all depends on timing, the order
	// is not guaranteed and, if possible, you should use readinessGates instead.
	// If not provided, Operator will determine this value.
	// +optional
	MinReadySeconds *int32 `json:"minReadySeconds,omitempty"`

	// readinessGates specifies custom readiness gates that will be evaluated for every ScyllaDB Pod readiness.
	// It's projected into every ScyllaDB Pod as its readinessGate. Refer to upstream documentation to learn more
	// about readiness gates.
	// +optional
	ReadinessGates []corev1.PodReadinessGate `json:"readinessGates,omitempty"`
}

ScyllaDBDatacenterSpec defines the desired state of ScyllaDBDatacenter.

func (*ScyllaDBDatacenterSpec) DeepCopy added in v1.15.0

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

func (*ScyllaDBDatacenterSpec) DeepCopyInto added in v1.15.0

func (in *ScyllaDBDatacenterSpec) DeepCopyInto(out *ScyllaDBDatacenterSpec)

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

type ScyllaDBDatacenterStatus added in v1.15.0

type ScyllaDBDatacenterStatus struct {
	// observedGeneration is the most recent generation observed for this ScyllaDBDatacenter. It corresponds to the
	// ScyllaDBDatacenter's generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration *int64 `json:"observedGeneration,omitempty"`

	// conditions hold conditions describing ScyllaDBDatacenter state.
	// To determine whether a cluster rollout is finished, look for Available=True,Progressing=False,Degraded=False.
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// version specifies the current version of ScyllaDB in use.
	// +optional
	CurrentVersion string `json:"currentVersion,omitempty"`

	// updatedVersion specifies the updated version of ScyllaDB.
	// +optional
	UpdatedVersion string `json:"updatedVersion,omitempty"`

	// nodes specify the total number of nodes requested in datacenter.
	// +optional
	Nodes *int32 `json:"nodes,omitempty"`

	// currentNodes specify the total number of nodes created in datacenter.
	CurrentNodes *int32 `json:"currentNodes,omitempty"`

	// updatedNodes specify the number of nodes matching the current spec in datacenter.
	// +optional
	UpdatedNodes *int32 `json:"updatedNodes,omitempty"`

	// readyNodes specify the total number of ready nodes in datacenter.
	// +optional
	ReadyNodes *int32 `json:"readyNodes,omitempty"`

	// availableNodes specify the total number of available nodes in datacenter.
	// +optional
	AvailableNodes *int32 `json:"availableNodes,omitempty"`

	// racks reflect the status of datacenter racks.
	Racks []RackStatus `json:"racks"`
}

ScyllaDBDatacenterStatus defines the observed state of ScyllaDBDatacenter.

func (*ScyllaDBDatacenterStatus) DeepCopy added in v1.15.0

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

func (*ScyllaDBDatacenterStatus) DeepCopyInto added in v1.15.0

func (in *ScyllaDBDatacenterStatus) DeepCopyInto(out *ScyllaDBDatacenterStatus)

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

type ScyllaDBManagerAgent added in v1.15.0

type ScyllaDBManagerAgent struct {
	// image holds a reference to the ScyllaDB Manager Agent container image.
	// +optional
	Image *string `json:"image,omitempty"`
}

ScyllaDBManagerAgent holds configuration options related to ScyllaDB Manager Agent.

func (*ScyllaDBManagerAgent) DeepCopy added in v1.15.0

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

func (*ScyllaDBManagerAgent) DeepCopyInto added in v1.15.0

func (in *ScyllaDBManagerAgent) DeepCopyInto(out *ScyllaDBManagerAgent)

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

type ScyllaDBManagerAgentTemplate added in v1.15.0

type ScyllaDBManagerAgentTemplate struct {
	// resources specify requirements for the ScyllaDB Manager Agent container
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// customConfigSecretRef specifies a reference to custom ScyllaDB Manager Agent configuration stored as Secret.
	// +optional
	CustomConfigSecretRef *string `json:"customConfigSecretRef,omitempty"`

	// volumes specify a list of volumes appended to ScyllaDB Pod.
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// volumeMounts specify a list of volume mounts appended to ScyllaDB Manager Agent container.
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}

ScyllaDBManagerAgentTemplate allows to override a subset of ScyllaDBManagerAgent settings.

func (*ScyllaDBManagerAgentTemplate) DeepCopy added in v1.15.0

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

func (*ScyllaDBManagerAgentTemplate) DeepCopyInto added in v1.15.0

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

type ScyllaDBMonitoring added in v1.9.0

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

	// spec defines the desired state of this ScyllaDBMonitoring.
	Spec ScyllaDBMonitoringSpec `json:"spec,omitempty"`

	// status is the current status of this ScyllaDBMonitoring.
	Status ScyllaDBMonitoringStatus `json:"status,omitempty"`
}

ScyllaDBMonitoring defines a monitoring instance for ScyllaDB clusters.

func (*ScyllaDBMonitoring) DeepCopy added in v1.9.0

func (in *ScyllaDBMonitoring) DeepCopy() *ScyllaDBMonitoring

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

func (*ScyllaDBMonitoring) DeepCopyInto added in v1.9.0

func (in *ScyllaDBMonitoring) DeepCopyInto(out *ScyllaDBMonitoring)

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

func (*ScyllaDBMonitoring) DeepCopyObject added in v1.9.0

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

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

type ScyllaDBMonitoringList added in v1.9.0

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

ScyllaDBMonitoringList holds a list of ScyllaDBMonitoring.

func (*ScyllaDBMonitoringList) DeepCopy added in v1.9.0

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

func (*ScyllaDBMonitoringList) DeepCopyInto added in v1.9.0

func (in *ScyllaDBMonitoringList) DeepCopyInto(out *ScyllaDBMonitoringList)

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

func (*ScyllaDBMonitoringList) DeepCopyObject added in v1.9.0

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

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

type ScyllaDBMonitoringSpec added in v1.9.0

type ScyllaDBMonitoringSpec struct {
	// endpointsSelector select which Endpoints should be scraped.
	// For local ScyllaDB clusters or datacenters, this is the same selector as if you were trying to select member Services.
	// For remote ScyllaDB clusters, this can select any endpoints that are created manually or for a Service without selectors.
	// +kubebuilder:validation:Required
	EndpointsSelector metav1.LabelSelector `json:"endpointsSelector"`

	// components hold additional config for the monitoring components in use.
	Components *Components `json:"components"`

	// type determines the platform type of the monitoring setup.
	// +kubebuilder:default:="SaaS"
	// +optional
	Type *ScyllaDBMonitoringType `json:"type,omitempty"`
}

ScyllaDBMonitoringSpec defines the desired state of ScyllaDBMonitoring.

func (*ScyllaDBMonitoringSpec) DeepCopy added in v1.9.0

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

func (*ScyllaDBMonitoringSpec) DeepCopyInto added in v1.9.0

func (in *ScyllaDBMonitoringSpec) DeepCopyInto(out *ScyllaDBMonitoringSpec)

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

func (*ScyllaDBMonitoringSpec) GetType added in v1.15.0

type ScyllaDBMonitoringStatus added in v1.9.0

type ScyllaDBMonitoringStatus struct {
	// observedGeneration is the most recent generation observed for this ScyllaDBMonitoring. It corresponds to the
	// ScyllaDBMonitoring's generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration *int64 `json:"observedGeneration,omitempty"`

	// conditions hold conditions describing ScyllaDBMonitoring state.
	// To determine whether a cluster rollout is finished, look for Available=True,Progressing=False,Degraded=False.
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ScyllaDBMonitoringStatus defines the observed state of ScyllaDBMonitoring.

func (*ScyllaDBMonitoringStatus) DeepCopy added in v1.9.0

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

func (*ScyllaDBMonitoringStatus) DeepCopyInto added in v1.9.0

func (in *ScyllaDBMonitoringStatus) DeepCopyInto(out *ScyllaDBMonitoringStatus)

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

type ScyllaDBMonitoringType added in v1.9.0

type ScyllaDBMonitoringType string

ScyllaDBMonitoringType describes the platform type of the monitoring setup. +kubebuilder:validation:Enum="SaaS";"Platform"

const (
	// ScyllaDBMonitoringTypePlatform defines ScyllaDB monitoring setup that includes a view of the infrastructure.
	ScyllaDBMonitoringTypePlatform ScyllaDBMonitoringType = "Platform"

	// ScyllaDBMonitoringTypeSAAS defines ScyllaDB monitoring setup focused only on the ScyllaDB service.
	ScyllaDBMonitoringTypeSAAS ScyllaDBMonitoringType = "SaaS"
)

type ScyllaDBTemplate added in v1.15.0

type ScyllaDBTemplate struct {
	// resources specify requirements for the ScyllaDB container
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// storage specifies requirements for the containers
	// +optional
	Storage *StorageOptions `json:"storage,omitempty"`

	// customConfigMapRef specifies a reference to custom ScyllaDB configuration stored as ConfigMap.
	// Overrides upper level settings.
	// +optional
	CustomConfigMapRef *string `json:"customConfigMapRef,omitempty"`

	// volumes specify a list of volumes appended to ScyllaDB Pod.
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// volumeMounts specify a list of volume mounts appended to ScyllaDB container.
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}

ScyllaDBTemplate allows overriding a subset of ScyllaDB settings.

func (*ScyllaDBTemplate) DeepCopy added in v1.15.0

func (in *ScyllaDBTemplate) DeepCopy() *ScyllaDBTemplate

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

func (*ScyllaDBTemplate) DeepCopyInto added in v1.15.0

func (in *ScyllaDBTemplate) DeepCopyInto(out *ScyllaDBTemplate)

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

type ScyllaOperatorConfig

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

	// spec defines the desired state of the operator.
	Spec ScyllaOperatorConfigSpec `json:"spec,omitempty"`

	// status defines the observed state of the operator.
	Status ScyllaOperatorConfigStatus `json:"status,omitempty"`
}

ScyllaOperatorConfig describes the Scylla Operator configuration.

func (*ScyllaOperatorConfig) DeepCopy

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

func (*ScyllaOperatorConfig) DeepCopyInto

func (in *ScyllaOperatorConfig) DeepCopyInto(out *ScyllaOperatorConfig)

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

func (*ScyllaOperatorConfig) DeepCopyObject

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

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

type ScyllaOperatorConfigList

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

func (*ScyllaOperatorConfigList) DeepCopy

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

func (*ScyllaOperatorConfigList) DeepCopyInto

func (in *ScyllaOperatorConfigList) DeepCopyInto(out *ScyllaOperatorConfigList)

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

func (*ScyllaOperatorConfigList) DeepCopyObject

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

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

type ScyllaOperatorConfigSpec

type ScyllaOperatorConfigSpec struct {
	// scyllaUtilsImage is a ScyllaDB image used for running ScyllaDB utilities.
	ScyllaUtilsImage string `json:"scyllaUtilsImage"`

	// unsupportedBashToolsImageOverride allows to adjust a generic Bash image with extra tools used by the operator
	// for auxiliary purposes.
	// Setting this field renders your cluster unsupported. Use at your own risk.
	// +optional
	UnsupportedBashToolsImageOverride *string `json:"unsupportedBashToolsImageOverride,omitempty"`

	// unsupportedGrafanaImageOverride allows to adjust Grafana image used by the operator
	// for testing, dev or emergencies.
	// Setting this field renders your cluster unsupported. Use at your own risk.
	// +optional
	UnsupportedGrafanaImageOverride *string `json:"unsupportedGrafanaImageOverride,omitempty"`

	// unsupportedPrometheusVersionOverride allows to adjust Prometheus version used by the operator
	// for testing, dev or emergencies.
	// Setting this field renders your cluster unsupported. Use at your own risk.
	// +optional
	UnsupportedPrometheusVersionOverride *string `json:"unsupportedPrometheusVersionOverride,omitempty"`

	// configuredClusterDomain allows users to set the configured Kubernetes cluster domain explicitly, instead of letting Scylla Operator automatically discover it.
	// +optional
	ConfiguredClusterDomain *string `json:"configuredClusterDomain,omitempty"`
}

func (*ScyllaOperatorConfigSpec) DeepCopy

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

func (*ScyllaOperatorConfigSpec) DeepCopyInto

func (in *ScyllaOperatorConfigSpec) DeepCopyInto(out *ScyllaOperatorConfigSpec)

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

type ScyllaOperatorConfigStatus

type ScyllaOperatorConfigStatus struct {
	// observedGeneration is the most recent generation observed for this ScyllaOperatorConfig. It corresponds to the
	// ScyllaOperatorConfig's generation, which is updated on mutation by the API Server.
	// +optional
	ObservedGeneration *int64 `json:"observedGeneration,omitempty"`

	// conditions hold conditions describing ScyllaOperatorConfig state.
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// scyllaDBUtilsImage is the ScyllaDB image used for running ScyllaDB utilities.
	// +optional
	ScyllaDBUtilsImage *string `json:"scyllaDBUtilsImage"`

	// bashToolsImage is a generic Bash image with extra tools used by the operator for auxiliary purposes.
	// +optional
	BashToolsImage *string `json:"bashToolsImage,omitempty"`

	// grafanaImage is the image used by the operator to create a Grafana instance.
	// +optional
	GrafanaImage *string `json:"grafanaImage,omitempty"`

	// prometheusVersion is the Prometheus version used by the operator to create a Prometheus instance.
	// +optional
	PrometheusVersion *string `json:"prometheusVersion"`

	// clusterDomain is the Kubernetes cluster domain used by the Scylla Operator.
	ClusterDomain *string `json:"clusterDomain,omitempty"`
}

func (*ScyllaOperatorConfigStatus) DeepCopy

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

func (*ScyllaOperatorConfigStatus) DeepCopyInto

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

type Storage added in v1.9.0

type Storage struct {
	// Map of string keys and values that can be used to organize and categorize
	// (scope and select) objects. May match selectors of replication controllers
	// and services.
	// More info: http://kubernetes.io/docs/user-guide/labels
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

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

	// volumeClaimTemplates is a PVC template defining storage to be used by Prometheus.
	// +optional
	VolumeClaimTemplate corev1.PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
}

Storage holds the storage options.

func (*Storage) DeepCopy added in v1.9.0

func (in *Storage) DeepCopy() *Storage

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

func (*Storage) DeepCopyInto added in v1.9.0

func (in *Storage) DeepCopyInto(out *Storage)

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

type StorageOptions added in v1.15.0

type StorageOptions struct {
	// metadata controls shared metadata for the volume claim for this rack.
	// At this point, the values are applied only for the initial claim and are not reconciled during its lifetime.
	// Note that this may get fixed in the future and this behaviour shouldn't be relied on in any way.
	// +optional
	Metadata *ObjectTemplateMetadata `json:"metadata,omitempty"`

	// capacity describes the requested size of each persistent volume.
	Capacity string `json:"capacity"`

	// storageClassName specifies the name of a storageClass to request.
	// +optional
	StorageClassName *string `json:"storageClassName,omitempty"`
}

StorageOptions describes options of storage.

func (*StorageOptions) DeepCopy added in v1.15.0

func (in *StorageOptions) DeepCopy() *StorageOptions

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

func (*StorageOptions) DeepCopyInto added in v1.15.0

func (in *StorageOptions) DeepCopyInto(out *StorageOptions)

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

type TLSCertificate added in v1.15.0

type TLSCertificate struct {
	// type determines the source of this certificate.
	Type TLSCertificateType `json:"type"`

	// userManagedOptions specifies options for certificates manged by users.
	// +optional
	UserManagedOptions *UserManagedTLSCertificateOptions `json:"userManagedOptions,omitempty"`

	// operatorManagedOptions specifies options for certificates manged by the operator.
	// +optional
	OperatorManagedOptions *OperatorManagedTLSCertificateOptions `json:"operatorManagedOptions,omitempty"`
}

func (*TLSCertificate) DeepCopy added in v1.15.0

func (in *TLSCertificate) DeepCopy() *TLSCertificate

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

func (*TLSCertificate) DeepCopyInto added in v1.15.0

func (in *TLSCertificate) DeepCopyInto(out *TLSCertificate)

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

type TLSCertificateType added in v1.15.0

type TLSCertificateType string
const (
	TLSCertificateTypeOperatorManaged TLSCertificateType = "OperatorManaged"
	TLSCertificateTypeUserManaged     TLSCertificateType = "UserManaged"
)

type UserManagedTLSCertificateOptions added in v1.15.0

type UserManagedTLSCertificateOptions struct {
	// secretName references a kubernetes.io/tls type secret containing the TLS cert and key.
	SecretName string `json:"secretName"`
}

func (*UserManagedTLSCertificateOptions) DeepCopy added in v1.15.0

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

func (*UserManagedTLSCertificateOptions) DeepCopyInto added in v1.15.0

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