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 ¶
- type Controller
- type DeploymentSpec
- type DriveMgr
- type Driver
- type Format
- type Image
- type Level
- type Log
- type LogReceiver
- type Metrics
- type Node
- type NodeController
- type NodeSelector
- type OpenshiftSecondaryScheduler
- type Patcher
- type PodSecurityPolicy
- type ResourceRequirements
- type Scheduler
- type SecurityContext
- type Sidecar
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"`
// FastDelay is the parameter for NewItemFastSlowRateLimiter in Reservation Controller
// +kubebuilder:default:="1500ms"
FastDelay string `json:"fastDelay,omitempty"`
// SlowDelay is the parameter for NewItemFastSlowRateLimiter in Reservation Controller
// +kubebuilder:default:="12s"
SlowDelay string `json:"slowDelay,omitempty"`
// MaxFastAttempts is the parameter for NewItemFastSlowRateLimiter in Reservation Controller
// +kubebuilder:default:=30
MaxFastAttempts uint `json:"maxFastAttempts,omitempty"`
SecurityContext *SecurityContext `json:"securityContext,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 {
ServiceAccount string `json:"serviceAccount"`
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"`
PodSecurityPolicy *PodSecurityPolicy `json:"podSecurityPolicy,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 OpenshiftSecondaryScheduler ¶ added in v1.3.0
type OpenshiftSecondaryScheduler struct {
Image *Image `json:"image,omitempty"`
}
OpenshiftSecondaryScheduler represents information to deploy Openshift Secondary Scheduler if applicable
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 PodSecurityPolicy ¶ added in v1.3.0
type PodSecurityPolicy struct {
Enable bool `json:"enable"`
ResourceName string `json:"resourceName"`
}
PodSecurityPolicy encapsulates information about pod security policy
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"`
ServiceAccount string `json:"serviceAccount"`
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"`
OpenshiftSecondaryScheduler *OpenshiftSecondaryScheduler `json:"openshiftSecondaryScheduler,omitempty"`
// +nullable
// +optional
Resources *ResourceRequirements `json:"resources,omitempty"`
SecurityContext *SecurityContext `json:"securityContext,omitempty"`
PodSecurityPolicy *PodSecurityPolicy `json:"podSecurityPolicy,omitempty"`
}
Scheduler encapsulates information to deploy CSI scheduler
type SecurityContext ¶ added in v1.3.0
type SecurityContext struct {
Enable bool `json:"enable"`
Privileged *bool `json:"privileged,omitempty"`
// +kubebuilder:default:=true
RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"`
// +kubebuilder:default:=1000
RunAsUser *int64 `json:"runAsUser,omitempty"`
}
SecurityContext represents security context
type Sidecar ¶
type Sidecar struct {
Image *Image `json:"image,omitempty"`
// Arguments to the entrypoint.
// +kubebuilder:validation:Type=object
// +kubebuilder:validation:Required
Args *args `json:"args,omitempty"`
// +nullable
// +optional
Resources *ResourceRequirements `json:"resources,omitempty"`
}
Sidecar represent CSI sidecar containers