Documentation

Overview

    Package v1alpha1 contains API Schema definitions for the db v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=db.orange.com

    Package v1alpha1 contains API Schema definitions for the db v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=db.orange.com

    Index

    Constants

    View Source
    const (
    	DefaultCassandraDC   string = "dc1"
    	DefaultCassandraRack string = "rack1"
    
    	DefaultTerminationGracePeriodSeconds = 1800
    
    	//DefaultDelayWait: wait 20 seconds (2x resyncPeriod) prior to follow status of an operation
    	DefaultResyncPeriod = 10
    	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
    
    	//DefaultUserID is the default ID to use in cassandra image (RunAsUser)
    	DefaultUserID int64 = 1000
    )
    View Source
    const (
    	AnnotationLastApplied string = "cassandraclusters.db.orange.com/last-applied-configuration"
    	//Phase du Cluster
    	ClusterPhaseInitial string = "Initializing"
    	ClusterPhaseRunning string = "Running"
    	ClusterPhasePending string = "Pending"
    
    	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"
    
    	//Available actions
    	ActionUpdateConfigMap   string = "UpdateConfigMap"
    	ActionUpdateDockerImage string = "UpdateDockerImage"
    	ActionUpdateSeedList    string = "UpdateSeedList"
    	ActionRollingRestart    string = "RollingRestart"
    	ActionUpdateResources   string = "UpdateResources"
    	ActionUpdateStatefulSet string = "UpdateStatefulSet"
    	ActionScaleUp           string = "ScaleUp"
    	ActionScaleDown         string = "ScaleDown"
    
    	ActionDeleteDC   string = "ActionDeleteDC"
    	ActionDeleteRack string = "ActionDeleteRack"
    
    	ActionCorrectCRDConfig string = "CorrectCRDConfig" //The Operator has correct a bad CRD configuration
    
    	//List of Pods Operations
    	OperationUpgradeSSTables string = "upgradesstables"
    	OperationCleanup         string = "cleanup"
    	OperationDecommission    string = "decommission"
    	OperationRebuild         string = "rebuild"
    	OperationRemove          string = "remove"
    )

    Variables

    View Source
    var (
    	// SchemeGroupVersion is group version used to register these objects
    	SchemeGroupVersion = schema.GroupVersion{Group: "db.orange.com", Version: "v1alpha1"}
    
    	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
    	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
    )

    Functions

    func RegisterDefaults

    func RegisterDefaults(scheme *runtime.Scheme) error

      RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.

      Types

      type CPUAndMem

      type CPUAndMem struct {
      	CPU    string `json:"cpu"`
      	Memory string `json:"memory"`
      }

        CPUAndMem defines how many cpu and ram the container will request/limit

        func (*CPUAndMem) DeepCopy

        func (in *CPUAndMem) DeepCopy() *CPUAndMem

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

          func (*CPUAndMem) DeepCopyInto

          func (in *CPUAndMem) DeepCopyInto(out *CPUAndMem)

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

            type CassandraCluster

            type CassandraCluster struct {
            	metav1.TypeMeta   `json:",inline"`
            	metav1.ObjectMeta `json:"metadata,omitempty"`
            
            	Spec   CassandraClusterSpec   `json:"spec,omitempty"`
            	Status CassandraClusterStatus `json:"status,omitempty"`
            }

              CassandraCluster is the Schema for the cassandraclusters API +k8s:openapi-gen=true

              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) GetDCAndRackFromDCRackName

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

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

                          func (*CassandraCluster) GetDCFromDCRackName

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

                            GetDCFromDCRackName send dc name from dcRackName (dc-rack)

                            func (*CassandraCluster) GetDCName

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

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

                              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 return 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) GetNodesPerRacks

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

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

                                          func (*CassandraCluster) GetNumTokensPerRacks

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

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

                                            func (*CassandraCluster) GetRackName

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

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

                                              func (*CassandraCluster) GetRackSize

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

                                                GetRAckSize return the numbers of the Rack in the DCat 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) GetSeedList

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

                                                  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) InitCassandraRackinStatus

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

                                                      InitCassandraRack Initialisation of a CassandraRack Structure which is appended to the CRD status In this method we create it in status var instead of directly in cc object This is because except for init the cc, ca 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 sides 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) SetDefaults

                                                          func (cc *CassandraCluster) SetDefaults() bool

                                                            SetDefaults sets the default values for the cassandra spec and returns true if the spec was changed

                                                            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"`
                                                                    
                                                                    	// Base image to use for a Cassandra deployment.
                                                                    	BaseImage string `json:"baseImage"`
                                                                    
                                                                    	// Version of Cassandra to be deployed.
                                                                    	Version string `json:"version"`
                                                                    
                                                                    	//ImagePullPolicy define the pull poicy for C* docker image
                                                                    	ImagePullPolicy v1.PullPolicy `json:"imagepullpolicy"`
                                                                    
                                                                    	//RunAsUser define the id of the user to run in the Cassandra image
                                                                    	RunAsUser *int64 `json:"runAsUser"`
                                                                    
                                                                    	// Pod defines the policy for pods owned by cassandra operator.
                                                                    	// This field cannot be updated once the CR is created.
                                                                    	//Pod       *PodPolicy         `json:"pod,omitempty"`
                                                                    	Resources CassandraResources `json:"resources,omitempty"`
                                                                    
                                                                    	// HardAntiAffinity defines if the PodAntiAffinity of the
                                                                    	// statefulsets has to be hard (it's soft by default)
                                                                    	HardAntiAffinity bool `json:"hardAntiAffinity,omitempty"`
                                                                    
                                                                    	//DeletePVC defines if the PVC must be deleted when the cluster is deleted
                                                                    	//it is false by default
                                                                    	DeletePVC bool `json:"deletePVC,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"`
                                                                    
                                                                    	//GCStdout set the parameter CASSANDRA_GC_STDOUT which configure the JVM -Xloggc: true by default
                                                                    	GCStdout bool `json:"gcStdout,omitempty" default:"true"`
                                                                    
                                                                    	//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"` //Number of MasPodUnavailable used in the PDB
                                                                    
                                                                    	//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
                                                                    	DataCapacity string `json:"dataCapacity,omitempty"`
                                                                    
                                                                    	//Define StorageClass for Persistent Volume Claims in the local storage.
                                                                    	DataStorageClass string `json:"dataStorageClass,omitempty"`
                                                                    
                                                                    	// 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"`
                                                                    
                                                                    	// 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"`
                                                                    }

                                                                      CassandraClusterSpec defines the configuration of CassandraCluster

                                                                      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"`
                                                                          
                                                                          	//seeList to be used in Cassandra's Pods (computed by the Operator)
                                                                          	SeedList []string `json:"seedlist,omitempty"`
                                                                          
                                                                          	//CassandraRackStatusList list les Status pour chaque Racks
                                                                          	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 d'action a effectuer : 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 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 CassandraResources

                                                                                            type CassandraResources struct {
                                                                                            	Requests CPUAndMem `json:"requests,omitempty"`
                                                                                            	Limits   CPUAndMem `json:"limits,omitempty"`
                                                                                            }

                                                                                              CassandraClusterResources sets the limits and requests for a container

                                                                                              func (*CassandraResources) DeepCopy

                                                                                              func (in *CassandraResources) DeepCopy() *CassandraResources

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

                                                                                                func (*CassandraResources) DeepCopyInto

                                                                                                func (in *CassandraResources) DeepCopyInto(out *CassandraResources)

                                                                                                  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 CassandraDC
                                                                                                  	Name string `json:"name,omitempty"`
                                                                                                  	//Labels used to target Kubernetes nodes
                                                                                                  	Labels map[string]string `json:"labels,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"`
                                                                                                  
                                                                                                  	//NumTokens : configure the CASSANDRA_NUM_TOKENS parameter which can be different for each DD
                                                                                                  	NumTokens *int32 `json:"numTokens,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(i int)

                                                                                                              Remove elements from DC slice

                                                                                                              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 {
                                                                                                                    	// Resources is the resource requirements for the containers.
                                                                                                                    	Resources v1.ResourceRequirements `json:"resources,omitempty"`
                                                                                                                    }

                                                                                                                      PodPolicy defines the policy for pods owned by vault 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
                                                                                                                          	Name string `json:"name,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"`
                                                                                                                          
                                                                                                                          	//Labels used to target Kubernetes nodes
                                                                                                                          	Labels map[string]string `json:"labels,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(i int)

                                                                                                                                      Remove elements from Rack slice

                                                                                                                                      type Topology

                                                                                                                                      type Topology struct {
                                                                                                                                      	//Liste 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.