v1alpha1

package
v1.15.0 Latest Latest
Warning

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

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

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the k8ssandra.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=k8ssandra.io

Index

Constants

View Source
const (
	ResourceHashAnnotation = "k8ssandra.io/resource-hash"

	// PerNodeConfigHashAnnotation is the annotation used to store the hash of the per-node
	// ConfigMap into the PodTemplateSpec of the CassandraDatacenter resource. By storing the
	// ConfigMap hash, the PodTemplateSpec changes when the ConfigMap changes, thus allowing the
	// changes to the ConfigMap to be properly detected and applied.
	PerNodeConfigHashAnnotation = "k8ssandra.io/per-node-config-hash"

	// InitialSystemReplicationAnnotation provides the initial replication of system keyspaces
	// (system_auth, system_distributed, system_traces) encoded as JSON. This annotation
	// is set on a K8ssandraCluster when it is first created. The value does not change
	// regardless of whether the replication of the system keyspaces changes.
	InitialSystemReplicationAnnotation = "k8ssandra.io/initial-system-replication"

	// DcReplicationAnnotation tells the operator the replication settings to apply to user
	// keyspaces when adding a DC to an existing cluster. The value should be serialized
	// JSON, e.g., {"dc2": {"ks1": 3, "ks2": 3}}. All user keyspaces must be specified;
	// otherwise, reconciliation will fail with a validation error. If you do not want to
	// replicate a particular keyspace, specify a value of 0. Replication settings can be
	// specified for multiple DCs; however, existing DCs won't be modified, and only the DC
	// currently being added will be updated. Specifying multiple DCs can be useful though
	// if you add multiple DCs to the cluster at once (Note that the CassandraDatacenters
	// are still deployed serially).
	DcReplicationAnnotation = "k8ssandra.io/dc-replication"

	// RebuildSourceDcAnnotation tells the operation the DC from which to stream when
	// rebuilding a DC. If not set the operator will choose the first DC. The value for
	// this annotation must specify the name of a CassandraDatacenter whose Ready
	// condition is true.
	RebuildSourceDcAnnotation = "k8ssandra.io/rebuild-src-dc"

	RebuildDcAnnotation = "k8ssandra.io/rebuild-dc"

	NameLabel      = "app.kubernetes.io/name"
	NameLabelValue = "k8ssandra-operator"

	ManagedByLabel = "app.kubernetes.io/managed-by"

	ComponentLabel               = "app.kubernetes.io/component"
	ComponentLabelValueCassandra = "cassandra"
	ComponentLabelValueStargate  = "stargate"
	ComponentLabelValueReaper    = "reaper"
	ComponentLabelTelemetry      = "telemetry"

	PartOfLabel      = "app.kubernetes.io/part-of"
	PartOfLabelValue = "k8ssandra"

	// ReplicatedByLabel is used to label secrets that should be selected for replication by a ReplicatedSecret.
	ReplicatedByLabel      = "k8ssandra.io/replicated-by"
	ReplicatedByLabelValue = "k8ssandracluster-controller"

	CleanedUpByLabel      = "k8ssandra.io/cleaned-up-by"
	CleanedUpByLabelValue = "k8ssandracluster-controller"

	K8ssandraClusterNameLabel      = "k8ssandra.io/cluster-name"
	K8ssandraClusterNamespaceLabel = "k8ssandra.io/cluster-namespace"

	DatacenterLabel = "k8ssandra.io/datacenter"
	// Forces refresh of secrets which relate to roles and authn in Cassandra.
	RefreshAnnotation = "k8ssandra.io/refresh"

	// Annotation to indicate the purpose of a given resource.
	PurposeAnnotation = "k8ssandra.io/purpose"
)
View Source
const (
	ServerDistributionCassandra = ServerDistribution("cassandra")
	ServerDistributionDse       = ServerDistribution("dse")
)

Variables

View Source
var (
	SystemKeyspaces = []string{"system_traces", "system_distributed", "system_auth"}
	DseKeyspaces    = []string{"dse_leases", "dse_perf", "dse_security"}
)
View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "k8ssandra.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	ErrNumTokens       = fmt.Errorf("num_tokens value can't be changed")
	ErrReaperKeyspace  = fmt.Errorf("reaper keyspace can not be changed")
	ErrNoStorageConfig = fmt.Errorf("storageConfig must be defined at cluster level or dc level")
	ErrNoResourcesSet  = fmt.Errorf("softPodAntiAffinity requires Resources to be set")
	ErrClusterName     = fmt.Errorf("cluster name can not be changed")
	ErrNoStoragePrefix = fmt.Errorf("medusa storage prefix must be set when a medusaConfigurationRef is used")
)

Functions

This section is empty.

Types

type AuditLogOptions

type AuditLogOptions struct {
	Enabled            bool                `json:"enabled" cass-config:"enabled;retainzero"`
	Logger             *ParameterizedClass `json:"logger,omitempty" cass-config:"logger;recurse"`
	IncludedKeyspaces  *string             `json:"included_keyspaces,omitempty" cass-config:"included_keyspaces"`
	ExcludedKeyspaces  *string             `json:"excluded_keyspaces,omitempty" cass-config:"excluded_keyspaces"`
	IncludedCategories *string             `json:"included_categories,omitempty" cass-config:"included_categories"`
	ExcludedCategories *string             `json:"excluded_categories,omitempty" cass-config:"excluded_categories"`
	IncludedUsers      *string             `json:"included_users,omitempty" cass-config:"included_users"`
	ExcludedUsers      *string             `json:"excluded_users,omitempty" cass-config:"excluded_users"`
	RollCycle          *string             `json:"roll_cycle,omitempty" cass-config:"roll_cycle"`
	Block              *bool               `json:"block,omitempty" cass-config:"block"`
	MaxQueueWeight     *int                `json:"max_queue_weight,omitempty" cass-config:"max_queue_weight"`
	MaxLogSize         *int                `json:"max_log_size,omitempty" cass-config:"max_log_size"`
	ArchiveCommand     *string             `json:"archive_command,omitempty" cass-config:"archive_command"`
	MaxArchiveRetries  *int                `json:"max_archive_retries,omitempty" cass-config:"max_archive_retries"`
}

func (*AuditLogOptions) DeepCopy

func (in *AuditLogOptions) DeepCopy() *AuditLogOptions

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

func (*AuditLogOptions) DeepCopyInto

func (in *AuditLogOptions) DeepCopyInto(out *AuditLogOptions)

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

type CassandraClusterTemplate

type CassandraClusterTemplate struct {
	DatacenterOptions `json:",inline"`

	Meta meta.CassandraClusterMeta `json:"metadata,omitempty"`

	// The reference to the superuser secret to use for Cassandra. If unspecified, a default secret will be generated
	// with a random password; the generated secret name will be "<cluster_name>-superuser" where <cluster_name> is the
	// K8ssandraCluster CRD name.
	// +optional
	SuperuserSecretRef corev1.LocalObjectReference `json:"superuserSecretRef,omitempty"`

	// Datacenters a list of the DCs in the cluster.
	// +optional
	Datacenters []CassandraDatacenterTemplate `json:"datacenters,omitempty"`

	// AdditionalSeeds specifies Cassandra node IPs for an existing datacenter. This is
	// primarily intended for migrations from an existing Cassandra cluster that is not
	// managed by k8ssandra-operator. Note that this property should NOT be used to set
	// seeds for a DC that is or will be managed by k8ssandra-operator. k8ssandra-operator
	// already manages seeds for DCs that it manages. If you have DNS set up such that you
	// can resolve hostnames for the remote Cassandra cluster, then you can specify hostnames
	// here; otherwise, use IP addresses.
	AdditionalSeeds []string `json:"additionalSeeds,omitempty"`

	// Internode encryption stores which are used by Cassandra and Stargate.
	// +optional
	ServerEncryptionStores *encryption.Stores `json:"serverEncryptionStores,omitempty"`

	// Client encryption stores which are used by Cassandra and Reaper.
	// +optional
	ClientEncryptionStores *encryption.Stores `json:"clientEncryptionStores,omitempty"`

	// Override the Cassandra cluster name. If unspecified, the cluster name will be the same as the K8ssandraCluster
	// CRD name.
	// +optional
	ClusterName string `json:"clusterName,omitempty"`

	// Server type: "cassandra" or "dse".
	// +kubebuilder:validation:Enum=cassandra;dse
	// +kubebuilder:default=cassandra
	ServerType ServerDistribution `json:"serverType,omitempty"`
}

func (*CassandraClusterTemplate) DeepCopy

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

func (*CassandraClusterTemplate) DeepCopyInto

func (in *CassandraClusterTemplate) DeepCopyInto(out *CassandraClusterTemplate)

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

type CassandraConfig

type CassandraConfig struct {
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	CassandraYaml unstructured.Unstructured `json:"cassandraYaml,omitempty"`

	// +optional
	JvmOptions JvmOptions `json:"jvmOptions,omitempty"`

	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	DseYaml unstructured.Unstructured `json:"dseYaml,omitempty"`
}

func (*CassandraConfig) DeepCopy

func (in *CassandraConfig) DeepCopy() *CassandraConfig

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

func (*CassandraConfig) DeepCopyInto

func (in *CassandraConfig) DeepCopyInto(out *CassandraConfig)

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

type CassandraDatacenterTemplate

type CassandraDatacenterTemplate struct {
	Meta EmbeddedObjectMeta `json:"metadata,omitempty"`

	K8sContext string `json:"k8sContext,omitempty"`

	DatacenterOptions `json:",inline"`

	// Size is the number Cassandra pods to deploy in this datacenter.
	// This number does not include Stargate instances.
	// +kubebuilder:validation:Minimum=1
	Size int32 `json:"size"`

	// Stopped means that the datacenter will be stopped. Use this for maintenance or for cost saving. A stopped
	// CassandraDatacenter will have no running server pods, like using "stop" with  traditional System V init scripts.
	// Other Kubernetes resources will be left intact, and volumes will re-attach when the CassandraDatacenter
	// workload is resumed.
	// +optional
	// +kubebuilder:default=false
	Stopped bool `json:"stopped,omitempty"`

	// Stargate defines the desired deployment characteristics for Stargate in this datacenter. Leave nil to skip
	// deploying Stargate in this datacenter.
	// +optional
	Stargate *stargateapi.StargateDatacenterTemplate `json:"stargate,omitempty"`

	// PerNodeConfigMapRef is a reference to a ConfigMap that contains per-node configuration for
	// this DC. The ConfigMap is expected to have entries in the following form:
	// <pod-name>_<file-name>.yaml, where <pod-name> is the name of the pod and <file-name> is the
	// name of a configuration file (typically, cassandra.yaml). The value of the entry is expected
	// to be a YAML fragment that contains the per-node configuration for each pod. When the pod is
	// started, the per-node ConfigMap is mounted and the contents of each entry corresponding to
	// the pod are merged into their respective configuration files.
	// +optional
	PerNodeConfigMapRef corev1.LocalObjectReference `json:"perNodeConfigMapRef,omitempty"`
}

func (*CassandraDatacenterTemplate) CassDcName added in v1.9.0

func (in *CassandraDatacenterTemplate) CassDcName() string

CassDcName returns the Cassandra datacenter name override if it exists, otherwise the cassdc object name.

func (*CassandraDatacenterTemplate) DeepCopy

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

func (*CassandraDatacenterTemplate) DeepCopyInto

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

type DatacenterOptions added in v1.1.0

type DatacenterOptions struct {
	// ServerVersion is the Cassandra or DSE version. The following versions are supported:
	// - Cassandra: 3.11.X, 4.X.X and 5.X.X
	// - DSE: 6.8.X, 7.x.x
	// +kubebuilder:validation:Pattern=(6\.8\.\d+)|(3\.11\.\d+)|(4\.\d+\.\d+)|(5\.\d+\.\d+)|(7\.\d+\.\d+)
	ServerVersion string `json:"serverVersion,omitempty"`

	// ServerImage is the image for the cassandra container. Note that this should be a
	// management-api image. If left empty the operator will choose a default image based
	// on ServerVersion.
	// +optional
	ServerImage string `json:"serverImage,omitempty"`

	// CassandraConfig contains configuration settings that are applied to cassandra.yaml, dse.yaml
	// and the various jvm*.options files.
	// +optional
	CassandraConfig *CassandraConfig `json:"config,omitempty"`

	// StorageConfig is the persistent storage requirements for each Cassandra pod. This
	// includes everything under /var/lib/cassandra, namely the commit log and data
	// directories.
	// +optional
	StorageConfig *cassdcapi.StorageConfig `json:"storageConfig,omitempty"`

	// Networking enables host networking and configures a NodePort ports.
	// +optional
	Networking *NetworkingConfig `json:"networking,omitempty"`

	// Resources is the cpu and memory resources for the cassandra container.
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// Racks is a list of named racks. Note that racks are used to create node affinity. //
	// +optional
	Racks []cassdcapi.Rack `json:"racks,omitempty"`

	// Deprecated: JMX security is now based on CQL roles. We don't need an init container to configure JMX
	// authentication anymore. The value of this field will be ignored.
	JmxInitContainerImage *images.Image `json:"jmxInitContainerImage,omitempty"`

	// SoftPodAntiAffinity sets whether multiple Cassandra instances can be scheduled on the same node.
	// This should normally be false to ensure cluster resilience but may be set true for test/dev scenarios to minimise
	// the number of nodes required.
	SoftPodAntiAffinity *bool `json:"softPodAntiAffinity,omitempty"`

	// Tolerations applied to every Cassandra pod.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// MgmtAPIHeap defines the amount of memory devoted to the management
	// api heap.
	// +optional
	MgmtAPIHeap *resource.Quantity `json:"mgmtAPIHeap,omitempty"`

	// Telemetry defines the desired state for telemetry resources in this datacenter.
	// If telemetry configurations are defined, telemetry resources will be deployed to integrate with
	// a user-provided monitoring solution (at present, only support for Prometheus is available).
	// +optional
	Telemetry *telemetryapi.TelemetrySpec `json:"telemetry,omitempty"`

	// CDC defines the desired state for CDC integrations. It can be used to feed mutation events from Cassandra into an Apache Pulsar cluster,
	// from where they can be expored to external systems.
	// +optional
	CDC *cassdcapi.CDCConfiguration `json:"cdc,omitempty"`

	// Containers defines containers to be deployed in each Cassandra pod.
	// K8ssandra-operator and cass-operator will create their own containers, which can be referenced here to override specific settings,
	// such as mounts or resources request/limits for example.
	// Example:
	//  containers:
	//  - name: server-system-logger
	//  - name: custom-container
	//    image: busybox
	//  - name: cassandra
	// +optional
	Containers []corev1.Container `json:"containers,omitempty"`

	// InitContainers defines init-containers to be deployed in each Cassandra pod.
	// K8ssandra-operator and cass-operator will create their own init-containers, which can be referenced here to control ordering or override specific settings
	// such as mounts or resources request/limits for example.
	// Only the name of the k8ssandra-operator/cass-operator init-containers is required, not their full definition which will be created by the operators.
	// Example:
	//  initContainers:
	//  - name: server-config-init
	//  - name: custom-init-container
	//    image: busybox
	//  - name: medusa-restore
	// Otherwise init-containers referenced here will be injected in first position
	// +optional
	InitContainers []corev1.Container `json:"initContainers,omitempty"`

	// Volumes defines additional volumes to be added to each Cassandra pod.
	// If the volume uses a PersistentVolumeClaim, the PVC will be managed by the statefulset.
	// +optional
	ExtraVolumes *K8ssandraVolumes `json:"extraVolumes,omitempty"`

	// +optional
	DseWorkloads *cassdcapi.DseWorkloads `json:"dseWorkloads,omitempty"`

	// PodSecurityContext defines the security context for the Cassandra pods.
	// +optional
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`

	// ManagementApiAuth defines the authentication settings for the management API in the Cassandra pods.
	// +optional
	ManagementApiAuth *cassdcapi.ManagementApiAuthConfig `json:"managementApiAuth,omitempty"`

	// The image to use in each Cassandra pod for the (short-lived) init container that merges global and perNodeConfig
	// configuration. This is only useful when PerNodeConfigMapRef is set.
	// The default is "mikefarah/yq:4".
	// +optional
	// +kubebuilder:default="mikefarah/yq:4"
	PerNodeConfigInitContainerImage string `json:"perNodeConfigInitContainerImage,omitempty"`

	// The k8s service account to use for the Cassandra pods
	ServiceAccount string `json:"serviceAccount,omitempty"`

	// DatacenterName allows to override the name of the Cassandra datacenter. Kubernetes objects will be named after a sanitized version of it if set, and if not metadata.name. In Cassandra the DC name will be overridden by this value.
	// It may generate some confusion as objects created for the DC will have a different name than the CasandraDatacenter object itself.
	// This setting can create conflicts if multiple DCs coexist in the same namespace if metadata.name for a DC with no override is set to the same value as the override name of another DC.
	// Use cautiously.
	// +optional
	DatacenterName string `json:"datacenterName,omitempty"`
}

DatacenterOptions are configuration settings that are can be set at the Cluster level and overridden for a single DC

func (*DatacenterOptions) DeepCopy added in v1.1.0

func (in *DatacenterOptions) DeepCopy() *DatacenterOptions

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

func (*DatacenterOptions) DeepCopyInto added in v1.1.0

func (in *DatacenterOptions) DeepCopyInto(out *DatacenterOptions)

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

type DecommissionProgress

type DecommissionProgress string
const (
	// CassandraInitialized is set to true when the Cassandra cluster becomes ready for
	// the first time. During the life time of the C* cluster CassandraDatacenters may have
	// their readiness condition change back and forth. Once set, this condition however
	// does not change.
	CassandraInitialized = "CassandraInitialized"

	DecommNone                DecommissionProgress = ""
	DecommUpdatingReplication DecommissionProgress = "UpdatingReplication"
	DecommDeleting            DecommissionProgress = "Decommissioning"
)

type EmbeddedObjectMeta

type EmbeddedObjectMeta struct {
	// +optional
	Namespace string `json:"namespace,omitempty"`

	Name string `json:"name"`

	// labels/annotations for the CassandraDatacenter component
	// +optional
	meta.Tags `json:",inline"`

	// labels that will be applied to all components
	// created by the CRD
	// +optional
	CommonLabels map[string]string `json:"commonLabels,omitempty"`

	// annotations that will be applied to all components
	// created by the CRD
	// +optional
	CommonAnnotations map[string]string `json:"commonAnnotations,omitempty"`

	// labels/annotations for the pod components
	// +optional
	Pods meta.Tags `json:"pods,omitempty"`

	// labels/annotations for all of the CassandraDatacenter service components
	ServiceConfig meta.CassandraDatacenterServicesMeta `json:"services,omitempty"`
}

func (*EmbeddedObjectMeta) DeepCopy

func (in *EmbeddedObjectMeta) DeepCopy() *EmbeddedObjectMeta

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

func (*EmbeddedObjectMeta) DeepCopyInto

func (in *EmbeddedObjectMeta) DeepCopyInto(out *EmbeddedObjectMeta)

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

type FullQueryLoggerOptions

type FullQueryLoggerOptions struct {
	ArchiveCommand    *string `json:"archive_command,omitempty" cass-config:"archive_command"`
	RollCycle         *string `json:"roll_cycle,omitempty" cass-config:"roll_cycle"`
	Block             *bool   `json:"block,omitempty" cass-config:"block"`
	MaxQueueWeight    *int    `json:"max_queue_weight,omitempty" cass-config:"max_queue_weight"`
	MaxLogSize        *int    `json:"max_log_size,omitempty" cass-config:"max_log_size"`
	MaxArchiveRetries *int    `json:"max_archive_retries,omitempty" cass-config:"max_archive_retries"`
	LogDir            *string `json:"log_dir,omitempty" cass-config:"log_dir"`
}

func (*FullQueryLoggerOptions) DeepCopy

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

func (*FullQueryLoggerOptions) DeepCopyInto

func (in *FullQueryLoggerOptions) DeepCopyInto(out *FullQueryLoggerOptions)

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

type JvmOptions

type JvmOptions struct {

	// Deprecated. Use heap_initial_size and heap_max_size instead. If this field is defined,
	// it applies to both max_heap_size and initial_heap_size.
	// +optional
	HeapSize *resource.Quantity `json:"heapSize,omitempty"`

	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Xms.
	// +optional
	InitialHeapSize *resource.Quantity `` /* 141-byte string literal not displayed */

	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Xmx.
	// +optional
	MaxHeapSize *resource.Quantity `` /* 129-byte string literal not displayed */

	// Enable assertions.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -ea.
	// +optional
	EnableAssertions *bool `` /* 144-byte string literal not displayed */

	// Enable thread priorities.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+UseThreadPriorities.
	// +optional
	EnableThreadPriorities *bool `` /* 159-byte string literal not displayed */

	// Enable lowering thread priority without being root on linux.
	// See CASSANDRA-1181 for details.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:ThreadPriorityPolicy=42.
	// +optional
	EnableNonRootThreadPriority *bool `json:"vm_enable_non_root_thread_priority,omitempty" cass-config:"^3.11.x:jvm-options/thread_priority_policy_42"`

	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+HeapDumpOnOutOfMemoryError.
	// +optional
	HeapDumpOnOutOfMemoryError *bool `` /* 189-byte string literal not displayed */

	// Per-thread stack size.
	// Defaults to 256Ki.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Xss.
	// +optional
	PerThreadStackSize *resource.Quantity `` /* 156-byte string literal not displayed */

	// The size of interned string table. Larger sizes are beneficial to gossip.
	// Defaults to 1000003.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:StringTableSize.
	// +optional
	StringTableSize *resource.Quantity `` /* 144-byte string literal not displayed */

	// Ensure all memory is faulted and zeroed on startup.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+AlwaysPreTouch.
	// +optional
	AlwaysPreTouch *bool `` /* 141-byte string literal not displayed */

	// Disable biased locking to avoid biased lock revocation pauses.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:-UseBiasedLocking.
	// Note: the Cass Config Builder option is named use_biased_locking, but setting it to true
	// disables biased locking.
	// +optional
	DisableBiasedLocking *bool `` /* 151-byte string literal not displayed */

	// Enable thread-local allocation blocks.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+UseTLAB.
	// +optional
	UseTlab *bool `json:"vm_use_tlab,omitempty" cass-config:"^3.11.x:jvm-options/use_tlb;>=4.x,dse@>=6.8.x:jvm-server-options/use_tlb"`

	// Allow resizing of thread-local allocation blocks.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+ResizeTLAB.
	// +optional
	ResizeTlab *bool `json:"vm_resize_tlab,omitempty" cass-config:"^3.11.x:jvm-options/resize_tlb;>=4.x,dse@>=6.8.x:jvm-server-options/resize_tlb"`

	// Disable hsperfdata mmap'ed file.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+PerfDisableSharedMem.
	// +optional
	DisablePerfSharedMem *bool `` /* 162-byte string literal not displayed */

	// Prefer binding to IPv4 network interfaces.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Djava.net.preferIPv4Stack=true.
	// +optional
	PreferIpv4 *bool `` /* 156-byte string literal not displayed */

	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+UseNUMA.
	// +optional
	UseNuma *bool `json:"vm_use_numa,omitempty" cass-config:">=4.x,dse@>=6.8.x:jvm-server-options/use_numa"`

	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dcassandra.printHeapHistogramOnOutOfMemoryError.
	// +optional
	PrintHeapHistogramOnOutOfMemoryError *bool `` /* 158-byte string literal not displayed */

	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+ExitOnOutOfMemoryError.
	// +optional
	ExitOnOutOfMemoryError *bool `` /* 126-byte string literal not displayed */

	// Disabled by default. Requires `exit_on_out_of_memory_error` to be disabled..
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+CrashOnOutOfMemoryError.
	// +optional
	CrashOnOutOfMemoryError *bool `` /* 128-byte string literal not displayed */

	// Defaults to 300000 milliseconds.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:GuaranteedSafepointInterval.
	// +optional
	GuaranteedSafepointIntervalMs *int `` /* 133-byte string literal not displayed */

	// Defaults to 65536.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dio.netty.eventLoop.maxPendingTasks.
	// +optional
	NettyEventloopMaxPendingTasks *int `` /* 134-byte string literal not displayed */

	// Netty setting `io.netty.tryReflectionSetAccessible`.
	// Defaults to true.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm11-server.options.
	// Corresponds to: -Dio.netty.tryReflectionSetAccessible=true.
	// +optional
	NettyTryReflectionSetAccessible *bool `` /* 203-byte string literal not displayed */

	// Defaults to 1048576.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Djdk.nio.maxCachedBufferSize.
	// +optional
	NioMaxCachedBufferSize *resource.Quantity `json:"nio_maxcachedbuffersize,omitempty" cass-config:">=4.x,dse@>=6.8.x:jvm-server-options/jdk_nio_maxcachedbuffersize"`

	// Align direct memory allocations on page boundaries.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dsun.nio.PageAlignDirectMemory=true.
	// +optional
	NioAlignDirectMemory *bool `json:"nio_align_direct_memory,omitempty" cass-config:">=4.x,dse@>=6.8.x:jvm-server-options/page-align-direct-memory"`

	// Allow the current VM to attach to itself.
	// Defaults to true.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm11-server.options.
	// Corresponds to: -Djdk.attach.allowAttachSelf=true.
	// +optional
	JdkAllowAttachSelf *bool `` /* 169-byte string literal not displayed */

	// Available CPU processors.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dcassandra.available_processors.
	// +optional
	AvailableProcessors *int `` /* 180-byte string literal not displayed */

	// Enable pluggable metrics reporter.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dcassandra.metricsReporterConfigFile.
	// +optional
	// TODO mountable directory
	MetricsReporterConfigFile *string `` /* 204-byte string literal not displayed */

	// Amount of time in milliseconds that a node waits before joining the ring.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dcassandra.ring_delay_ms.
	// +optional
	RingDelayMs *int `` /* 159-byte string literal not displayed */

	// Default location for the trigger JARs.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dcassandra.triggers_dir.
	// +optional
	// TODO mountable directory
	TriggersDirectory *string `` /* 162-byte string literal not displayed */

	// For testing new compaction and compression strategies.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dcassandra.write_survey.
	// +optional
	WriteSurvey *bool `` /* 156-byte string literal not displayed */

	// Disable remote configuration via JMX of auth caches.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dcassandra.disable_auth_caches_remote_configuration.
	// +optional
	DisableAuthCachesRemoteConfiguration *bool `` /* 240-byte string literal not displayed */

	// Disable dynamic calculation of the page size used when indexing an entire partition (during
	// initial index build/rebuild).
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dcassandra.force_default_indexing_page_size.
	// +optional
	ForceDefaultIndexingPageSize *bool `` /* 216-byte string literal not displayed */

	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -Dcassandra.force_3_0_protocol_version=true.
	// +optional
	Force30ProtocolVersion *bool `json:"cassandra_force_3_0_protocol_version,omitempty" cass-config:"^3.11.x:jvm-options/cassandra_force_3_0_protocol_version"`

	// Defines how to handle INSERT requests with TTL exceeding the maximum supported expiration
	// date.
	// Possible values include `REJECT`, `CAP`, `CAP_NOWARN`.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dcassandra.expiration_date_overflow_policy.
	// +optional
	ExpirationDateOverflowPolicy *string `` /* 151-byte string literal not displayed */

	// Imposes an upper bound on hint lifetime below the normal min gc_grace_seconds.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -Dcassandra.maxHintTTL.
	// +optional
	MaxHintTtlSeconds *int `json:"cassandra_max_hint_ttl_seconds,omitempty" cass-config:">=4.x,dse@>=6.8.x:jvm-server-options/cassandra_max_hint_ttl"`

	// The name of the garbage collector to use. Depending on the Cassandra version, not all values
	// are supported: Cassandra 3.11 supports only G1GC and CMS; Cassandra 4.0 supports G1GC, ZGC,
	// Shenandoah and Graal. This option will unlock the corresponding garbage collector with a
	// default configuration; to further tune the GC settings, use the additional JVM options field.
	// Use the special value Custom if you intend to use non-standard garbage collectors.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm11-server.options.
	// +kubebuilder:validation:Enum=G1GC;CMS;ZGC;Shenandoah;Graal;Custom
	// +kubebuilder:default=G1GC
	// +optional
	GarbageCollector *string `` /* 166-byte string literal not displayed */

	// Deprecated. Use gc_cms_heap_size_young_generation instead.
	// Valid for CMS garbage collector only + Cassandra 3.11.
	// +optional
	HeapNewGenSize *resource.Quantity `json:"heapNewGenSize,omitempty"`

	// Disabled by default. Can only be used when CMS garbage collector is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -Xmn.
	// +optional
	CmsHeapSizeYoungGeneration *resource.Quantity `json:"gc_cms_heap_size_young_generation,omitempty" cass-config:"^3.11.x:jvm-options/heap_size_young_generation"`

	// Defaults to 8. Can only be used when CMS garbage collector is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:SurvivorRatio.
	// +optional
	CmsSurvivorRatio *int `json:"gc_cms_survivor_ratio,omitempty" cass-config:"^3.11.x:jvm-options/survivor_ratio"`

	// Defaults to 1. Can only be used when CMS garbage collector is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:MaxTenuringThreshold.
	// +optional
	CmsMaxTenuringThreshold *int `json:"gc_cms_max_tenuring_threshold,omitempty" cass-config:"^3.11.x:jvm-options/max_tenuring_threshold"`

	// Defaults to 75. Can only be used when CMS garbage collector is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:CMSInitiatingOccupancyFraction.
	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=100
	CmsInitiatingOccupancyFraction *int `json:"gc_cms_initiating_occupancy_fraction,omitempty" cass-config:"^3.11.x:jvm-options/cms_initiating_occupancy_fraction"`

	// Defaults to 10000. Can only be used when CMS garbage collector is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:CMSWaitDuration.
	// +optional
	CmsWaitDurationMs *int `json:"gc_cms_wait_duration_ms,omitempty" cass-config:"^3.11.x:jvm-options/cms_wait_duration"`

	// G1GC Updating Pause Time Percentage. Defaults to 5. Can only be used when G1 garbage collector is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm11-server.options.
	// Corresponds to: -XX:G1RSetUpdatingPauseTimePercent.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=100
	// +optional
	G1RSetUpdatingPauseTimePercent *int `` /* 256-byte string literal not displayed */

	// G1GC Max GC Pause in milliseconds. Defaults to 500. Can only be used when G1 garbage collector is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm11-server.options.
	// Corresponds to: -XX:MaxGCPauseMillis.
	// +optional
	G1MaxGcPauseMs *int `` /* 191-byte string literal not displayed */

	// Initiating Heap Occupancy Percentage. Can only be used when G1 garbage collector is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm11-server.options.
	// Corresponds to: -XX:InitiatingHeapOccupancyPercent.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=100
	// +optional
	G1InitiatingHeapOccupancyPercent *int `` /* 251-byte string literal not displayed */

	// Parallel GC Threads. Can only be used when G1 garbage collector is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm11-server.options.
	// Corresponds to: -XX:ParallelGCThreads.
	// +optional
	G1ParallelGcThreads *int `` /* 192-byte string literal not displayed */

	// Concurrent GC Threads. Can only be used when G1 garbage collector is used.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm11-server.options.
	// Corresponds to: -XX:ConcGCThreads.
	// +optional
	G1ConcGcThreads *int `` /* 176-byte string literal not displayed */

	// Print GC details.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:+PrintGCDetails.
	// +optional
	PrintDetails *bool `json:"gc_print_details,omitempty" cass-config:"^3.11.x:jvm-options/print_gc_details"`

	// Print GC Date Stamps. Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:+PrintGCDateStamps.
	// +optional
	PrintDateStamps *bool `json:"gc_print_date_stamps,omitempty" cass-config:"^3.11.x:jvm-options/print_gc_date_stamps"`

	// Print Heap at GC.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:+PrintHeapAtGC.
	// +optional
	PrintHeap *bool `json:"gc_print_heap,omitempty" cass-config:"^3.11.x:jvm-options/print_heap_at_gc"`

	// Print tenuring distribution.
	// Defaults to false.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:+PrintTenuringDistribution.
	// +optional
	PrintTenuringDistribution *bool `json:"gc_print_tenuring_distribution,omitempty" cass-config:"^3.11.x:jvm-options/print_tenuring_distribution"`

	// Print GC Application Stopped Time.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:+PrintGCApplicationStoppedTime.
	// +optional
	PrintApplicationStoppedTime *bool `json:"gc_print_application_stopped_time,omitempty" cass-config:"^3.11.x:jvm-options/print_gc_application_stopped_time"`

	// Print promotion failure.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:+PrintPromotionFailure.
	// +optional
	PrintPromotionFailure *bool `json:"gc_print_promotion_failure,omitempty" cass-config:"^3.11.x:jvm-options/print_promotion_failure"`

	// Print FLSS Statistics.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:PrintFLSStatistics=1.
	// +optional
	PrintFlssStatistics *bool `json:"gc_print_flss_statistics,omitempty" cass-config:"^3.11.x:jvm-options/print_flss_statistics"`

	// Whether to print GC logs to /var/log/cassandra/gc.log.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -Xloggc:/var/log/cassandra/gc.log.
	// +optional
	UseLogFile *bool `json:"gc_print_use_log_file,omitempty" cass-config:"^3.11.x:jvm-options/log_gc"`

	// Use GC Log File Rotation.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:+UseGCLogFileRotation.
	// +optional
	UseLogFileRotation *bool `json:"gc_print_use_log_file_rotation,omitempty" cass-config:"^3.11.x:jvm-options/use_gc_log_file_rotation"`

	// Number of GC log files.
	// Disabled by default. Can only be used when the G1 garbage collector is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:NumberOfGCLogFiles.
	// +optional
	NumberOfLogFiles *int `json:"gc_print_number_of_log_files,omitempty" cass-config:"^3.11.x:jvm-options/number_of_gc_log_files"`

	// Size of each log file.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Corresponds to: -XX:GCLogFileSize.
	// +optional
	LogFileSize *resource.Quantity `json:"gc_print_log_file_size,omitempty" cass-config:"^3.11.x:jvm-options/gc_log_file_size"`

	// Disabled by default. Defaults to 7199.
	// TODO Make Reaper aware of the JMX port if a non-default port is used.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// +optional
	JmxPort *int `json:"jmx_port,omitempty" cass-config:"^3.11.x:jvm-options/jmx-port;>=4.x,dse@>=6.8.x:jvm-server-options/jmx-port"`

	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Possible values for 3.11 include `local-no-auth`, `remote-no-auth`, and `remote-dse-unified-auth`. Defaults to `local-no-auth`.
	// Possible values for 4.0 include `local-no-auth`, `remote-no-auth`. Defaults to `local-no-auth`.
	// +optional
	JmxConnectionType *string `` /* 147-byte string literal not displayed */

	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Defaults to false.
	// Valid only when JmxConnectionType is "remote-no-auth", "remote-dse-unified-auth".
	// +optional
	JmxRemoteSsl *bool `` /* 132-byte string literal not displayed */

	// Remote SSL options.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// +optional
	JmxRemoteSslOpts *string `` /* 147-byte string literal not displayed */

	// Require Client Authentication for remote SSL? Defaults to false.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// +optional
	JmxRemoteSslRequireClientAuth *bool `` /* 137-byte string literal not displayed */

	// Unlock commercial features.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+UnlockCommercialFeatures.
	// +optional
	UnlockCommercialFeatures *bool `` /* 174-byte string literal not displayed */

	// Enable Flight Recorder (Use in production is subject to Oracle licensing).
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+FlightRecorder.
	// +optional
	EnableFlightRecorder *bool `` /* 148-byte string literal not displayed */

	// Listen for JVM remote debuggers on port 1414.
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 3.11 in jvm.options.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1414".
	// +optional
	ListenForRemoteDebuggers *bool `` /* 147-byte string literal not displayed */

	// Disable honoring user code @Contended annotations.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:-RestrictContended.
	// +optional
	DisableContendedAnnotations *bool `json:"debug_disable_contended_annotations,omitempty" cass-config:">=4.x,dse@>=6.8.x:jvm-server-options/restrict-contended"`

	// Whether the compiler should generate the necessary metadata for the parts of the code not at
	// safe points as well. For use with Flight Recorder.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+DebugNonSafepoints.
	// +optional
	DebugNonSafepoints *bool `json:"debug_non_safepoints,omitempty" cass-config:">=4.x,dse@>=6.8.x:jvm-server-options/debug-non-safepoints"`

	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+UnlockDiagnosticVMOptions.
	// +optional
	UnlockDiagnosticVmOptions *bool `` /* 131-byte string literal not displayed */

	// Make Cassandra JVM log internal method compilation (developers only).
	// Disabled by default.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+LogCompilation.
	// +optional
	LogCompilation *bool `json:"debug_log_compilation,omitempty" cass-config:">=4.x,dse@>=6.8.x:jvm-server-options/log_compilation"`

	// Preserve Frame Pointer.
	// Enabled by default.
	// Cass Config Builder: supported for Cassandra 4.0 in jvm-server.options.
	// Corresponds to: -XX:+PreserveFramePointer.
	// +optional
	PreserveFramePointer *bool `json:"debug_preserve_frame_pointer,omitempty" cass-config:">=4.x,dse@>=6.8.x:jvm-server-options/preserve-frame-pointer"`

	// Additional, arbitrary JVM options which are written into the cassandra-env.sh file.
	// +optional
	AdditionalOptions []string `json:"additionalOptions,omitempty" cass-config:"cassandra-env-sh/additional-jvm-opts"`

	// Jvm11ServerOptions are additional options that will be passed on to the jvm11-server-options file.
	// +optional
	AdditionalJvm11ServerOptions []string `json:"additionalJvm11ServerOptions,omitempty" cass-config:"jvm11-server-options/additional-jvm-opts"`

	// Jvm8ServerOptions are additional options that will be passed on to the jvm8-server-options file.
	// +optional
	AdditionalJvm8ServerOptions []string `json:"additionalJvm8ServerOptions,omitempty" cass-config:"jvm8-server-options/additional-jvm-opts"`

	// JvmServerOptions are additional options that will be passed on to the jvm-server-options file.
	// +optional
	AdditionalJvmServerOptions []string `json:"additionalJvmServerOptions,omitempty" cass-config:"jvm-server-options/additional-jvm-opts"`
}

func (*JvmOptions) DeepCopy

func (in *JvmOptions) DeepCopy() *JvmOptions

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

func (*JvmOptions) DeepCopyInto

func (in *JvmOptions) DeepCopyInto(out *JvmOptions)

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

type K8ssandraCluster

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

	Spec   K8ssandraClusterSpec   `json:"spec,omitempty"`
	Status K8ssandraClusterStatus `json:"status,omitempty"`
}

K8ssandraCluster is the Schema for the k8ssandraclusters API. The K8ssandraCluster CRD name is also the name of the Cassandra cluster (which corresponds to cluster_name in cassandra.yaml).

func (*K8ssandraCluster) CassClusterName added in v1.2.1

func (in *K8ssandraCluster) CassClusterName() string

CassClusterName returns the Cassandra cluster name override if it exists, otherwise the k8c object name.

func (*K8ssandraCluster) DeepCopy

func (in *K8ssandraCluster) DeepCopy() *K8ssandraCluster

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

func (*K8ssandraCluster) DeepCopyInto

func (in *K8ssandraCluster) DeepCopyInto(out *K8ssandraCluster)

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

func (*K8ssandraCluster) DeepCopyObject

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

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

func (*K8ssandraCluster) Default added in v1.0.0

func (r *K8ssandraCluster) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*K8ssandraCluster) DefaultNumTokens added in v1.11.0

func (kc *K8ssandraCluster) DefaultNumTokens(serverVersion *semver.Version) float64

func (*K8ssandraCluster) GetClusterIdHash added in v1.15.0

func (kc *K8ssandraCluster) GetClusterIdHash() string

GetClusterIdHash should be used to derive short form unique identifiers for the cluster, this is to be used to name resources that are cluster specific in preference of concatenations of the namespaced name, as the latter are becoming too long and causing issues due to DNS name length constraints within k8s

func (*K8ssandraCluster) GetInitializedDatacenters

func (in *K8ssandraCluster) GetInitializedDatacenters() []CassandraDatacenterTemplate

func (*K8ssandraCluster) HasStargates

func (in *K8ssandraCluster) HasStargates() bool

HasStargates returns true if at least one Stargate resource will be created as part of the creation of this K8ssandraCluster object.

func (*K8ssandraCluster) HasStoppedDatacenters added in v0.5.0

func (in *K8ssandraCluster) HasStoppedDatacenters() bool

HasStoppedDatacenters returns true if at least one DC is flagged as stopped.

func (*K8ssandraCluster) SanitizedName added in v1.2.0

func (in *K8ssandraCluster) SanitizedName() string

SanitizedName returns a sanitized version of the name returned by CassClusterName()

func (*K8ssandraCluster) SetupWebhookWithManager added in v1.0.0

func (r *K8ssandraCluster) SetupWebhookWithManager(mgr ctrl.Manager, cCache *clientcache.ClientCache) error

func (*K8ssandraCluster) ValidateCreate added in v1.0.0

func (r *K8ssandraCluster) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*K8ssandraCluster) ValidateDelete added in v1.0.0

func (r *K8ssandraCluster) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*K8ssandraCluster) ValidateMedusa added in v1.15.0

func (r *K8ssandraCluster) ValidateMedusa() error

func (*K8ssandraCluster) ValidateUpdate added in v1.0.0

func (r *K8ssandraCluster) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type K8ssandraClusterCondition

type K8ssandraClusterCondition struct {
	Type   K8ssandraClusterConditionType `json:"type"`
	Status corev1.ConditionStatus        `json:"status"`

	// LastTransitionTime is the last time the condition transited from one status to another.
	// +optional
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"`
}

func (*K8ssandraClusterCondition) DeepCopy

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

func (*K8ssandraClusterCondition) DeepCopyInto

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

type K8ssandraClusterConditionType

type K8ssandraClusterConditionType string

type K8ssandraClusterList

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

K8ssandraClusterList contains a list of K8ssandraCluster

func (*K8ssandraClusterList) DeepCopy

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

func (*K8ssandraClusterList) DeepCopyInto

func (in *K8ssandraClusterList) DeepCopyInto(out *K8ssandraClusterList)

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

func (*K8ssandraClusterList) DeepCopyObject

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

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

type K8ssandraClusterSpec

type K8ssandraClusterSpec struct {

	// Whether to enable authentication in this cluster. The default is true; it is highly recommended to always leave
	// authentication turned on. When enabled, authentication will be enforced not only on Cassandra nodes, but also on
	// Reaper, Medusa and Stargate nodes, if any.
	// +optional
	// +kubebuilder:default=true
	Auth *bool `json:"auth,omitempty"`

	// Cassandra is a specification of the Cassandra cluster. This includes everything from
	// the number of datacenters, the k8s cluster where each DC should be deployed, node
	// affinity (via racks), individual C* node settings, JVM settings, and more.
	Cassandra *CassandraClusterTemplate `json:"cassandra,omitempty"`

	// Stargate defines the desired deployment characteristics for Stargate in this K8ssandraCluster.
	// If this is non-nil, Stargate will be deployed on every Cassandra datacenter in this K8ssandraCluster.
	// +optional
	Stargate *stargateapi.StargateClusterTemplate `json:"stargate,omitempty"`

	// Reaper defines the desired deployment characteristics for Reaper in this K8ssandraCluster.
	// If this is non-nil, Reaper will be deployed on every Cassandra datacenter in this K8ssandraCluster.
	// +optional
	Reaper *reaperapi.ReaperClusterTemplate `json:"reaper,omitempty"`

	// Medusa defines the desired deployment characteristics for Medusa in this K8ssandraCluster.
	// If this is non-nil, Medusa will be deployed in every Cassandra pod in this K8ssandraCluster.
	// +optional
	Medusa *medusaapi.MedusaClusterTemplate `json:"medusa,omitempty"`

	// During a migration the operator should alter keyspaces replication settings including the following external DCs.
	// This avoids removing replicas from datacenters which are outside of the operator scope (not referenced in the CR).
	// Replication settings changes will only apply to system_* keyspaces as well as reaper_db and data_endpoint_auth (Stargate).
	// +optional
	ExternalDatacenters []string `json:"externalDatacenters,omitempty"`

	// SecretsProvider defines whether the secrets used for credentials and certs will be backed
	// by an external secret backend (e.g. vault). This moves the responsibility of generating and
	// storing secrets from the operators to the user and will rely on a mutating webhook to inject
	// the secrets into the necessary resources
	// +kubebuilder:validation:Enum=internal;external
	// +kubebuilder:default=internal
	SecretsProvider string `json:"secretsProvider,omitempty"`
}

K8ssandraClusterSpec defines the desired state of K8ssandraCluster

func (*K8ssandraClusterSpec) DeepCopy

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

func (*K8ssandraClusterSpec) DeepCopyInto

func (in *K8ssandraClusterSpec) DeepCopyInto(out *K8ssandraClusterSpec)

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

func (K8ssandraClusterSpec) IsAuthEnabled

func (in K8ssandraClusterSpec) IsAuthEnabled() bool

IsAuthEnabled returns true if auth is not specified by the user (auth by default) or if the user has explicilty set Auth to true in the cluster spec

func (K8ssandraClusterSpec) UseExternalSecrets added in v1.5.0

func (in K8ssandraClusterSpec) UseExternalSecrets() bool

UseExternalSecrets defines whether the user has specified if credentials and certs will be backed by an external secrets store

type K8ssandraClusterStatus

type K8ssandraClusterStatus struct {
	// +optional
	Conditions []K8ssandraClusterCondition `json:"conditions,omitempty"`

	// Datacenters maps the CassandraDatacenter name to a K8ssandraStatus. The
	// naming is a bit confusing but the mapping makes sense because we have a
	// CassandraDatacenter and then define other components like Stargate and Reaper
	// relative to it. I wanted to inline the field but when I do it won't serialize.
	//
	// TODO Figure out how to inline this field
	Datacenters map[string]K8ssandraStatus `json:"datacenters,omitempty"`

	// +kubebuilder:default=None
	Error string `json:"error,omitempty"`
}

K8ssandraClusterStatus defines the observed state of K8ssandraCluster

func (*K8ssandraClusterStatus) DeepCopy

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

func (*K8ssandraClusterStatus) DeepCopyInto

func (in *K8ssandraClusterStatus) DeepCopyInto(out *K8ssandraClusterStatus)

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

func (*K8ssandraClusterStatus) GetConditionStatus

func (s *K8ssandraClusterStatus) GetConditionStatus(conditionType K8ssandraClusterConditionType) corev1.ConditionStatus

func (*K8ssandraClusterStatus) SetCondition

func (s *K8ssandraClusterStatus) SetCondition(condition K8ssandraClusterCondition)

type K8ssandraStatus

type K8ssandraStatus struct {
	DecommissionProgress DecommissionProgress                 `json:"decommissionProgress,omitempty"`
	Cassandra            *cassdcapi.CassandraDatacenterStatus `json:"cassandra,omitempty"`
	Stargate             *stargateapi.StargateStatus          `json:"stargate,omitempty"`
	Reaper               *reaperapi.ReaperStatus              `json:"reaper,omitempty"`
}

K8ssandraStatus defines the observed of a k8ssandra instance

func (*K8ssandraStatus) DeepCopy

func (in *K8ssandraStatus) DeepCopy() *K8ssandraStatus

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

func (*K8ssandraStatus) DeepCopyInto

func (in *K8ssandraStatus) DeepCopyInto(out *K8ssandraStatus)

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

type K8ssandraVolumes added in v1.2.0

type K8ssandraVolumes struct {
	// Volumes defines volumes to be added to each Cassandra pod.
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// PVCs defines additional volumes to be added to each Cassandra pod and managed by the statefulset.
	// Such volumes are automatically mounted by cass-operator into the cassandra containers.
	// +optional
	PVCs []cassdcapi.AdditionalVolumes `json:"pvcs,omitempty"`
}

func (*K8ssandraVolumes) DeepCopy added in v1.2.0

func (in *K8ssandraVolumes) DeepCopy() *K8ssandraVolumes

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

func (*K8ssandraVolumes) DeepCopyInto added in v1.2.0

func (in *K8ssandraVolumes) DeepCopyInto(out *K8ssandraVolumes)

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

type NetworkingConfig added in v1.5.0

type NetworkingConfig struct {
	NodePort    *cassdcapi.NodePortConfig `json:"nodePort,omitempty"`
	HostNetwork *bool                     `json:"hostNetwork,omitempty"`
}

NetworkingConfig is a copy of cass-operator's NetworkingConfig struct. It is copied here to change the HostNetwork field type from bool to *bool, which makes merging 2 values of this struct more intuitive.

func (*NetworkingConfig) DeepCopy added in v1.5.0

func (in *NetworkingConfig) DeepCopy() *NetworkingConfig

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

func (*NetworkingConfig) DeepCopyInto added in v1.5.0

func (in *NetworkingConfig) DeepCopyInto(out *NetworkingConfig)

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

func (*NetworkingConfig) ToCassNetworkingConfig added in v1.5.0

func (in *NetworkingConfig) ToCassNetworkingConfig() *cassdcapi.NetworkingConfig

type ParameterizedClass

type ParameterizedClass struct {
	ClassName  string             `json:"class_name" cass-config:"class_name"`
	Parameters *map[string]string `json:"parameters,omitempty" cass-config:"parameters"`
}

func (*ParameterizedClass) DeepCopy

func (in *ParameterizedClass) DeepCopy() *ParameterizedClass

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

func (*ParameterizedClass) DeepCopyInto

func (in *ParameterizedClass) DeepCopyInto(out *ParameterizedClass)

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

type ReplicaFilteringProtectionOptions

type ReplicaFilteringProtectionOptions struct {
	CachedRowsWarnThreshold *int `json:"cached_rows_warn_threshold,omitempty" cass-config:"cached_rows_warn_threshold"`
	CachedRowsFailThreshold *int `json:"cached_rows_fail_threshold,omitempty" cass-config:"cached_rows_fail_threshold"`
}

func (*ReplicaFilteringProtectionOptions) DeepCopy

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

func (*ReplicaFilteringProtectionOptions) DeepCopyInto

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

type RequestSchedulerOptions

type RequestSchedulerOptions struct {
	ThrottleLimit *int            `json:"throttle_limit,omitempty" cass-config:"throttle_limit"`
	DefaultWeight *int            `json:"default_weight,omitempty" cass-config:"default_weight"`
	Weights       *map[string]int `json:"weights,omitempty" cass-config:"weights"`
}

func (*RequestSchedulerOptions) DeepCopy

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

func (*RequestSchedulerOptions) DeepCopyInto

func (in *RequestSchedulerOptions) DeepCopyInto(out *RequestSchedulerOptions)

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

type ServerDistribution added in v1.3.0

type ServerDistribution string

type SubnetGroups

type SubnetGroups struct {
	Subnets []string `json:"subnets" cass-config:"subnets"`
}

func (*SubnetGroups) DeepCopy

func (in *SubnetGroups) DeepCopy() *SubnetGroups

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

func (*SubnetGroups) DeepCopyInto

func (in *SubnetGroups) DeepCopyInto(out *SubnetGroups)

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

type TrackWarnings

type TrackWarnings struct {
	Enabled             bool `json:"enabled" cass-config:"enabled;retainzero"`
	CoordinatorReadSize *int `json:"coordinator_read_size,omitempty" cass-config:"coordinator_read_size"`
	LocalReadSize       *int `json:"local_read_size,omitempty" cass-config:"local_read_size"`
	RowIndexSize        *int `json:"row_index_size,omitempty" cass-config:"row_index_size"`
}

func (*TrackWarnings) DeepCopy

func (in *TrackWarnings) DeepCopy() *TrackWarnings

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

func (*TrackWarnings) DeepCopyInto

func (in *TrackWarnings) DeepCopyInto(out *TrackWarnings)

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