v2

package
v1.1.4-release....-8fb1b71 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2022 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package v2 contains API Schema definitions for the db.orange.com v2 API group +kubebuilder:object:generate=true +groupName=db.orange.com

Index

Constants

View Source
const (
	DefaultLivenessInitialDelaySeconds int32 = 120
	DefaultLivenessHealthCheckTimeout  int32 = 20
	DefaultLivenessHealthCheckPeriod   int32 = 10

	DefaultReadinessInitialDelaySeconds int32 = 60
	DefaultReadinessHealthCheckTimeout  int32 = 10
	DefaultReadinessHealthCheckPeriod   int32 = 10

	DefaultBackRestImage = "gcr.io/cassandra-operator/instaclustr-icarus:1.1.0"

	DefaultCassandraDC   = "dc1"
	DefaultCassandraRack = "rack1"

	DefaultTerminationGracePeriodSeconds = 1800

	DefaultResyncPeriod = 10
	//DefaultDelayWait wait 20 seconds (2x resyncPeriod) prior to follow status of an operation
	DefaultDelayWait = 2 * DefaultResyncPeriod

	//DefaultDelayWaitForDecommission is the time to wait for the decommission to happen on the Pod
	//The operator will start again if it is not the case
	DefaultDelayWaitForDecommission = 120
)
View Source
const (
	AnnotationLastApplied string = "cassandraclusters.db.orange.com/last-applied-configuration"

	StatusOngoing     string = "Ongoing"    // The Action is Ongoing
	StatusDone        string = "Done"       // The Action id Done
	StatusToDo        string = "ToDo"       // The Action is marked as To-Do
	StatusFinalizing  string = "Finalizing" // The Action is between Ongoing and Done
	StatusContinue    string = "Continue"
	StatusConfiguring string = "Configuring"
	StatusManual      string = "Manual"
	StatusError       string = "Error"

	//List of Pods Operations
	OperationUpgradeSSTables string = "upgradesstables"
	OperationCleanup         string = "cleanup"
	OperationDecommission    string = "decommission"
	OperationRebuild         string = "rebuild"
	OperationRemove          string = "remove"

	BreakResyncLoop    = true
	ContinueResyncLoop = false
)

Variables

View Source
var (
	//Cluster phases
	ClusterPhaseInitial = ClusterStateInfo{1, "Initializing"}
	ClusterPhaseRunning = ClusterStateInfo{2, "Running"}
	ClusterPhasePending = ClusterStateInfo{3, "Pending"}

	//Available actions
	ActionUpdateConfigMap   = ClusterStateInfo{1, "UpdateConfigMap"}
	ActionUpdateDockerImage = ClusterStateInfo{2, "UpdateDockerImage"}
	ActionUpdateSeedList    = ClusterStateInfo{3, "UpdateSeedList"}
	ActionRollingRestart    = ClusterStateInfo{4, "RollingRestart"}
	ActionUpdateResources   = ClusterStateInfo{5, "UpdateResources"}
	ActionUpdateStatefulSet = ClusterStateInfo{6, "UpdateStatefulSet"}
	ActionScaleUp           = ClusterStateInfo{7, "ScaleUp"}
	ActionScaleDown         = ClusterStateInfo{8, "ScaleDown"}

	ActionDeleteDC   = ClusterStateInfo{9, "ActionDeleteDC"}
	ActionDeleteRack = ClusterStateInfo{10, "ActionDeleteRack"}

	ActionCorrectCRDConfig = ClusterStateInfo{11, "CorrectCRDConfig"} //The Operator has correct a bad CRD configuration

)
View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "db.orange.com", Version: "v2"}

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func ProgressPercentage

func ProgressPercentage(progress float64) string

Types

type BackRestCondition

type BackRestCondition struct {
	Type string `json:"type"`
	// +optional
	LastTransitionTime string `json:"lastTransitionTime,omitempty"`
	// +optional
	FailureCause []FailureCause `json:"failureCause,omitempty"`
}

BackRestCondition describes the observed state of a Restore at a certain point

func GetRestoreCondition

func GetRestoreCondition(status *BackRestStatus, conditionType RestoreConditionType) *BackRestCondition

GetRestoreCondition extracts the provided condition from the given status and returns that. Returns nil and -1 if the condition is not present, and the index of the located condition.

func (*BackRestCondition) DeepCopy

func (in *BackRestCondition) DeepCopy() *BackRestCondition

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

func (*BackRestCondition) DeepCopyInto

func (in *BackRestCondition) DeepCopyInto(out *BackRestCondition)

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

type BackRestSidecar

type BackRestSidecar struct {
	// Image of backup/restore sidecar
	Image string `json:"image,omitempty"`
	// ImagePullPolicy define the pull policy for backrest sidecar docker image
	ImagePullPolicy v1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// Kubernetes object : https://godoc.org/k8s.io/api/core/v1#ResourceRequirements
	Resources    *v1.ResourceRequirements `json:"resources,omitempty"`
	VolumeMounts []v1.VolumeMount         `json:"volumeMount,omitempty"`
}

BackRestSidecar defines details about cassandra-sidecar to load along with each C* pod

func (*BackRestSidecar) DeepCopy

func (in *BackRestSidecar) DeepCopy() *BackRestSidecar

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

func (*BackRestSidecar) DeepCopyInto

func (in *BackRestSidecar) DeepCopyInto(out *BackRestSidecar)

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

type BackRestStatus

type BackRestStatus struct {
	TimeCreated   string             `json:"timeCreated,omitempty"`
	TimeStarted   string             `json:"timeStarted,omitempty"`
	TimeCompleted string             `json:"timeCompleted,omitempty"`
	Condition     *BackRestCondition `json:"condition,omitempty"`
	// Name of the pod the restore operation is executed on
	CoordinatorMember string `json:"coordinatorMember,omitempty"`
	// Progress is a percentage, 100% means the operation is completed, either successfully or with errors
	Progress string `json:"progress,omitempty"`
	// unique identifier of an operation, a random id is assigned to each operation after a request is submitted,
	// from caller's perspective, an id is sent back as a response to his request so he can further query state of that operation,
	// referencing id, by operations/{id} endpoint
	ID string `json:"id,omitempty"`
}

func ComputeBackupStatus

func ComputeBackupStatus(backupOperationResponse *icarus.BackupOperationResponse,
	coordinatorMember string) BackRestStatus

func ComputeRestorationStatus

func ComputeRestorationStatus(restoreOperationReponse *icarus.RestoreOperationResponse) BackRestStatus

func (*BackRestStatus) DeepCopy

func (in *BackRestStatus) DeepCopy() *BackRestStatus

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

func (*BackRestStatus) DeepCopyInto

func (in *BackRestStatus) DeepCopyInto(out *BackRestStatus)

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

type BackupConditionType

type BackupConditionType string
const (
	BackupRunning   BackupConditionType = "RUNNING"
	BackupCompleted BackupConditionType = "COMPLETED"
	BackupFailed    BackupConditionType = "FAILED"
)

func (BackupConditionType) HasFailed

func (b BackupConditionType) HasFailed() bool

func (BackupConditionType) IsCompleted

func (b BackupConditionType) IsCompleted() bool

func (BackupConditionType) IsRunning

func (b BackupConditionType) IsRunning() bool

type CassandraBackup

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

	Spec   CassandraBackupSpec `json:"spec"`
	Status BackRestStatus      `json:"status,omitempty"`
}

CassandraBackup is the Schema for the cassandrabackups API +k8s:openapi-gen=true

func (*CassandraBackup) ComputeLastAppliedAnnotation

func (cb *CassandraBackup) ComputeLastAppliedAnnotation() (string, error)

func (*CassandraBackup) DeepCopy

func (in *CassandraBackup) DeepCopy() *CassandraBackup

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

func (*CassandraBackup) DeepCopyInto

func (in *CassandraBackup) DeepCopyInto(out *CassandraBackup)

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

func (*CassandraBackup) DeepCopyObject

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

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

func (*CassandraBackup) IsAzureBackup

func (backupSpec *CassandraBackup) IsAzureBackup() bool

func (*CassandraBackup) IsFileBackup

func (backupSpec *CassandraBackup) IsFileBackup() bool

func (*CassandraBackup) IsGcpBackup

func (backupSpec *CassandraBackup) IsGcpBackup() bool

func (*CassandraBackup) IsS3Backup

func (backupSpec *CassandraBackup) IsS3Backup() bool

func (*CassandraBackup) IsScheduled

func (cb *CassandraBackup) IsScheduled() bool

func (*CassandraBackup) PreventBackupDeletion

func (cb *CassandraBackup) PreventBackupDeletion(value bool)

func (*CassandraBackup) Ran

func (cb *CassandraBackup) Ran() bool

type CassandraBackupList

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

CassandraBackupList contains a list of CassandraBackup

func (*CassandraBackupList) DeepCopy

func (in *CassandraBackupList) DeepCopy() *CassandraBackupList

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

func (*CassandraBackupList) DeepCopyInto

func (in *CassandraBackupList) DeepCopyInto(out *CassandraBackupList)

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

func (*CassandraBackupList) DeepCopyObject

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

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

type CassandraBackupSpec

type CassandraBackupSpec struct {
	// Name of the CassandraCluster to backup
	CassandraCluster string `json:"cassandraCluster"`
	// Cassandra DC name to back up, used to find the cassandra nodes in the CassandraCluster
	Datacenter string `json:"datacenter,omitempty"`
	// URI for the backup target location e.g. s3 bucket, filepath
	StorageLocation string `json:"storageLocation"`
	// Specify a schedule to assigned to the backup. The schedule doesn't enforce anything so if you schedule multiple
	// backups around the same time they would conflict. See https://godoc.org/github.com/robfig/cron for more information regarding the supported formats
	Schedule string `json:"schedule,omitempty"`
	// name of snapshot to make so this snapshot will be uploaded to storage location. If not specified, the name of
	// snapshot will be automatically generated and it will have name 'autosnap-milliseconds-since-epoch'
	SnapshotTag string `json:"snapshotTag"`
	// Specify a duration the backup should try to last. See https://golang.org/pkg/time/#ParseDuration for an
	// exhaustive list of the supported units. You can use values like .25h, 15m, 900s all meaning 15 minutes
	Duration string `json:"duration,omitempty"`
	// Specify the bandwidth to not exceed when uploading files to the cloud. Format supported is \d+[KMG] case
	// insensitive. You can use values like 10M (meaning 10MB), 1024, 1024K, 2G, etc...
	Bandwidth string `json:"bandwidth,omitempty"`
	// Maximum number of threads used to download files from the cloud. Defaults to 10
	ConcurrentConnections int32 `json:"concurrentConnections,omitempty"`
	// Database entities to backup, it might be either only keyspaces or only tables prefixed by their respective
	// keyspace, e.g. 'k1,k2' if one wants to backup whole keyspaces or 'ks1.t1,ks2.t2' if one wants to restore specific
	// tables. These formats are mutually exclusive so 'k1,k2.t2' is invalid. An empty field will backup all keyspaces
	Entities string `json:"entities,omitempty"`
	// Name of Secret to use when accessing cloud storage providers
	Secret string `json:"secret,omitempty"`
}

func (*CassandraBackupSpec) DeepCopy

func (in *CassandraBackupSpec) DeepCopy() *CassandraBackupSpec

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

func (*CassandraBackupSpec) DeepCopyInto

func (in *CassandraBackupSpec) DeepCopyInto(out *CassandraBackupSpec)

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

func (CassandraBackupSpec) ValidateScheduleFormat

func (backupSpec CassandraBackupSpec) ValidateScheduleFormat() error

type CassandraCluster

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

	// +kubebuilder:pruning:PreserveUnknownFields
	Spec   CassandraClusterSpec   `json:"spec,omitempty"`
	Status CassandraClusterStatus `json:"status,omitempty"`
}

CassandraCluster is the Schema for the cassandraclusters API +k8s:openapi-gen=true +kubebuilder:storageversion +kubebuilder:resource:path=cassandraclusters,scope=Namespaced,shortName=cassc;casscs

func (*CassandraCluster) CheckDefaults

func (cc *CassandraCluster) CheckDefaults()

CheckDefaults checks that required fields haven't good values

func (*CassandraCluster) ComputeLastAppliedConfiguration

func (cc *CassandraCluster) ComputeLastAppliedConfiguration() ([]byte, error)

func (*CassandraCluster) DeepCopy

func (in *CassandraCluster) DeepCopy() *CassandraCluster

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

func (*CassandraCluster) DeepCopyInto

func (in *CassandraCluster) DeepCopyInto(out *CassandraCluster)

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

func (*CassandraCluster) DeepCopyObject

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

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

func (*CassandraCluster) FindDCWithNodesTo0

func (cc *CassandraCluster) FindDCWithNodesTo0() (bool, string, int)

FindDCWithNodesTo0

func (*CassandraCluster) FixCassandraRackList

func (cc *CassandraCluster) FixCassandraRackList(status *CassandraClusterStatus) []string

FixCassandraRackList will remove additional rack-list that don't exists anymore in Topology we recalculate new dcrackStatus from actual topology and we apply diff to original

func (*CassandraCluster) GetDCFromDCRackName

func (cc *CassandraCluster) GetDCFromDCRackName(dcRackName string) *DC

Get DC by one of its rack name

func (*CassandraCluster) GetDCIndexFromDCName

func (cc *CassandraCluster) GetDCIndexFromDCName(dcName string) int

func (*CassandraCluster) GetDCName

func (cc *CassandraCluster) GetDCName(dc int) string

GetDCName return the name of the DC a indice dc or defaultName

func (*CassandraCluster) GetDCNameAndRackNameFromDCRackName

func (cc *CassandraCluster) GetDCNameAndRackNameFromDCRackName(dcRackName string) (string, string)

GetDCAndRackFromDCRackName send dc and rack from dcRackName (dc-rack)

func (*CassandraCluster) GetDCNameFromDCRackName

func (cc *CassandraCluster) GetDCNameFromDCRackName(dcRackName string) string

GetDCNameFromDCRackName send dc name from dcRackName (dc-rack)

func (*CassandraCluster) GetDCNodesPerRacksFromDCRackName

func (cc *CassandraCluster) GetDCNodesPerRacksFromDCRackName(dcRackName string) int32

GetDCNodesPerRacksFromDCRackName send NodesPerRack used for the given dcRackName

func (*CassandraCluster) GetDCNodesPerRacksFromName

func (cc *CassandraCluster) GetDCNodesPerRacksFromName(dctarget string) (bool, int32)

GetDCNodesPerRacksFromName send NodesPerRack which is applied for the specified dc name return true if we found, and false if not

func (*CassandraCluster) GetDCRackName

func (cc *CassandraCluster) GetDCRackName(dcName string, rackName string) string

GetDCRackName compute dcName + RackName to be used in statefulsets, services.. it returns empty if the name don't match with kubernetes domain name validation regexp

func (*CassandraCluster) GetDCRackNames

func (cc *CassandraCluster) GetDCRackNames() []string

GetDCNodesPerRacksFromDCRackName send NodesPerRack used for the given dcRackName

func (*CassandraCluster) GetDCRackSize

func (cc *CassandraCluster) GetDCRackSize() int

func (*CassandraCluster) GetDCSize

func (cc *CassandraCluster) GetDCSize() int

GetDCSize Return the Numbers of declared DC

func (*CassandraCluster) GetDataCapacityForDC

func (cc *CassandraCluster) GetDataCapacityForDC(dcName string) string

GetDataCapacityForDC sends back the data capacity of cassandra nodes to uses for this dc

func (*CassandraCluster) GetDataCapacityFromDCName

func (cc *CassandraCluster) GetDataCapacityFromDCName(dcName string) string

GetDataCapacityFromDCName send DataCapacity used for the given dcName

func (*CassandraCluster) GetDataStorageClassForDC

func (cc *CassandraCluster) GetDataStorageClassForDC(dcName string) string

GetDataCapacityForDC sends back the data storage class of cassandra nodes to uses for this dc

func (*CassandraCluster) GetDataStorageClassFromDCName

func (cc *CassandraCluster) GetDataStorageClassFromDCName(dcName string) string

GetDataCapacityFromDCName send DataStorageClass used for the given dcName

func (*CassandraCluster) GetNodesPerRacks

func (cc *CassandraCluster) GetNodesPerRacks(dcRackName string) int32

GetNodesPerRacks sends back the number of cassandra nodes to uses for this dc-rack

func (*CassandraCluster) GetRackFromDCRackName

func (cc *CassandraCluster) GetRackFromDCRackName(dcRackName string) *Rack

Get Rack by its rack name

func (*CassandraCluster) GetRackName

func (cc *CassandraCluster) GetRackName(dc int, rack int) string

GetRackName return the Name of the rack for DC at index dc and Rack at index rack

func (*CassandraCluster) GetRackSize

func (cc *CassandraCluster) GetRackSize(dc int) int

GetRackSize return the numbers of the Rack in the DC at indice dc

func (*CassandraCluster) GetRemovedDCName

func (cc *CassandraCluster) GetRemovedDCName(oldCRD *CassandraCluster) string

func (*CassandraCluster) GetRollingPartitionPerRacks

func (cc *CassandraCluster) GetRollingPartitionPerRacks(dcRackName string) int32

GetRollingPartitionPerRacks return rollingPartition defined in spec.topology.dc[].rack[].rollingPartition

func (*CassandraCluster) GetStatusDCRackSize

func (cc *CassandraCluster) GetStatusDCRackSize() int

func (*CassandraCluster) InitCassandraRackList

func (cc *CassandraCluster) InitCassandraRackList() int

InitCassandraRackList initiate the Status structure for CassandraRack

func (*CassandraCluster) InitCassandraRackStatus

func (cc *CassandraCluster) InitCassandraRackStatus(status *CassandraClusterStatus, dcName string, rackName string)

InitCassandraRackStatus Initializes a CassandraRack Structure In this method we create it in status var instead of directly in cc object because except for init the cc can always work with a separate status which updates the cc in a defer statement in Reconcile method

func (*CassandraCluster) InitSeedList

func (cc *CassandraCluster) InitSeedList() []string

Initialisation of the Cassandra SeedList We want 3 seed nodes for each DC

func (*CassandraCluster) IsPodInSeedList

func (cc *CassandraCluster) IsPodInSeedList(podName string) bool

func (*CassandraCluster) IsValidDC

func (cc *CassandraCluster) IsValidDC(dcName string) bool

IsValidDC returns true if dcName is known

func (*CassandraCluster) SeedList

func (cc *CassandraCluster) SeedList(seedListTab *[]string) string

func (*CassandraCluster) SetDefaults

func (cc *CassandraCluster) SetDefaults() bool

SetDefaults sets the default values for the cassandra spec and returns true if the spec was changed SetDefault mus be done only once at startup

type CassandraClusterList

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

CassandraClusterList contains a list of CassandraCluster

func (*CassandraClusterList) DeepCopy

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

func (*CassandraClusterList) DeepCopyInto

func (in *CassandraClusterList) DeepCopyInto(out *CassandraClusterList)

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

func (*CassandraClusterList) DeepCopyObject

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

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

type CassandraClusterSpec

type CassandraClusterSpec struct {
	// Number of nodes to deploy for a Cassandra deployment in each Racks.
	// Default: 1.
	// If NodesPerRacks = 2 and there is 3 racks, the cluster will have 6 Cassandra Nodes
	NodesPerRacks int32 `json:"nodesPerRacks,omitempty"`

	// Image + version to use for Cassandra
	CassandraImage string `json:"cassandraImage,omitempty"`

	//ImagePullPolicy define the pull policy for C* docker image
	ImagePullPolicy v1.PullPolicy `json:"imagepullpolicy,omitempty"`

	// Image used for bootstrapping cluster (use format base:version)
	BootstrapImage string `json:"bootstrapImage,omitempty"`

	// Image used for configBuilder (use format base:version)
	ConfigBuilderImage string `json:"configBuilderImage,omitempty"`

	// RunAsUser define the id of the user to run in the Cassandra image
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default:=999
	RunAsUser int64 `json:"runAsUser,omitempty"`

	// FSGroup defines the GID owning volumes in the Cassandra image
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default:=1
	FSGroup int64 `json:"fsGroup,omitempty"`

	// Make the pod as Readonly
	ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty"`

	Resources v1.ResourceRequirements `json:"resources,omitempty"`

	// HardAntiAffinity defines if the PodAntiAffinity of the
	// statefulset has to be hard (it's soft by default)
	HardAntiAffinity bool `json:"hardAntiAffinity,omitempty"`

	Pod *PodPolicy `json:"pod,omitempty"`

	Service *ServicePolicy `json:"service,omitempty"`

	//DeletePVC defines if the PVC must be deleted when the cluster is deleted
	//it is false by default
	DeletePVC bool `json:"deletePVC,omitempty"`

	//Debug is used to surcharge Cassandra pod command to not directly start cassandra but
	//starts an infinite wait to allow user to connect a bash into the pod to make some diagnoses.
	Debug bool `json:"debug,omitempty"`

	//AutoPilot defines if the Operator can fly alone or if we need human action to trigger
	//Actions on specific Cassandra nodes
	//If autoPilot=true, the operator will set labels pod-operation-status=To-Do on Pods which allows him to
	// automatically triggers Action
	//If autoPilot=false, the operator will set labels pod-operation-status=Manual on Pods which won't automatically triggers Action
	AutoPilot          bool `json:"autoPilot,omitempty"`
	NoCheckStsAreEqual bool `json:"noCheckStsAreEqual,omitempty"`

	//AutoUpdateSeedList defines if the Operator automatically update the SeedList according to new cluster CRD topology
	//by default a boolean is false
	AutoUpdateSeedList bool `json:"autoUpdateSeedList,omitempty"`

	MaxPodUnavailable int32 `json:"maxPodUnavailable,omitempty"` //Number of MaxPodUnavailable used in the PDB

	// RestartCountBeforePodDeletion defines the number of restart allowed for a cassandra container allowed before
	// deleting the pod  to force its restart from scratch. if set to 0 or omit,
	// no action will be performed based on restart count.
	RestartCountBeforePodDeletion int32 `json:"restartCountBeforePodDeletion,omitempty"`

	// Very special Flag to hack CassKop reconcile loop - use with really good care
	UnlockNextOperation bool `json:"unlockNextOperation,omitempty"`

	// Define the Capacity for Persistent Volume Claims in the local storage
	// +kubebuilder:validation:Pattern=^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
	DataCapacity string `json:"dataCapacity,omitempty"`

	//Define StorageClass for Persistent Volume Claims in the local storage.
	DataStorageClass string `json:"dataStorageClass,omitempty"`

	// StorageConfig defines additional storage configurations
	StorageConfigs []StorageConfig `json:"storageConfigs,omitempty"`

	// SidecarsConfig defines additional sidecar configurations
	SidecarConfigs []v1.Container `json:"sidecarConfigs,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=containers"`

	// Name of the ConfigMap for Cassandra configuration (cassandra.yaml)
	// If this is empty, operator will uses default cassandra.yaml from the baseImage
	// If this is not empty, operator will uses the cassandra.yaml from the Configmap instead
	ConfigMapName string `json:"configMapName,omitempty"`

	// Version string for config builder https://github.com/datastax/cass-config-definitions,
	// used to generate Cassandra server configuration
	ServerVersion string `json:"serverVersion,omitempty"`

	// Server type: "cassandra" or "dse" for config builder, default to cassandra
	// +kubebuilder:validation:Enum=cassandra;dse
	// +kubebuilder:default:=cassandra
	ServerType string `json:"serverType,omitempty"`

	// Config for the Cassandra nodes
	// +kubebuilder:pruning:PreserveUnknownFields
	Config json.RawMessage `json:"config,omitempty"`

	// Name of the secret to uses to authenticate on Docker registries
	// If this is empty, operator do nothing
	// If this is not empty, propagate the imagePullSecrets to the statefulsets
	ImagePullSecret v1.LocalObjectReference `json:"imagePullSecret,omitempty"`

	// JMX Secret if Set is used to set JMX_USER and JMX_PASSWORD
	ImageJolokiaSecret v1.LocalObjectReference `json:"imageJolokiaSecret,omitempty"`

	//Topology to create Cassandra DC and Racks and to target appropriate Kubernetes Nodes
	Topology Topology `json:"topology,omitempty"`

	// LivenessInitialDelaySeconds defines initial delay for the liveness probe of the main
	// cassandra container : https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
	LivenessInitialDelaySeconds *int32 `json:"livenessInitialDelaySeconds,omitempty"`
	// LivenessHealthCheckTimeout defines health check timeout for the liveness probe of the main
	// cassandra container : https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
	LivenessHealthCheckTimeout *int32 `json:"livenessHealthCheckTimeout,omitempty"`
	// LivenessHealthCheckPeriod defines health check period for the liveness probe of the main
	// cassandra container : https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
	LivenessHealthCheckPeriod *int32 `json:"livenessHealthCheckPeriod,omitempty"`
	// LivenessFailureThreshold defines failure threshold for the liveness probe of the main
	// cassandra container : https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
	LivenessFailureThreshold *int32 `json:"livenessFailureThreshold,omitempty"`
	//LivenessSuccessThreshold defines success threshold for the liveness probe of the main
	// cassandra container : https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
	LivenessSuccessThreshold *int32 `json:"livenessSuccessThreshold,omitempty"`

	// ReadinessInitialDelaySeconds defines initial delay for the readiness probe of the main
	// cassandra container : https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
	ReadinessInitialDelaySeconds *int32 `json:"readinessInitialDelaySeconds,omitempty"`
	// ReadinessHealthCheckTimeout defines health check timeout for the readiness probe of the main
	// cassandra container : https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
	ReadinessHealthCheckTimeout *int32 `json:"readinessHealthCheckTimeout,omitempty"`
	// ReadinessHealthCheckPeriod defines health check period for the readiness probe of the main
	// cassandra container : https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
	ReadinessHealthCheckPeriod *int32 `json:"readinessHealthCheckPeriod,omitempty"`
	// ReadinessFailureThreshold defines failure threshold for the readiness probe of the main
	// cassandra container : https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
	ReadinessFailureThreshold *int32 `json:"readinessFailureThreshold,omitempty"`
	// ReadinessSuccessThreshold defines success threshold for the readiness probe of the main
	// cassandra container : https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
	ReadinessSuccessThreshold *int32 `json:"readinessSuccessThreshold,omitempty"`
	// When process namespace sharing is enabled, processes in a container are visible to all other containers in that pod.
	// https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
	// Optional: Default to false.
	// +k8s:conversion-gen=false
	// +optional
	ShareProcessNamespace *bool `json:"shareProcessNamespace,omitempty" protobuf:"varint,27,opt,name=shareProcessNamespace"`

	BackRestSidecar    *BackRestSidecar `json:"backRestSidecar,omitempty"`
	ServiceAccountName string           `json:"serviceAccountName,omitempty"`
}

func (*CassandraClusterSpec) DeepCopy

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

func (*CassandraClusterSpec) DeepCopyInto

func (in *CassandraClusterSpec) DeepCopyInto(out *CassandraClusterSpec)

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

type CassandraClusterStatus

type CassandraClusterStatus struct {
	// Phase indicates the state this Cassandra cluster jumps in.
	// Phase goes as one way as below:
	//   Initial -> Running <-> updating
	Phase string `json:"phase,omitempty"`

	// Store last action at cluster level
	LastClusterAction       string `json:"lastClusterAction,omitempty"`
	LastClusterActionStatus string `json:"lastClusterActionStatus,omitempty"`

	//seedList to be used in Cassandra's Pods (computed by the Operator)
	SeedList []string `json:"seedlist,omitempty"`

	//
	CassandraNodesStatus map[string]CassandraNodeStatus `json:"cassandraNodeStatus,omitempty"`

	//CassandraRackStatusList list status for each Rack
	CassandraRackStatus map[string]*CassandraRackStatus `json:"cassandraRackStatus,omitempty"`
}

CassandraClusterStatus defines Global state of CassandraCluster

func (*CassandraClusterStatus) DeepCopy

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

func (*CassandraClusterStatus) DeepCopyInto

func (in *CassandraClusterStatus) DeepCopyInto(out *CassandraClusterStatus)

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

type CassandraLastAction

type CassandraLastAction struct {
	// Action is the specific actions that can be done on a Cassandra Cluster
	// such as cleanup, upgradesstables..
	Status string `json:"status,omitempty"`

	// Type of action to perform : UpdateVersion, UpdateBaseImage, UpdateConfigMap..
	Name string `json:"name,omitempty"`

	StartTime *metav1.Time `json:"startTime,omitempty"`
	EndTime   *metav1.Time `json:"endTime,omitempty"`

	// PodNames of updated Cassandra nodes. Updated means the Cassandra container image version
	// matches the spec's version.
	UpdatedNodes []string `json:"updatedNodes,omitempty"`
}

CassandraLastAction defines status of the CassandraStatefulset

func (*CassandraLastAction) DeepCopy

func (in *CassandraLastAction) DeepCopy() *CassandraLastAction

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

func (*CassandraLastAction) DeepCopyInto

func (in *CassandraLastAction) DeepCopyInto(out *CassandraLastAction)

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

type CassandraNodeStatus

type CassandraNodeStatus struct {
	HostId string `json:"hostId,omitempty"`
	NodeIp string `json:"nodeIp,omitempty"`
}

func (*CassandraNodeStatus) DeepCopy

func (in *CassandraNodeStatus) DeepCopy() *CassandraNodeStatus

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

func (*CassandraNodeStatus) DeepCopyInto

func (in *CassandraNodeStatus) DeepCopyInto(out *CassandraNodeStatus)

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

type CassandraRackStatus

type CassandraRackStatus struct {
	// Phase indicates the state this Cassandra cluster jumps in.
	// Phase goes as one way as below:
	//   Initial -> Running <-> updating
	Phase string `json:"phase,omitempty"`

	// CassandraLastAction is the set of Cassandra State & Actions: Active, Standby..
	CassandraLastAction CassandraLastAction `json:"cassandraLastAction,omitempty"`

	// PodLastOperation manage status for Pod Operation (nodetool cleanup, upgradesstables..)
	PodLastOperation PodLastOperation `json:"podLastOperation,omitempty"`
}

CassandraRackStatus defines states of Cassandra for 1 rack (1 statefulset)

func (*CassandraRackStatus) DeepCopy

func (in *CassandraRackStatus) DeepCopy() *CassandraRackStatus

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

func (*CassandraRackStatus) DeepCopyInto

func (in *CassandraRackStatus) DeepCopyInto(out *CassandraRackStatus)

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

type CassandraRestore

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

	Spec   CassandraRestoreSpec `json:"spec"`
	Status BackRestStatus       `json:"status,omitempty"`
}

CassandraRestore is a Casskop Operator resource that represents the restoration of a backup of a Cassandra cluster

func (*CassandraRestore) DeepCopy

func (in *CassandraRestore) DeepCopy() *CassandraRestore

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

func (*CassandraRestore) DeepCopyInto

func (in *CassandraRestore) DeepCopyInto(out *CassandraRestore)

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

func (*CassandraRestore) DeepCopyObject

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

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

type CassandraRestoreList

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

CassandraRestoreList contains a list of CassandraRestore

func (*CassandraRestoreList) DeepCopy

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

func (*CassandraRestoreList) DeepCopyInto

func (in *CassandraRestoreList) DeepCopyInto(out *CassandraRestoreList)

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

func (*CassandraRestoreList) DeepCopyObject

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

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

type CassandraRestoreSpec

type CassandraRestoreSpec struct {
	// Name of the CassandraCluster the restore belongs to
	CassandraCluster string `json:"cassandraCluster"`
	// Cassandra DC name to restore, used to find the cassandra nodes in the CassandraCluster
	Datacenter string `json:"datacenter,omitempty"`
	// Name of the CassandraBackup to restore
	CassandraBackup string `json:"cassandraBackup"`
	// Maximum number of threads used to download files from the cloud. Defaults to 10
	ConcurrentConnection *int32 `json:"concurrentConnection,omitempty"`
	// Directory of Cassandra where data folder resides. Defaults to /var/lib/cassandra
	CassandraDirectory string `json:"cassandraDirectory,omitempty"`
	// When set do not delete truncated SSTables after they've been restored during CLEANUP phase.
	// Defaults to false
	NoDeleteTruncates bool `json:"noDeleteTruncates,omitempty"`
	// Version of the schema to restore from. Upon backup, a schema version is automatically appended to a snapshot
	// name and its manifest is uploaded under that name. In case we have two snapshots having same name, we might
	// distinguish between the two of them by using the schema version. If schema version is not specified, we expect
	// a unique backup taken with respective snapshot name. This schema version has to match the version of a Cassandra
	// node we are doing restore for (hence, by proxy, when global request mode is used, all nodes have to be on exact
	// same schema version). Defaults to False
	SchemaVersion string `json:"schemaVersion,omitempty"`
	// When set a running node's schema version must match the snapshot's schema version. There might be cases when we
	// want to restore a table for which its CQL schema has not changed but it has changed for other table / keyspace
	// but a schema for that node has changed by doing that. Defaults to False
	ExactSchemaVersion bool `json:"exactSchemaVersion,omitempty""`
	// Database entities to restore, it might be either only keyspaces or only tables prefixed by their respective
	// keyspace, e.g. 'k1,k2' if one wants to backup whole keyspaces or 'ks1.t1,ks2.t2' if one wants to restore specific
	// tables. These formats are mutually exclusive so 'k1,k2.t2' is invalid. An empty field will restore all keyspaces
	Entities string            `json:"entities,omitempty"`
	Rename   map[string]string `json:"rename,omitempty"`
	// Name of Secret to use when accessing cloud storage providers
	Secret string `json:"secret,omitempty"`
}

CassandraRestoreSpec defines the specification for a restore of a Cassandra backup.

func (*CassandraRestoreSpec) DeepCopy

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

func (*CassandraRestoreSpec) DeepCopyInto

func (in *CassandraRestoreSpec) DeepCopyInto(out *CassandraRestoreSpec)

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

type ClusterStateInfo

type ClusterStateInfo struct {
	ID   float64
	Name string
}

ClusterStateInfo describe a cluster state

func (*ClusterStateInfo) DeepCopy

func (in *ClusterStateInfo) DeepCopy() *ClusterStateInfo

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

func (*ClusterStateInfo) DeepCopyInto

func (in *ClusterStateInfo) DeepCopyInto(out *ClusterStateInfo)

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

type DC

type DC struct {
	//Name of the DC
	// +kubebuilder:validation:Pattern=^[^-]+$
	Name string `json:"name,omitempty"`
	//Labels used to target Kubernetes nodes
	Labels map[string]string `json:"labels,omitempty"`

	// Config for the Cassandra nodes
	// +kubebuilder:pruning:PreserveUnknownFields
	Config json.RawMessage `json:"config,omitempty"`

	//List of Racks defined in the Cassandra DC
	Rack RackSlice `json:"rack,omitempty"`

	// Number of nodes to deploy for a Cassandra deployment in each Racks.
	// Default: 1.
	// Optional, if not filled, used value define in CassandraClusterSpec
	NodesPerRacks *int32 `json:"nodesPerRacks,omitempty"`

	// Define the Capacity for Persistent Volume Claims in the local storage
	// +kubebuilder:validation:Pattern=^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
	DataCapacity string `json:"dataCapacity,omitempty"`

	//Define StorageClass for Persistent Volume Claims in the local storage.
	DataStorageClass string `json:"dataStorageClass,omitempty"`

	Resources v1.ResourceRequirements `json:"resources,omitempty"`
}

DC allow to configure Cassandra RC according to kubernetes nodeselector labels

func (*DC) DeepCopy

func (in *DC) DeepCopy() *DC

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

func (*DC) DeepCopyInto

func (in *DC) DeepCopyInto(out *DC)

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

type DCSlice

type DCSlice []DC

func (DCSlice) DeepCopy

func (in DCSlice) DeepCopy() DCSlice

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

func (DCSlice) DeepCopyInto

func (in DCSlice) DeepCopyInto(out *DCSlice)

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

func (*DCSlice) Remove

func (dc *DCSlice) Remove(idx int)

Remove elements from DC slice

type FailureCause

type FailureCause struct {
	// hostame of a node where this error has occurred
	Source string `json:"source,omitempty"`
	// message explaining the error
	Message string `json:"message,omitempty"`
}

func (*FailureCause) DeepCopy

func (in *FailureCause) DeepCopy() *FailureCause

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

func (*FailureCause) DeepCopyInto

func (in *FailureCause) DeepCopyInto(out *FailureCause)

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

type PodLastOperation

type PodLastOperation struct {
	Name string `json:"name,omitempty"`

	Status string `json:"status,omitempty"`

	StartTime *metav1.Time `json:"startTime,omitempty"`
	EndTime   *metav1.Time `json:"endTime,omitempty"`

	//List of pods running an operation
	Pods []string `json:"pods,omitempty"`
	//List of pods that run an operation successfully
	PodsOK []string `json:"podsOK,omitempty"`
	//List of pods that fail to run an operation
	PodsKO []string `json:"podsKO,omitempty"`

	// Name of operator
	OperatorName string `json:"operatorName,omitempty"`
}

PodLastOperation is managed via labels on Pods set by an administrator

func (*PodLastOperation) DeepCopy

func (in *PodLastOperation) DeepCopy() *PodLastOperation

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

func (*PodLastOperation) DeepCopyInto

func (in *PodLastOperation) DeepCopyInto(out *PodLastOperation)

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

type PodPolicy

type PodPolicy struct {
	// Annotations specifies the annotations to attach to headless service the CassKop operator creates
	Annotations map[string]string `json:"annotations,omitempty"`
	// Tolerations specifies the tolerations to attach to the pods the CassKop operator creates
	Tolerations []v1.Toleration `json:"tolerations,omitempty"`
}

PodPolicy defines the policy for pods owned by CassKop operator.

func (*PodPolicy) DeepCopy

func (in *PodPolicy) DeepCopy() *PodPolicy

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

func (*PodPolicy) DeepCopyInto

func (in *PodPolicy) DeepCopyInto(out *PodPolicy)

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

type Rack

type Rack struct {
	//Name of the Rack
	// +kubebuilder:validation:Pattern=^[^-]+$
	Name string `json:"name,omitempty"`

	//Labels used to target Kubernetes nodes
	Labels map[string]string `json:"labels,omitempty"`

	// Config for the Cassandra nodes
	// +kubebuilder:pruning:PreserveUnknownFields
	Config json.RawMessage `json:"config,omitempty"`

	// Flag to tell the operator to trigger a rolling restart of the Rack
	RollingRestart bool `json:"rollingRestart,omitempty"`

	//The Partition to control the Statefulset Upgrade
	RollingPartition int32 `json:"rollingPartition,omitempty"`
}

Rack allow to configure Cassandra Rack according to kubernetes nodeselector labels

func (*Rack) DeepCopy

func (in *Rack) DeepCopy() *Rack

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

func (*Rack) DeepCopyInto

func (in *Rack) DeepCopyInto(out *Rack)

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

type RackSlice

type RackSlice []Rack

func (RackSlice) DeepCopy

func (in RackSlice) DeepCopy() RackSlice

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

func (RackSlice) DeepCopyInto

func (in RackSlice) DeepCopyInto(out *RackSlice)

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

func (*RackSlice) Remove

func (rack *RackSlice) Remove(idx int)

Remove elements from Rack slice

type RestoreConditionType

type RestoreConditionType string

RestoreConditionType represents a valid condition of a Restore

const (
	// RestoreRequired means the Restore has been assigned to a Cluster member for execution
	RestoreRequired RestoreConditionType = "REQUIRED"
	RestorePending  RestoreConditionType = "PENDING"
	RestoreRunning  RestoreConditionType = "RUNNING"
	// RestoreComplete means the Restore has successfully been executed and resulting artifact stored in object storage
	RestoreCompleted RestoreConditionType = "COMPLETED"
	RestoreFailed    RestoreConditionType = "FAILED"
	// RestoreCanceled means the Restore operation was interrupted while being run
	RestoreCanceled RestoreConditionType = "CANCELED"
)

func (RestoreConditionType) IsCompleted

func (r RestoreConditionType) IsCompleted() bool

func (RestoreConditionType) IsInError

func (r RestoreConditionType) IsInError() bool

func (RestoreConditionType) IsInProgress

func (r RestoreConditionType) IsInProgress() bool

func (RestoreConditionType) IsPending

func (r RestoreConditionType) IsPending() bool

func (RestoreConditionType) IsRequired

func (r RestoreConditionType) IsRequired() bool

func (RestoreConditionType) IsRunning

func (r RestoreConditionType) IsRunning() bool

type ServicePolicy

type ServicePolicy struct {
	// Annotations specifies the annotations to attach to headless service the CassKop operator creates
	Annotations map[string]string `json:"annotations,omitempty"`
}

ServicePolicy defines the policy for headless service owned by CassKop operator.

func (*ServicePolicy) DeepCopy

func (in *ServicePolicy) DeepCopy() *ServicePolicy

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

func (*ServicePolicy) DeepCopyInto

func (in *ServicePolicy) DeepCopyInto(out *ServicePolicy)

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

type StorageConfig

type StorageConfig struct {
	// Mount path into cassandra container
	MountPath string `json:"mountPath"`
	// Name of the pvc
	// +kubebuilder:validation:Pattern=[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*
	Name string `json:"name"`
	// Persistent volume claim spec
	PVCSpec *v1.PersistentVolumeClaimSpec `json:"pvcSpec"`
}

StorageConfig defines additional storage configurations

func (*StorageConfig) DeepCopy

func (in *StorageConfig) DeepCopy() *StorageConfig

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

func (*StorageConfig) DeepCopyInto

func (in *StorageConfig) DeepCopyInto(out *StorageConfig)

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

type Topology

type Topology struct {
	//List of DC defined in the CassandraCluster
	DC DCSlice `json:"dc,omitempty"`
}

Topology allow to configure the Cassandra Topology according to kubernetes Nodes labels

func (*Topology) DeepCopy

func (in *Topology) DeepCopy() *Topology

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

func (*Topology) DeepCopyInto

func (in *Topology) DeepCopyInto(out *Topology)

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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