Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the beegfs v1 API group +kubebuilder:object:generate=true +groupName=beegfs.csi.netapp.com
Index ¶
Constants ¶
const ( // Possible values for BeegfsDriverStatus.Conditions[].Type. ConditionControllerServiceReady = "ControllerServiceReady" ConditionNodeServiceReady = "NodeServiceReady" )
Possible values for BeegfsDriverStatus.Conditions[].Type.
const ( ReasonServiceNotCreated = "ServiceNotCreated" ReasonPodsNotScheduled = "PodsNotScheduled" ReasonPodsNotReady = "PodsNotReady" ReasonPodsReady = "PodsReady" )
Possible values for BeegfsDriverStatus.Conditions[].Reason.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "beegfs.csi.netapp.com", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type BeegfsConfig ¶
type BeegfsConfig struct {
// A list of interfaces the BeeGFS client service can communicate over (e.g. "ib0" or "eth0"). Often not required.
// See beegfs-client.conf for more details.
//+operator-sdk:csv:customresourcedefinitions:type=spec
ConnInterfaces []string `json:"connInterfaces,omitempty"`
// A list of subnets the BeeGFS client service can use for outgoing communication (e.g. "10.10.10.10/24"). Often
// not required. See beegfs-client.conf for more details.
//+operator-sdk:csv:customresourcedefinitions:type=spec
ConnNetFilter []string `json:"connNetFilter,omitempty"`
// A list of subnets in which RDMA communication cannot or should not be established (e.g. "10.10.10.11/24").
// Often not required. See beegfs-client.conf for more details.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Conn TCP Only Filter"
ConnTcpOnlyFilter []string `json:"connTcpOnlyFilter,omitempty"`
// A map of additional key value pairs matching key value pairs in the beegfs-client.conf file. See
// beegfs-client.conf for more details. Values MUST be specified as strings, even if they appear to be integers or
// booleans (e.g. "8000", not 8000 and "true", not true).
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Additional beegfs-client.conf Parameters"
BeegfsClientConf map[string]string `json:"beegfsClientConf,omitempty"`
// This field is explicitly NOT tagged for inclusion in the CSV, as it cannot be set externally.
ConnAuth string `json:"-"` // Do not support unmarshalling from a configuration file.
// A list of interfaces the BeeGFS client will use for outbound RDMA connections. This is used in support
// of the BeeGFS multi-rail feature. This feature does not depend on or use the connInterfaces parameter.
// This feature requires the BeeGFS client version 7.3.0 or later.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Conn RDMA Interfaces"
ConnRDMAInterfaces []string `json:"connRDMAInterfaces,omitempty"`
}
The primary configuration structure containing all of the custom configuration (beegfs-client.conf keys/values and additional CSI driver specific fields) associated with a single BeeGFS file system except for sysMgmtdHost, which is specified elsewhere. WARNING: This structure includes a beegfsClientConf field. This field may not be rendered in form view by OpenShift or other graphical interfaces, but it can be critical in some environments. Add or modify it in YAML view.
func NewBeegfsConfig ¶
func NewBeegfsConfig() *BeegfsConfig
NewBeegfsConfig returns an initialized BeegfsConfig.
func (*BeegfsConfig) DeepCopy ¶
func (in *BeegfsConfig) DeepCopy() *BeegfsConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BeegfsConfig.
func (*BeegfsConfig) DeepCopyInto ¶
func (in *BeegfsConfig) DeepCopyInto(out *BeegfsConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (BeegfsConfig) MarshalJSON ¶
func (c BeegfsConfig) MarshalJSON() ([]byte, error)
MarshalJSON overrides the default JSON encoding for the BeegfsConfig struct. klogr uses JSON encoding to log struct values and thus implicitly calls this method. BeegfsConfig does not support marshalling the ConnAuth field, so MarshalJSON encodes a new anonymous struct that includes an marshalled connAuth field and replaces it's value with "******" if it is not empty.
type BeegfsDriver ¶
type BeegfsDriver struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec BeegfsDriverSpec `json:"spec,omitempty"`
Status BeegfsDriverStatus `json:"status,omitempty"`
}
Deploys the BeeGFS CSI driver
func (*BeegfsDriver) DeepCopy ¶
func (in *BeegfsDriver) DeepCopy() *BeegfsDriver
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BeegfsDriver.
func (*BeegfsDriver) DeepCopyInto ¶
func (in *BeegfsDriver) DeepCopyInto(out *BeegfsDriver)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BeegfsDriver) DeepCopyObject ¶
func (in *BeegfsDriver) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BeegfsDriverList ¶
type BeegfsDriverList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []BeegfsDriver `json:"items"`
}
BeegfsDriverList contains a list of BeegfsDrivers.
func (*BeegfsDriverList) DeepCopy ¶
func (in *BeegfsDriverList) DeepCopy() *BeegfsDriverList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BeegfsDriverList.
func (*BeegfsDriverList) DeepCopyInto ¶
func (in *BeegfsDriverList) DeepCopyInto(out *BeegfsDriverList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BeegfsDriverList) DeepCopyObject ¶
func (in *BeegfsDriverList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BeegfsDriverSpec ¶
type BeegfsDriverSpec struct {
ContainerImageOverrides ContainerImageOverrides `json:"containerImageOverrides,omitempty"`
// The logging level of deployed containers expressed as an integer from 0 (low detail) to 5 (high detail). 0
// only logs errors. 3 logs most RPC requests/responses and some detail about driver actions. 5 logs all RPC
// requests/responses, including redundant/frequently occurring ones. Empty defaults to level 3.
//+kubebuilder:validation:Minimum:=0
//+kubebuilder:validation:Maximum:=5
//+operator-sdk:csv:customresourcedefinitions:type=spec
LogLevel *int `json:"logLevel,omitempty"` // Pointer per https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#optional-vs-required.
// The controller service consists of a single Pod. It preferably runs on an infrastructure/master node, but the
// running node must have the beegfs-utils and beegfs-client packages installed. E.g.
// "preferred: node-role.kubernetes.io/master Exists" and/or "required: node.openshift.io/os_id NotIn rhcos".
//+operator-sdk:csv:customresourcedefinitions:type=spec
NodeAffinityControllerService corev1.NodeAffinity `json:"nodeAffinityControllerService"`
// The node service consists of one Pod running on each eligible node. It runs on every node expected to host a
// workload that requires BeeGFS. Running nodes must have the beegfs-utils and beegfs-client packages installed.
// E.g. "required: node.openshift.io/os_id NotIn rhcos".
//+operator-sdk:csv:customresourcedefinitions:type=spec
NodeAffinityNodeService corev1.NodeAffinity `json:"nodeAffinityNodeService"`
//+operator-sdk:csv:customresourcedefinitions:type=spec
PluginConfigFromFile PluginConfigFromFile `json:"pluginConfig,omitempty"`
}
BeegfsDriverSpec defines the desired state of BeegfsDriver
func (*BeegfsDriverSpec) DeepCopy ¶
func (in *BeegfsDriverSpec) DeepCopy() *BeegfsDriverSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BeegfsDriverSpec.
func (*BeegfsDriverSpec) DeepCopyInto ¶
func (in *BeegfsDriverSpec) DeepCopyInto(out *BeegfsDriverSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BeegfsDriverStatus ¶
type BeegfsDriverStatus struct {
//+operator-sdk:csv:customresourcedefinitions:type=status,xDescriptors={"urn:alm:descriptor:io.kubernetes.conditions"}
Conditions []metav1.Condition `json:"conditions"`
}
BeegfsDriverStatus defines the observed state of BeegfsDriver
func (*BeegfsDriverStatus) DeepCopy ¶
func (in *BeegfsDriverStatus) DeepCopy() *BeegfsDriverStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BeegfsDriverStatus.
func (*BeegfsDriverStatus) DeepCopyInto ¶
func (in *BeegfsDriverStatus) DeepCopyInto(out *BeegfsDriverStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConnAuthConfig ¶
type ConnAuthConfig struct {
SysMgmtdHost string `json:"sysMgmtdHost"`
ConnAuth string `json:"connAuth"`
}
ConnAuthConfig associates a ConnAuth with a SysMgmtdHost.
func (*ConnAuthConfig) DeepCopy ¶
func (in *ConnAuthConfig) DeepCopy() *ConnAuthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnAuthConfig.
func (*ConnAuthConfig) DeepCopyInto ¶
func (in *ConnAuthConfig) DeepCopyInto(out *ConnAuthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (ConnAuthConfig) MarshalJSON ¶
func (c ConnAuthConfig) MarshalJSON() ([]byte, error)
MarshalJSON overrides the default JSON encoding for the ConnAuthConfig struct. klogr uses JSON encoding to log struct values and thus implicitly calls this method. MarshalJSON replaces ConnAuthConfig.ConnAuth with "******" if it is not empty.
type ContainerImageOverride ¶
type ContainerImageOverride struct {
// A combination of registry and image (e.g. k8s.gcr.io/csi-provisioner or docker.io/netapp/beegfs-csi-driver).
//+operator-sdk:csv:customresourcedefinitions:type=spec
Image string `json:"image"`
// A tag (e.g. v2.2.2 or latest).
//+operator-sdk:csv:customresourcedefinitions:type=spec
Tag string `json:"tag"`
}
ContainerImageOverride allows for a default container image and tag to be overridden.
func (*ContainerImageOverride) DeepCopy ¶
func (in *ContainerImageOverride) DeepCopy() *ContainerImageOverride
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerImageOverride.
func (*ContainerImageOverride) DeepCopyInto ¶
func (in *ContainerImageOverride) DeepCopyInto(out *ContainerImageOverride)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ContainerImageOverrides ¶
type ContainerImageOverrides struct {
// Defaults to docker.io/netapp/beegfs-csi-driver:<the operator version>.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="BeeGFS CSI Driver"
BeegfsCsiDriver ContainerImageOverride `json:"beegfsCsiDriver"`
// Defaults to k8s.gcr.io/sig-storage/csi-node-driver-registrar:<the most current version at operator release>.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="CSI Node Driver Registrar"
CsiNodeDriverRegistrar ContainerImageOverride `json:"csiNodeDriverRegistrar"`
// Defaults to k8s.gcr.io/sig-storage/csi-provisioner:<the most current version at operator release>.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="CSI Provisioner"
CsiProvisioner ContainerImageOverride `json:"csiProvisioner"`
// Defaults to k8s.gcr.io/sig-storage/livenessprobe:<the most current version at operator release>.
//+operator-sdk:csv:customresourcedefinitions:type=spec
LivenessProbe ContainerImageOverride `json:"livenessProbe"`
}
A structure that allows for default container images and tags to be overridden. Use it in air-gapped networks, networks with private registry mirrors, or to pin a particular container version. Unless otherwise noted, versions other than the default are not supported.
func (*ContainerImageOverrides) DeepCopy ¶
func (in *ContainerImageOverrides) DeepCopy() *ContainerImageOverrides
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerImageOverrides.
func (*ContainerImageOverrides) DeepCopyInto ¶
func (in *ContainerImageOverrides) DeepCopyInto(out *ContainerImageOverrides)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FileSystemSpecificConfig ¶
type FileSystemSpecificConfig struct {
// The sysMgmtdHost used by the BeeGFS client service to make initial contact with the BeeGFS mgmtd service.
//+kubebuilder:validation:Required
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="SysMgmtdHost"
SysMgmtdHost string `json:"sysMgmtdHost"`
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="File System Specific Config"
Config BeegfsConfig `json:"config"`
}
A file system specific configuration that overrides the default configuration for a specific file system.
func (*FileSystemSpecificConfig) DeepCopy ¶
func (in *FileSystemSpecificConfig) DeepCopy() *FileSystemSpecificConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileSystemSpecificConfig.
func (*FileSystemSpecificConfig) DeepCopyInto ¶
func (in *FileSystemSpecificConfig) DeepCopyInto(out *FileSystemSpecificConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSpecificConfig ¶
type NodeSpecificConfig struct {
// The list of nodes this configuration should be applied on. Each entry is the hostname of the node or the name
// assigned to the node by the container orchestrator (e.g. "node1" or "cluster05-node03").
//+kubebuilder:validation:Required
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Node Names"
NodeList []string `json:"nodeList"`
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Default Config for Nodes"
DefaultConfig BeegfsConfig `json:"config"`
// A list of file system specific configurations that override the default configuration for specific file systems
// on these nodes.
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="File System Specific Configs for Nodes"
FileSystemSpecificConfigs []FileSystemSpecificConfig `json:"fileSystemSpecificConfigs,omitempty"`
}
A node specific configuration that overrides file system specific configurations and the default configuration on specific nodes.
func (*NodeSpecificConfig) DeepCopy ¶
func (in *NodeSpecificConfig) DeepCopy() *NodeSpecificConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSpecificConfig.
func (*NodeSpecificConfig) DeepCopyInto ¶
func (in *NodeSpecificConfig) DeepCopyInto(out *NodeSpecificConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PluginConfig ¶
type PluginConfig struct {
//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Default Config"
DefaultConfig BeegfsConfig `json:"config"`
// A list of file system specific configurations that override the default configuration for specific file systems.
//+operator-sdk:csv:customresourcedefinitions:displayName="Default File System Specific Configs"
FileSystemSpecificConfigs []FileSystemSpecificConfig `json:"fileSystemSpecificConfigs,omitempty"`
}
The configuration structure containing default configuration (applied to all file systems on all nodes) and file system specific configuration. On initialization, the driver squashes all node specific configuration for the node it is running on into this structure and maintains it until restart.
func (*PluginConfig) DeepCopy ¶
func (in *PluginConfig) DeepCopy() *PluginConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfig.
func (*PluginConfig) DeepCopyInto ¶
func (in *PluginConfig) DeepCopyInto(out *PluginConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PluginConfigFromFile ¶
type PluginConfigFromFile struct {
PluginConfig `json:",inline"` // embedded structs must be inlined
// A list of node specific configurations that override file system specific configurations and the default
// configuration on specific nodes.
NodeSpecificConfigs []NodeSpecificConfig `json:"nodeSpecificConfigs,omitempty"`
}
The top level configuration structure containing default configuration (applied to all file systems on all nodes), file system specific configuration, and node specific configuration. Fields from node and file system specific configurations override fields from the default configuration. Often not required.
func (*PluginConfigFromFile) DeepCopy ¶
func (in *PluginConfigFromFile) DeepCopy() *PluginConfigFromFile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginConfigFromFile.
func (*PluginConfigFromFile) DeepCopyInto ¶
func (in *PluginConfigFromFile) DeepCopyInto(out *PluginConfigFromFile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.