v1

package
v2.1.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2020 License: MIT Imports: 12 Imported by: 2

Documentation

Overview

Package v1 contains API Schema definitions for the cluster v1 API group +k8s:deepcopy-gen=package,register +groupName=storageos.com

Package v1 contains API Schema definitions for the cluster v1 API group +k8s:deepcopy-gen=package,register +groupName=cluster.storageos.com

Index

Constants

View Source
const (
	DefaultNFSVolumeCapacity = "1Gi"

	PhasePending = "Pending"
	PhaseRunning = "Running"
	PhaseUnknown = "Unknown"
)

Constants for NFSServer default values and different phases.

View Source
const (
	ClusterPhaseInitial ClusterPhase = ""
	// A cluster is in running phase when the cluster health is reported
	// healthy, all the StorageOS nodes are ready.
	ClusterPhaseRunning ClusterPhase = "Running"
	// A cluster is in creating phase when the cluster resource provisioning as
	// started
	ClusterPhaseCreating ClusterPhase = "Creating"
	// A cluster is in pending phase when the creation hasn't started. This can
	// happen if there's an existing cluster and the new cluster provisioning is
	// not allowed by the operator.
	ClusterPhasePending ClusterPhase = "Pending"
	// A cluster is in terminating phase when the cluster delete is initiated.
	// The cluster object is waiting for the finalizers to be executed.
	ClusterPhaseTerminating ClusterPhase = "Terminating"

	// Use kube-system as the default namespace as so that our containers won't
	// get evicted when there is resource contention.  Works with
	// "system-node-critical" priority class.
	DefaultNamespace = "kube-system"

	DefaultStorageClassName = "fast"

	DefaultServiceName         = "storageos"
	DefaultServiceType         = "ClusterIP"
	DefaultServiceExternalPort = 5705
	DefaultServiceInternalPort = 5705

	DefaultIngressHostname = "storageos.local"

	DefaultPluginRegistrationPath = "/var/lib/kubelet/plugins_registry"
	OldPluginRegistrationPath     = "/var/lib/kubelet/plugins"

	DefaultCSIEndpoint                 = "/storageos/csi.sock"
	DefaultCSIRegistrarSocketDir       = "/var/lib/kubelet/device-plugins/"
	DefaultCSIKubeletDir               = "/var/lib/kubelet"
	DefaultCSIPluginDir                = "/storageos/"
	DefaultCSIDeviceDir                = "/dev"
	DefaultCSIRegistrationDir          = DefaultPluginRegistrationPath
	DefaultCSIKubeletRegistrationPath  = "/storageos/csi.sock"
	DefaultCSIDriverRegistrationMode   = "node-register"
	DefaultCSIDriverRequiresAttachment = "true"
	DefaultCSIDeploymentStrategy       = "statefulset"
)

Constants for operator defaults values and different phases.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "storageos.com", Version: "v1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme adds all resources to the scheme
	// NOTE: This is not part of the operator-sdk scaffold and is added for
	// compatibility with clientset code generated by k8s/code-generator.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

Types

type ClusterPhase

type ClusterPhase string

ClusterPhase is the phase of the storageos cluster at a given point in time.

type ContainerImages

type ContainerImages struct {
	NodeContainer                      string `json:"nodeContainer,omitempty"`
	InitContainer                      string `json:"initContainer,omitempty"`
	CSINodeDriverRegistrarContainer    string `json:"csiNodeDriverRegistrarContainer,omitempty"`
	CSIClusterDriverRegistrarContainer string `json:"csiClusterDriverRegistrarContainer,omitempty"`
	CSIExternalProvisionerContainer    string `json:"csiExternalProvisionerContainer,omitempty"`
	CSIExternalAttacherContainer       string `json:"csiExternalAttacherContainer,omitempty"`
	CSIExternalResizerContainer        string `json:"csiExternalResizerContainer,omitempty"`
	CSILivenessProbeContainer          string `json:"csiLivenessProbeContainer,omitempty"`
	HyperkubeContainer                 string `json:"hyperkubeContainer,omitempty"`
	KubeSchedulerContainer             string `json:"kubeSchedulerContainer,omitempty"`
	NFSContainer                       string `json:"nfsContainer,omitempty"`
}

ContainerImages contains image names of all the containers used by the operator.

func (*ContainerImages) DeepCopy

func (in *ContainerImages) DeepCopy() *ContainerImages

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerImages.

func (*ContainerImages) DeepCopyInto

func (in *ContainerImages) DeepCopyInto(out *ContainerImages)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExportSpec

type ExportSpec struct {
	// Name of the export
	Name string `json:"name,omitempty"`

	// The NFS server configuration
	Server ServerSpec `json:"server,omitempty"`

	// PVC from which the NFS daemon gets storage for sharing
	PersistentVolumeClaim corev1.PersistentVolumeClaimVolumeSource `json:"persistentVolumeClaim,omitempty"`
}

ExportSpec represents the spec of NFS export.

func (*ExportSpec) DeepCopy

func (in *ExportSpec) DeepCopy() *ExportSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExportSpec.

func (*ExportSpec) DeepCopyInto

func (in *ExportSpec) DeepCopyInto(out *ExportSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Job

type Job struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   JobSpec   `json:"spec,omitempty"`
	Status JobStatus `json:"status,omitempty"`
}

Job is the Schema for the jobs API +k8s:openapi-gen=true +kubebuilder:singular=job +kubebuilder:subresource:status

func (*Job) DeepCopy

func (in *Job) DeepCopy() *Job

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Job.

func (*Job) DeepCopyInto

func (in *Job) DeepCopyInto(out *Job)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Job) DeepCopyObject

func (in *Job) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type JobList

type JobList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Job `json:"items"`
}

JobList contains a list of Job

func (*JobList) DeepCopy

func (in *JobList) DeepCopy() *JobList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobList.

func (*JobList) DeepCopyInto

func (in *JobList) DeepCopyInto(out *JobList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*JobList) DeepCopyObject

func (in *JobList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type JobSpec

type JobSpec struct {

	// Image is the container image to run as the job.
	Image string `json:"image"`

	// Args is an array of strings passed as an argument to the job container.
	Args []string `json:"args"`

	// MountPath is the path in the job container where a volume is mounted.
	MountPath string `json:"mountPath"`

	// HostPath is the path in the host that's mounted into a job container.
	HostPath string `json:"hostPath"`

	// CompletionWord is the word that's looked for in the pod logs to find out
	// if a DaemonSet Pod has completed its task.
	CompletionWord string `json:"completionWord"`

	// LabelSelector is the label selector for the job Pods.
	LabelSelector string `json:"labelSelector,omitempty"`

	// NodeSelectorTerms is the set of placement of the job pods using node
	// affinity requiredDuringSchedulingIgnoredDuringExecution.
	NodeSelectorTerms []corev1.NodeSelectorTerm `json:"nodeSelectorTerms,omitempty"`

	// Tolerations is to set the placement of storageos pods using
	// pod toleration.
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}

JobSpec defines the desired state of Job +k8s:openapi-gen=true

func (*JobSpec) DeepCopy

func (in *JobSpec) DeepCopy() *JobSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobSpec.

func (*JobSpec) DeepCopyInto

func (in *JobSpec) DeepCopyInto(out *JobSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (JobSpec) GetLabelSelector

func (s JobSpec) GetLabelSelector() string

GetLabelSelector returns Job's pod label selector.

type JobStatus

type JobStatus struct {

	// Completed indicates the complete status of job.
	Completed bool `json:"completed,omitempty"`
}

JobStatus defines the observed state of Job +k8s:openapi-gen=true

func (*JobStatus) DeepCopy

func (in *JobStatus) DeepCopy() *JobStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobStatus.

func (*JobStatus) DeepCopyInto

func (in *JobStatus) DeepCopyInto(out *JobStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MembersStatus

type MembersStatus struct {
	// Ready are the storageos cluster members that are ready to serve requests.
	// The member names are the same as the node IPs.
	Ready []string `json:"ready,omitempty"`
	// Unready are the storageos cluster nodes not ready to serve requests.
	Unready []string `json:"unready,omitempty"`
}

MembersStatus stores the status details of cluster member nodes.

func (*MembersStatus) DeepCopy

func (in *MembersStatus) DeepCopy() *MembersStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MembersStatus.

func (*MembersStatus) DeepCopyInto

func (in *MembersStatus) DeepCopyInto(out *MembersStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NFSServer

type NFSServer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   NFSServerSpec   `json:"spec,omitempty"`
	Status NFSServerStatus `json:"status,omitempty"`
}

NFSServer is the Schema for the nfsservers API +k8s:openapi-gen=true +kubebuilder:printcolumn:name="status",type="string",JSONPath=".status.phase",description="Status of the NFS server." +kubebuilder:printcolumn:name="capacity",type="string",JSONPath=".spec.resources.requests.storage",description="Capacity of the NFS server." +kubebuilder:printcolumn:name="target",type="string",JSONPath=".status.remoteTarget",description="Remote target address of the NFS server." +kubebuilder:printcolumn:name="access modes",type="string",JSONPath=".status.accessModes",description="Access modes supported by the NFS server." +kubebuilder:printcolumn:name="storageclass",type="string",JSONPath=".spec.storageClassName",description="StorageClass used for creating the NFS volume." +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:path=nfsservers,shortName=nfsserver +kubebuilder:subresource:status

func (*NFSServer) DeepCopy

func (in *NFSServer) DeepCopy() *NFSServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSServer.

func (*NFSServer) DeepCopyInto

func (in *NFSServer) DeepCopyInto(out *NFSServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NFSServer) DeepCopyObject

func (in *NFSServer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NFSServerList

type NFSServerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []NFSServer `json:"items"`
}

NFSServerList contains a list of NFSServer

func (*NFSServerList) DeepCopy

func (in *NFSServerList) DeepCopy() *NFSServerList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSServerList.

func (*NFSServerList) DeepCopyInto

func (in *NFSServerList) DeepCopyInto(out *NFSServerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NFSServerList) DeepCopyObject

func (in *NFSServerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NFSServerSpec

type NFSServerSpec struct {

	// NFSContainer is the container image to use for the NFS server.
	// +optional
	NFSContainer string `json:"nfsContainer,omitempty"`

	// StorageClassName is the name of the StorageClass used by the NFS volume.
	StorageClassName string `json:"storageClassName,omitempty"`

	// Tolerations is to set the placement of NFS server pods using
	// pod toleration.
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Resources represents the minimum resources required
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// The annotations-related configuration to add/set on each Pod related object.
	Annotations map[string]string `json:"annotations,omitempty"`

	// The parameters to configure the NFS export
	Export ExportSpec `json:"export,omitempty"`

	// Reclamation policy for the persistent volume shared to the user's pod.
	PersistentVolumeReclaimPolicy corev1.PersistentVolumeReclaimPolicy `json:"persistentVolumeReclaimPolicy,omitempty"`

	// PV mount options. Not validated - mount of the PVs will simply fail if
	// one is invalid.
	MountOptions []string `json:"mountOptions,omitempty"`

	// PersistentVolumeClaim is the PVC source of the PVC to be used with the
	// NFS Server. If not specified, a new PVC is provisioned and used.
	PersistentVolumeClaim corev1.PersistentVolumeClaimVolumeSource `json:"persistentVolumeClaim,omitempty"`
}

NFSServerSpec defines the desired state of NFSServer +k8s:openapi-gen=true

func (*NFSServerSpec) DeepCopy

func (in *NFSServerSpec) DeepCopy() *NFSServerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSServerSpec.

func (*NFSServerSpec) DeepCopyInto

func (in *NFSServerSpec) DeepCopyInto(out *NFSServerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (NFSServerSpec) GetContainerImage

func (s NFSServerSpec) GetContainerImage(clusterNFSImage string) string

GetContainerImage returns the NFS server container image.

func (NFSServerSpec) GetRequestedCapacity

func (s NFSServerSpec) GetRequestedCapacity() resource.Quantity

GetRequestedCapacity returns the requested capacity for the NFS volume.

func (NFSServerSpec) GetStorageClassName

func (s NFSServerSpec) GetStorageClassName(clusterSCName string) string

GetStorageClassName returns the name of the StorageClass to be used for the NFS volume. clusterSCName is the name of the default StorageClass of a StorageOS cluster.

type NFSServerStatus

type NFSServerStatus struct {

	// RemoteTarget is the connection string that clients can use to access the
	// shared filesystem.
	RemoteTarget string `json:"remoteTarget,omitempty"`

	// Phase is a simple, high-level summary of where the NFS Server is in its
	// lifecycle. Phase will be set to Ready when the NFS Server is ready for
	// use.  It is intended to be similar to the PodStatus Phase described at:
	// https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.14/#podstatus-v1-core
	//
	// There are five possible phase values:
	//   - Pending: The NFS Server has been accepted by the Kubernetes system,
	//     but one or more of the components has not been created. This includes
	//     time before being scheduled as well as time spent downloading images
	//     over the network, which could take a while.
	//   - Running: The NFS Server has been bound to a node, and all of the
	//     dependencies have been created.
	//   - Succeeded: All NFS Server dependencies have terminated in success,
	//     and will not be restarted.
	//   - Failed: All NFS Server dependencies in the pod have terminated, and
	//     at least one container has terminated in failure. The container
	//     either exited with non-zero status or was terminated by the system.
	//   - Unknown: For some reason the state of the NFS Server could not be
	//     obtained, typically due to an error in communicating with the host of
	//     the pod.
	//
	Phase string `json:"phase,omitempty"`

	// AccessModes is the access modes supported by the NFS server.
	AccessModes string `json:"accessModes,omitempty"`
}

NFSServerStatus defines the observed state of NFSServer +k8s:openapi-gen=true

func (*NFSServerStatus) DeepCopy

func (in *NFSServerStatus) DeepCopy() *NFSServerStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSServerStatus.

func (*NFSServerStatus) DeepCopyInto

func (in *NFSServerStatus) DeepCopyInto(out *NFSServerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeHealth

type NodeHealth struct {
	DirectfsInitiator string `json:"directfsInitiator,omitempty"`
	Director          string `json:"director,omitempty"`
	KV                string `json:"kv,omitempty"`
	KVWrite           string `json:"kvWrite,omitempty"`
	Nats              string `json:"nats,omitempty"`
	Presentation      string `json:"presentation,omitempty"`
	Rdb               string `json:"rdb,omitempty"`
}

NodeHealth contains health status of a node.

func (*NodeHealth) DeepCopy

func (in *NodeHealth) DeepCopy() *NodeHealth

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeHealth.

func (*NodeHealth) DeepCopyInto

func (in *NodeHealth) DeepCopyInto(out *NodeHealth)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerSpec

type ServerSpec struct {
	// Reading and Writing permissions on the export
	// Valid values are "ReadOnly", "ReadWrite" and "none"
	AccessMode string `json:"accessMode,omitempty"`

	// This prevents the root users connected remotely from having root privileges
	// Valid values are "none", "rootid", "root", and "all"
	Squash string `json:"squash,omitempty"`
}

ServerSpec represents the spec for configuring the NFS server

func (*ServerSpec) DeepCopy

func (in *ServerSpec) DeepCopy() *ServerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerSpec.

func (*ServerSpec) DeepCopyInto

func (in *ServerSpec) DeepCopyInto(out *ServerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StorageOSCluster

type StorageOSCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   StorageOSClusterSpec   `json:"spec,omitempty"`
	Status StorageOSClusterStatus `json:"status,omitempty"`
}

StorageOSCluster is the Schema for the storageosclusters API +k8s:openapi-gen=true +kubebuilder:printcolumn:name="ready",type="string",JSONPath=".status.ready",description="Ready status of the storageos nodes." +kubebuilder:printcolumn:name="status",type="string",JSONPath=".status.phase",description="Status of the whole cluster." +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:path=storageosclusters,shortName=stos +kubebuilder:singular=storageoscluster +kubebuilder:subresource:status

func (*StorageOSCluster) DeepCopy

func (in *StorageOSCluster) DeepCopy() *StorageOSCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSCluster.

func (*StorageOSCluster) DeepCopyInto

func (in *StorageOSCluster) DeepCopyInto(out *StorageOSCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StorageOSCluster) DeepCopyObject

func (in *StorageOSCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type StorageOSClusterCSI

type StorageOSClusterCSI struct {
	Enable                       bool   `json:"enable,omitempty"`
	Version                      string `json:"version,omitempty"`
	Endpoint                     string `json:"endpoint,omitempty"`
	EnableProvisionCreds         bool   `json:"enableProvisionCreds,omitempty"`
	EnableControllerPublishCreds bool   `json:"enableControllerPublishCreds,omitempty"`
	EnableNodePublishCreds       bool   `json:"enableNodePublishCreds,omitempty"`
	EnableControllerExpandCreds  bool   `json:"enableControllerExpandCreds,omitempty"`
	RegistrarSocketDir           string `json:"registrarSocketDir,omitempty"`
	KubeletDir                   string `json:"kubeletDir,omitempty"`
	PluginDir                    string `json:"pluginDir,omitempty"`
	DeviceDir                    string `json:"deviceDir,omitempty"`
	RegistrationDir              string `json:"registrationDir,omitempty"`
	KubeletRegistrationPath      string `json:"kubeletRegistrationPath,omitempty"`
	DriverRegistrationMode       string `json:"driverRegisterationMode,omitempty"`
	DriverRequiresAttachment     string `json:"driverRequiresAttachment,omitempty"`
	DeploymentStrategy           string `json:"deploymentStrategy,omitempty"`
}

StorageOSClusterCSI contains CSI configurations.

func (*StorageOSClusterCSI) DeepCopy

func (in *StorageOSClusterCSI) DeepCopy() *StorageOSClusterCSI

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSClusterCSI.

func (*StorageOSClusterCSI) DeepCopyInto

func (in *StorageOSClusterCSI) DeepCopyInto(out *StorageOSClusterCSI)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StorageOSClusterIngress

type StorageOSClusterIngress struct {
	Enable      bool              `json:"enable,omitempty"`
	Hostname    string            `json:"hostname,omitempty"`
	TLS         bool              `json:"tls,omitempty"`
	Annotations map[string]string `json:"annotations,omitempty"`
}

StorageOSClusterIngress contains Ingress configurations.

func (*StorageOSClusterIngress) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSClusterIngress.

func (*StorageOSClusterIngress) DeepCopyInto

func (in *StorageOSClusterIngress) DeepCopyInto(out *StorageOSClusterIngress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StorageOSClusterKVBackend

type StorageOSClusterKVBackend struct {
	Address string `json:"address,omitempty"`
	Backend string `json:"backend,omitempty"`
}

StorageOSClusterKVBackend stores key-value store backend configurations.

func (*StorageOSClusterKVBackend) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSClusterKVBackend.

func (*StorageOSClusterKVBackend) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StorageOSClusterList

type StorageOSClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []StorageOSCluster `json:"items"`
}

StorageOSClusterList contains a list of StorageOSCluster

func (*StorageOSClusterList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSClusterList.

func (*StorageOSClusterList) DeepCopyInto

func (in *StorageOSClusterList) DeepCopyInto(out *StorageOSClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StorageOSClusterList) DeepCopyObject

func (in *StorageOSClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type StorageOSClusterService

type StorageOSClusterService struct {
	Name         string            `json:"name"`
	Type         string            `json:"type"`
	ExternalPort int               `json:"externalPort,omitempty"`
	InternalPort int               `json:"internalPort,omitempty"`
	Annotations  map[string]string `json:"annotations,omitempty"`
}

StorageOSClusterService contains Service configurations.

func (*StorageOSClusterService) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSClusterService.

func (*StorageOSClusterService) DeepCopyInto

func (in *StorageOSClusterService) DeepCopyInto(out *StorageOSClusterService)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StorageOSClusterSpec

type StorageOSClusterSpec struct {

	// Join is the join token used for service discovery.
	Join string `json:"join,omitempty"`

	// CSI defines the configurations for CSI.
	CSI StorageOSClusterCSI `json:"csi,omitempty"`

	// Namespace is the kubernetes Namespace where storageos resources are
	// provisioned.
	Namespace string `json:"namespace,omitempty"`

	// StorageClassName is the name of default StorageClass created for
	// StorageOS volumes.
	StorageClassName string `json:"storageClassName,omitempty"`

	// Service is the Service configuration for the cluster nodes.
	Service StorageOSClusterService `json:"service,omitempty"`

	// SecretRefName is the name of the secret object that contains all the
	// sensitive cluster configurations.
	SecretRefName string `json:"secretRefName"`

	// SecretRefNamespace is the namespace of the secret reference.
	SecretRefNamespace string `json:"secretRefNamespace"`

	// SharedDir is the shared directory to be used when the kubelet is running
	// in a container.
	// Typically: "/var/lib/kubelet/plugins/kubernetes.io~storageos".
	// If not set, defaults will be used.
	SharedDir string `json:"sharedDir,omitempty"`

	// Ingress defines the ingress configurations used in the cluster.
	Ingress StorageOSClusterIngress `json:"ingress,omitempty"`

	// Images defines the various container images used in the cluster.
	Images ContainerImages `json:"images,omitempty"`

	// KVBackend defines the key-value store backend used in the cluster.
	KVBackend StorageOSClusterKVBackend `json:"kvBackend,omitempty"`

	// Pause is to pause the operator for the cluster.
	Pause bool `json:"pause,omitempty"`

	// Debug is to set debug mode of the cluster.
	Debug bool `json:"debug,omitempty"`

	// NodeSelectorTerms is to set the placement of storageos pods using
	// node affinity requiredDuringSchedulingIgnoredDuringExecution.
	NodeSelectorTerms []corev1.NodeSelectorTerm `json:"nodeSelectorTerms,omitempty"`

	// Tolerations is to set the placement of storageos pods using
	// pod toleration.
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Resources is to set the resource requirements of the storageos containers.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Disable Pod Fencing.  With StatefulSets, Pods are only re-scheduled if
	// the Pod has been marked as killed.  In practice this means that failover
	// of a StatefulSet pod is a manual operation.
	//
	// By enabling Pod Fencing and setting the `storageos.com/fenced=true` label
	// on a Pod, StorageOS will enable automated Pod failover (by killing the
	// application Pod on the failed node) if the following conditions exist:
	//
	// - Pod fencing has not been explicitly disabled.
	// - StorageOS has determined that the node the Pod is running on is
	//   offline.  StorageOS uses Gossip and TCP checks and will retry for 30
	//   seconds.  At this point all volumes on the failed node are marked
	//   offline (irrespective of whether fencing is enabled) and volume
	//   failover starts.
	// - The Pod has the label `storageos.com/fenced=true` set.
	// - The Pod has at least one StorageOS volume attached.
	// - Each StorageOS volume has at least 1 healthy replica.
	//
	// When Pod Fencing is disabled, StorageOS will not perform any interaction
	// with Kubernetes when it detects that a node has gone offline.
	// Additionally, the Kubernetes permissions required for Fencing will not be
	// added to the StorageOS role.
	DisableFencing bool `json:"disableFencing,omitempty"`

	// Disable Telemetry.
	DisableTelemetry bool `json:"disableTelemetry,omitempty"`

	// Disable TCMU can be set to true to disable the TCMU storage driver.  This
	// is required when there are multiple storage systems running on the same
	// node and you wish to avoid conflicts.  Only one TCMU-based storage system
	// can run on a node at a time.
	//
	// Disabling TCMU will degrade performance.
	DisableTCMU bool `json:"disableTCMU,omitempty"`

	// Force TCMU can be set to true to ensure that TCMU is enabled or
	// cause StorageOS to abort startup.
	//
	// At startup, StorageOS will automatically fallback to non-TCMU mode if
	// another TCMU-based storage system is running on the node.  Since non-TCMU
	// will degrade performance, this may not always be desired.
	ForceTCMU bool `json:"forceTCMU,omitempty"`

	// TLSEtcdSecretRefName is the name of the secret object that contains the
	// etcd TLS certs. This secret is shared with etcd, therefore it's not part
	// of the main storageos secret.
	TLSEtcdSecretRefName string `json:"tlsEtcdSecretRefName,omitempty"`

	// TLSEtcdSecretRefNamespace is the namespace of the etcd TLS secret object.
	TLSEtcdSecretRefNamespace string `json:"tlsEtcdSecretRefNamespace,omitempty"`

	// K8sDistro is the name of the Kubernetes distribution where the operator
	// is being deployed.  It should be in the format: `name[-1.0]`, where the
	// version is optional and should only be appended if known.  Suitable names
	// include: `openshift`, `rancher`, `aks`, `gke`, `eks`, or the deployment
	// method if using upstream directly, e.g `minishift` or `kubeadm`.
	//
	// Setting k8sDistro is optional, and will be used to simplify cluster
	// configuration by setting appropriate defaults for the distribution.  The
	// distribution information will also be included in the product telemetry
	// (if enabled), to help focus development efforts.
	K8sDistro string `json:"k8sDistro,omitempty"`

	// Disable StorageOS scheduler extender.
	DisableScheduler bool `json:"disableScheduler,omitempty"`
}

StorageOSClusterSpec defines the desired state of StorageOSCluster +k8s:openapi-gen=true

func (*StorageOSClusterSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSClusterSpec.

func (*StorageOSClusterSpec) DeepCopyInto

func (in *StorageOSClusterSpec) DeepCopyInto(out *StorageOSClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (StorageOSClusterSpec) GetCSIClusterDriverRegistrarImage

func (s StorageOSClusterSpec) GetCSIClusterDriverRegistrarImage() string

GetCSIClusterDriverRegistrarImage returns CSI cluster driver registrar container image.

func (StorageOSClusterSpec) GetCSIDeploymentStrategy

func (s StorageOSClusterSpec) GetCSIDeploymentStrategy() string

GetCSIDeploymentStrategy returns the CSI helper deployment strategy value.

func (StorageOSClusterSpec) GetCSIDeviceDir

func (s StorageOSClusterSpec) GetCSIDeviceDir() string

GetCSIDeviceDir returns the CSI device dir.

func (StorageOSClusterSpec) GetCSIDriverRegistrationMode

func (s StorageOSClusterSpec) GetCSIDriverRegistrationMode() string

GetCSIDriverRegistrationMode returns the CSI Driver Registration Mode.

func (StorageOSClusterSpec) GetCSIDriverRequiresAttachment

func (s StorageOSClusterSpec) GetCSIDriverRequiresAttachment() string

GetCSIDriverRequiresAttachment returns the CSI Driver Requires Attachment

func (StorageOSClusterSpec) GetCSIEndpoint

func (s StorageOSClusterSpec) GetCSIEndpoint(csiv1 bool) string

GetCSIEndpoint returns the CSI unix socket endpoint path.

func (StorageOSClusterSpec) GetCSIExternalAttacherImage

func (s StorageOSClusterSpec) GetCSIExternalAttacherImage(csiv1 bool, attacherv2Supported bool) string

GetCSIExternalAttacherImage returns CSI external attacher container image. CSI v0, CSI v1 on k8s 1.13 and CSI v1 on k8s 1.14+ require different versions of external attacher.

func (StorageOSClusterSpec) GetCSIExternalProvisionerImage

func (s StorageOSClusterSpec) GetCSIExternalProvisionerImage(csiv1 bool, nodev2 bool) string

GetCSIExternalProvisionerImage returns CSI external provisioner container image.

func (StorageOSClusterSpec) GetCSIExternalResizerImage

func (s StorageOSClusterSpec) GetCSIExternalResizerImage() string

GetCSIExternalResizerImage returns CSI external resizer container image.

func (StorageOSClusterSpec) GetCSIKubeletDir

func (s StorageOSClusterSpec) GetCSIKubeletDir() string

GetCSIKubeletDir returns the Kubelet dir.

func (StorageOSClusterSpec) GetCSIKubeletRegistrationPath

func (s StorageOSClusterSpec) GetCSIKubeletRegistrationPath(csiv1 bool) string

GetCSIKubeletRegistrationPath returns the CSI Kubelet Registration Path.

func (StorageOSClusterSpec) GetCSILivenessProbeImage

func (s StorageOSClusterSpec) GetCSILivenessProbeImage() string

GetCSILivenessProbeImage returns CSI liveness probe container image.

func (StorageOSClusterSpec) GetCSINodeDriverRegistrarImage

func (s StorageOSClusterSpec) GetCSINodeDriverRegistrarImage(csiv1 bool) string

GetCSINodeDriverRegistrarImage returns CSI node driver registrar container image.

func (StorageOSClusterSpec) GetCSIPluginDir

func (s StorageOSClusterSpec) GetCSIPluginDir(csiv1 bool) string

GetCSIPluginDir returns the CSI plugin dir.

func (StorageOSClusterSpec) GetCSIRegistrarSocketDir

func (s StorageOSClusterSpec) GetCSIRegistrarSocketDir() string

GetCSIRegistrarSocketDir returns the CSI registrar socket dir.

func (StorageOSClusterSpec) GetCSIRegistrationDir

func (s StorageOSClusterSpec) GetCSIRegistrationDir(csiv1 bool) string

GetCSIRegistrationDir returns the CSI registration dir.

func (StorageOSClusterSpec) GetCSIVersion

func (s StorageOSClusterSpec) GetCSIVersion(csiv1 bool) string

GetCSIVersion returns the CSI Driver version.

func (StorageOSClusterSpec) GetHyperkubeImage

func (s StorageOSClusterSpec) GetHyperkubeImage(k8sVersion string) string

GetHyperkubeImage returns hyperkube container image for a given k8s version. If an image is set explicitly in the cluster configuration, that image is returned.

func (StorageOSClusterSpec) GetIngressHostname

func (s StorageOSClusterSpec) GetIngressHostname() string

GetIngressHostname returns the ingress host name.

func (StorageOSClusterSpec) GetInitContainerImage

func (s StorageOSClusterSpec) GetInitContainerImage() string

GetInitContainerImage returns init container image.

func (StorageOSClusterSpec) GetKubeSchedulerImage

func (s StorageOSClusterSpec) GetKubeSchedulerImage(k8sVersion string) string

GetKubeSchedulerImage returns kube-scheduler container image for a given k8s version. If an image is set explicitly in the cluster configuration, that image is returned.

func (StorageOSClusterSpec) GetNFSServerImage

func (s StorageOSClusterSpec) GetNFSServerImage() string

GetNFSServerImage returns NFS server container image used as the default image in the cluster.

func (StorageOSClusterSpec) GetNodeContainerImage

func (s StorageOSClusterSpec) GetNodeContainerImage() string

GetNodeContainerImage returns node container image.

func (StorageOSClusterSpec) GetResourceNS

func (s StorageOSClusterSpec) GetResourceNS() string

GetResourceNS returns the namespace where all the resources should be provisioned.

func (StorageOSClusterSpec) GetServiceExternalPort

func (s StorageOSClusterSpec) GetServiceExternalPort() int

GetServiceExternalPort returns the service external port.

func (StorageOSClusterSpec) GetServiceInternalPort

func (s StorageOSClusterSpec) GetServiceInternalPort() int

GetServiceInternalPort returns the service internal port.

func (StorageOSClusterSpec) GetServiceName

func (s StorageOSClusterSpec) GetServiceName() string

GetServiceName returns the service name.

func (StorageOSClusterSpec) GetServiceType

func (s StorageOSClusterSpec) GetServiceType() string

GetServiceType returns the service type.

func (StorageOSClusterSpec) GetStorageClassName

func (s StorageOSClusterSpec) GetStorageClassName() string

GetStorageClassName returns the name of default StorageClass created with the StorageOS cluster.

func (StorageOSClusterSpec) GetTolerations

func (s StorageOSClusterSpec) GetTolerations() []corev1.Toleration

GetTolerations returns the tolerations applied to all the StorageOS related pods.

type StorageOSClusterStatus

type StorageOSClusterStatus struct {
	Phase            ClusterPhase          `json:"phase,omitempty"`
	NodeHealthStatus map[string]NodeHealth `json:"nodeHealthStatus,omitempty"`
	Nodes            []string              `json:"nodes,omitempty"`
	Ready            string                `json:"ready,omitempty"`
	Members          MembersStatus         `json:"members,omitempty"`
}

StorageOSClusterStatus defines the observed state of StorageOSCluster +k8s:openapi-gen=true

func (*StorageOSClusterStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSClusterStatus.

func (*StorageOSClusterStatus) DeepCopyInto

func (in *StorageOSClusterStatus) DeepCopyInto(out *StorageOSClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StorageOSUpgrade

type StorageOSUpgrade struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   StorageOSUpgradeSpec   `json:"spec,omitempty"`
	Status StorageOSUpgradeStatus `json:"status,omitempty"`
}

StorageOSUpgrade is the Schema for the storageosupgrades API +k8s:openapi-gen=true +kubebuilder:singular=storageosupgrade +kubebuilder:subresource:status

func (*StorageOSUpgrade) DeepCopy

func (in *StorageOSUpgrade) DeepCopy() *StorageOSUpgrade

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSUpgrade.

func (*StorageOSUpgrade) DeepCopyInto

func (in *StorageOSUpgrade) DeepCopyInto(out *StorageOSUpgrade)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StorageOSUpgrade) DeepCopyObject

func (in *StorageOSUpgrade) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type StorageOSUpgradeList

type StorageOSUpgradeList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []StorageOSUpgrade `json:"items"`
}

StorageOSUpgradeList contains a list of StorageOSUpgrade

func (*StorageOSUpgradeList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSUpgradeList.

func (*StorageOSUpgradeList) DeepCopyInto

func (in *StorageOSUpgradeList) DeepCopyInto(out *StorageOSUpgradeList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StorageOSUpgradeList) DeepCopyObject

func (in *StorageOSUpgradeList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type StorageOSUpgradeSpec

type StorageOSUpgradeSpec struct {

	// NewImage is the new StorageOS node container image.
	NewImage string `json:"newImage"`
}

StorageOSUpgradeSpec defines the desired state of StorageOSUpgrade +k8s:openapi-gen=true

func (*StorageOSUpgradeSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSUpgradeSpec.

func (*StorageOSUpgradeSpec) DeepCopyInto

func (in *StorageOSUpgradeSpec) DeepCopyInto(out *StorageOSUpgradeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StorageOSUpgradeStatus

type StorageOSUpgradeStatus struct {

	// Completed is the status of upgrade process.
	Completed bool `json:"completed,omitempty"`
}

StorageOSUpgradeStatus defines the observed state of StorageOSUpgrade +k8s:openapi-gen=true

func (*StorageOSUpgradeStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSUpgradeStatus.

func (*StorageOSUpgradeStatus) DeepCopyInto

func (in *StorageOSUpgradeStatus) DeepCopyInto(out *StorageOSUpgradeStatus)

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