Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the v1 API group +kubebuilder:object:generate=true +groupName=piraeus.io
Index ¶
- Variables
- func ValidateControllerProperties(props []LinstorControllerProperty, path *field.Path) field.ErrorList
- func ValidateNodeProperties(props []LinstorNodeProperty, path *field.Path) field.ErrorList
- func ValidateNodeSelector(selector map[string]string, path *field.Path) field.ErrorList
- func ValidateStoragePools(curSPs, oldSPs []LinstorStoragePool, fieldPrefix *field.Path) field.ErrorList
- type ClusterReference
- type LinstorCluster
- func (in *LinstorCluster) DeepCopy() *LinstorCluster
- func (in *LinstorCluster) DeepCopyInto(out *LinstorCluster)
- func (in *LinstorCluster) DeepCopyObject() runtime.Object
- func (r *LinstorCluster) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *LinstorCluster) ValidateCreate() error
- func (r *LinstorCluster) ValidateDelete() error
- func (r *LinstorCluster) ValidateUpdate(old runtime.Object) error
- type LinstorClusterApiTLS
- func (in *LinstorClusterApiTLS) DeepCopy() *LinstorClusterApiTLS
- func (in *LinstorClusterApiTLS) DeepCopyInto(out *LinstorClusterApiTLS)
- func (l *LinstorClusterApiTLS) GetApiSecretName() string
- func (l *LinstorClusterApiTLS) GetClientSecretName() string
- func (l *LinstorClusterApiTLS) GetCsiControllerSecretName() string
- func (l *LinstorClusterApiTLS) GetCsiNodeSecretName() string
- type LinstorClusterList
- type LinstorClusterSpec
- type LinstorClusterStatus
- type LinstorControllerProperty
- type LinstorNodeProperty
- type LinstorNodePropertyValueFrom
- type LinstorSatellite
- func (in *LinstorSatellite) DeepCopy() *LinstorSatellite
- func (in *LinstorSatellite) DeepCopyInto(out *LinstorSatellite)
- func (in *LinstorSatellite) DeepCopyObject() runtime.Object
- func (r *LinstorSatellite) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *LinstorSatellite) ValidateCreate() error
- func (r *LinstorSatellite) ValidateDelete() error
- func (r *LinstorSatellite) ValidateUpdate(old runtime.Object) error
- type LinstorSatelliteConfiguration
- func (in *LinstorSatelliteConfiguration) DeepCopy() *LinstorSatelliteConfiguration
- func (in *LinstorSatelliteConfiguration) DeepCopyInto(out *LinstorSatelliteConfiguration)
- func (in *LinstorSatelliteConfiguration) DeepCopyObject() runtime.Object
- func (r *LinstorSatelliteConfiguration) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *LinstorSatelliteConfiguration) ValidateCreate() error
- func (r *LinstorSatelliteConfiguration) ValidateDelete() error
- func (r *LinstorSatelliteConfiguration) ValidateUpdate(old runtime.Object) error
- type LinstorSatelliteConfigurationList
- type LinstorSatelliteConfigurationSpec
- type LinstorSatelliteConfigurationStatus
- type LinstorSatelliteList
- type LinstorSatelliteSpec
- type LinstorSatelliteStatus
- type LinstorStoragePool
- type LinstorStoragePoolFile
- func (in *LinstorStoragePoolFile) DeepCopy() *LinstorStoragePoolFile
- func (in *LinstorStoragePoolFile) DeepCopyInto(out *LinstorStoragePoolFile)
- func (l *LinstorStoragePoolFile) DirectoryOrDefault(name string) string
- func (l *LinstorStoragePoolFile) Validate(oldSP *LinstorStoragePool, fieldPrefix *field.Path, name string, thin bool) field.ErrorList
- type LinstorStoragePoolLvm
- type LinstorStoragePoolLvmThin
- type LinstorStoragePoolSource
- type Patch
- type Selector
- type TLSConfig
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "piraeus.io", 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 )
var ( SPRegexp = regexp.MustCompile("^[A-Za-z0-9][A-Za-z0-9_-]{1,46}[A-Za-z0-9]$") VGRegexp = regexp.MustCompile("^[A-Za-z0-9.+_-]+$") )
Functions ¶
func ValidateControllerProperties ¶
func ValidateControllerProperties(props []LinstorControllerProperty, path *field.Path) field.ErrorList
func ValidateNodeProperties ¶
func ValidateNodeProperties(props []LinstorNodeProperty, path *field.Path) field.ErrorList
func ValidateNodeSelector ¶
func ValidateStoragePools ¶
func ValidateStoragePools(curSPs, oldSPs []LinstorStoragePool, fieldPrefix *field.Path) field.ErrorList
Types ¶
type ClusterReference ¶
type ClusterReference struct {
// Name of the LinstorCluster resource controlling this satellite.
Name string `json:"name,omitempty"`
// ClientSecretName references the secret used by the operator to validate the https endpoint.
ClientSecretName string `json:"clientSecretName,omitempty"`
}
func (*ClusterReference) DeepCopy ¶
func (in *ClusterReference) DeepCopy() *ClusterReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterReference.
func (*ClusterReference) DeepCopyInto ¶
func (in *ClusterReference) DeepCopyInto(out *ClusterReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinstorCluster ¶
type LinstorCluster struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec LinstorClusterSpec `json:"spec,omitempty"`
Status LinstorClusterStatus `json:"status,omitempty"`
}
LinstorCluster is the Schema for the linstorclusters API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster
func (*LinstorCluster) DeepCopy ¶
func (in *LinstorCluster) DeepCopy() *LinstorCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorCluster.
func (*LinstorCluster) DeepCopyInto ¶
func (in *LinstorCluster) DeepCopyInto(out *LinstorCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorCluster) DeepCopyObject ¶
func (in *LinstorCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*LinstorCluster) SetupWebhookWithManager ¶
func (r *LinstorCluster) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*LinstorCluster) ValidateCreate ¶
func (r *LinstorCluster) ValidateCreate() error
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*LinstorCluster) ValidateDelete ¶
func (r *LinstorCluster) ValidateDelete() error
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*LinstorCluster) ValidateUpdate ¶
func (r *LinstorCluster) ValidateUpdate(old runtime.Object) error
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type LinstorClusterApiTLS ¶
type LinstorClusterApiTLS struct {
// ApiSecretName references a secret holding the TLS key and certificate used to protect the API.
// Defaults to "linstor-api-tls".
//+kubebuilder:validation:Optional
ApiSecretName string `json:"apiSecretName,omitempty"`
// ClientSecretName references a secret holding the TLS key and certificate used by the operator to configure
// the cluster. Defaults to "linstor-client-tls".
//+kubebuilder:validation:Optional
ClientSecretName string `json:"clientSecretName,omitempty"`
// CsiControllerSecretName references a secret holding the TLS key and certificate used by the CSI Controller
// to provision volumes. Defaults to "linstor-csi-controller-tls".
//+kubebuilder:validation:Optional
CsiControllerSecretName string `json:"csiControllerSecretName,omitempty"`
// CsiNodeSecretName references a secret holding the TLS key and certificate used by the CSI Nodes to query
// the volume state. Defaults to "linstor-csi-node-tls".
//+kubebuilder:validation:Optional
CsiNodeSecretName string `json:"csiNodeSecretName,omitempty"`
// CertManager references a cert-manager Issuer or ClusterIssuer.
// If set, cert-manager.io/Certificate resources will be created, provisioning the secrets referenced in
// *SecretName using the issuer configured here.
//+kubebuilder:validation:Optional
CertManager *cmmetav1.ObjectReference `json:"certManager,omitempty"`
}
func (*LinstorClusterApiTLS) DeepCopy ¶
func (in *LinstorClusterApiTLS) DeepCopy() *LinstorClusterApiTLS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorClusterApiTLS.
func (*LinstorClusterApiTLS) DeepCopyInto ¶
func (in *LinstorClusterApiTLS) DeepCopyInto(out *LinstorClusterApiTLS)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorClusterApiTLS) GetApiSecretName ¶
func (l *LinstorClusterApiTLS) GetApiSecretName() string
func (*LinstorClusterApiTLS) GetClientSecretName ¶
func (l *LinstorClusterApiTLS) GetClientSecretName() string
func (*LinstorClusterApiTLS) GetCsiControllerSecretName ¶
func (l *LinstorClusterApiTLS) GetCsiControllerSecretName() string
func (*LinstorClusterApiTLS) GetCsiNodeSecretName ¶
func (l *LinstorClusterApiTLS) GetCsiNodeSecretName() string
type LinstorClusterList ¶
type LinstorClusterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []LinstorCluster `json:"items"`
}
LinstorClusterList contains a list of LinstorCluster +kubebuilder:object:root=true
func (*LinstorClusterList) DeepCopy ¶
func (in *LinstorClusterList) DeepCopy() *LinstorClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorClusterList.
func (*LinstorClusterList) DeepCopyInto ¶
func (in *LinstorClusterList) DeepCopyInto(out *LinstorClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorClusterList) DeepCopyObject ¶
func (in *LinstorClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LinstorClusterSpec ¶
type LinstorClusterSpec struct {
// Repository used to pull workload images.
// +kubebuilder:validation:Optional
Repository string `json:"repository,omitempty"`
// NodeSelector selects the nodes on which LINSTOR Satellites will be deployed.
// See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
// +kubebuilder:validation:Optional
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// Properties to apply on the cluster level.
//
// Use to create default settings for DRBD that should apply to all resources or to configure some other cluster
// wide default.
// +kubebuilder:validation:Optional
// +listType=map
// +listMapKey=name
// +patchMergeKey=name
// +patchStrategy=merge
Properties []LinstorControllerProperty `json:"properties,omitempty"`
// Patches is a list of kustomize patches to apply.
//
// See https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/patches/ for how to create patches.
// +kubebuilder:validation:Optional
Patches []Patch `json:"patches,omitempty"`
// LinstorPassphraseSecret used to configure the LINSTOR master passphrase.
//
// The referenced secret must contain a single key "MASTER_PASSPHRASE". The master passphrase is used to
// * Derive encryption keys for volumes using the LUKS layer.
// * Store credentials for accessing remotes for backups.
// See https://linbit.com/drbd-user-guide/linstor-guide-1_0-en/#s-encrypt_commands for more information.
// +kubebuilder:validation:Optional
LinstorPassphraseSecret string `json:"linstorPassphraseSecret,omitempty"`
// InternalTLS secures the connection between LINSTOR Controller and Satellite.
//
// This configures the client certificate used when the Controller connects to a Satellite. This only has an effect
// when the Satellite is configured to for secure connections using `LinstorSatellite.spec.internalTLS`.
// +kubebuilder:validation:Optional
// + See LinstorSatelliteSpec.InternalTLS for why nullable is needed.
// +nullable
InternalTLS *TLSConfig `json:"internalTLS,omitempty"`
// ApiTLS secures the LINSTOR API.
//
// This configures the TLS key and certificate used to secure the LINSTOR API.
// +kubebuilder:validation:Optional
// + See LinstorSatelliteSpec.InternalTLS for why nullable is needed.
// +nullable
ApiTLS *LinstorClusterApiTLS `json:"apiTLS,omitempty"`
}
LinstorClusterSpec defines the desired state of LinstorCluster
func (*LinstorClusterSpec) DeepCopy ¶
func (in *LinstorClusterSpec) DeepCopy() *LinstorClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorClusterSpec.
func (*LinstorClusterSpec) DeepCopyInto ¶
func (in *LinstorClusterSpec) DeepCopyInto(out *LinstorClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinstorClusterStatus ¶
type LinstorClusterStatus struct {
// Current LINSTOR Cluster state
// +kubebuilder:validation:Optional
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}
LinstorClusterStatus defines the observed state of LinstorCluster
func (*LinstorClusterStatus) DeepCopy ¶
func (in *LinstorClusterStatus) DeepCopy() *LinstorClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorClusterStatus.
func (*LinstorClusterStatus) DeepCopyInto ¶
func (in *LinstorClusterStatus) DeepCopyInto(out *LinstorClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinstorControllerProperty ¶
type LinstorControllerProperty struct {
// Name of the property to set.
//+kubebuilder:validation:MinLength=1
//+kubebuilder:validation:Required
Name string `json:"name"`
// Value to set the property to.
Value string `json:"value,omitempty"`
}
func (*LinstorControllerProperty) DeepCopy ¶
func (in *LinstorControllerProperty) DeepCopy() *LinstorControllerProperty
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorControllerProperty.
func (*LinstorControllerProperty) DeepCopyInto ¶
func (in *LinstorControllerProperty) DeepCopyInto(out *LinstorControllerProperty)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinstorNodeProperty ¶
type LinstorNodeProperty struct {
// Name of the property to set.
//+kubebuilder:validation:MinLength=1
//+kubebuilder:validation:Required
Name string `json:"name"`
// Value to set the property to.
//+kubebuilder:validation:Optional
Value string `json:"value,omitempty"`
// ValueFrom sets the value from an existing resource.
//+kubebuilder:validation:Optional
ValueFrom *LinstorNodePropertyValueFrom `json:"valueFrom,omitempty"`
// Optional values are only set if they have a non-empty value
//+kubebuilder:validation:Optional
Optional bool `json:"optional,omitempty"`
}
func (*LinstorNodeProperty) DeepCopy ¶
func (in *LinstorNodeProperty) DeepCopy() *LinstorNodeProperty
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorNodeProperty.
func (*LinstorNodeProperty) DeepCopyInto ¶
func (in *LinstorNodeProperty) DeepCopyInto(out *LinstorNodeProperty)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinstorNodePropertyValueFrom ¶
type LinstorNodePropertyValueFrom struct {
// Select a field of the node. Supports `metadata.name`, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`.
//+kubebuilder:validation:MinLength=1
//+kubebuilder:validation:Required
NodeFieldRef string `json:"nodeFieldRef,omitempty"`
}
func (*LinstorNodePropertyValueFrom) DeepCopy ¶
func (in *LinstorNodePropertyValueFrom) DeepCopy() *LinstorNodePropertyValueFrom
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorNodePropertyValueFrom.
func (*LinstorNodePropertyValueFrom) DeepCopyInto ¶
func (in *LinstorNodePropertyValueFrom) DeepCopyInto(out *LinstorNodePropertyValueFrom)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinstorSatellite ¶
type LinstorSatellite struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec LinstorSatelliteSpec `json:"spec,omitempty"`
Status LinstorSatelliteStatus `json:"status,omitempty"`
}
LinstorSatellite is the Schema for the linstorsatellites API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster
func (*LinstorSatellite) DeepCopy ¶
func (in *LinstorSatellite) DeepCopy() *LinstorSatellite
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorSatellite.
func (*LinstorSatellite) DeepCopyInto ¶
func (in *LinstorSatellite) DeepCopyInto(out *LinstorSatellite)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorSatellite) DeepCopyObject ¶
func (in *LinstorSatellite) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*LinstorSatellite) SetupWebhookWithManager ¶
func (r *LinstorSatellite) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*LinstorSatellite) ValidateCreate ¶
func (r *LinstorSatellite) ValidateCreate() error
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*LinstorSatellite) ValidateDelete ¶
func (r *LinstorSatellite) ValidateDelete() error
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*LinstorSatellite) ValidateUpdate ¶
func (r *LinstorSatellite) ValidateUpdate(old runtime.Object) error
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type LinstorSatelliteConfiguration ¶
type LinstorSatelliteConfiguration struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec LinstorSatelliteConfigurationSpec `json:"spec,omitempty"`
Status LinstorSatelliteConfigurationStatus `json:"status,omitempty"`
}
LinstorSatelliteConfiguration is the Schema for the linstorsatelliteconfigurations API +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster
func (*LinstorSatelliteConfiguration) DeepCopy ¶
func (in *LinstorSatelliteConfiguration) DeepCopy() *LinstorSatelliteConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorSatelliteConfiguration.
func (*LinstorSatelliteConfiguration) DeepCopyInto ¶
func (in *LinstorSatelliteConfiguration) DeepCopyInto(out *LinstorSatelliteConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorSatelliteConfiguration) DeepCopyObject ¶
func (in *LinstorSatelliteConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*LinstorSatelliteConfiguration) SetupWebhookWithManager ¶
func (r *LinstorSatelliteConfiguration) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*LinstorSatelliteConfiguration) ValidateCreate ¶
func (r *LinstorSatelliteConfiguration) ValidateCreate() error
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*LinstorSatelliteConfiguration) ValidateDelete ¶
func (r *LinstorSatelliteConfiguration) ValidateDelete() error
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*LinstorSatelliteConfiguration) ValidateUpdate ¶
func (r *LinstorSatelliteConfiguration) ValidateUpdate(old runtime.Object) error
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type LinstorSatelliteConfigurationList ¶
type LinstorSatelliteConfigurationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []LinstorSatelliteConfiguration `json:"items"`
}
LinstorSatelliteConfigurationList contains a list of LinstorSatelliteConfiguration +kubebuilder:object:root=true
func (*LinstorSatelliteConfigurationList) DeepCopy ¶
func (in *LinstorSatelliteConfigurationList) DeepCopy() *LinstorSatelliteConfigurationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorSatelliteConfigurationList.
func (*LinstorSatelliteConfigurationList) DeepCopyInto ¶
func (in *LinstorSatelliteConfigurationList) DeepCopyInto(out *LinstorSatelliteConfigurationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorSatelliteConfigurationList) DeepCopyObject ¶
func (in *LinstorSatelliteConfigurationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LinstorSatelliteConfigurationSpec ¶
type LinstorSatelliteConfigurationSpec struct {
// NodeSelector selects which LinstorSatellite resources this spec should be applied to.
// See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
// +kubebuilder:validation:Optional
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// Patches is a list of kustomize patches to apply.
//
// See https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/patches/ for how to create patches.
// +kubebuilder:validation:Optional
Patches []Patch `json:"patches,omitempty"`
// StoragePools is a list of storage pools to configure on the node.
// +kubebuilder:validation:Optional
StoragePools []LinstorStoragePool `json:"storagePools,omitempty"`
// Properties is a list of properties to set on the node.
// +kubebuilder:validation:Optional
// +listType=map
// +listMapKey=name
// +patchMergeKey=name
// +patchStrategy=merge
Properties []LinstorNodeProperty `json:"properties,omitempty"`
// InternalTLS configures secure communication for the LINSTOR Satellite.
//
// If set, the control traffic between LINSTOR Controller and Satellite will be encrypted using mTLS.
// +kubebuilder:validation:Optional
// + See LinstorSatelliteSpec.InternalTLS for why nullable is needed.
// +nullable
InternalTLS *TLSConfig `json:"internalTLS,omitempty"`
}
LinstorSatelliteConfigurationSpec defines a partial, desired state of a LinstorSatelliteSpec.
All the LinstorSatelliteConfiguration resources with matching NodeSelector will be merged into a single LinstorSatelliteSpec.
func (*LinstorSatelliteConfigurationSpec) DeepCopy ¶
func (in *LinstorSatelliteConfigurationSpec) DeepCopy() *LinstorSatelliteConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorSatelliteConfigurationSpec.
func (*LinstorSatelliteConfigurationSpec) DeepCopyInto ¶
func (in *LinstorSatelliteConfigurationSpec) DeepCopyInto(out *LinstorSatelliteConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinstorSatelliteConfigurationStatus ¶
type LinstorSatelliteConfigurationStatus struct {
// Current LINSTOR Satellite Config state
// +kubebuilder:validation:Optional
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}
LinstorSatelliteConfigurationStatus defines the observed state of LinstorSatelliteConfiguration
func (*LinstorSatelliteConfigurationStatus) DeepCopy ¶
func (in *LinstorSatelliteConfigurationStatus) DeepCopy() *LinstorSatelliteConfigurationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorSatelliteConfigurationStatus.
func (*LinstorSatelliteConfigurationStatus) DeepCopyInto ¶
func (in *LinstorSatelliteConfigurationStatus) DeepCopyInto(out *LinstorSatelliteConfigurationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinstorSatelliteList ¶
type LinstorSatelliteList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []LinstorSatellite `json:"items"`
}
LinstorSatelliteList contains a list of LinstorSatellite +kubebuilder:object:root=true
func (*LinstorSatelliteList) DeepCopy ¶
func (in *LinstorSatelliteList) DeepCopy() *LinstorSatelliteList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorSatelliteList.
func (*LinstorSatelliteList) DeepCopyInto ¶
func (in *LinstorSatelliteList) DeepCopyInto(out *LinstorSatelliteList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorSatelliteList) DeepCopyObject ¶
func (in *LinstorSatelliteList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LinstorSatelliteSpec ¶
type LinstorSatelliteSpec struct {
// ClusterRef references the LinstorCluster used to create this LinstorSatellite.
ClusterRef ClusterReference `json:"clusterRef"`
// Repository used to pull workload images.
// +kubebuilder:validation:Optional
Repository string `json:"repository,omitempty"`
// Patches is a list of kustomize patches to apply.
//
// See https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/patches/ for how to create patches.
// +kubebuilder:validation:Optional
Patches []Patch `json:"patches,omitempty"`
// StoragePools is a list of storage pools to configure on the node.
// +kubebuilder:validation:Optional
StoragePools []LinstorStoragePool `json:"storagePools,omitempty"`
// Properties is a list of properties to set on the node.
// +kubebuilder:validation:Optional
// +listType=map
// +listMapKey=name
// +patchMergeKey=name
// +patchStrategy=merge
Properties []LinstorNodeProperty `json:"properties,omitempty"`
// InternalTLS configures secure communication for the LINSTOR Satellite.
//
// If set, the control traffic between LINSTOR Controller and Satellite will be encrypted using mTLS.
// The Controller will use the client key from `LinstorCluster.spec.internalTLS` when connecting.
// +kubebuilder:validation:Optional
// + Without "nullable" the k8s API does not accept patches with 'internalTLS: {}', which seems to be a bug.
// +nullable
InternalTLS *TLSConfig `json:"internalTLS,omitempty"`
}
LinstorSatelliteSpec defines the desired state of LinstorSatellite
func (*LinstorSatelliteSpec) DeepCopy ¶
func (in *LinstorSatelliteSpec) DeepCopy() *LinstorSatelliteSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorSatelliteSpec.
func (*LinstorSatelliteSpec) DeepCopyInto ¶
func (in *LinstorSatelliteSpec) DeepCopyInto(out *LinstorSatelliteSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinstorSatelliteStatus ¶
type LinstorSatelliteStatus struct {
// Current LINSTOR Satellite state
// +kubebuilder:validation:Optional
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}
LinstorSatelliteStatus defines the observed state of LinstorSatellite
func (*LinstorSatelliteStatus) DeepCopy ¶
func (in *LinstorSatelliteStatus) DeepCopy() *LinstorSatelliteStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorSatelliteStatus.
func (*LinstorSatelliteStatus) DeepCopyInto ¶
func (in *LinstorSatelliteStatus) DeepCopyInto(out *LinstorSatelliteStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LinstorStoragePool ¶
type LinstorStoragePool struct {
// Name of the storage pool in linstor.
//+kubebuilder:validation:MinLength=3
Name string `json:"name"`
// Properties to set on the storage pool.
// +listType=map
// +listMapKey=name
// +patchMergeKey=name
// +patchStrategy=merge
Properties []LinstorNodeProperty `json:"properties,omitempty"`
// Configures a LVM Volume Group as storage pool.
// +kubebuilder:validation:Optional
LvmPool *LinstorStoragePoolLvm `json:"lvmPool,omitempty"`
// Configures a LVM Thin Pool as storage pool.
// +kubebuilder:validation:Optional
LvmThinPool *LinstorStoragePoolLvmThin `json:"lvmThinPool,omitempty"`
// Configures a file system based storage pool, allocating a regular file per volume.
// +kubebuilder:validation:Optional
FilePool *LinstorStoragePoolFile `json:"filePool,omitempty"`
// Configures a file system based storage pool, allocating a sparse file per volume.
// +kubebuilder:validation:Optional
FileThinPool *LinstorStoragePoolFile `json:"fileThinPool,omitempty"`
Source *LinstorStoragePoolSource `json:"source,omitempty"`
}
func (*LinstorStoragePool) DeepCopy ¶
func (in *LinstorStoragePool) DeepCopy() *LinstorStoragePool
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorStoragePool.
func (*LinstorStoragePool) DeepCopyInto ¶
func (in *LinstorStoragePool) DeepCopyInto(out *LinstorStoragePool)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorStoragePool) PoolName ¶
func (p *LinstorStoragePool) PoolName() string
func (*LinstorStoragePool) ProviderKind ¶
func (p *LinstorStoragePool) ProviderKind() lclient.ProviderKind
type LinstorStoragePoolFile ¶
type LinstorStoragePoolFile struct {
// Directory is the path to the host directory used to store volume data.
Directory string `json:"directory,omitempty"`
}
func (*LinstorStoragePoolFile) DeepCopy ¶
func (in *LinstorStoragePoolFile) DeepCopy() *LinstorStoragePoolFile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorStoragePoolFile.
func (*LinstorStoragePoolFile) DeepCopyInto ¶
func (in *LinstorStoragePoolFile) DeepCopyInto(out *LinstorStoragePoolFile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorStoragePoolFile) DirectoryOrDefault ¶
func (l *LinstorStoragePoolFile) DirectoryOrDefault(name string) string
func (*LinstorStoragePoolFile) Validate ¶
func (l *LinstorStoragePoolFile) Validate(oldSP *LinstorStoragePool, fieldPrefix *field.Path, name string, thin bool) field.ErrorList
type LinstorStoragePoolLvm ¶
type LinstorStoragePoolLvm struct {
VolumeGroup string `json:"volumeGroup,omitempty"`
}
func (*LinstorStoragePoolLvm) DeepCopy ¶
func (in *LinstorStoragePoolLvm) DeepCopy() *LinstorStoragePoolLvm
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorStoragePoolLvm.
func (*LinstorStoragePoolLvm) DeepCopyInto ¶
func (in *LinstorStoragePoolLvm) DeepCopyInto(out *LinstorStoragePoolLvm)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorStoragePoolLvm) Validate ¶
func (l *LinstorStoragePoolLvm) Validate(oldSP *LinstorStoragePool, fieldPrefix *field.Path) field.ErrorList
type LinstorStoragePoolLvmThin ¶
type LinstorStoragePoolLvmThin struct {
VolumeGroup string `json:"volumeGroup,omitempty"`
// ThinPool is the name of the thinpool LV (without VG prefix).
ThinPool string `json:"thinPool,omitempty"`
}
func (*LinstorStoragePoolLvmThin) DeepCopy ¶
func (in *LinstorStoragePoolLvmThin) DeepCopy() *LinstorStoragePoolLvmThin
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorStoragePoolLvmThin.
func (*LinstorStoragePoolLvmThin) DeepCopyInto ¶
func (in *LinstorStoragePoolLvmThin) DeepCopyInto(out *LinstorStoragePoolLvmThin)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LinstorStoragePoolLvmThin) Validate ¶
func (l *LinstorStoragePoolLvmThin) Validate(oldSP *LinstorStoragePool, fieldPrefix *field.Path) field.ErrorList
type LinstorStoragePoolSource ¶
type LinstorStoragePoolSource struct {
// HostDevices is a list of device paths used to configure the given pool.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:MinItems:=1
HostDevices []string `json:"hostDevices,omitempty"`
}
func (*LinstorStoragePoolSource) DeepCopy ¶
func (in *LinstorStoragePoolSource) DeepCopy() *LinstorStoragePoolSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinstorStoragePoolSource.
func (*LinstorStoragePoolSource) DeepCopyInto ¶
func (in *LinstorStoragePoolSource) DeepCopyInto(out *LinstorStoragePoolSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Patch ¶
type Patch struct {
// Patch is the content of a patch.
//+kubebuilder:validation:MinLength=1
//+kubebuilder:validation:Required
Patch string `json:"patch,omitempty" yaml:"patch,omitempty"`
// Target points to the resources that the patch is applied to
Target *Selector `json:"target,omitempty" yaml:"target,omitempty"`
// Options is a list of options for the patch
// +kubebuilder:validation:Optional
Options map[string]bool `json:"options,omitempty" yaml:"options,omitempty"`
}
Patch represent either a Strategic Merge Patch or a JSON patch and its targets.
func (*Patch) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Patch.
func (*Patch) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Selector ¶
type Selector struct {
Group string `json:"group,omitempty" yaml:"group,omitempty"`
Version string `json:"version,omitempty" yaml:"version,omitempty"`
Kind string `json:"kind,omitempty" yaml:"kind,omitempty"`
// Name of the resource.
Name string `json:"name,omitempty" yaml:"name,omitempty"`
// Namespace the resource belongs to, if it can belong to a namespace.
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
// AnnotationSelector is a string that follows the label selection expression
// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
// It matches against the resource annotations.
AnnotationSelector string `json:"annotationSelector,omitempty" yaml:"annotationSelector,omitempty"`
// LabelSelector is a string that follows the label selection expression
// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
// It matches against the resource labels.
LabelSelector string `json:"labelSelector,omitempty" yaml:"labelSelector,omitempty"`
}
Selector specifies a set of resources. Any resource that matches all of the conditions is included in this set.
func (*Selector) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Selector.
func (*Selector) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSConfig ¶
type TLSConfig struct {
// SecretName references a secret holding the TLS key and certificates.
//+kubebuilder:validation:Optional
SecretName string `json:"secretName,omitempty"`
// CertManager references a cert-manager Issuer or ClusterIssuer.
// If set, a Certificate resource will be created, provisioning the secret references in SecretName using the
// issuer configured here.
//+kubebuilder:validation:Optional
CertManager *cmmetav1.ObjectReference `json:"certManager,omitempty"`
}
TLSConfig configures TLS for a component.
func (*TLSConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.
func (*TLSConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.