Documentation
¶
Overview ¶
Copyright © 2021 Dell Inc. or its subsidiaries. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct { Image *Image `json:"image,omitempty"` Log *Log `json:"log,omitempty"` Sidecars map[string]*Sidecar `json:"sidecars,omitempty"` // +nullable // +optional Resources *ResourceRequirements `json:"resources,omitempty"` }
Controller encapsulates logic for CSI controller component
type DeploymentSpec ¶
type DeploymentSpec struct { Driver *Driver `json:"driver,omitempty"` NodeController *NodeController `json:"nodeController,omitempty"` Scheduler *Scheduler `json:"scheduler,omitempty"` // +nullable // +optional GlobalRegistry string `json:"globalRegistry"` // +nullable // +optional RegistrySecret string `json:"registrySecret"` // +kubebuilder:validation:Enum=IfNotPresent;Always;Never // +kubebuilder:default:=IfNotPresent PullPolicy string `json:"pullPolicy"` NodeSelector *NodeSelector `json:"nodeSelector,omitempty"` NodeIDAnnotation bool `json:"nodeIDAnnotation,omitempty"` SequentialLVGReservation bool `json:"sequentialLVGReservation,omitempty"` // +kubebuilder:validation:Enum=rke;openshift;vanilla // +kubebuilder:default:=vanilla Platform string `json:"platform"` }
DeploymentSpec represent all CSI components need to be deployed by operator
type DriveMgr ¶
type DriveMgr struct { Image *Image `json:"image,omitempty"` Endpoint string `json:"endpoint"` // +nullable // +optional Resources *ResourceRequirements `json:"resources,omitempty"` }
DriveMgr represents drive manager node component
type Driver ¶
type Driver struct { Controller *Controller `json:"controller,omitempty"` Node *Node `json:"node,omitempty"` Metrics *Metrics `json:"metrics,omitempty"` LogReceiver *LogReceiver `json:"logReceiver,omitempty"` // TODO need to implement this // +optional MountRootHost bool `json:"mountRootHost"` }
Driver represent CSI driver with all necessary CSI components
type LogReceiver ¶
LogReceiver encapsulates information needed to establish log receiver for components
type Node ¶
type Node struct { DriveMgr *DriveMgr `json:"driveMgr,omitempty"` Image *Image `json:"image,omitempty"` Log *Log `json:"log,omitempty"` Sidecars map[string]*Sidecar `json:"sidecars,omitempty"` // +nullable // +optional Resources *ResourceRequirements `json:"resources,omitempty"` }
Node encapsulates information for CSI node components
type NodeController ¶
type NodeController struct { Enable bool `json:"enable"` Image *Image `json:"image,omitempty"` Log *Log `json:"log,omitempty"` // +nullable // +optional Resources *ResourceRequirements `json:"resources,omitempty"` }
NodeController represent operator for CSI bare-metal nodes
type NodeSelector ¶
type NodeSelector struct { Key string `json:"key,omitempty"` Value string `json:"value,omitempty"` }
NodeSelector contains key-value pair to deploy node components on specific k8sNodes
type Patcher ¶
type Patcher struct { Enable bool `json:"enable"` Image *Image `json:"image,omitempty"` Interval int `json:"interval,omitempty"` RestoreOnShutdown bool `json:"restoreOnShutdown,omitempty"` ConfigMapName string `json:"configMapName,omitempty"` ReadinessTimeout int `json:"readinessTimeout,omitempty"` // +nullable // +optional Resources *ResourceRequirements `json:"resources,omitempty"` }
Patcher represents scheduler patcher container, which tries to patch Kubernetes scheduler
type ResourceRequirements ¶
type ResourceRequirements struct { // +nullable // +optional Limits corev1.ResourceList `json:"limits,omitempty"` // +nullable // +optional Requests corev1.ResourceList `json:"requests,omitempty"` }
ResourceRequirements contain information for mem/cpu requirements
type Scheduler ¶
type Scheduler struct { Enable bool `json:"enable"` Image *Image `json:"image,omitempty"` Log *Log `json:"log,omitempty"` Metrics *Metrics `json:"metrics,omitempty"` Patcher *Patcher `json:"patcher,omitempty"` ExtenderPort string `json:"extenderPort,omitempty"` StorageProvisioner string `json:"storageProvisioner"` // +nullable // +optional Resources *ResourceRequirements `json:"resources,omitempty"` }
Scheduler encapsulates information to deploy CSI scheduler
type Sidecar ¶
type Sidecar struct { Image *Image `json:"image,omitempty"` // +nullable // +optional Resources *ResourceRequirements `json:"resources,omitempty"` }
Sidecar represent CSI sidecar containers