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
- Variables
- func ProgressPercentage(progress float64) string
- type BackRestCondition
- type BackRestSidecar
- type BackRestStatus
- type BackupConditionType
- type CassandraBackup
- func (cb *CassandraBackup) ComputeLastAppliedAnnotation() (string, error)
- func (in *CassandraBackup) DeepCopy() *CassandraBackup
- func (in *CassandraBackup) DeepCopyInto(out *CassandraBackup)
- func (in *CassandraBackup) DeepCopyObject() runtime.Object
- func (backupSpec *CassandraBackup) IsAzureBackup() bool
- func (backupSpec *CassandraBackup) IsFileBackup() bool
- func (backupSpec *CassandraBackup) IsGcpBackup() bool
- func (backupSpec *CassandraBackup) IsS3Backup() bool
- func (cb *CassandraBackup) IsScheduled() bool
- func (cb *CassandraBackup) PreventBackupDeletion(value bool)
- func (cb *CassandraBackup) Ran() bool
- type CassandraBackupList
- type CassandraBackupSpec
- type CassandraCluster
- func (cc *CassandraCluster) CheckDefaults()
- func (cc *CassandraCluster) ComputeLastAppliedConfiguration() ([]byte, error)
- func (in *CassandraCluster) DeepCopy() *CassandraCluster
- func (in *CassandraCluster) DeepCopyInto(out *CassandraCluster)
- func (in *CassandraCluster) DeepCopyObject() runtime.Object
- func (cc *CassandraCluster) FindDCWithNodesTo0() (bool, string, int)
- func (cc *CassandraCluster) FixCassandraRackList(status *CassandraClusterStatus) []string
- func (cc *CassandraCluster) GetDCFromDCRackName(dcRackName string) *DC
- func (cc *CassandraCluster) GetDCIndexFromDCName(dcName string) int
- func (cc *CassandraCluster) GetDCName(dc int) string
- func (cc *CassandraCluster) GetDCNameAndRackNameFromDCRackName(dcRackName string) (string, string)
- func (cc *CassandraCluster) GetDCNameFromDCRackName(dcRackName string) string
- func (cc *CassandraCluster) GetDCNodesPerRacksFromDCRackName(dcRackName string) int32
- func (cc *CassandraCluster) GetDCNodesPerRacksFromName(dctarget string) (bool, int32)
- func (cc *CassandraCluster) GetDCRackName(dcName string, rackName string) string
- func (cc *CassandraCluster) GetDCRackNames() []string
- func (cc *CassandraCluster) GetDCRackSize() int
- func (cc *CassandraCluster) GetDCSize() int
- func (cc *CassandraCluster) GetDataCapacityForDC(dcName string) string
- func (cc *CassandraCluster) GetDataCapacityFromDCName(dcName string) string
- func (cc *CassandraCluster) GetDataStorageClassForDC(dcName string) string
- func (cc *CassandraCluster) GetDataStorageClassFromDCName(dcName string) string
- func (cc *CassandraCluster) GetNodesPerRacks(dcRackName string) int32
- func (cc *CassandraCluster) GetRackFromDCRackName(dcRackName string) *Rack
- func (cc *CassandraCluster) GetRackName(dc int, rack int) string
- func (cc *CassandraCluster) GetRackSize(dc int) int
- func (cc *CassandraCluster) GetRemovedDCName(oldCRD *CassandraCluster) string
- func (cc *CassandraCluster) GetRollingPartitionPerRacks(dcRackName string) int32
- func (cc *CassandraCluster) GetStatusDCRackSize() int
- func (cc *CassandraCluster) InitCassandraRackList() int
- func (cc *CassandraCluster) InitCassandraRackStatus(status *CassandraClusterStatus, dcName string, rackName string)
- func (cc *CassandraCluster) InitSeedList() []string
- func (cc *CassandraCluster) IsPodInSeedList(podName string) bool
- func (cc *CassandraCluster) IsValidDC(dcName string) bool
- func (cc *CassandraCluster) SeedList(seedListTab *[]string) string
- func (cc *CassandraCluster) SetDefaults() bool
- type CassandraClusterList
- type CassandraClusterSpec
- type CassandraClusterStatus
- type CassandraLastAction
- type CassandraNodeStatus
- type CassandraRackStatus
- type CassandraRestore
- type CassandraRestoreList
- type CassandraRestoreSpec
- type ClusterStateInfo
- type DC
- type DCSlice
- type FailureCause
- type PodLastOperation
- type PodPolicy
- type Rack
- type RackSlice
- type RestoreConditionType
- type ServicePolicy
- type StorageConfig
- type Topology
Constants ¶
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 )
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 ¶
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 )
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 ¶
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 ¶
func (in *CassandraClusterList) DeepCopy() *CassandraClusterList
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"` // 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"` // 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 ¶
func (in *CassandraClusterSpec) DeepCopy() *CassandraClusterSpec
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 ¶
func (in *CassandraClusterStatus) DeepCopy() *CassandraClusterStatus
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 ¶
func (in *CassandraRestoreList) DeepCopy() *CassandraRestoreList
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 ¶
func (in *CassandraRestoreSpec) DeepCopy() *CassandraRestoreSpec
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DC.
func (*DC) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DCSlice.
func (DCSlice) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodPolicy.
func (*PodPolicy) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rack.
func (*Rack) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RackSlice.
func (RackSlice) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Topology.
func (*Topology) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.