v1alpha1

package
v1.0.1 Latest Latest
Warning

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

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

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

	RebuildLabel = "k8ssandra.io/rebuild"

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

	InstanceLabel  = "app.kubernetes.io/instance"
	VersionLabel   = "app.kubernetes.io/version"
	ManagedByLabel = "app.kubernetes.io/managed-by"

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

	CreatedByLabel                                = "app.kubernetes.io/created-by"
	CreatedByLabelValueK8ssandraClusterController = "k8ssandracluster-controller"
	CreatedByLabelValueStargateController         = "stargate-controller"
	CreatedByLabelValueReaperController           = "reaper-controller"

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

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

	DatacenterLabel = "k8ssandra.io/datacenter"
)

Variables

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")
)
View Source
var (
	SystemKeyspaces = []string{"system_traces", "system_distributed", "system_auth"}
)

Functions

This section is empty.

Types

type AuditLogOptions

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

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 {

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

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

	// ServerVersion is the Cassandra version.
	// +kubebuilder:validation:Pattern=(3\.11\.\d+)|(4\.0\.\d+)
	ServerVersion string `json:"serverVersion,omitempty"`

	// The image to use in each Cassandra pod for the (short-lived) init container that enables JMX remote
	// authentication on Cassandra pods. This is only useful when authentication is enabled in the cluster.
	// The default is "busybox:1.34.1".
	// +optional
	// +kubebuilder:default={name:"busybox",tag:"1.34.1"}
	JmxInitContainerImage *images.Image `json:"jmxInitContainerImage,omitempty"`

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

	// CassandraConfig is configuration settings that are applied to cassandra.yaml and
	// jvm-options for 3.11.x or jvm-server-options for 4.x.
	// +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 *cassdcapi.NetworkingConfig `json:"networking,omitempty"`

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

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

	// Telemetry defines the desired state for telemetry resources in this K8ssandraCluster.
	// 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"`

	// MgmtAPIHeap defines the amount of memory devoted to the management
	// api heap.
	// +optional
	MgmtAPIHeap *resource.Quantity `json:"mgmtAPIHeap,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"`

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

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

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
	CassandraYaml CassandraYaml `json:"cassandraYaml,omitempty"`

	// +optional
	JvmOptions JvmOptions `json:"jvmOptions,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"`

	ServerImage string `json:"serverImage,omitempty"`

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

	// ServerVersion is the Cassandra version.
	// +kubebuilder:validation:Pattern=(3\.11\.\d+)|(4\.0\.\d+)
	// +optional
	ServerVersion string `json:"serverVersion,omitempty"`

	// The image to use in each Cassandra pod for the (short-lived) init container that enables JMX remote
	// authentication on Cassandra pods. This is only useful when authentication is enabled in the cluster.
	// The default is "busybox:1.34.1".
	// +optional
	// +kubebuilder:default={name:"busybox",tag:"1.34.1"}
	JmxInitContainerImage *images.Image `json:"jmxInitContainerImage,omitempty"`

	// CassandraConfig is configuration settings that are applied to cassandra.yaml and
	// jvm-options for 3.11.x or jvm-server-options for 4.x.
	CassandraConfig *CassandraConfig `json:"config,omitempty"`

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

	// +optional
	Racks []cassdcapi.Rack `json:"racks,omitempty"`

	// Networking enables host networking and configures a NodePort ports.
	// +optional
	Networking *cassdcapi.NetworkingConfig `json:"networking,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"`

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

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

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

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 CassandraYaml

type CassandraYaml struct {
	// Exists in 3.11, 4.0, trunk
	// +optional
	AllocateTokensForKeyspace *string `json:"allocate_tokens_for_keyspace,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	AllocateTokensForLocalReplicationFactor *int `json:"allocate_tokens_for_local_replication_factor,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	AuditLoggingOptions *AuditLogOptions `json:"audit_logging_options,omitempty"`

	// Exists in trunk
	// +kubebuilder:validation:Enum=ANY;ONE;TWO;THREE;QUORUM;ALL;LOCAL_QUORUM;EACH_QUORUM;SERIAL;LOCAL_SERIAL;LOCAL_ONE;NODE_LOCAL
	// +optional
	AuthReadConsistencyLevel *string `json:"auth_read_consistency_level,omitempty"`

	// Exists in trunk
	// +kubebuilder:validation:Enum=ANY;ONE;TWO;THREE;QUORUM;ALL;LOCAL_QUORUM;EACH_QUORUM;SERIAL;LOCAL_SERIAL;LOCAL_ONE;NODE_LOCAL
	// +optional
	AuthWriteConsistencyLevel *string `json:"auth_write_consistency_level,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	Authenticator *string `json:"authenticator,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	Authorizer *string `json:"authorizer,omitempty"`

	// Exists in trunk
	// +optional
	AutoHintsCleanupEnabled *bool `json:"auto_hints_cleanup_enabled,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	AutoOptimiseFullRepairStreams *bool `json:"auto_optimise_full_repair_streams,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	AutoOptimiseIncRepairStreams *bool `json:"auto_optimise_inc_repair_streams,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	AutoOptimisePreviewRepairStreams *bool `json:"auto_optimise_preview_repair_streams,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	AutoSnapshot *bool `json:"auto_snapshot,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	AutocompactionOnStartupEnabled *bool `json:"autocompaction_on_startup_enabled,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	AutomaticSstableUpgrade *bool `json:"automatic_sstable_upgrade,omitempty"`

	// Exists in trunk
	// +optional
	AvailableProcessors *int `json:"available_processors,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	BackPressureEnabled *bool `json:"back_pressure_enabled,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	BackPressureStrategy *ParameterizedClass `json:"back_pressure_strategy,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	BatchSizeFailThresholdInKb *int `json:"batch_size_fail_threshold_in_kb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	BatchSizeWarnThresholdInKb *int `json:"batch_size_warn_threshold_in_kb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	BatchlogReplayThrottleInKb *int `json:"batchlog_replay_throttle_in_kb,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	BlockForPeersInRemoteDcs *bool `json:"block_for_peers_in_remote_dcs,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	BlockForPeersTimeoutInSecs *int `json:"block_for_peers_timeout_in_secs,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	BufferPoolUseHeapIfExhausted *bool `json:"buffer_pool_use_heap_if_exhausted,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CasContentionTimeoutInMs *int `json:"cas_contention_timeout_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CdcEnabled *bool `json:"cdc_enabled,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CdcFreeSpaceCheckIntervalMs *int `json:"cdc_free_space_check_interval_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CdcRawDirectory *string `json:"cdc_raw_directory,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CdcTotalSpaceInMb *int `json:"cdc_total_space_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CheckForDuplicateRowsDuringCompaction *bool `json:"check_for_duplicate_rows_during_compaction,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CheckForDuplicateRowsDuringReads *bool `json:"check_for_duplicate_rows_during_reads,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ClientEncryptionOptions *encryption.ClientEncryptionOptions `json:"client_encryption_options,omitempty"`

	// Exists in trunk
	// +optional
	ClientErrorReportingExclusions *SubnetGroups `json:"client_error_reporting_exclusions,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ColumnIndexCacheSizeInKb *int `json:"column_index_cache_size_in_kb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ColumnIndexSizeInKb *int `json:"column_index_size_in_kb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CommitlogCompression *ParameterizedClass `json:"commitlog_compression,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CommitlogMaxCompressionBuffersInPool *int `json:"commitlog_max_compression_buffers_in_pool,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CommitlogPeriodicQueueSize *int `json:"commitlog_periodic_queue_size,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CommitlogSegmentSizeInMb *int `json:"commitlog_segment_size_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +kubebuilder:validation:Enum=periodic;batch;group
	// +optional
	CommitlogSync *string `json:"commitlog_sync,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CommitlogSyncBatchWindowInMs *string `json:"commitlog_sync_batch_window_in_ms,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	CommitlogSyncGroupWindowInMs *int `json:"commitlog_sync_group_window_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CommitlogSyncPeriodInMs *int `json:"commitlog_sync_period_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CommitlogTotalSpaceInMb *int `json:"commitlog_total_space_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CompactionLargePartitionWarningThresholdMb *int `json:"compaction_large_partition_warning_threshold_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CompactionThroughputMbPerSec *int `json:"compaction_throughput_mb_per_sec,omitempty"`

	// Exists in trunk
	// +optional
	CompactionTombstoneWarningThreshold *int `json:"compaction_tombstone_warning_threshold,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ConcurrentCompactors *int `json:"concurrent_compactors,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ConcurrentCounterWrites *int `json:"concurrent_counter_writes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	ConcurrentMaterializedViewBuilders *int `json:"concurrent_materialized_view_builders,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ConcurrentMaterializedViewWrites *int `json:"concurrent_materialized_view_writes,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ConcurrentReads *int `json:"concurrent_reads,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ConcurrentReplicates *int `json:"concurrent_replicates,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	ConcurrentValidations *int `json:"concurrent_validations,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ConcurrentWrites *int `json:"concurrent_writes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	ConsecutiveMessageErrorsThreshold *int `json:"consecutive_message_errors_threshold,omitempty"`

	// Exists in: 4.0, trunk
	// +kubebuilder:validation:Enum=disabled;warn;exception
	// +optional
	CorruptedTombstoneStrategy *string `json:"corrupted_tombstone_strategy,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CounterCacheKeysToSave *int `json:"counter_cache_keys_to_save,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CounterCacheSavePeriod *int `json:"counter_cache_save_period,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CounterCacheSizeInMb *int `json:"counter_cache_size_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CounterWriteRequestTimeoutInMs *int `json:"counter_write_request_timeout_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CredentialsCacheMaxEntries *int `json:"credentials_cache_max_entries,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CredentialsUpdateIntervalInMs *int `json:"credentials_update_interval_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CredentialsValidityInMs *int `json:"credentials_validity_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	CrossNodeTimeout *bool `json:"cross_node_timeout,omitempty"`

	// Exists in trunk
	// +optional
	DefaultKeyspaceRf *int `json:"default_keyspace_rf,omitempty"`

	// Exists in trunk
	// +kubebuilder:validation:Enum=ANY;ONE;TWO;THREE;QUORUM;ALL;LOCAL_QUORUM;EACH_QUORUM;SERIAL;LOCAL_SERIAL;LOCAL_ONE;NODE_LOCAL
	// +optional
	DenylistConsistencyLevel *string `json:"denylist_consistency_level,omitempty"`

	// Exists in trunk
	// +optional
	DenylistInitialLoadRetrySeconds *int `json:"denylist_initial_load_retry_seconds,omitempty"`

	// Exists in trunk
	// +optional
	DenylistMaxKeysPerTable *int `json:"denylist_max_keys_per_table,omitempty"`

	// Exists in trunk
	// +optional
	DenylistMaxKeysTotal *int `json:"denylist_max_keys_total,omitempty"`

	// Exists in trunk
	// +optional
	DenylistRefreshSeconds *int `json:"denylist_refresh_seconds,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	DiagnosticEventsEnabled *bool `json:"diagnostic_events_enabled,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +kubebuilder:validation:Enum=auto;mmap;mmap_index_only;standard
	// +optional
	DiskAccessMode *string `json:"disk_access_mode,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	DiskOptimizationEstimatePercentile *string `json:"disk_optimization_estimate_percentile,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	DiskOptimizationPageCrossChance *string `json:"disk_optimization_page_cross_chance,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +kubebuilder:validation:Enum=ssd;spinning
	// +optional
	DiskOptimizationStrategy *string `json:"disk_optimization_strategy,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	DynamicSnitch *bool `json:"dynamic_snitch,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	DynamicSnitchBadnessThreshold *string `json:"dynamic_snitch_badness_threshold,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	DynamicSnitchResetIntervalInMs *int `json:"dynamic_snitch_reset_interval_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	DynamicSnitchUpdateIntervalInMs *int `json:"dynamic_snitch_update_interval_in_ms,omitempty"`

	// Exists in trunk
	// +optional
	EnableDenylistRangeReads *bool `json:"enable_denylist_range_reads,omitempty"`

	// Exists in trunk
	// +optional
	EnableDenylistReads *bool `json:"enable_denylist_reads,omitempty"`

	// Exists in trunk
	// +optional
	EnableDenylistWrites *bool `json:"enable_denylist_writes,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	EnableDropCompactStorage *bool `json:"enable_drop_compact_storage,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	EnableMaterializedViews *bool `json:"enable_materialized_views,omitempty"`

	// Exists in trunk
	// +optional
	EnablePartitionDenylist *bool `json:"enable_partition_denylist,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	EnableSasiIndexes *bool `json:"enable_sasi_indexes,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	EnableScriptedUserDefinedFunctions *bool `json:"enable_scripted_user_defined_functions,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	EnableTransientReplication *bool `json:"enable_transient_replication,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	EnableUserDefinedFunctions *bool `json:"enable_user_defined_functions,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	EnableUserDefinedFunctionsThreads *bool `json:"enable_user_defined_functions_threads,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	EndpointSnitch *string `json:"endpoint_snitch,omitempty"`

	// Exists in trunk
	// +optional
	FailureDetector *string `json:"failure_detector,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	FileCacheEnabled *bool `json:"file_cache_enabled,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	FileCacheRoundUp *bool `json:"file_cache_round_up,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	FileCacheSizeInMb *int `json:"file_cache_size_in_mb,omitempty"`

	// Exists in: 4.0, trunk
	// +kubebuilder:validation:Enum=none;fast;table
	// +optional
	FlushCompression *string `json:"flush_compression,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	FullQueryLoggingOptions *FullQueryLoggerOptions `json:"full_query_logging_options,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	GcLogThresholdInMs *int `json:"gc_log_threshold_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	GcWarnThresholdInMs *int `json:"gc_warn_threshold_in_ms,omitempty"`

	// Exists in trunk
	// +optional
	HintWindowPersistentEnabled *bool `json:"hint_window_persistent_enabled,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	HintedHandoffDisabledDatacenters *[]string `json:"hinted_handoff_disabled_datacenters,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	HintedHandoffEnabled *bool `json:"hinted_handoff_enabled,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	HintedHandoffThrottleInKb *int `json:"hinted_handoff_throttle_in_kb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	HintsCompression *ParameterizedClass `json:"hints_compression,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	HintsFlushPeriodInMs *int `json:"hints_flush_period_in_ms,omitempty"`

	// Exists in: 4.0, trunk
	// +kubebuilder:validation:Enum=ANY;ONE;TWO;THREE;QUORUM;ALL;LOCAL_QUORUM;EACH_QUORUM;SERIAL;LOCAL_SERIAL;LOCAL_ONE;NODE_LOCAL
	// +optional
	IdealConsistencyLevel *string `json:"ideal_consistency_level,omitempty"`

	// Exists in 3.11
	// +optional
	IndexInterval *int `json:"index_interval,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	IndexSummaryCapacityInMb *int `json:"index_summary_capacity_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	IndexSummaryResizeIntervalInMinutes *int `json:"index_summary_resize_interval_in_minutes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InitialRangeTombstoneListAllocationSize *int `json:"initial_range_tombstone_list_allocation_size,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	InterDcStreamThroughputOutboundMegabitsPerSec *int `json:"inter_dc_stream_throughput_outbound_megabits_per_sec,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	InterDcTcpNodelay *bool `json:"inter_dc_tcp_nodelay,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeApplicationReceiveQueueCapacityInBytes *int `json:"internode_application_receive_queue_capacity_in_bytes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeApplicationReceiveQueueReserveEndpointCapacityInBytes *int `json:"internode_application_receive_queue_reserve_endpoint_capacity_in_bytes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeApplicationReceiveQueueReserveGlobalCapacityInBytes *int `json:"internode_application_receive_queue_reserve_global_capacity_in_bytes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeApplicationSendQueueCapacityInBytes *int `json:"internode_application_send_queue_capacity_in_bytes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeApplicationSendQueueReserveEndpointCapacityInBytes *int `json:"internode_application_send_queue_reserve_endpoint_capacity_in_bytes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeApplicationSendQueueReserveGlobalCapacityInBytes *int `json:"internode_application_send_queue_reserve_global_capacity_in_bytes,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	InternodeAuthenticator *string `json:"internode_authenticator,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +kubebuilder:validation:Enum=all;none;dc
	// +optional
	InternodeCompression *string `json:"internode_compression,omitempty"`

	// Exists in trunk
	// +optional
	InternodeErrorReportingExclusions *SubnetGroups `json:"internode_error_reporting_exclusions,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeMaxMessageSizeInBytes *int `json:"internode_max_message_size_in_bytes,omitempty"`

	// Exists in 3.11
	// +optional
	InternodeRecvBuffSizeInBytes *int `json:"internode_recv_buff_size_in_bytes,omitempty"`

	// Exists in 3.11
	// +optional
	InternodeSendBuffSizeInBytes *int `json:"internode_send_buff_size_in_bytes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeSocketReceiveBufferSizeInBytes *int `json:"internode_socket_receive_buffer_size_in_bytes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeSocketSendBufferSizeInBytes *int `json:"internode_socket_send_buffer_size_in_bytes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeStreamingTcpUserTimeoutInMs *int `json:"internode_streaming_tcp_user_timeout_in_ms,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeTcpConnectTimeoutInMs *int `json:"internode_tcp_connect_timeout_in_ms,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	InternodeTcpUserTimeoutInMs *int `json:"internode_tcp_user_timeout_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	KeyCacheKeysToSave *int `json:"key_cache_keys_to_save,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	KeyCacheMigrateDuringCompaction *bool `json:"key_cache_migrate_during_compaction,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	KeyCacheSavePeriod *int `json:"key_cache_save_period,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	KeyCacheSizeInMb *int `json:"key_cache_size_in_mb,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	KeyspaceCountWarnThreshold *int `json:"keyspace_count_warn_threshold,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	MaxConcurrentAutomaticSstableUpgrades *int `json:"max_concurrent_automatic_sstable_upgrades,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MaxHintWindowInMs *int `json:"max_hint_window_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MaxHintsDeliveryThreads *int `json:"max_hints_delivery_threads,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MaxHintsFileSizeInMb *int `json:"max_hints_file_size_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MaxMutationSizeInKb *int `json:"max_mutation_size_in_kb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MaxStreamingRetries *int `json:"max_streaming_retries,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MaxValueSizeInMb *int `json:"max_value_size_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +kubebuilder:validation:Enum=unslabbed_heap_buffers;unslabbed_heap_buffers_logged;heap_buffers;offheap_buffers;offheap_objects
	// +optional
	MemtableAllocationType *string `json:"memtable_allocation_type,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MemtableCleanupThreshold *string `json:"memtable_cleanup_threshold,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MemtableFlushWriters *int `json:"memtable_flush_writers,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MemtableHeapSpaceInMb *int `json:"memtable_heap_space_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MemtableOffheapSpaceInMb *int `json:"memtable_offheap_space_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	MinFreeSpacePerDriveInMb *int `json:"min_free_space_per_drive_in_mb,omitempty"`

	// Exists in trunk
	// +optional
	MinimumKeyspaceRf *int `json:"minimum_keyspace_rf,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	NativeTransportAllowOlderProtocols *bool `json:"native_transport_allow_older_protocols,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	NativeTransportFlushInBatchesLegacy *bool `json:"native_transport_flush_in_batches_legacy,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	NativeTransportIdleTimeoutInMs *int `json:"native_transport_idle_timeout_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	NativeTransportMaxConcurrentConnections *int `json:"native_transport_max_concurrent_connections,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	NativeTransportMaxConcurrentConnectionsPerIp *int `json:"native_transport_max_concurrent_connections_per_ip,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	NativeTransportMaxConcurrentRequestsInBytes *int `json:"native_transport_max_concurrent_requests_in_bytes,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	NativeTransportMaxConcurrentRequestsInBytesPerIp *int `json:"native_transport_max_concurrent_requests_in_bytes_per_ip,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	NativeTransportMaxFrameSizeInMb *int `json:"native_transport_max_frame_size_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	NativeTransportMaxNegotiableProtocolVersion *int `json:"native_transport_max_negotiable_protocol_version,omitempty"`

	// Exists in trunk
	// +optional
	NativeTransportMaxRequestsPerSecond *int `json:"native_transport_max_requests_per_second,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	NativeTransportMaxThreads *int `json:"native_transport_max_threads,omitempty"`

	// Exists in trunk
	// +optional
	NativeTransportRateLimitingEnabled *bool `json:"native_transport_rate_limiting_enabled,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	NativeTransportReceiveQueueCapacityInBytes *int `json:"native_transport_receive_queue_capacity_in_bytes,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	NetworkAuthorizer *string `json:"network_authorizer,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	NetworkingCacheSizeInMb *int `json:"networking_cache_size_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	NumTokens *int `json:"num_tokens,omitempty"`

	// Exists in 3.11
	// +optional
	OtcBacklogExpirationIntervalMs *int `json:"otc_backlog_expiration_interval_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	OtcCoalescingEnoughCoalescedMessages *int `json:"otc_coalescing_enough_coalesced_messages,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	OtcCoalescingStrategy *string `json:"otc_coalescing_strategy,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	OtcCoalescingWindowUs *int `json:"otc_coalescing_window_us,omitempty"`

	// Exists in trunk
	// +optional
	PaxosCacheSizeInMb *int `json:"paxos_cache_size_in_mb,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	PeriodicCommitlogSyncLagBlockInMs *int `json:"periodic_commitlog_sync_lag_block_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	PermissionsCacheMaxEntries *int `json:"permissions_cache_max_entries,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	PermissionsUpdateIntervalInMs *int `json:"permissions_update_interval_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	PermissionsValidityInMs *int `json:"permissions_validity_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	PhiConvictThreshold *string `json:"phi_convict_threshold,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	PreparedStatementsCacheSizeMb *int `json:"prepared_statements_cache_size_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RangeRequestTimeoutInMs *int `json:"range_request_timeout_in_ms,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	RangeTombstoneListGrowthFactor *string `json:"range_tombstone_list_growth_factor,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ReadRequestTimeoutInMs *int `json:"read_request_timeout_in_ms,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	RejectRepairCompactionThreshold *int `json:"reject_repair_compaction_threshold,omitempty"`

	// Exists in: 4.0, trunk
	// +kubebuilder:validation:Enum=queue;reject
	// +optional
	RepairCommandPoolFullStrategy *string `json:"repair_command_pool_full_strategy,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	RepairCommandPoolSize *int `json:"repair_command_pool_size,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RepairSessionMaxTreeDepth *int `json:"repair_session_max_tree_depth,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	RepairSessionSpaceInMb *int `json:"repair_session_space_in_mb,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	RepairedDataTrackingForPartitionReadsEnabled *bool `json:"repaired_data_tracking_for_partition_reads_enabled,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	RepairedDataTrackingForRangeReadsEnabled *bool `json:"repaired_data_tracking_for_range_reads_enabled,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ReplicaFilteringProtection *ReplicaFilteringProtectionOptions `json:"replica_filtering_protection,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	ReportUnconfirmedRepairedDataMismatches *bool `json:"report_unconfirmed_repaired_data_mismatches,omitempty"`

	// Exists in 3.11
	// +optional
	RequestScheduler *string `json:"request_scheduler,omitempty"`

	// Exists in 3.11
	// +kubebuilder:validation:Enum=keyspace
	// +optional
	RequestSchedulerId *string `json:"request_scheduler_id,omitempty"`

	// Exists in 3.11
	// +optional
	RequestSchedulerOptions *RequestSchedulerOptions `json:"request_scheduler_options,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RequestTimeoutInMs *int `json:"request_timeout_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RoleManager *string `json:"role_manager,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RolesCacheMaxEntries *int `json:"roles_cache_max_entries,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RolesUpdateIntervalInMs *int `json:"roles_update_interval_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RolesValidityInMs *int `json:"roles_validity_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RowCacheClassName *string `json:"row_cache_class_name,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RowCacheKeysToSave *int `json:"row_cache_keys_to_save,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RowCacheSavePeriod *int `json:"row_cache_save_period,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	RowCacheSizeInMb *int `json:"row_cache_size_in_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	ServerEncryptionOptions *encryption.ServerEncryptionOptions `json:"server_encryption_options,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	SlowQueryLogTimeoutInMs *int `json:"slow_query_log_timeout_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	SnapshotBeforeCompaction *bool `json:"snapshot_before_compaction,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	SnapshotLinksPerSecond *int `json:"snapshot_links_per_second,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	SnapshotOnDuplicateRowDetection *bool `json:"snapshot_on_duplicate_row_detection,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	SnapshotOnRepairedDataMismatch *bool `json:"snapshot_on_repaired_data_mismatch,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	SstablePreemptiveOpenIntervalInMb *int `json:"sstable_preemptive_open_interval_in_mb,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	StreamEntireSstables *bool `json:"stream_entire_sstables,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	StreamThroughputOutboundMegabitsPerSec *int `json:"stream_throughput_outbound_megabits_per_sec,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	StreamingConnectionsPerHost *int `json:"streaming_connections_per_host,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	StreamingKeepAlivePeriodInSecs *int `json:"streaming_keep_alive_period_in_secs,omitempty"`

	// Exists in 3.11
	// +optional
	StreamingSocketTimeoutInMs *int `json:"streaming_socket_timeout_in_ms,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	TableCountWarnThreshold *int `json:"table_count_warn_threshold,omitempty"`

	// Exists in 3.11
	// +optional
	ThriftFramedTransportSizeInMb *int `json:"thrift_framed_transport_size_in_mb,omitempty"`

	// Exists in 3.11
	// +optional
	ThriftMaxMessageLengthInMb *int `json:"thrift_max_message_length_in_mb,omitempty"`

	// Exists in 3.11
	// +optional
	ThriftPreparedStatementsCacheSizeMb *int `json:"thrift_prepared_statements_cache_size_mb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	TombstoneFailureThreshold *int `json:"tombstone_failure_threshold,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	TombstoneWarnThreshold *int `json:"tombstone_warn_threshold,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	TracetypeQueryTtl *int `json:"tracetype_query_ttl,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	TracetypeRepairTtl *int `json:"tracetype_repair_ttl,omitempty"`

	// Exists in trunk
	// +optional
	TrackWarnings *TrackWarnings `json:"track_warnings,omitempty"`

	// Exists in trunk
	// +optional
	TraverseAuthFromRoot *bool `json:"traverse_auth_from_root,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	TrickleFsync *bool `json:"trickle_fsync,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	TrickleFsyncIntervalInKb *int `json:"trickle_fsync_interval_in_kb,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	TruncateRequestTimeoutInMs *int `json:"truncate_request_timeout_in_ms,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	UnloggedBatchAcrossPartitionsWarnThreshold *int `json:"unlogged_batch_across_partitions_warn_threshold,omitempty"`

	// Exists in trunk
	// +optional
	UseDeterministicTableId *bool `json:"use_deterministic_table_id,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	UseOffheapMerkleTrees *bool `json:"use_offheap_merkle_trees,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	UserDefinedFunctionFailTimeout *int `json:"user_defined_function_fail_timeout,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	UserDefinedFunctionWarnTimeout *int `json:"user_defined_function_warn_timeout,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +kubebuilder:validation:Enum=ignore;die;die_immediate
	// +optional
	UserFunctionTimeoutPolicy *string `json:"user_function_timeout_policy,omitempty"`

	// Exists in: 4.0, trunk
	// +optional
	ValidationPreviewPurgeHeadStartInSec *int `json:"validation_preview_purge_head_start_in_sec,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	WindowsTimerInterval *int `json:"windows_timer_interval,omitempty"`

	// Exists in 3.11, 4.0, trunk
	// +optional
	WriteRequestTimeoutInMs *int `json:"write_request_timeout_in_ms,omitempty"`
}

CassandraYaml defines the contents of the cassandra.yaml file. For more info see: https://cassandra.apache.org/doc/latest/cassandra/configuration/cass_yaml_file.html

func (*CassandraYaml) DeepCopy

func (in *CassandraYaml) DeepCopy() *CassandraYaml

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

func (*CassandraYaml) DeepCopyInto

func (in *CassandraYaml) DeepCopyInto(out *CassandraYaml)

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

	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// +optional
	Annotations map[string]string `json:"annotations,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"`
	RollCycle         *string `json:"roll_cycle,omitempty"`
	Block             *bool   `json:"block,omitempty"`
	MaxQueueWeight    *int    `json:"max_queue_weight,omitempty"`
	MaxLogSize        *int    `json:"max_log_size,omitempty"`
	MaxArchiveRetries *int    `json:"max_archive_retries,omitempty"`
	LogDir            *string `json:"log_dir,omitempty"`
}

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 Group

type Group struct {
	Subnet string `json:"subnet"`
}

func (*Group) DeepCopy

func (in *Group) DeepCopy() *Group

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

func (*Group) DeepCopyInto

func (in *Group) DeepCopyInto(out *Group)

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

type JvmOptions

type JvmOptions struct {
	// +optional
	HeapSize *resource.Quantity `json:"heapSize,omitempty"`

	// +optional
	HeapNewGenSize *resource.Quantity `json:"heapNewGenSize,omitempty"`

	// +optional
	AdditionalOptions []string `json:"additionalOptions,omitempty"`
}

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

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

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

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 ParameterizedClass

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

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"`
	CachedRowsFailThreshold *int `json:"cached_rows_fail_threshold,omitempty"`
}

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"`
	DefaultWeight *int            `json:"default_weight,omitempty"`
	Weights       *map[string]int `json:"weights,omitempty"`
}

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 SubnetGroups

type SubnetGroups struct {
	Subnets []Group `json:"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"`
	CoordinatorReadSize *int `json:"coordinator_read_size,omitempty"`
	LocalReadSize       *int `json:"local_read_size,omitempty"`
	RowIndexSize        *int `json:"row_index_size,omitempty"`
}

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