v1

package
v1.3.1 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

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

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

Index

Constants

This section is empty.

Variables

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

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

Functions

This section is empty.

Types

type LinstorCSIDriver

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

	Spec   LinstorCSIDriverSpec   `json:"spec,omitempty"`
	Status LinstorCSIDriverStatus `json:"status,omitempty"`
}

LinstorCSIDriver is the Schema for the linstorcsidrivers API +kubebuilder:subresource:status +kubebuilder:resource:path=linstorcsidrivers,scope=Namespaced +kubebuilder:printcolumn:name="NodeReady",type="boolean",JSONPath=".status.NodeReady" +kubebuilder:printcolumn:name="ControllerReady",type="boolean",JSONPath=".status.ControllerReady" +kubebuilder:storageversion

func (*LinstorCSIDriver) DeepCopy

func (in *LinstorCSIDriver) DeepCopy() *LinstorCSIDriver

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

func (*LinstorCSIDriver) DeepCopyInto

func (in *LinstorCSIDriver) DeepCopyInto(out *LinstorCSIDriver)

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

func (*LinstorCSIDriver) DeepCopyObject

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

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

type LinstorCSIDriverList

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

LinstorCSIDriverList contains a list of LinstorCSIDriver

func (*LinstorCSIDriverList) DeepCopy

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

func (*LinstorCSIDriverList) DeepCopyInto

func (in *LinstorCSIDriverList) DeepCopyInto(out *LinstorCSIDriverList)

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

func (*LinstorCSIDriverList) DeepCopyObject

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

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

type LinstorCSIDriverSpec

type LinstorCSIDriverSpec struct {
	// Name of the CSI external attacher image.
	// See https://kubernetes-csi.github.io/docs/external-attacher.html
	// +optional
	CSIAttacherImage string `json:"csiAttacherImage"`
	// Name of the CSI liveness probe image.
	// See https://kubernetes-csi.github.io/docs/livenessprobe.html
	// +optional
	CSILivenessProbeImage string `json:"csiLivenessProbeImage"`
	// Name of the CSI node driver registrar image.
	// See https://kubernetes-csi.github.io/docs/node-driver-registrar.html
	// +optional
	CSINodeDriverRegistrarImage string `json:"csiNodeDriverRegistrarImage"`
	// Name of the CSI external provisioner image.
	// See https://kubernetes-csi.github.io/docs/external-provisioner.html
	// +optional
	CSIProvisionerImage string `json:"csiProvisionerImage"`
	// Name of the CSI external snapshotter image.
	// See https://kubernetes-csi.github.io/docs/external-snapshotter.html
	// +optional
	CSISnapshotterImage string `json:"csiSnapshotterImage"`
	// Name of the CSI external resizer image.
	// See https://kubernetes-csi.github.io/docs/external-resizer.html
	// +optional
	CSIResizerImage string `json:"csiResizerImage"`

	// Name of a secret with authentication details for the `LinstorPluginImage` registry
	ImagePullSecret string `json:"imagePullSecret"`

	// Pull policy applied to all pods started from this controller
	// +optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy"`

	// Image that contains the linstor-csi driver plugin
	LinstorPluginImage string `json:"linstorPluginImage"`

	// Name of the service account used by the CSI node pods
	// +optional
	CSINodeServiceAccountName string `json:"csiNodeServiceAccountName"`

	// Name of the service account used by the CSI controller pods
	// +optional
	CSIControllerServiceAccountName string `json:"csiControllerServiceAccountName"`

	// priorityClassName is the name of the PriorityClass for the csi driver pods
	// +optional
	PriorityClassName shared.PriorityClassName `json:"priorityClassName"`

	// controllerReplicas is the number of replicas created for the CSI controller
	// deployment.
	// +optional
	ControllerReplicas *int32 `json:"controllerReplicas"`

	// Cluster URL of the linstor controller.
	// If not set, will be determined from the current resource name.
	// +optional
	ControllerEndpoint string `json:"controllerEndpoint"`

	// Resource requirements for the csi pods.
	// The requirements are re-used for all pods (node/controller).
	// +optional
	// +nullable
	Resources corev1.ResourceRequirements `json:"resources"`

	// Affinity for scheduling the CSI node pods
	// +optional
	// +nullable
	NodeAffinity *corev1.Affinity `json:"nodeAffinity"`

	// Tolerations for scheduling CSI node pods
	// +optional
	// +nullable
	NodeTolerations []corev1.Toleration `json:"nodeTolerations"`

	// Affinity for scheduling the CSI controller pod
	// +optional
	// +nullable
	ControllerAffinity *corev1.Affinity `json:"controllerAffinity"`

	// Tolerations for schedluing CSI controller pods
	// +optional
	// +nullable
	ControllerTolerations []corev1.Toleration `json:"controllerTolerations"`

	// Enable CSI topology feature to control volume accessibility on cluster nodes
	// +optional
	EnableTopology bool `json:"enableTopology"`

	shared.LinstorClientConfig `json:",inline"`
}

LinstorCSIDriverSpec defines the desired state of LinstorCSIDriver

func (*LinstorCSIDriverSpec) DeepCopy

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

func (*LinstorCSIDriverSpec) DeepCopyInto

func (in *LinstorCSIDriverSpec) DeepCopyInto(out *LinstorCSIDriverSpec)

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

type LinstorCSIDriverStatus

type LinstorCSIDriverStatus struct {
	// CSI node components ready status
	NodeReady bool `json:"NodeReady"`

	// CSI controller ready status
	ControllerReady bool `json:"ControllerReady"`

	// Errors remaining that will trigger reconciliations.
	Errors []string `json:"errors"`
}

LinstorCSIDriverStatus defines the observed state of LinstorCSIDriver

func (*LinstorCSIDriverStatus) DeepCopy

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

func (*LinstorCSIDriverStatus) DeepCopyInto

func (in *LinstorCSIDriverStatus) DeepCopyInto(out *LinstorCSIDriverStatus)

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

type LinstorController

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

	Spec   LinstorControllerSpec   `json:"spec,omitempty"`
	Status LinstorControllerStatus `json:"status,omitempty"`
}

LinstorController is the Schema for the linstorcontrollers API +kubebuilder:subresource:status +kubebuilder:resource:path=linstorcontrollers,scope=Namespaced +kubebuilder:storageversion

func (*LinstorController) DeepCopy

func (in *LinstorController) DeepCopy() *LinstorController

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

func (*LinstorController) DeepCopyInto

func (in *LinstorController) DeepCopyInto(out *LinstorController)

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

func (*LinstorController) DeepCopyObject

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

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

type LinstorControllerList

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

LinstorControllerList contains a list of LinstorController

func (*LinstorControllerList) DeepCopy

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

func (*LinstorControllerList) DeepCopyInto

func (in *LinstorControllerList) DeepCopyInto(out *LinstorControllerList)

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

func (*LinstorControllerList) DeepCopyObject

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

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

type LinstorControllerSpec

type LinstorControllerSpec struct {
	// priorityClassName is the name of the PriorityClass for the controller pods
	PriorityClassName shared.PriorityClassName `json:"priorityClassName"`

	// DBConnectionURL is the URL of the ETCD endpoint for LINSTOR Controller
	DBConnectionURL string `json:"dbConnectionURL"`

	// DBCertSecret is the name of the kubernetes secret that holds the CA certificate used to verify
	// the datatbase connection. The secret must contain a key "ca.pem" which holds the certificate in
	// PEM format
	// +nullable
	// +optional
	DBCertSecret string `json:"dbCertSecret"`

	// Use a TLS client certificate for authentication with the database (etcd). If set to true,
	// `dbCertSecret` must be set and contain two additional entries "client.cert" (PEM encoded)
	// and "client.key" (PKCS8 encoded, without passphrase).
	// +optional
	DBUseClientCert bool `json:"dbUseClientCert"`

	// Name of the secret containing the master passphrase for LUKS devices as `MASTER_PASSPHRASE`
	// +nullable
	// +optional
	LuksSecret string `json:"luksSecret"`

	// Name of k8s secret that holds the SSL key for a node (called `keystore.jks`) and the
	// trusted certificates (called `certificates.jks`)
	// +nullable
	// +optional
	SslConfig *shared.LinstorSSLConfig `json:"sslSecret"`

	// DrbdRepoCred is the name of the kubernetes secret that holds the credential for the
	// DRBD repositories
	DrbdRepoCred string `json:"drbdRepoCred"`

	// controllerImage is the image (location + tag) for the LINSTOR controller/server container
	ControllerImage string `json:"controllerImage"`

	// Pull policy applied to all pods started from this controller
	// +optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy"`

	// Name of the secret containing the java keystore (`keystore.jks`) used to enable HTTPS on the
	// controller. The controller will create a secured https endpoint on port 3371 with the key
	// stored in `keystore.jks`. The keystore must be secured using the passphrase "linstor". Also
	// needs to contain a truststore `truststore.jks`, which will be used to authenticate clients.
	// +optional
	LinstorHttpsControllerSecret string `json:"linstorHttpsControllerSecret"`

	// Resource requirements for the LINSTOR controller pod
	// +optional
	// +nullable
	Resources corev1.ResourceRequirements `json:"resources"`

	// Affinity for scheduling the controller pod
	// +optional
	// +nullable
	Affinity *corev1.Affinity `json:"affinity"`

	// Tolerations for scheduling the controller pod
	// +optional
	// +nullable
	Tolerations []corev1.Toleration `json:"tolerations"`

	// Number of replicas in the controller deployment
	// +optional
	// +nullable
	Replicas *int32 `json:"replicas"`

	// Name of the service account that runs leader elections for linstor
	// +optional
	ServiceAccountName string `json:"serviceAccountName"`

	shared.LinstorClientConfig `json:",inline"`
}

LinstorControllerSpec defines the desired state of LinstorController

func (*LinstorControllerSpec) DeepCopy

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

func (*LinstorControllerSpec) DeepCopyInto

func (in *LinstorControllerSpec) DeepCopyInto(out *LinstorControllerSpec)

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

type LinstorControllerStatus

type LinstorControllerStatus struct {
	// Errors remaining that will trigger reconciliations.
	Errors []string `json:"errors"`
	// ControllerStatus information.
	ControllerStatus *shared.NodeStatus `json:"ControllerStatus"`
	// SatelliteStatuses by hostname.
	SatelliteStatuses []*shared.SatelliteStatus `json:"SatelliteStatuses"`
}

LinstorControllerStatus defines the observed state of LinstorController

func (*LinstorControllerStatus) DeepCopy

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

func (*LinstorControllerStatus) DeepCopyInto

func (in *LinstorControllerStatus) DeepCopyInto(out *LinstorControllerStatus)

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

type LinstorSatelliteSet

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

	Spec   LinstorSatelliteSetSpec   `json:"spec,omitempty"`
	Status LinstorSatelliteSetStatus `json:"status,omitempty"`
}

LinstorSatelliteSet is the Schema for the linstorsatellitesets API +kubebuilder:subresource:status +kubebuilder:resource:path=linstorsatellitesets,scope=Namespaced +kubebuilder:storageversion

func (*LinstorSatelliteSet) DeepCopy

func (in *LinstorSatelliteSet) DeepCopy() *LinstorSatelliteSet

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

func (*LinstorSatelliteSet) DeepCopyInto

func (in *LinstorSatelliteSet) DeepCopyInto(out *LinstorSatelliteSet)

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

func (*LinstorSatelliteSet) DeepCopyObject

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

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

type LinstorSatelliteSetList

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

LinstorSatelliteSetList contains a list of LinstorSatelliteSet.

func (*LinstorSatelliteSetList) DeepCopy

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

func (*LinstorSatelliteSetList) DeepCopyInto

func (in *LinstorSatelliteSetList) DeepCopyInto(out *LinstorSatelliteSetList)

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

func (*LinstorSatelliteSetList) DeepCopyObject

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

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

type LinstorSatelliteSetSpec

type LinstorSatelliteSetSpec struct {
	// priorityClassName is the name of the PriorityClass for the node pods
	PriorityClassName shared.PriorityClassName `json:"priorityClassName"`

	// StoragePools is a list of StoragePools for LinstorSatelliteSet to manage.
	// +optional
	// +nullable
	StoragePools *shared.StoragePools `json:"storagePools"`

	// If set, the operator will automatically create storage pools of the specified type for all devices that can
	// be found. The name of the storage pools matches the device name. For example, all devices `/dev/sdc` will be
	// part of the `autopool-sdc` storage pool.
	// Note: Using this attribute is discouraged. Using the "storagePools" to set up devices allows for more control on
	// device creation.
	// +optional
	// +kubebuilder:validation:Enum=None;LVM;LVMTHIN;ZFS
	AutomaticStorageType string `json:"automaticStorageType"`

	// Name of k8s secret that holds the SSL key for a node (called `keystore.jks`) and
	// the trusted certificates (called `certificates.jks`)
	// +optional
	// +nullable
	SslConfig *shared.LinstorSSLConfig `json:"sslSecret"`

	// drbdRepoCred is the name of the kubernetes secret that holds the credential for the DRBD repositories
	DrbdRepoCred string `json:"drbdRepoCred"`

	// Pull policy applied to all pods started from this controller
	// +optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy"`

	// satelliteImage is the image (location + tag) for the LINSTOR satellite container
	SatelliteImage string `json:"satelliteImage"`

	// Cluster URL of the linstor controller.
	// If not set, will be determined from the current resource name.
	// +optional
	ControllerEndpoint string `json:"controllerEndpoint"`

	// Resource requirements for the LINSTOR satellite container
	// +optional
	// +nullable
	Resources corev1.ResourceRequirements `json:"resources"`

	// kernelModuleInjectionImage is the image (location + tag) for the LINSTOR/DRBD kernel module injector
	// +optional
	KernelModuleInjectionImage string `json:"kernelModuleInjectionImage"`

	// kernelModuleInjectionMode selects the source for the DRBD kernel module
	// +kubebuilder:validation:Enum=None;Compile;ShippedModules;DepsOnly
	// +optional
	KernelModuleInjectionMode shared.KernelModuleInjectionMode `json:"kernelModuleInjectionMode"`

	// Resource requirements for the kernel module builder/injector container
	// +optional
	// +nullable
	KernelModuleInjectionResources corev1.ResourceRequirements `json:"kernelModuleInjectionResources"`

	// Affinity for scheduling the satellite pods
	// +optional
	// +nullable
	Affinity *corev1.Affinity `json:"affinity"`

	// Tolerations for scheduling the satellite pods
	// +optional
	// +nullable
	Tolerations []corev1.Toleration `json:"tolerations"`

	// Name of the service account to be used for the created pods
	// +optional
	ServiceAccountName string `json:"serviceAccountName"`

	shared.LinstorClientConfig `json:",inline"`
}

LinstorSatelliteSetSpec defines the desired state of a LinstorSatelliteSet.

func (*LinstorSatelliteSetSpec) DeepCopy

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

func (*LinstorSatelliteSetSpec) DeepCopyInto

func (in *LinstorSatelliteSetSpec) DeepCopyInto(out *LinstorSatelliteSetSpec)

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

type LinstorSatelliteSetStatus

type LinstorSatelliteSetStatus struct {
	// Errors remaining that will trigger reconciliations.
	Errors []string `json:"errors"`
	// SatelliteStatuses by hostname.
	SatelliteStatuses []*shared.SatelliteStatus `json:"SatelliteStatuses"`
}

LinstorSatelliteSetStatus defines the observed state of LinstorSatelliteSet

func (*LinstorSatelliteSetStatus) DeepCopy

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

func (*LinstorSatelliteSetStatus) DeepCopyInto

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