v1

package
v1.12.0 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2024 License: Apache-2.0 Imports: 4 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: "v1"}

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

type AlternatorSpec struct {
	// port is the port number used to bind the Alternator API.
	// Deprecated: `port` is deprecated and may be ignored in the future.
	// Please make sure to avoid using hostNetworking and work with standard Kubernetes concepts like Services.
	Port int32 `json:"port,omitempty"`

	// writeIsolation indicates the isolation level.
	WriteIsolation string `json:"writeIsolation,omitempty"`

	// insecureEnableHTTP enables serving Alternator traffic also on insecure HTTP port.
	// +optional
	InsecureEnableHTTP *bool `json:"insecureEnableHTTP,omitempty"`

	// insecureDisableAuthorization disables Alternator authorization.
	// If not specified, the authorization is enabled.
	// For backwards compatibility the authorization is disabled when this field is not specified
	// and a manual port is used.
	// +optional
	InsecureDisableAuthorization *bool `json:"insecureDisableAuthorization,omitempty"`

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

func (*AlternatorSpec) DeepCopy

func (in *AlternatorSpec) DeepCopy() *AlternatorSpec

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

func (*AlternatorSpec) DeepCopyInto

func (in *AlternatorSpec) DeepCopyInto(out *AlternatorSpec)

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

type BackupTaskSpec

type BackupTaskSpec struct {
	SchedulerTaskSpec `json:",inline"`

	// dc is a list of datacenter glob patterns, e.g. 'dc1,!otherdc*' used to specify the DCs
	// to include or exclude from backup.
	// +optional
	DC []string `json:"dc,omitempty" mapstructure:"dc,omitempty"`

	// keyspace is a list of keyspace/tables glob patterns,
	// e.g. 'keyspace,!keyspace.table_prefix_*' used to include or exclude keyspaces from repair.
	// +optional
	Keyspace []string `json:"keyspace,omitempty" mapstructure:"keyspace,omitempty"`

	// location is a list of backup locations in the format [<dc>:]<provider>:<name> ex. s3:my-bucket.
	// The <dc>: part is optional and is only needed when different datacenters are being used to upload data
	// to different locations. <name> must be an alphanumeric string and may contain a dash and or a dot,
	// but other characters are forbidden.
	// The only supported storage <provider> at the moment are s3 and gcs.
	Location []string `json:"location" mapstructure:"location,omitempty"`

	// rateLimit is a list of megabytes (MiB) per second rate limits expressed in the format [<dc>:]<limit>.
	// The <dc>: part is optional and only needed when different datacenters need different upload limits.
	// Set to 0 for no limit (default 100).
	// +optional
	RateLimit []string `json:"rateLimit,omitempty" mapstructure:"rate_limit,omitempty"`

	// retention is the number of backups which are to be stored.
	// +kubebuilder:default:=3
	// +optional
	Retention int64 `json:"retention,omitempty" mapstructure:"retention,omitempty"`

	// snapshotParallel is a list of snapshot parallelism limits in the format [<dc>:]<limit>.
	// The <dc>: part is optional and allows for specifying different limits in selected datacenters.
	// If The <dc>: part is not set, the limit is global (e.g. 'dc1:2,5') the runs are parallel in n nodes (2 in dc1)
	// and n nodes in all the other datacenters.
	// +optional
	SnapshotParallel []string `json:"snapshotParallel,omitempty" mapstructure:"snapshot_parallel,omitempty"`

	// uploadParallel is a list of upload parallelism limits in the format [<dc>:]<limit>.
	// The <dc>: part is optional and allows for specifying different limits in selected datacenters.
	// If The <dc>: part is not set the limit is global (e.g. 'dc1:2,5') the runs are parallel in n nodes (2 in dc1)
	// and n nodes in all the other datacenters.
	// +optional
	UploadParallel []string `json:"uploadParallel,omitempty" mapstructure:"upload_parallel,omitempty"`
}

func (*BackupTaskSpec) DeepCopy

func (in *BackupTaskSpec) DeepCopy() *BackupTaskSpec

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

func (*BackupTaskSpec) DeepCopyInto

func (in *BackupTaskSpec) DeepCopyInto(out *BackupTaskSpec)

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

type BackupTaskStatus

type BackupTaskStatus struct {
	BackupTaskSpec `json:",inline"`

	// id is the identification number of the backup task.
	ID string `json:"id"`

	// error holds the backup task error, if any.
	Error string `json:"error"`
}

func (*BackupTaskStatus) DeepCopy

func (in *BackupTaskStatus) DeepCopy() *BackupTaskStatus

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

func (*BackupTaskStatus) DeepCopyInto

func (in *BackupTaskStatus) DeepCopyInto(out *BackupTaskStatus)

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

type BroadcastAddressType added in v1.11.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.11.0

type BroadcastOptions struct {
	// type of the address 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.11.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.11.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 CQLExposeOptions added in v1.8.0

type CQLExposeOptions struct {
	// ingress is an Ingress configuration options.
	// EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field.
	// +optional
	Ingress *IngressOptions `json:"ingress,omitempty"`
}

CQLExposeOptions hold options related to exposing CQL backend. EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field.

func (*CQLExposeOptions) DeepCopy added in v1.8.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.8.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 DatacenterSpec

type DatacenterSpec struct {
	// name is the name of the scylla datacenter. Used in the cassandra-rackdc.properties file.
	Name string `json:"name"`

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

DatacenterSpec is the desired state for a Scylla Datacenter.

func (*DatacenterSpec) DeepCopy

func (in *DatacenterSpec) DeepCopy() *DatacenterSpec

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

func (*DatacenterSpec) DeepCopyInto

func (in *DatacenterSpec) DeepCopyInto(out *DatacenterSpec)

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

type ExposeOptions added in v1.8.0

type ExposeOptions struct {
	// cql specifies expose options for CQL SSL backend.
	// EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field.
	// +optional
	CQL *CQLExposeOptions `json:"cql,omitempty"`

	// nodeService controls properties of Service dedicated for each ScyllaCluster 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 ScyllaCluster backends. EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field.

func (*ExposeOptions) DeepCopy added in v1.8.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.8.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 GenericUpgradeFailureStrategy

type GenericUpgradeFailureStrategy string

GenericUpgradeFailureStrategy allows to specify how upgrade logic should handle failures.

const (
	// GenericUpgradeFailureStrategyRetry infinitely retries until node becomes ready.
	GenericUpgradeFailureStrategyRetry GenericUpgradeFailureStrategy = "Retry"
)

type GenericUpgradeSpec

type GenericUpgradeSpec struct {
	// failureStrategy specifies which logic is executed when upgrade failure happens.
	// Currently only Retry is supported.
	// +kubebuilder:default:="Retry"
	// +optional
	FailureStrategy GenericUpgradeFailureStrategy `json:"failureStrategy,omitempty"`

	// pollInterval specifies how often upgrade logic polls on state updates.
	// Increasing this value should lower number of requests sent to apiserver, but it may affect
	// overall time spent during upgrade.
	// +kubebuilder:default:="1s"
	// +optional
	// DEPRECATED.
	PollInterval metav1.Duration `json:"pollInterval,omitempty"`
}

GenericUpgradeSpec hold generic upgrade procedure parameters.

func (*GenericUpgradeSpec) DeepCopy

func (in *GenericUpgradeSpec) DeepCopy() *GenericUpgradeSpec

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

func (*GenericUpgradeSpec) DeepCopyInto

func (in *GenericUpgradeSpec) DeepCopyInto(out *GenericUpgradeSpec)

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

type IngressOptions added in v1.8.0

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

	// disabled controls if Ingress object creation is disabled.
	// Unless disabled, there is an Ingress objects created for every Scylla node.
	// EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field.
	// +optional
	Disabled *bool `json:"disabled,omitempty"`

	// ingressClassName specifies Ingress class name.
	// EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field.
	// +optional
	IngressClassName string `json:"ingressClassName,omitempty"`
}

IngressOptions defines configuration options for Ingress objects associated with cluster nodes. EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field.

func (*IngressOptions) DeepCopy added in v1.8.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.8.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 Network

type Network struct {
	// hostNetworking determines if scylla uses the host's network namespace. Setting this option
	// avoids going through Kubernetes SDN and exposes scylla on node's IP.
	HostNetworking bool `json:"hostNetworking,omitempty"`

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

func (*Network) DeepCopy

func (in *Network) DeepCopy() *Network

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

func (*Network) DeepCopyInto

func (in *Network) DeepCopyInto(out *Network)

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

func (Network) GetDNSPolicy

func (s Network) GetDNSPolicy() corev1.DNSPolicy

type NodeBroadcastOptions added in v1.11.0

type NodeBroadcastOptions struct {
	// nodes specifies 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:"ServiceClusterIP"}
	Nodes BroadcastOptions `json:"nodes"`

	// clients specifies 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:"ServiceClusterIP"}
	Clients BroadcastOptions `json:"clients"`
}

NodeBroadcastOptions hold options related to addresses broadcasted by ScyllaDB node.

func (*NodeBroadcastOptions) DeepCopy added in v1.11.0

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

func (*NodeBroadcastOptions) DeepCopyInto added in v1.11.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 NodeServiceTemplate added in v1.11.0

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

	// type is the Kubernetes Service type.
	// +kubebuilder:validation:Required
	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.11.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.11.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.11.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.12.0

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

	// annotations is 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.12.0

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

func (*ObjectTemplateMetadata) DeepCopyInto added in v1.12.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.12.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.12.0

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

func (*OperatorManagedTLSCertificateOptions) DeepCopyInto added in v1.12.0

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

type PlacementSpec

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

func (*PlacementSpec) DeepCopy

func (in *PlacementSpec) DeepCopy() *PlacementSpec

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

func (*PlacementSpec) DeepCopyInto

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.11.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.11.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.11.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.11.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.11.0

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

func (*PodIPInterfaceOptions) DeepCopyInto added in v1.11.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.11.0

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

type RackCondition

type RackCondition struct {
	// type holds the condition type.
	Type RackConditionType `json:"type"`

	// status represent condition status.
	Status corev1.ConditionStatus `json:"status"`
}

RackCondition is an observation about the state of a rack.

func (*RackCondition) DeepCopy

func (in *RackCondition) DeepCopy() *RackCondition

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

func (*RackCondition) DeepCopyInto

func (in *RackCondition) DeepCopyInto(out *RackCondition)

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

type RackConditionType

type RackConditionType string
const (
	RackConditionTypeMemberLeaving         RackConditionType = "MemberLeaving"
	RackConditionTypeUpgrading             RackConditionType = "RackUpgrading"
	RackConditionTypeMemberReplacing       RackConditionType = "MemberReplacing"
	RackConditionTypeMemberDecommissioning RackConditionType = "MemberDecommissioning"
)

type RackSpec

type RackSpec struct {
	// name is the name of the Scylla Rack. Used in the cassandra-rackdc.properties file.
	Name string `json:"name"`

	// members is the number of Scylla instances in this rack.
	Members int32 `json:"members"`

	// storage describes the underlying storage that Scylla will consume.
	Storage Storage `json:"storage"`

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

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

	// agentResources specify the resources for the Agent container.
	// +kubebuilder:default:={requests: {cpu: "50m", memory: "10M"}}
	// +optional
	AgentResources corev1.ResourceRequirements `json:"agentResources,omitempty"`

	// Volumes added to Scylla Pod.
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"`

	// VolumeMounts to be added to Scylla container.
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"mountPath"`

	// AgentVolumeMounts to be added to Agent container.
	AgentVolumeMounts []corev1.VolumeMount `json:"agentVolumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"mountPath"`

	// Scylla config map name to customize scylla.yaml
	ScyllaConfig string `json:"scyllaConfig"`

	// Scylla config map name to customize scylla manager agent
	ScyllaAgentConfig string `json:"scyllaAgentConfig"`
}

RackSpec is the desired state for a Scylla Rack.

func (*RackSpec) DeepCopy

func (in *RackSpec) DeepCopy() *RackSpec

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

func (*RackSpec) DeepCopyInto

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

type RackStatus struct {
	// version is the current version of Scylla in use.
	Version string `json:"version"`

	// members is the current number of members requested in the specific Rack
	Members int32 `json:"members"`

	// readyMembers is the number of ready members in the specific Rack
	ReadyMembers int32 `json:"readyMembers"`

	// availableMembers is the number of available members in the Rack.
	// +optional
	AvailableMembers *int32 `json:"availableMembers,omitempty"`

	// updatedMembers is the number of members matching the current spec.
	// +optional
	UpdatedMembers *int32 `json:"updatedMembers,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"`

	// conditions are the latest available observations of a rack's state.
	Conditions []RackCondition `json:"conditions,omitempty"`

	// replace_address_first_boot holds addresses which should be replaced by new nodes.
	// DEPRECATED: since Scylla Operator 1.10 it's only used for deprecated replace node procedure (ScyllaDB OS <5.2, Enterprise <2023.1).
	//             With Scylla Operator 1.11+ this field may be empty.
	ReplaceAddressFirstBoot map[string]string `json:"replace_address_first_boot,omitempty"`
}

RackStatus is the status of a Scylla Rack

func (*RackStatus) DeepCopy

func (in *RackStatus) DeepCopy() *RackStatus

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

func (*RackStatus) DeepCopyInto

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

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

type RepairTaskSpec

type RepairTaskSpec struct {
	SchedulerTaskSpec `json:",inline"`

	// dc is a list of datacenter glob patterns, e.g. 'dc1', '!otherdc*' used to specify the DCs
	// to include or exclude from backup.
	DC []string `json:"dc,omitempty" mapstructure:"dc,omitempty"`

	// failFast indicates if a repair should be stopped on first error.
	// +optional
	FailFast bool `json:"failFast,omitempty" mapstructure:"fail_fast,omitempty"`

	// intensity indicates how many token ranges (per shard) to repair in a single Scylla repair job. By default this is 1.
	// If you set it to 0 the number of token ranges is adjusted to the maximum supported by node (see max_repair_ranges_in_parallel in Scylla logs).
	// Valid values are 0 and integers >= 1. Higher values will result in increased cluster load and slightly faster repairs.
	// Changing the intensity impacts repair granularity if you need to resume it, the higher the value the more work on resume.
	// For Scylla clusters that *do not support row-level repair*, intensity can be a decimal between (0,1).
	// In that case it specifies percent of shards that can be repaired in parallel on a repair master node.
	// For Scylla clusters that are row-level repair enabled, setting intensity below 1 has the same effect as setting intensity 1.
	// +kubebuilder:default:="1"
	// +optional
	Intensity string `json:"intensity,omitempty" mapstructure:"intensity,omitempty"`

	// parallel is the maximum number of Scylla repair jobs that can run at the same time (on different token ranges and replicas).
	// Each node can take part in at most one repair at any given moment. By default the maximum possible parallelism is used.
	// The effective parallelism depends on a keyspace replication factor (RF) and the number of nodes.
	// The formula to calculate it is as follows: number of nodes / RF, ex. for 6 node cluster with RF=3 the maximum parallelism is 2.
	// +kubebuilder:default:=0
	// +optional
	Parallel int64 `json:"parallel,omitempty" mapstructure:"parallel,omitempty"`

	// keyspace is a list of keyspace/tables glob patterns, e.g. 'keyspace,!keyspace.table_prefix_*'
	// used to include or exclude keyspaces from repair.
	Keyspace []string `json:"keyspace,omitempty" mapstructure:"keyspace,omitempty"`

	// smallTableThreshold enable small table optimization for tables of size lower than given threshold.
	// Supported units [B, MiB, GiB, TiB].
	// +kubebuilder:default:="1GiB"
	// +optional
	SmallTableThreshold string `json:"smallTableThreshold,omitempty" mapstructure:"small_table_threshold,omitempty"`

	// host specifies a host to repair. If empty, all hosts are repaired.
	Host *string `json:"host,omitempty" mapstructure:"host,omitempty"`
}

func (*RepairTaskSpec) DeepCopy

func (in *RepairTaskSpec) DeepCopy() *RepairTaskSpec

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

func (*RepairTaskSpec) DeepCopyInto

func (in *RepairTaskSpec) DeepCopyInto(out *RepairTaskSpec)

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

type RepairTaskStatus

type RepairTaskStatus struct {
	RepairTaskSpec `json:",inline" mapstructure:",squash"`

	// id is the identification number of the repair task.
	ID string `json:"id"`

	// error holds the repair task error, if any.
	Error string `json:"error"`
}

func (*RepairTaskStatus) DeepCopy

func (in *RepairTaskStatus) DeepCopy() *RepairTaskStatus

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

func (*RepairTaskStatus) DeepCopyInto

func (in *RepairTaskStatus) DeepCopyInto(out *RepairTaskStatus)

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

type SchedulerTaskSpec

type SchedulerTaskSpec struct {
	// name is a unique name of a task.
	Name string `json:"name"`

	// startDate specifies the task start date expressed in the RFC3339 format or now[+duration],
	// e.g. now+3d2h10m, valid units are d, h, m, s.
	// +kubebuilder:default:="now"
	// +optional
	StartDate string `json:"startDate,omitempty"`

	// interval represents a task schedule interval e.g. 3d2h10m, valid units are d, h, m, s.
	// +optional
	// +kubebuilder:default:="0"
	Interval string `json:"interval,omitempty"`

	// numRetries indicates how many times a scheduled task will be retried before failing.
	// +kubebuilder:default:=3
	// +optional
	NumRetries *int64 `json:"numRetries,omitempty"`
}

func (*SchedulerTaskSpec) DeepCopy

func (in *SchedulerTaskSpec) DeepCopy() *SchedulerTaskSpec

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

func (*SchedulerTaskSpec) DeepCopyInto

func (in *SchedulerTaskSpec) DeepCopyInto(out *SchedulerTaskSpec)

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

type ScyllaCluster

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

	// spec defines the desired state of this scylla cluster.
	Spec ScyllaClusterSpec `json:"spec,omitempty"`

	// status is the current status of this scylla cluster.
	Status ScyllaClusterStatus `json:"status,omitempty"`
}

ScyllaCluster defines a Scylla cluster.

func (*ScyllaCluster) DeepCopy

func (in *ScyllaCluster) DeepCopy() *ScyllaCluster

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

func (*ScyllaCluster) DeepCopyInto

func (in *ScyllaCluster) DeepCopyInto(out *ScyllaCluster)

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

func (*ScyllaCluster) DeepCopyObject

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

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

type ScyllaClusterList

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

ScyllaClusterList holds a list of ScyllaClusters.

func (*ScyllaClusterList) DeepCopy

func (in *ScyllaClusterList) DeepCopy() *ScyllaClusterList

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

func (*ScyllaClusterList) DeepCopyInto

func (in *ScyllaClusterList) DeepCopyInto(out *ScyllaClusterList)

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

func (*ScyllaClusterList) DeepCopyObject

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

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

type ScyllaClusterSpec added in v1.4.0

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

	// version is a version tag of Scylla to use.
	Version string `json:"version"`

	// repository is the image repository to pull the Scylla image from.
	// +kubebuilder:default:="docker.io/scylladb/scylla"
	// +optional
	Repository string `json:"repository,omitempty"`

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

	// agentVersion indicates the version of Scylla Manager Agent to use.
	// +kubebuilder:default:="latest"
	// +optional
	AgentVersion string `json:"agentVersion"`

	// agentRepository is the repository to pull the agent image from.
	// +kubebuilder:default:="docker.io/scylladb/scylla-manager-agent"
	// +optional
	AgentRepository string `json:"agentRepository,omitempty"`

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

	// cpuset determines if the cluster will use cpu-pinning for max performance.
	// +optional
	CpuSet bool `json:"cpuset,omitempty"`

	// automaticOrphanedNodeCleanup controls if automatic orphan node cleanup should be performed.
	AutomaticOrphanedNodeCleanup bool `json:"automaticOrphanedNodeCleanup,omitempty"`

	// genericUpgrade allows to configure behavior of generic upgrade logic.
	// +optional
	GenericUpgrade *GenericUpgradeSpec `json:"genericUpgrade,omitempty"`

	// datacenter holds a specification of a datacenter.
	Datacenter DatacenterSpec `json:"datacenter"`

	// sysctls holds the sysctl properties to be applied during initialization given as a list of key=value pairs.
	// Example: fs.aio-max-nr=232323
	// +optional
	Sysctls []string `json:"sysctls,omitempty"`

	// scyllaArgs will be appended to Scylla binary during startup.
	// This is supported from 4.2.0 Scylla version.
	// +optional
	ScyllaArgs string `json:"scyllaArgs,omitempty"`

	// network holds the networking config.
	// +optional
	Network Network `json:"network,omitempty"`

	// repairs specify repair tasks in Scylla Manager.
	// When Scylla Manager is not installed, these will be ignored.
	// +optional
	Repairs []RepairTaskSpec `json:"repairs,omitempty"`

	// backups specifies backup tasks in Scylla Manager.
	// When Scylla Manager is not installed, these will be ignored.
	// +optional
	Backups []BackupTaskSpec `json:"backups,omitempty"`

	// forceRedeploymentReason can be used to force a rolling update of all racks by providing a unique string.
	// +optional
	ForceRedeploymentReason string `json:"forceRedeploymentReason,omitempty"`

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

	// dnsDomains is a list of DNS domains this cluster is reachable by.
	// These domains are used when setting up the infrastructure, like certificates.
	// EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field.
	// +optional
	DNSDomains []string `json:"dnsDomains,omitempty"`

	// exposeOptions specifies options for exposing ScyllaCluster services.
	// EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field.
	// +optional
	ExposeOptions *ExposeOptions `json:"exposeOptions,omitempty"`

	// externalSeeds specifies the external seeds to propagate to ScyllaDB binary on startup as "seeds" parameter of seed-provider.
	ExternalSeeds []string `json:"externalSeeds,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 is 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"`
}

ScyllaClusterSpec defines the desired state of Cluster.

func (*ScyllaClusterSpec) DeepCopy added in v1.4.0

func (in *ScyllaClusterSpec) DeepCopy() *ScyllaClusterSpec

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

func (*ScyllaClusterSpec) DeepCopyInto added in v1.4.0

func (in *ScyllaClusterSpec) DeepCopyInto(out *ScyllaClusterSpec)

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

type ScyllaClusterStatus added in v1.4.0

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

	// racks reflect status of cluster racks.
	Racks map[string]RackStatus `json:"racks,omitempty"`

	// members is the number of ScyllaDB members in all racks.
	// +optional
	Members *int32 `json:"members,omitempty"`

	// readyMembers is the number of ScyllaDB members in all racks that are ready.
	// +optional
	ReadyMembers *int32 `json:"readyMembers,omitempty"`

	// availableMembers is the number of ScyllaDB members in all racks that are available.
	// +optional
	AvailableMembers *int32 `json:"availableMembers,omitempty"`

	// rackCount is the number of ScyllaDB racks in this cluster.
	// +optional
	RackCount *int32 `json:"rackCount,omitempty"`

	// managerId contains ID under which cluster was registered in Scylla Manager.
	ManagerID *string `json:"managerId,omitempty"`

	// repairs reflects status of repair tasks.
	Repairs []RepairTaskStatus `json:"repairs,omitempty"`

	// backups reflects status of backup tasks.
	Backups []BackupTaskStatus `json:"backups,omitempty"`

	// upgrade reflects state of ongoing upgrade procedure.
	Upgrade *UpgradeStatus `json:"upgrade,omitempty"`

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

ScyllaClusterStatus defines the observed state of ScyllaCluster.

func (*ScyllaClusterStatus) DeepCopy added in v1.4.0

func (in *ScyllaClusterStatus) DeepCopy() *ScyllaClusterStatus

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

func (*ScyllaClusterStatus) DeepCopyInto added in v1.4.0

func (in *ScyllaClusterStatus) DeepCopyInto(out *ScyllaClusterStatus)

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

type Storage added in v1.12.0

type Storage 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 is the name of a storageClass to request.
	// +optional
	StorageClassName *string `json:"storageClassName,omitempty"`
}

func (*Storage) DeepCopy added in v1.12.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.12.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 TLSCertificate added in v1.12.0

type TLSCertificate struct {
	// type determines the source of this certificate.
	// +kubebuilder:validation:Enum="OperatorManaged";"UserManaged"
	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.12.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.12.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.12.0

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

type UpgradeStatus

type UpgradeStatus struct {
	// state reflects current upgrade state.
	State string `json:"state"`

	// currentNode node under upgrade.
	// DEPRECATED.
	CurrentNode string `json:"currentNode,omitempty"`

	// currentRack rack under upgrade.
	// DEPRECATED.
	CurrentRack string `json:"currentRack,omitempty"`

	// fromVersion reflects from which version ScyllaCluster is being upgraded.
	FromVersion string `json:"fromVersion"`

	// toVersion reflects to which version ScyllaCluster is being upgraded.
	ToVersion string `json:"toVersion"`

	// systemSnapshotTag is the snapshot tag of system keyspaces.
	SystemSnapshotTag string `json:"systemSnapshotTag,omitempty"`

	// dataSnapshotTag is the snapshot tag of data keyspaces.
	DataSnapshotTag string `json:"dataSnapshotTag,omitempty"`
}

UpgradeStatus contains the internal state of an ongoing upgrade procedure. Do not rely on these internal values externally. They are meant for keeping an internal state and their values are subject to change within the limits of API compatibility.

func (*UpgradeStatus) DeepCopy

func (in *UpgradeStatus) DeepCopy() *UpgradeStatus

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

func (*UpgradeStatus) DeepCopyInto

func (in *UpgradeStatus) DeepCopyInto(out *UpgradeStatus)

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

type UserManagedTLSCertificateOptions added in v1.12.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.12.0

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

func (*UserManagedTLSCertificateOptions) DeepCopyInto added in v1.12.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