v1

package
v1.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 11, 2022 License: Apache-2.0 Imports: 6 Imported by: 0

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

View Source
const (
	// Possible values for BeegfsDriverStatus.Conditions[].Type.
	ConditionControllerServiceReady = "ControllerServiceReady"
	ConditionNodeServiceReady       = "NodeServiceReady"
)

Possible values for BeegfsDriverStatus.Conditions[].Type.

View Source
const (
	ReasonServiceNotCreated = "ServiceNotCreated"
	ReasonPodsNotScheduled  = "PodsNotScheduled"
	ReasonPodsNotReady      = "PodsNotReady"
	ReasonPodsReady         = "PodsReady"
)

Possible values for BeegfsDriverStatus.Conditions[].Reason.

Variables

View Source
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

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

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

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

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL