Documentation ¶
Overview ¶
+kubebuilder:validation:Optional +groupName=scylla.scylladb.com
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type AlternatorOptions
- type BroadcastAddressType
- type BroadcastOptions
- type CQLExposeIngressOptions
- type CQLExposeOptions
- type Components
- type DeviceDiscovery
- type ExposeOptions
- type FilesystemConfiguration
- type FilesystemType
- type GrafanaAuthentication
- type GrafanaExposeOptions
- type GrafanaSpec
- type HTTPSExposeOptions
- type IngressOptions
- type LocalDiskSetup
- type LoopDeviceConfiguration
- type MountConfiguration
- type NodeBroadcastOptions
- type NodeConfig
- type NodeConfigCondition
- type NodeConfigConditionType
- type NodeConfigConditions
- type NodeConfigList
- type NodeConfigNodeStatus
- type NodeConfigPlacement
- type NodeConfigSpec
- type NodeConfigStatus
- type NodeServiceTemplate
- type NodeServiceType
- type ObjectTemplateMetadata
- type OperatorManagedTLSCertificateOptions
- type Placement
- type PlacementSpec
- type PodIPAddressOptions
- type PodIPInterfaceOptions
- type PodIPSourceType
- type PrometheusExposeOptions
- type PrometheusSpec
- type RAID0Options
- type RAIDConfiguration
- type RAIDType
- type RackSpec
- type RackStatus
- type RackTemplate
- type ScyllaDB
- type ScyllaDBDatacenter
- type ScyllaDBDatacenterList
- type ScyllaDBDatacenterSpec
- type ScyllaDBDatacenterStatus
- type ScyllaDBManagerAgent
- type ScyllaDBManagerAgentTemplate
- type ScyllaDBMonitoring
- type ScyllaDBMonitoringList
- type ScyllaDBMonitoringSpec
- type ScyllaDBMonitoringStatus
- type ScyllaDBMonitoringType
- type ScyllaDBTemplate
- type ScyllaOperatorConfig
- type ScyllaOperatorConfigList
- type ScyllaOperatorConfigSpec
- type ScyllaOperatorConfigStatus
- type Storage
- type StorageOptions
- type TLSCertificate
- type TLSCertificateType
- type UserManagedTLSCertificateOptions
Constants ¶
const ( AvailableCondition = "Available" ProgressingCondition = "Progressing" DegradedCondition = "Degraded" )
Variables ¶
var ( GroupName = "scylla.scylladb.com" GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} // Install is a function which adds this version to a scheme Install = schemeBuilder.AddToScheme // SchemeGroupVersion generated code relies on this name // Deprecated SchemeGroupVersion = GroupVersion // AddToScheme exists solely to keep the old generators creating valid code // DEPRECATED AddToScheme = schemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource generated code relies on this being here, but it logically belongs to the group DEPRECATED
Types ¶
type AlternatorOptions ¶
type AlternatorOptions struct { // writeIsolation specifies the isolation level. WriteIsolation string `json:"writeIsolation,omitempty"` // servingCertificate references a TLS certificate for serving secure traffic. // +kubebuilder:default:={type:"OperatorManaged"} // +optional ServingCertificate *TLSCertificate `json:"servingCertificate,omitempty"` }
AlternatorOptions holds Alternator settings.
func (*AlternatorOptions) DeepCopy ¶
func (in *AlternatorOptions) DeepCopy() *AlternatorOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlternatorOptions.
func (*AlternatorOptions) DeepCopyInto ¶
func (in *AlternatorOptions) DeepCopyInto(out *AlternatorOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BroadcastAddressType ¶
type BroadcastAddressType string
const ( // BroadcastAddressTypePodIP selects the IP address from Pod. BroadcastAddressTypePodIP BroadcastAddressType = "PodIP" // BroadcastAddressTypeServiceClusterIP selects the IP address from Service.spec.ClusterIP BroadcastAddressTypeServiceClusterIP BroadcastAddressType = "ServiceClusterIP" // BroadcastAddressTypeServiceLoadBalancerIngress selects the IP address or Hostname from Service.status.ingress[0] BroadcastAddressTypeServiceLoadBalancerIngress BroadcastAddressType = "ServiceLoadBalancerIngress" )
type BroadcastOptions ¶
type BroadcastOptions struct { // type specifies the address type that is broadcasted. Type BroadcastAddressType `json:"type"` // podIP holds options related to Pod IP address. // +optional PodIP *PodIPAddressOptions `json:"podIP,omitempty"` }
BroadcastOptions hold options related to address broadcasted by ScyllaDB node.
func (*BroadcastOptions) DeepCopy ¶
func (in *BroadcastOptions) DeepCopy() *BroadcastOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BroadcastOptions.
func (*BroadcastOptions) DeepCopyInto ¶
func (in *BroadcastOptions) DeepCopyInto(out *BroadcastOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CQLExposeIngressOptions ¶
type CQLExposeIngressOptions struct { ObjectTemplateMetadata `json:",inline"` // ingressClassName specifies Ingress class name. // +optional IngressClassName string `json:"ingressClassName,omitempty"` }
CQLExposeIngressOptions defines configuration options for Ingress objects associated with cluster nodes.
func (*CQLExposeIngressOptions) DeepCopy ¶
func (in *CQLExposeIngressOptions) DeepCopy() *CQLExposeIngressOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CQLExposeIngressOptions.
func (*CQLExposeIngressOptions) DeepCopyInto ¶
func (in *CQLExposeIngressOptions) DeepCopyInto(out *CQLExposeIngressOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CQLExposeOptions ¶
type CQLExposeOptions struct { // ingress specifies an Ingress configuration options. // If provided and enabled, Ingress objects routing to CQL SSL port are generated for each ScyllaDB node // with the following options. Ingress *CQLExposeIngressOptions `json:"ingress,omitempty"` }
CQLExposeOptions hold options related to exposing CQL backend.
func (*CQLExposeOptions) DeepCopy ¶
func (in *CQLExposeOptions) DeepCopy() *CQLExposeOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CQLExposeOptions.
func (*CQLExposeOptions) DeepCopyInto ¶
func (in *CQLExposeOptions) DeepCopyInto(out *CQLExposeOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Components ¶ added in v1.9.0
type Components struct { // prometheus holds configuration for the prometheus instance, if any. // +optional Prometheus *PrometheusSpec `json:"prometheus,omitempty"` // grafana holds configuration for the grafana instance, if any. // +optional Grafana *GrafanaSpec `json:"grafana,omitempty"` }
Components holds the options to configure individual applications.
func (*Components) DeepCopy ¶ added in v1.9.0
func (in *Components) DeepCopy() *Components
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Components.
func (*Components) DeepCopyInto ¶ added in v1.9.0
func (in *Components) DeepCopyInto(out *Components)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeviceDiscovery ¶ added in v1.9.0
type DeviceDiscovery struct { // nameRegex is a regular expression filtering devices by their name. // +optional NameRegex string `json:"nameRegex"` // modelRegex is a regular expression filtering devices by their model name. // +optional ModelRegex string `json:"modelRegex"` }
DeviceDiscovery specifies options for device discovery.
func (*DeviceDiscovery) DeepCopy ¶ added in v1.9.0
func (in *DeviceDiscovery) DeepCopy() *DeviceDiscovery
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceDiscovery.
func (*DeviceDiscovery) DeepCopyInto ¶ added in v1.9.0
func (in *DeviceDiscovery) DeepCopyInto(out *DeviceDiscovery)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExposeOptions ¶
type ExposeOptions struct { // cql specifies expose options for CQL SSL backend. // +optional CQL *CQLExposeOptions `json:"cql,omitempty"` // nodeService controls properties of Service dedicated for each ScyllaDBDatacenter node. // +kubebuilder:default:={type:"ClusterIP"} NodeService *NodeServiceTemplate `json:"nodeService,omitempty"` // BroadcastOptions defines how ScyllaDB node publishes its IP address to other nodes and clients. BroadcastOptions *NodeBroadcastOptions `json:"broadcastOptions,omitempty"` }
ExposeOptions hold options related to exposing ScyllaDBDatacenter backends.
func (*ExposeOptions) DeepCopy ¶
func (in *ExposeOptions) DeepCopy() *ExposeOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExposeOptions.
func (*ExposeOptions) DeepCopyInto ¶
func (in *ExposeOptions) DeepCopyInto(out *ExposeOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FilesystemConfiguration ¶ added in v1.9.0
type FilesystemConfiguration struct { // device is a path to the device where the desired filesystem should be created. Device string `json:"device"` // type is a desired filesystem type. Type FilesystemType `json:"type"` }
FilesystemConfiguration specifies filesystem configuration options.
func (*FilesystemConfiguration) DeepCopy ¶ added in v1.9.0
func (in *FilesystemConfiguration) DeepCopy() *FilesystemConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FilesystemConfiguration.
func (*FilesystemConfiguration) DeepCopyInto ¶ added in v1.9.0
func (in *FilesystemConfiguration) DeepCopyInto(out *FilesystemConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FilesystemType ¶ added in v1.9.0
type FilesystemType string
FilesystemType is a type of filesystem.
const ( // XFSFilesystem represents an XFS filesystem type. XFSFilesystem FilesystemType = "xfs" )
type GrafanaAuthentication ¶ added in v1.9.0
type GrafanaAuthentication struct { // insecureEnableAnonymousAccess allows access to Grafana without authentication. // +optional InsecureEnableAnonymousAccess bool `json:"insecureEnableAnonymousAccess,omitempty"` }
GrafanaAuthentication holds the options to configure Grafana authentication.
func (*GrafanaAuthentication) DeepCopy ¶ added in v1.9.0
func (in *GrafanaAuthentication) DeepCopy() *GrafanaAuthentication
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrafanaAuthentication.
func (*GrafanaAuthentication) DeepCopyInto ¶ added in v1.9.0
func (in *GrafanaAuthentication) DeepCopyInto(out *GrafanaAuthentication)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GrafanaExposeOptions ¶ added in v1.9.0
type GrafanaExposeOptions struct { // webInterface specifies expose options for the user web interface. // +optional WebInterface *HTTPSExposeOptions `json:"webInterface,omitempty"` }
GrafanaExposeOptions holds options related to exposing Grafana app.
func (*GrafanaExposeOptions) DeepCopy ¶ added in v1.9.0
func (in *GrafanaExposeOptions) DeepCopy() *GrafanaExposeOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrafanaExposeOptions.
func (*GrafanaExposeOptions) DeepCopyInto ¶ added in v1.9.0
func (in *GrafanaExposeOptions) DeepCopyInto(out *GrafanaExposeOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GrafanaSpec ¶ added in v1.9.0
type GrafanaSpec struct { // placement describes restrictions for the nodes Grafana is scheduled on. // +optional Placement *PlacementSpec `json:"placement,omitempty"` // resources the Grafana container will use. Resources corev1.ResourceRequirements `json:"resources"` // exposeOptions specifies options for exposing Grafana UI. // +optional ExposeOptions *GrafanaExposeOptions `json:"exposeOptions,omitempty"` // servingCertSecretName is the name of the secret holding a serving cert-key pair. // If not specified, the operator will create a self-signed CA that creates // the default serving cert-key pair. // +optional ServingCertSecretName string `json:"servingCertSecretName,omitempty"` // authentication hold the authentication options for accessing Grafana. // +optional Authentication GrafanaAuthentication `json:"authentication,omitempty"` }
GrafanaSpec holds the options to configure Grafana.
func (*GrafanaSpec) DeepCopy ¶ added in v1.9.0
func (in *GrafanaSpec) DeepCopy() *GrafanaSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrafanaSpec.
func (*GrafanaSpec) DeepCopyInto ¶ added in v1.9.0
func (in *GrafanaSpec) DeepCopyInto(out *GrafanaSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HTTPSExposeOptions ¶ added in v1.9.0
type HTTPSExposeOptions struct { // ingress is an Ingress configuration options. // +optional Ingress *IngressOptions `json:"ingress,omitempty"` }
HTTPSExposeOptions holds options related to exposing HTTPS backend.
func (*HTTPSExposeOptions) DeepCopy ¶ added in v1.9.0
func (in *HTTPSExposeOptions) DeepCopy() *HTTPSExposeOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPSExposeOptions.
func (*HTTPSExposeOptions) DeepCopyInto ¶ added in v1.9.0
func (in *HTTPSExposeOptions) DeepCopyInto(out *HTTPSExposeOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngressOptions ¶ added in v1.9.0
type IngressOptions struct { // disabled controls if Ingress object creation is disabled. // +optional Disabled *bool `json:"disabled,omitempty"` // ingressClassName specifies Ingress class name. IngressClassName string `json:"ingressClassName,omitempty"` // annotations specifies custom annotations merged into every Ingress object. // +optional Annotations map[string]string `json:"annotations,omitempty"` // dnsDomains is a list of DNS domains this ingress is reachable by. // +optional DNSDomains []string `json:"dnsDomains,omitempty"` }
IngressOptions defines configuration options for Ingress objects.
func (*IngressOptions) DeepCopy ¶ added in v1.9.0
func (in *IngressOptions) DeepCopy() *IngressOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressOptions.
func (*IngressOptions) DeepCopyInto ¶ added in v1.9.0
func (in *IngressOptions) DeepCopyInto(out *IngressOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalDiskSetup ¶ added in v1.9.0
type LocalDiskSetup struct { // loops is a list of loop device configurations. LoopDevices []LoopDeviceConfiguration `json:"loopDevices"` // raids is a list of raid configurations. RAIDs []RAIDConfiguration `json:"raids"` // filesystems is a list of filesystem configurations. Filesystems []FilesystemConfiguration `json:"filesystems"` // mounts is a list of mount configuration. Mounts []MountConfiguration `json:"mounts"` }
LocalDiskSetup specifies configuration of local disk setup.
func (*LocalDiskSetup) DeepCopy ¶ added in v1.9.0
func (in *LocalDiskSetup) DeepCopy() *LocalDiskSetup
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalDiskSetup.
func (*LocalDiskSetup) DeepCopyInto ¶ added in v1.9.0
func (in *LocalDiskSetup) DeepCopyInto(out *LocalDiskSetup)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoopDeviceConfiguration ¶ added in v1.12.0
type LoopDeviceConfiguration struct { // name specifies the name of the symlink that will point to actual loop device, created under `/dev/loops/`. Name string `json:"name"` // imagePath specifies path on host where backing image file for loop device should be located. ImagePath string `json:"imagePath"` // size specifies the size of the loop device. Size resource.Quantity `json:"size"` }
LoopDeviceConfiguration specifies loop device configuration options.
func (*LoopDeviceConfiguration) DeepCopy ¶ added in v1.12.0
func (in *LoopDeviceConfiguration) DeepCopy() *LoopDeviceConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoopDeviceConfiguration.
func (*LoopDeviceConfiguration) DeepCopyInto ¶ added in v1.12.0
func (in *LoopDeviceConfiguration) DeepCopyInto(out *LoopDeviceConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MountConfiguration ¶ added in v1.9.0
type MountConfiguration struct { // device is path to a device that should be mounted. Device string `json:"device"` // mountPoint is a path where the device should be mounted at. // If the mountPoint is a symlink, the mount will be set up for the target. MountPoint string `json:"mountPoint"` // fsType specifies the filesystem on the device. FSType string `json:"fsType"` // unsupportedOptions is a list of mount options used during device mounting. // unsupported in this field name means that we won't support all the available options passed down using this field. // +optional UnsupportedOptions []string `json:"unsupportedOptions"` }
MountConfiguration specifies mount configuration options.
func (*MountConfiguration) DeepCopy ¶ added in v1.9.0
func (in *MountConfiguration) DeepCopy() *MountConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MountConfiguration.
func (*MountConfiguration) DeepCopyInto ¶ added in v1.9.0
func (in *MountConfiguration) DeepCopyInto(out *MountConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeBroadcastOptions ¶
type NodeBroadcastOptions struct { // nodes specify options related to the address that is broadcasted for communication with other nodes. // This field controls the `broadcast_address` value in ScyllaDB config. // +kubebuilder:default:={type:"PodIP"} Nodes BroadcastOptions `json:"nodes"` // clients specify options related to the address that is broadcasted for communication with clients. // This field controls the `broadcast_rpc_address` value in ScyllaDB config. // +kubebuilder:default:={type:"PodIP"} Clients BroadcastOptions `json:"clients"` }
NodeBroadcastOptions hold options related to addresses broadcasted by ScyllaDB node.
func (*NodeBroadcastOptions) DeepCopy ¶
func (in *NodeBroadcastOptions) DeepCopy() *NodeBroadcastOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeBroadcastOptions.
func (*NodeBroadcastOptions) DeepCopyInto ¶
func (in *NodeBroadcastOptions) DeepCopyInto(out *NodeBroadcastOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeConfig ¶
type NodeConfig struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec NodeConfigSpec `json:"spec,omitempty"` Status NodeConfigStatus `json:"status,omitempty"` }
func (*NodeConfig) DeepCopy ¶
func (in *NodeConfig) DeepCopy() *NodeConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfig.
func (*NodeConfig) DeepCopyInto ¶
func (in *NodeConfig) DeepCopyInto(out *NodeConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeConfig) DeepCopyObject ¶
func (in *NodeConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NodeConfigCondition ¶
type NodeConfigCondition struct { // type is the type of the NodeConfig condition. Type NodeConfigConditionType `json:"type"` // status represents the state of the condition, one of True, False, or Unknown. Status corev1.ConditionStatus `json:"status"` // observedGeneration represents the .metadata.generation that the condition was set based upon. // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date // with respect to the current state of the instance. // +optional // +kubebuilder:validation:Minimum=0 ObservedGeneration int64 `json:"observedGeneration,omitempty"` // lastTransitionTime is last time the condition transitioned from one status to another. LastTransitionTime metav1.Time `json:"lastTransitionTime"` // reason is the reason for condition's last transition. Reason string `json:"reason"` // message is a human-readable message indicating details about the transition. Message string `json:"message"` }
func NewNodeConfigCondition ¶
func NewNodeConfigCondition(c metav1.Condition) NodeConfigCondition
func (*NodeConfigCondition) DeepCopy ¶
func (in *NodeConfigCondition) DeepCopy() *NodeConfigCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigCondition.
func (*NodeConfigCondition) DeepCopyInto ¶
func (in *NodeConfigCondition) DeepCopyInto(out *NodeConfigCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeConfigCondition) ToMetaV1Condition ¶
func (c *NodeConfigCondition) ToMetaV1Condition() metav1.Condition
type NodeConfigConditionType ¶
type NodeConfigConditionType string
const ( // NodeConfigReconciledConditionType indicates that the NodeConfig is fully deployed and available. // Deprecated: NodeConfigReconciledConditionType is deprecated. Use standard workload conditions instead. NodeConfigReconciledConditionType NodeConfigConditionType = "Reconciled" )
type NodeConfigConditions ¶
type NodeConfigConditions []NodeConfigCondition
func NewNodeConfigConditions ¶
func NewNodeConfigConditions(cs []metav1.Condition) NodeConfigConditions
func (NodeConfigConditions) DeepCopy ¶
func (in NodeConfigConditions) DeepCopy() NodeConfigConditions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigConditions.
func (NodeConfigConditions) DeepCopyInto ¶
func (in NodeConfigConditions) DeepCopyInto(out *NodeConfigConditions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (NodeConfigConditions) ToMetaV1Conditions ¶
func (c NodeConfigConditions) ToMetaV1Conditions() []metav1.Condition
type NodeConfigList ¶
type NodeConfigList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []NodeConfig `json:"items"` }
func (*NodeConfigList) DeepCopy ¶
func (in *NodeConfigList) DeepCopy() *NodeConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigList.
func (*NodeConfigList) DeepCopyInto ¶
func (in *NodeConfigList) DeepCopyInto(out *NodeConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeConfigList) DeepCopyObject ¶
func (in *NodeConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NodeConfigNodeStatus ¶
type NodeConfigNodeStatus struct { Name string `json:"name"` TunedNode bool `json:"tunedNode"` TunedContainers []string `json:"tunedContainers"` }
func (*NodeConfigNodeStatus) DeepCopy ¶
func (in *NodeConfigNodeStatus) DeepCopy() *NodeConfigNodeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigNodeStatus.
func (*NodeConfigNodeStatus) DeepCopyInto ¶
func (in *NodeConfigNodeStatus) DeepCopyInto(out *NodeConfigNodeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeConfigPlacement ¶
type NodeConfigPlacement struct { // affinity is a group of affinity scheduling rules for NodeConfig Pods. Affinity corev1.Affinity `json:"affinity"` // tolerations is a group of tolerations NodeConfig Pods are going to have. Tolerations []corev1.Toleration `json:"tolerations"` // nodeSelector is a selector which must be true for the NodeConfig Pod to fit on a node. // Selector which must match a node's labels for the pod to be scheduled on that node. // +kubebuilder:validation:Required NodeSelector map[string]string `json:"nodeSelector"` }
func (*NodeConfigPlacement) DeepCopy ¶
func (in *NodeConfigPlacement) DeepCopy() *NodeConfigPlacement
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigPlacement.
func (*NodeConfigPlacement) DeepCopyInto ¶
func (in *NodeConfigPlacement) DeepCopyInto(out *NodeConfigPlacement)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeConfigSpec ¶
type NodeConfigSpec struct { // placement contains scheduling rules for NodeConfig Pods. // +kubebuilder:validation:Required Placement NodeConfigPlacement `json:"placement"` // disableOptimizations controls if nodes matching placement requirements // are going to be optimized. Turning off optimizations on already optimized // Nodes does not revert changes. DisableOptimizations bool `json:"disableOptimizations"` // localDiskSetup contains options of automatic local disk setup. // +optional LocalDiskSetup *LocalDiskSetup `json:"localDiskSetup"` }
func (*NodeConfigSpec) DeepCopy ¶
func (in *NodeConfigSpec) DeepCopy() *NodeConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigSpec.
func (*NodeConfigSpec) DeepCopyInto ¶
func (in *NodeConfigSpec) DeepCopyInto(out *NodeConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeConfigStatus ¶
type NodeConfigStatus struct { // observedGeneration indicates the most recent generation observed by the controller. ObservedGeneration int64 `json:"observedGeneration"` // conditions represents the latest available observations of current state. // +optional Conditions NodeConfigConditions `json:"conditions"` // nodeStatuses hold the status for each tuned node. NodeStatuses []NodeConfigNodeStatus `json:"nodeStatuses"` }
func (*NodeConfigStatus) DeepCopy ¶
func (in *NodeConfigStatus) DeepCopy() *NodeConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigStatus.
func (*NodeConfigStatus) DeepCopyInto ¶
func (in *NodeConfigStatus) DeepCopyInto(out *NodeConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeServiceTemplate ¶
type NodeServiceTemplate struct { ObjectTemplateMetadata `json:",inline"` // type specifies the Kubernetes Service type. Type NodeServiceType `json:"type"` // externalTrafficPolicy controls value of service.spec.externalTrafficPolicy of each node Service. // Check Kubernetes corev1.Service documentation about semantic of this field. // +optional ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicy `json:"externalTrafficPolicy,omitempty"` // allocateLoadBalancerNodePorts controls value of service.spec.allocateLoadBalancerNodePorts of each node Service. // Check Kubernetes corev1.Service documentation about semantic of this field. // +optional AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty"` // loadBalancerClass controls value of service.spec.loadBalancerClass of each node Service. // Check Kubernetes corev1.Service documentation about semantic of this field. // +optional LoadBalancerClass *string `json:"loadBalancerClass,omitempty"` // internalTrafficPolicy controls value of service.spec.internalTrafficPolicy of each node Service. // Check Kubernetes corev1.Service documentation about semantic of this field. // +optional InternalTrafficPolicy *corev1.ServiceInternalTrafficPolicy `json:"internalTrafficPolicy,omitempty"` }
func (*NodeServiceTemplate) DeepCopy ¶
func (in *NodeServiceTemplate) DeepCopy() *NodeServiceTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeServiceTemplate.
func (*NodeServiceTemplate) DeepCopyInto ¶
func (in *NodeServiceTemplate) DeepCopyInto(out *NodeServiceTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeServiceType ¶
type NodeServiceType string
const ( // NodeServiceTypeHeadless means nodes will be exposed via Headless Service. NodeServiceTypeHeadless NodeServiceType = "Headless" // NodeServiceTypeClusterIP means nodes will be exposed via ClusterIP Service. NodeServiceTypeClusterIP NodeServiceType = "ClusterIP" // NodeServiceTypeLoadBalancer means nodes will be exposed via LoadBalancer Service. NodeServiceTypeLoadBalancer NodeServiceType = "LoadBalancer" )
type ObjectTemplateMetadata ¶
type ObjectTemplateMetadata struct { // labels specify a custom key value map that gets merged with managed object labels. // +optional Labels map[string]string `json:"labels,omitempty"` // annotations specify a custom key value map that gets merged with managed object annotations. // +optional Annotations map[string]string `json:"annotations,omitempty"` }
func (*ObjectTemplateMetadata) DeepCopy ¶
func (in *ObjectTemplateMetadata) DeepCopy() *ObjectTemplateMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectTemplateMetadata.
func (*ObjectTemplateMetadata) DeepCopyInto ¶
func (in *ObjectTemplateMetadata) DeepCopyInto(out *ObjectTemplateMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperatorManagedTLSCertificateOptions ¶
type OperatorManagedTLSCertificateOptions struct { // additionalDNSNames represents external DNS names that the certificates should be signed for. // +optional AdditionalDNSNames []string `json:"additionalDNSNames,omitempty"` // additionalIPAddresses represents external IP addresses that the certificates should be signed for. // +optional AdditionalIPAddresses []string `json:"additionalIPAddresses,omitempty"` }
func (*OperatorManagedTLSCertificateOptions) DeepCopy ¶
func (in *OperatorManagedTLSCertificateOptions) DeepCopy() *OperatorManagedTLSCertificateOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorManagedTLSCertificateOptions.
func (*OperatorManagedTLSCertificateOptions) DeepCopyInto ¶
func (in *OperatorManagedTLSCertificateOptions) DeepCopyInto(out *OperatorManagedTLSCertificateOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Placement ¶
type Placement struct { // nodeAffinity describes node affinity scheduling rules for the Pod. // +optional NodeAffinity *corev1.NodeAffinity `json:"nodeAffinity,omitempty"` // podAffinity describes Pod affinity scheduling rules. // +optional PodAffinity *corev1.PodAffinity `json:"podAffinity,omitempty"` // podAntiAffinity describes Pod anti-affinity scheduling rules. // +optional PodAntiAffinity *corev1.PodAntiAffinity `json:"podAntiAffinity,omitempty"` // tolerations describe Pod toleration rules. // This allows the Pod to tolerate any taint that matches the triple <key,value,effect> // using the matching operator. // +optional Tolerations []corev1.Toleration `json:"tolerations,omitempty"` }
Placement holds configuration options related to scheduling.
func (*Placement) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Placement.
func (*Placement) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PlacementSpec ¶ added in v1.9.0
type PlacementSpec struct { // nodeAffinity describes node affinity scheduling rules for the pod. // +optional NodeAffinity *corev1.NodeAffinity `json:"nodeAffinity,omitempty"` // podAffinity describes pod affinity scheduling rules. // +optional PodAffinity *corev1.PodAffinity `json:"podAffinity,omitempty"` // podAntiAffinity describes pod anti-affinity scheduling rules. // +optional PodAntiAffinity *corev1.PodAntiAffinity `json:"podAntiAffinity,omitempty"` // tolerations allow the pod to tolerate any taint that matches the triple <key,value,effect> // using the matching operator. // +optional Tolerations []corev1.Toleration `json:"tolerations,omitempty"` }
PlacementSpec defines pod placement. TODO: move this to corev1.Affinity in v1alpha2
func (*PlacementSpec) DeepCopy ¶ added in v1.9.0
func (in *PlacementSpec) DeepCopy() *PlacementSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlacementSpec.
func (*PlacementSpec) DeepCopyInto ¶ added in v1.9.0
func (in *PlacementSpec) DeepCopyInto(out *PlacementSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodIPAddressOptions ¶
type PodIPAddressOptions struct { // sourceType specifies source of the Pod IP. // +kubebuilder:default:="Status" Source PodIPSourceType `json:"source"` }
PodIPAddressOptions hold options related to Pod IP address.
func (*PodIPAddressOptions) DeepCopy ¶
func (in *PodIPAddressOptions) DeepCopy() *PodIPAddressOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodIPAddressOptions.
func (*PodIPAddressOptions) DeepCopyInto ¶
func (in *PodIPAddressOptions) DeepCopyInto(out *PodIPAddressOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodIPInterfaceOptions ¶
type PodIPInterfaceOptions struct { // interfaceName specifies interface name within a Pod from which address is taken from. InterfaceName string `json:"interfaceName,omitempty"` }
func (*PodIPInterfaceOptions) DeepCopy ¶
func (in *PodIPInterfaceOptions) DeepCopy() *PodIPInterfaceOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodIPInterfaceOptions.
func (*PodIPInterfaceOptions) DeepCopyInto ¶
func (in *PodIPInterfaceOptions) DeepCopyInto(out *PodIPInterfaceOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodIPSourceType ¶
type PodIPSourceType string
const ( // StatusPodIPSource specifies that the PodIP is taken from Pod.Status.PodIP StatusPodIPSource PodIPSourceType = "Status" )
type PrometheusExposeOptions ¶ added in v1.9.0
type PrometheusExposeOptions struct { // webInterface specifies expose options for the user web interface. // +optional WebInterface *HTTPSExposeOptions `json:"webInterface,omitempty"` }
PrometheusExposeOptions holds options related to exposing Prometheus app.
func (*PrometheusExposeOptions) DeepCopy ¶ added in v1.9.0
func (in *PrometheusExposeOptions) DeepCopy() *PrometheusExposeOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusExposeOptions.
func (*PrometheusExposeOptions) DeepCopyInto ¶ added in v1.9.0
func (in *PrometheusExposeOptions) DeepCopyInto(out *PrometheusExposeOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrometheusSpec ¶ added in v1.9.0
type PrometheusSpec struct { // placement describes restrictions for the nodes Prometheus is scheduled on. // +optional Placement *PlacementSpec `json:"placement,omitempty"` // resources the Prometheus container will use. Resources corev1.ResourceRequirements `json:"resources"` // exposeOptions specifies options for exposing Prometheus UI. // +optional ExposeOptions *PrometheusExposeOptions `json:"exposeOptions,omitempty"` // storage describes the underlying storage that Prometheus will consume. // +optional Storage *Storage `json:"storage"` }
PrometheusSpec holds the spec prometheus options.
func (*PrometheusSpec) DeepCopy ¶ added in v1.9.0
func (in *PrometheusSpec) DeepCopy() *PrometheusSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusSpec.
func (*PrometheusSpec) DeepCopyInto ¶ added in v1.9.0
func (in *PrometheusSpec) DeepCopyInto(out *PrometheusSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RAID0Options ¶ added in v1.9.0
type RAID0Options struct { // devices defines which devices constitute the raid array. Devices DeviceDiscovery `json:"devices"` }
RAID0Options specifies raid0 options.
func (*RAID0Options) DeepCopy ¶ added in v1.9.0
func (in *RAID0Options) DeepCopy() *RAID0Options
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RAID0Options.
func (*RAID0Options) DeepCopyInto ¶ added in v1.9.0
func (in *RAID0Options) DeepCopyInto(out *RAID0Options)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RAIDConfiguration ¶ added in v1.9.0
type RAIDConfiguration struct { // name specifies the name of the raid device to be created under in `/dev/md/`. Name string `json:"name"` // type is a type of raid array. Type RAIDType `json:"type"` // RAID0 specifies RAID0 options. // +optional RAID0 *RAID0Options `json:"RAID0,omitempty"` }
RAIDConfiguration is a configuration of a raid array.
func (*RAIDConfiguration) DeepCopy ¶ added in v1.9.0
func (in *RAIDConfiguration) DeepCopy() *RAIDConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RAIDConfiguration.
func (*RAIDConfiguration) DeepCopyInto ¶ added in v1.9.0
func (in *RAIDConfiguration) DeepCopyInto(out *RAIDConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RAIDType ¶ added in v1.9.0
type RAIDType string
RAIDType is a raid array type.
const ( // RAID0Type represents RAID0 array type. RAID0Type RAIDType = "RAID0" )
type RackSpec ¶
type RackSpec struct { RackTemplate `json:",inline"` // name specifies the name of the ScyllaDB Rack. Used as rack name in GossipingPropertyFileSnitch. // This field is immutable. Name string `json:"name"` }
RackSpec is the desired state for a ScyllaDB Rack.
func (*RackSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RackSpec.
func (*RackSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RackStatus ¶
type RackStatus struct { // name specifies the name of datacenter this status describes. Name string `json:"name,omitempty"` // version specifies the current version of ScyllaDB in use. CurrentVersion string `json:"currentVersion"` // updatedVersion specifies the updated version of ScyllaDB. UpdatedVersion string `json:"updatedVersion"` // nodes specify the total number of nodes requested in rack. // +optional Nodes *int32 `json:"nodes,omitempty"` // currentNodes specify the total number of nodes created in rack. CurrentNodes *int32 `json:"currentNodes,omitempty"` // updatedNodes specify the number of nodes matching the current spec in rack. // +optional UpdatedNodes *int32 `json:"updatedNodes,omitempty"` // readyNodes specify the total number of ready nodes in rack. // +optional ReadyNodes *int32 `json:"readyNodes,omitempty"` // availableNodes specify the total number of available nodes in rack. // +optional AvailableNodes *int32 `json:"availableNodes,omitempty"` // stale indicates if the current rack status is collected for a previous generation. // stale should eventually become false when the appropriate controller writes a fresh status. // +optional Stale *bool `json:"stale,omitempty"` }
RackStatus is the status of a ScyllaDB Rack
func (*RackStatus) DeepCopy ¶
func (in *RackStatus) DeepCopy() *RackStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RackStatus.
func (*RackStatus) DeepCopyInto ¶
func (in *RackStatus) DeepCopyInto(out *RackStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RackTemplate ¶
type RackTemplate struct { // nodes specify the desired number of nodes in rack. // +optional Nodes *int32 `json:"nodes,omitempty"` // placement describes restrictions for the nodes ScyllaDB is scheduled on. // +optional Placement *Placement `json:"placement,omitempty"` // topologyLabelSelector specifies a label selector which will be used to target nodes at specified topology constraints. // Datacenter topologyLabelSelector is merged with rack topologyLabelSelector and then converted into nodeAffinity // targeting nodes having specified topology. // +optional TopologyLabelSelector map[string]string `json:"topologyLabelSelector,omitempty"` // scyllaDB specifies ScyllaDB properties for this rack. // These override the settings set on Datacenter level. // +optional ScyllaDB *ScyllaDBTemplate `json:"scyllaDB,omitempty"` // scyllaDBManagerAgent specifies ScyllaDB Manager Agent properties for this rack. // These override the settings set on Datacenter level. // +optional ScyllaDBManagerAgent *ScyllaDBManagerAgentTemplate `json:"scyllaDBManagerAgent,omitempty"` }
func (*RackTemplate) DeepCopy ¶
func (in *RackTemplate) DeepCopy() *RackTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RackTemplate.
func (*RackTemplate) DeepCopyInto ¶
func (in *RackTemplate) DeepCopyInto(out *RackTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScyllaDB ¶
type ScyllaDB struct { // image holds a reference to the ScyllaDB container image. Image string `json:"image"` // externalSeeds specifies the external seeds to propagate to ScyllaDB binary on startup as "seeds" parameter of seed-provider. // +optional ExternalSeeds []string `json:"externalSeeds,omitempty"` // alternatorOptions designates this cluster an Alternator cluster. // +optional AlternatorOptions *AlternatorOptions `json:"alternatorOptions,omitempty"` // additionalScyllaDBArguments specify a list of arguments appended to the ScyllaDB binary during startup. // When set, ScyllaDB may behave unexpectedly, and every such setup is considered unsupported. // Instead, consider using customConfigMapRef for setting custom ScyllaDB configuration options. // +optional AdditionalScyllaDBArguments []string `json:"additionalScyllaDBArguments,omitempty"` // developerMode determines if the cluster runs in developer-mode. // +optional EnableDeveloperMode *bool `json:"enableDeveloperMode,omitempty"` }
ScyllaDB holds configuration options related to ScyllaDB.
func (*ScyllaDB) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDB.
func (*ScyllaDB) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScyllaDBDatacenter ¶
type ScyllaDBDatacenter struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // spec defines the desired state of this ScyllaDBDatacenter. Spec ScyllaDBDatacenterSpec `json:"spec,omitempty"` // status specifies the current status of this ScyllaDBDatacenter. Status ScyllaDBDatacenterStatus `json:"status,omitempty"` }
ScyllaDBDatacenter defines a monitoring instance for ScyllaDB clusters.
func (*ScyllaDBDatacenter) DeepCopy ¶
func (in *ScyllaDBDatacenter) DeepCopy() *ScyllaDBDatacenter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBDatacenter.
func (*ScyllaDBDatacenter) DeepCopyInto ¶
func (in *ScyllaDBDatacenter) DeepCopyInto(out *ScyllaDBDatacenter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScyllaDBDatacenter) DeepCopyObject ¶
func (in *ScyllaDBDatacenter) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ScyllaDBDatacenterList ¶
type ScyllaDBDatacenterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ScyllaDBDatacenter `json:"items"` }
func (*ScyllaDBDatacenterList) DeepCopy ¶
func (in *ScyllaDBDatacenterList) DeepCopy() *ScyllaDBDatacenterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBDatacenterList.
func (*ScyllaDBDatacenterList) DeepCopyInto ¶
func (in *ScyllaDBDatacenterList) DeepCopyInto(out *ScyllaDBDatacenterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScyllaDBDatacenterList) DeepCopyObject ¶
func (in *ScyllaDBDatacenterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ScyllaDBDatacenterSpec ¶
type ScyllaDBDatacenterSpec struct { // metadata controls shared metadata for all pods created based on this spec. // +optional Metadata *ObjectTemplateMetadata `json:"metadata,omitempty"` // clusterName specifies the name of the ScyllaDB cluster. // When joining two DCs, their cluster name must match. // This field is immutable. ClusterName string `json:"clusterName"` // datacenterName specifies the name of the ScyllaDB datacenter. Used as datacenter name in GossipingPropertyFileSnitch. // If empty, it's taken from the 'scylladbdatacenter.metadata.name'. // +optional DatacenterName *string `json:"datacenterName,omitempty"` // scyllaDB holds a specification of ScyllaDB. ScyllaDB ScyllaDB `json:"scyllaDB"` // scyllaDBManagerAgent holds a specification of ScyllaDB Manager Agent. // +optional ScyllaDBManagerAgent *ScyllaDBManagerAgent `json:"scyllaDBManagerAgent,omitempty"` // imagePullSecrets is an optional list of references to secrets in the same namespace // used for pulling any images used by this spec. // +optional ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // dnsPolicy defines how a pod's DNS will be configured. // +optional DNSPolicy *corev1.DNSPolicy `json:"dnsPolicy,omitempty"` // dnsDomains specifies a list of DNS domains this cluster is reachable by. // These domains are used when setting up the infrastructure, like certificates. // +optional DNSDomains []string `json:"dnsDomains,omitempty"` // forceRedeploymentReason specifies the latest redeployment reason. // Can be used to force a rolling restart of all racks in this DC by providing a unique string. // +optional ForceRedeploymentReason *string `json:"forceRedeploymentReason,omitempty"` // exposeOptions specifies parameters related to exposing ScyllaDBDatacenter backends. // +optional ExposeOptions *ExposeOptions `json:"exposeOptions,omitempty"` // rackTemplate provides a template for every rack. // Every rack inherits properties specified in the template, unless it's overwritten on the rack level. // +optional RackTemplate *RackTemplate `json:"rackTemplate,omitempty"` // racks specify the racks in the datacenter. Racks []RackSpec `json:"racks"` // disableAutomaticOrphanedNodeReplacement controls if automatic orphan node replacement should be disabled. // +optional DisableAutomaticOrphanedNodeReplacement *bool `json:"disableAutomaticOrphanedNodeReplacement,omitempty"` // minTerminationGracePeriodSeconds specifies minimum duration in seconds to wait before every drained node is // terminated. This gives time to potential load balancer in front of a node to notice that node is not ready anymore // and stop forwarding new requests. // This applies only when node is terminated gracefully. // If not provided, Operator will determine this value. // EXPERIMENTAL. Do not rely on any particular behaviour controlled by this field. // +optional MinTerminationGracePeriodSeconds *int32 `json:"minTerminationGracePeriodSeconds,omitempty"` // minReadySeconds specifies the minimum number of seconds for which a newly created ScyllaDB node should be ready // for it to be considered available. // When used to control load balanced traffic, this can give the load balancer in front of a node enough time to // notice that the node is ready and start forwarding traffic in time. Because it all depends on timing, the order // is not guaranteed and, if possible, you should use readinessGates instead. // If not provided, Operator will determine this value. // +optional MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` // readinessGates specifies custom readiness gates that will be evaluated for every ScyllaDB Pod readiness. // It's projected into every ScyllaDB Pod as its readinessGate. Refer to upstream documentation to learn more // about readiness gates. // +optional ReadinessGates []corev1.PodReadinessGate `json:"readinessGates,omitempty"` }
ScyllaDBDatacenterSpec defines the desired state of ScyllaDBDatacenter.
func (*ScyllaDBDatacenterSpec) DeepCopy ¶
func (in *ScyllaDBDatacenterSpec) DeepCopy() *ScyllaDBDatacenterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBDatacenterSpec.
func (*ScyllaDBDatacenterSpec) DeepCopyInto ¶
func (in *ScyllaDBDatacenterSpec) DeepCopyInto(out *ScyllaDBDatacenterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScyllaDBDatacenterStatus ¶
type ScyllaDBDatacenterStatus struct { // observedGeneration is the most recent generation observed for this ScyllaDBDatacenter. It corresponds to the // ScyllaDBDatacenter's generation, which is updated on mutation by the API Server. // +optional ObservedGeneration *int64 `json:"observedGeneration,omitempty"` // conditions hold conditions describing ScyllaDBDatacenter state. // To determine whether a cluster rollout is finished, look for Available=True,Progressing=False,Degraded=False. Conditions []metav1.Condition `json:"conditions,omitempty"` // version specifies the current version of ScyllaDB in use. // +optional CurrentVersion string `json:"currentVersion,omitempty"` // updatedVersion specifies the updated version of ScyllaDB. // +optional UpdatedVersion string `json:"updatedVersion,omitempty"` // nodes specify the total number of nodes requested in datacenter. // +optional Nodes *int32 `json:"nodes,omitempty"` // currentNodes specify the total number of nodes created in datacenter. CurrentNodes *int32 `json:"currentNodes,omitempty"` // updatedNodes specify the number of nodes matching the current spec in datacenter. // +optional UpdatedNodes *int32 `json:"updatedNodes,omitempty"` // readyNodes specify the total number of ready nodes in datacenter. // +optional ReadyNodes *int32 `json:"readyNodes,omitempty"` // availableNodes specify the total number of available nodes in datacenter. // +optional AvailableNodes *int32 `json:"availableNodes,omitempty"` // racks reflect the status of datacenter racks. Racks []RackStatus `json:"racks"` }
ScyllaDBDatacenterStatus defines the observed state of ScyllaDBDatacenter.
func (*ScyllaDBDatacenterStatus) DeepCopy ¶
func (in *ScyllaDBDatacenterStatus) DeepCopy() *ScyllaDBDatacenterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBDatacenterStatus.
func (*ScyllaDBDatacenterStatus) DeepCopyInto ¶
func (in *ScyllaDBDatacenterStatus) DeepCopyInto(out *ScyllaDBDatacenterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScyllaDBManagerAgent ¶
type ScyllaDBManagerAgent struct { // image holds a reference to the ScyllaDB Manager Agent container image. // +optional Image *string `json:"image,omitempty"` }
ScyllaDBManagerAgent holds configuration options related to ScyllaDB Manager Agent.
func (*ScyllaDBManagerAgent) DeepCopy ¶
func (in *ScyllaDBManagerAgent) DeepCopy() *ScyllaDBManagerAgent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBManagerAgent.
func (*ScyllaDBManagerAgent) DeepCopyInto ¶
func (in *ScyllaDBManagerAgent) DeepCopyInto(out *ScyllaDBManagerAgent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScyllaDBManagerAgentTemplate ¶
type ScyllaDBManagerAgentTemplate struct { // resources specify requirements for the ScyllaDB Manager Agent container // +optional Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // customConfigSecretRef specifies a reference to custom ScyllaDB Manager Agent configuration stored as Secret. // +optional CustomConfigSecretRef *string `json:"customConfigSecretRef,omitempty"` // volumes specify a list of volumes appended to ScyllaDB Pod. // +optional Volumes []corev1.Volume `json:"volumes,omitempty"` // volumeMounts specify a list of volume mounts appended to ScyllaDB Manager Agent container. VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"` }
ScyllaDBManagerAgentTemplate allows to override a subset of ScyllaDBManagerAgent settings.
func (*ScyllaDBManagerAgentTemplate) DeepCopy ¶
func (in *ScyllaDBManagerAgentTemplate) DeepCopy() *ScyllaDBManagerAgentTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBManagerAgentTemplate.
func (*ScyllaDBManagerAgentTemplate) DeepCopyInto ¶
func (in *ScyllaDBManagerAgentTemplate) DeepCopyInto(out *ScyllaDBManagerAgentTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScyllaDBMonitoring ¶ added in v1.9.0
type ScyllaDBMonitoring struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // spec defines the desired state of this ScyllaDBMonitoring. Spec ScyllaDBMonitoringSpec `json:"spec,omitempty"` // status is the current status of this ScyllaDBMonitoring. Status ScyllaDBMonitoringStatus `json:"status,omitempty"` }
ScyllaDBMonitoring defines a monitoring instance for ScyllaDB clusters.
func (*ScyllaDBMonitoring) DeepCopy ¶ added in v1.9.0
func (in *ScyllaDBMonitoring) DeepCopy() *ScyllaDBMonitoring
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBMonitoring.
func (*ScyllaDBMonitoring) DeepCopyInto ¶ added in v1.9.0
func (in *ScyllaDBMonitoring) DeepCopyInto(out *ScyllaDBMonitoring)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScyllaDBMonitoring) DeepCopyObject ¶ added in v1.9.0
func (in *ScyllaDBMonitoring) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ScyllaDBMonitoringList ¶ added in v1.9.0
type ScyllaDBMonitoringList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ScyllaDBMonitoring `json:"items"` }
ScyllaDBMonitoringList holds a list of ScyllaDBMonitoring.
func (*ScyllaDBMonitoringList) DeepCopy ¶ added in v1.9.0
func (in *ScyllaDBMonitoringList) DeepCopy() *ScyllaDBMonitoringList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBMonitoringList.
func (*ScyllaDBMonitoringList) DeepCopyInto ¶ added in v1.9.0
func (in *ScyllaDBMonitoringList) DeepCopyInto(out *ScyllaDBMonitoringList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScyllaDBMonitoringList) DeepCopyObject ¶ added in v1.9.0
func (in *ScyllaDBMonitoringList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ScyllaDBMonitoringSpec ¶ added in v1.9.0
type ScyllaDBMonitoringSpec struct { // endpointsSelector select which Endpoints should be scraped. // For local ScyllaDB clusters or datacenters, this is the same selector as if you were trying to select member Services. // For remote ScyllaDB clusters, this can select any endpoints that are created manually or for a Service without selectors. // +kubebuilder:validation:Required EndpointsSelector metav1.LabelSelector `json:"endpointsSelector"` // components hold additional config for the monitoring components in use. Components *Components `json:"components"` // type determines the platform type of the monitoring setup. // +kubebuilder:default:="SaaS" // +optional Type *ScyllaDBMonitoringType `json:"type,omitempty"` }
ScyllaDBMonitoringSpec defines the desired state of ScyllaDBMonitoring.
func (*ScyllaDBMonitoringSpec) DeepCopy ¶ added in v1.9.0
func (in *ScyllaDBMonitoringSpec) DeepCopy() *ScyllaDBMonitoringSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBMonitoringSpec.
func (*ScyllaDBMonitoringSpec) DeepCopyInto ¶ added in v1.9.0
func (in *ScyllaDBMonitoringSpec) DeepCopyInto(out *ScyllaDBMonitoringSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScyllaDBMonitoringSpec) GetType ¶
func (smc *ScyllaDBMonitoringSpec) GetType() ScyllaDBMonitoringType
type ScyllaDBMonitoringStatus ¶ added in v1.9.0
type ScyllaDBMonitoringStatus struct { // observedGeneration is the most recent generation observed for this ScyllaDBMonitoring. It corresponds to the // ScyllaDBMonitoring's generation, which is updated on mutation by the API Server. // +optional ObservedGeneration *int64 `json:"observedGeneration,omitempty"` // conditions hold conditions describing ScyllaDBMonitoring state. // To determine whether a cluster rollout is finished, look for Available=True,Progressing=False,Degraded=False. Conditions []metav1.Condition `json:"conditions,omitempty"` }
ScyllaDBMonitoringStatus defines the observed state of ScyllaDBMonitoring.
func (*ScyllaDBMonitoringStatus) DeepCopy ¶ added in v1.9.0
func (in *ScyllaDBMonitoringStatus) DeepCopy() *ScyllaDBMonitoringStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBMonitoringStatus.
func (*ScyllaDBMonitoringStatus) DeepCopyInto ¶ added in v1.9.0
func (in *ScyllaDBMonitoringStatus) DeepCopyInto(out *ScyllaDBMonitoringStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScyllaDBMonitoringType ¶ added in v1.9.0
type ScyllaDBMonitoringType string
ScyllaDBMonitoringType describes the platform type of the monitoring setup. +kubebuilder:validation:Enum="SaaS";"Platform"
const ( // ScyllaDBMonitoringTypePlatform defines ScyllaDB monitoring setup that includes a view of the infrastructure. ScyllaDBMonitoringTypePlatform ScyllaDBMonitoringType = "Platform" // ScyllaDBMonitoringTypeSAAS defines ScyllaDB monitoring setup focused only on the ScyllaDB service. ScyllaDBMonitoringTypeSAAS ScyllaDBMonitoringType = "SaaS" )
type ScyllaDBTemplate ¶
type ScyllaDBTemplate struct { // resources specify requirements for the ScyllaDB container // +optional Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // storage specifies requirements for the containers // +optional Storage *StorageOptions `json:"storage,omitempty"` // customConfigMapRef specifies a reference to custom ScyllaDB configuration stored as ConfigMap. // Overrides upper level settings. // +optional CustomConfigMapRef *string `json:"customConfigMapRef,omitempty"` // volumes specify a list of volumes appended to ScyllaDB Pod. // +optional Volumes []corev1.Volume `json:"volumes,omitempty"` // volumeMounts specify a list of volume mounts appended to ScyllaDB container. // +optional VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"` }
ScyllaDBTemplate allows overriding a subset of ScyllaDB settings.
func (*ScyllaDBTemplate) DeepCopy ¶
func (in *ScyllaDBTemplate) DeepCopy() *ScyllaDBTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaDBTemplate.
func (*ScyllaDBTemplate) DeepCopyInto ¶
func (in *ScyllaDBTemplate) DeepCopyInto(out *ScyllaDBTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScyllaOperatorConfig ¶
type ScyllaOperatorConfig struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // spec defines the desired state of the operator. Spec ScyllaOperatorConfigSpec `json:"spec,omitempty"` // status defines the observed state of the operator. Status ScyllaOperatorConfigStatus `json:"status,omitempty"` }
ScyllaOperatorConfig describes the Scylla Operator configuration.
func (*ScyllaOperatorConfig) DeepCopy ¶
func (in *ScyllaOperatorConfig) DeepCopy() *ScyllaOperatorConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaOperatorConfig.
func (*ScyllaOperatorConfig) DeepCopyInto ¶
func (in *ScyllaOperatorConfig) DeepCopyInto(out *ScyllaOperatorConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScyllaOperatorConfig) DeepCopyObject ¶
func (in *ScyllaOperatorConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ScyllaOperatorConfigList ¶
type ScyllaOperatorConfigList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ScyllaOperatorConfig `json:"items"` }
func (*ScyllaOperatorConfigList) DeepCopy ¶
func (in *ScyllaOperatorConfigList) DeepCopy() *ScyllaOperatorConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaOperatorConfigList.
func (*ScyllaOperatorConfigList) DeepCopyInto ¶
func (in *ScyllaOperatorConfigList) DeepCopyInto(out *ScyllaOperatorConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ScyllaOperatorConfigList) DeepCopyObject ¶
func (in *ScyllaOperatorConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ScyllaOperatorConfigSpec ¶
type ScyllaOperatorConfigSpec struct { // scyllaUtilsImage is a ScyllaDB image used for running ScyllaDB utilities. ScyllaUtilsImage string `json:"scyllaUtilsImage"` // unsupportedBashToolsImageOverride allows to adjust a generic Bash image with extra tools used by the operator // for auxiliary purposes. // Setting this field renders your cluster unsupported. Use at your own risk. // +optional UnsupportedBashToolsImageOverride *string `json:"unsupportedBashToolsImageOverride,omitempty"` // unsupportedGrafanaImageOverride allows to adjust Grafana image used by the operator // for testing, dev or emergencies. // Setting this field renders your cluster unsupported. Use at your own risk. // +optional UnsupportedGrafanaImageOverride *string `json:"unsupportedGrafanaImageOverride,omitempty"` // unsupportedPrometheusVersionOverride allows to adjust Prometheus version used by the operator // for testing, dev or emergencies. // Setting this field renders your cluster unsupported. Use at your own risk. // +optional UnsupportedPrometheusVersionOverride *string `json:"unsupportedPrometheusVersionOverride,omitempty"` // configuredClusterDomain allows users to set the configured Kubernetes cluster domain explicitly, instead of letting Scylla Operator automatically discover it. // +optional ConfiguredClusterDomain *string `json:"configuredClusterDomain,omitempty"` }
func (*ScyllaOperatorConfigSpec) DeepCopy ¶
func (in *ScyllaOperatorConfigSpec) DeepCopy() *ScyllaOperatorConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaOperatorConfigSpec.
func (*ScyllaOperatorConfigSpec) DeepCopyInto ¶
func (in *ScyllaOperatorConfigSpec) DeepCopyInto(out *ScyllaOperatorConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScyllaOperatorConfigStatus ¶
type ScyllaOperatorConfigStatus struct { // observedGeneration is the most recent generation observed for this ScyllaOperatorConfig. It corresponds to the // ScyllaOperatorConfig's generation, which is updated on mutation by the API Server. // +optional ObservedGeneration *int64 `json:"observedGeneration,omitempty"` // conditions hold conditions describing ScyllaOperatorConfig state. Conditions []metav1.Condition `json:"conditions,omitempty"` // scyllaDBUtilsImage is the ScyllaDB image used for running ScyllaDB utilities. // +optional ScyllaDBUtilsImage *string `json:"scyllaDBUtilsImage"` // bashToolsImage is a generic Bash image with extra tools used by the operator for auxiliary purposes. // +optional BashToolsImage *string `json:"bashToolsImage,omitempty"` // grafanaImage is the image used by the operator to create a Grafana instance. // +optional GrafanaImage *string `json:"grafanaImage,omitempty"` // prometheusVersion is the Prometheus version used by the operator to create a Prometheus instance. // +optional PrometheusVersion *string `json:"prometheusVersion"` // clusterDomain is the Kubernetes cluster domain used by the Scylla Operator. ClusterDomain *string `json:"clusterDomain,omitempty"` }
func (*ScyllaOperatorConfigStatus) DeepCopy ¶
func (in *ScyllaOperatorConfigStatus) DeepCopy() *ScyllaOperatorConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScyllaOperatorConfigStatus.
func (*ScyllaOperatorConfigStatus) DeepCopyInto ¶
func (in *ScyllaOperatorConfigStatus) DeepCopyInto(out *ScyllaOperatorConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Storage ¶ added in v1.9.0
type Storage struct { // Map of string keys and values that can be used to organize and categorize // (scope and select) objects. May match selectors of replication controllers // and services. // More info: http://kubernetes.io/docs/user-guide/labels // +optional Labels map[string]string `json:"labels,omitempty"` // Annotations is an unstructured key value map stored with a resource that may be // set by external tools to store and retrieve arbitrary metadata. They are not // queryable and should be preserved when modifying objects. // More info: http://kubernetes.io/docs/user-guide/annotations // +optional Annotations map[string]string `json:"annotations,omitempty"` // volumeClaimTemplates is a PVC template defining storage to be used by Prometheus. // +optional VolumeClaimTemplate corev1.PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"` }
Storage holds the storage options.
func (*Storage) DeepCopy ¶ added in v1.9.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Storage.
func (*Storage) DeepCopyInto ¶ added in v1.9.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageOptions ¶
type StorageOptions struct { // metadata controls shared metadata for the volume claim for this rack. // At this point, the values are applied only for the initial claim and are not reconciled during its lifetime. // Note that this may get fixed in the future and this behaviour shouldn't be relied on in any way. // +optional Metadata *ObjectTemplateMetadata `json:"metadata,omitempty"` // capacity describes the requested size of each persistent volume. Capacity string `json:"capacity"` // storageClassName specifies the name of a storageClass to request. // +optional StorageClassName *string `json:"storageClassName,omitempty"` }
StorageOptions describes options of storage.
func (*StorageOptions) DeepCopy ¶
func (in *StorageOptions) DeepCopy() *StorageOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOptions.
func (*StorageOptions) DeepCopyInto ¶
func (in *StorageOptions) DeepCopyInto(out *StorageOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSCertificate ¶
type TLSCertificate struct { // type determines the source of this certificate. Type TLSCertificateType `json:"type"` // userManagedOptions specifies options for certificates manged by users. // +optional UserManagedOptions *UserManagedTLSCertificateOptions `json:"userManagedOptions,omitempty"` // operatorManagedOptions specifies options for certificates manged by the operator. // +optional OperatorManagedOptions *OperatorManagedTLSCertificateOptions `json:"operatorManagedOptions,omitempty"` }
func (*TLSCertificate) DeepCopy ¶
func (in *TLSCertificate) DeepCopy() *TLSCertificate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSCertificate.
func (*TLSCertificate) DeepCopyInto ¶
func (in *TLSCertificate) DeepCopyInto(out *TLSCertificate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSCertificateType ¶
type TLSCertificateType string
const ( TLSCertificateTypeOperatorManaged TLSCertificateType = "OperatorManaged" TLSCertificateTypeUserManaged TLSCertificateType = "UserManaged" )
type UserManagedTLSCertificateOptions ¶
type UserManagedTLSCertificateOptions struct { // secretName references a kubernetes.io/tls type secret containing the TLS cert and key. SecretName string `json:"secretName"` }
func (*UserManagedTLSCertificateOptions) DeepCopy ¶
func (in *UserManagedTLSCertificateOptions) DeepCopy() *UserManagedTLSCertificateOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserManagedTLSCertificateOptions.
func (*UserManagedTLSCertificateOptions) DeepCopyInto ¶
func (in *UserManagedTLSCertificateOptions) DeepCopyInto(out *UserManagedTLSCertificateOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.