v1

package
v2.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2024 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the v1 API group +kubebuilder:object:generate=true +groupName=piraeus.io

Index

Constants

This section is empty.

Variables

View Source
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
)
View Source
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 ValidateComponentSpec added in v2.3.0

func ValidateComponentSpec(curSpec *ComponentSpec, fieldPrefix *field.Path) field.ErrorList

func ValidateExternalController added in v2.1.0

func ValidateExternalController(ref *LinstorExternalControllerRef, path *field.Path) field.ErrorList

func ValidateNodeConnectionSelectors added in v2.2.0

func ValidateNodeConnectionSelectors(selector []SelectorTerm, path *field.Path) field.ErrorList

func ValidateNodeProperties

func ValidateNodeProperties(props []LinstorNodeProperty, path *field.Path) field.ErrorList

func ValidateNodeSelector

func ValidateNodeSelector(selector map[string]string, path *field.Path) field.ErrorList

func ValidatePodTemplate added in v2.3.0

func ValidatePodTemplate(template json.RawMessage, fieldPrefix *field.Path) field.ErrorList

func ValidateStoragePools

func ValidateStoragePools(curSPs, oldSPs []LinstorStoragePool, fieldPrefix *field.Path) field.ErrorList

func WarnOnBareSatellitePodPatch added in v2.4.0

func WarnOnBareSatellitePodPatch(patch *Patch, path *field.Path) admission.Warnings

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"`

	// ExternalController references an external controller.
	// When set, the Operator uses the external cluster to register satellites.
	// +kubebuilder:validation:Optional
	ExternalController *LinstorExternalControllerRef `json:"externalController,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 ComponentSpec added in v2.3.0

type ComponentSpec struct {
	// Enable the component.
	// +kubebuilder:default:=true
	// +kubebuilder:validation:Optional
	Enabled bool `json:"enabled,omitempty"`

	// Template to apply to Pods of the component.
	//
	// The template is applied as a patch to the default deployment, so it can be "sparse", not listing any
	// containers or volumes that should remain unchanged.
	// See https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:validation:Type=object
	// +kubebuilder:pruning:PreserveUnknownFields
	// +structType=atomic
	PodTemplate json.RawMessage `json:"podTemplate,omitempty"`
}

func (*ComponentSpec) DeepCopy added in v2.3.0

func (in *ComponentSpec) DeepCopy() *ComponentSpec

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

func (*ComponentSpec) DeepCopyInto added in v2.3.0

func (in *ComponentSpec) DeepCopyInto(out *ComponentSpec)

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

func (*ComponentSpec) GetTemplate added in v2.3.0

func (c *ComponentSpec) GetTemplate() json.RawMessage

func (*ComponentSpec) IsEnabled added in v2.3.0

func (c *ComponentSpec) IsEnabled() bool

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() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*LinstorCluster) ValidateDelete

func (r *LinstorCluster) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*LinstorCluster) ValidateUpdate

func (r *LinstorCluster) ValidateUpdate(old runtime.Object) (admission.Warnings, 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

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"`

	// ExternalController references an external controller.
	// When set, the Operator will skip deploying a LINSTOR Controller and instead use the external cluster
	// to register satellites.
	// +kubebuilder:validation:Optional
	ExternalController *LinstorExternalControllerRef `json:"externalController,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"`

	// NodeAffinity selects the nodes on which LINSTOR Satellite will be deployed.
	// See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// +kubebuilder:validation:Optional
	NodeAffinity *corev1.NodeSelector `json:"nodeAffinity,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"`

	// Controller controls the deployment of the LINSTOR Controller Deployment.
	// +kubebuilder:validation:Optional
	Controller *ComponentSpec `json:"controller,omitempty"`

	// CSIController controls the deployment of the CSI Controller Deployment.
	// +kubebuilder:validation:Optional
	CSIController *ComponentSpec `json:"csiController,omitempty"`

	// CSINode controls the deployment of the CSI Node DaemonSet.
	// +kubebuilder:validation:Optional
	CSINode *ComponentSpec `json:"csiNode,omitempty"`

	// HighAvailabilityController controls the deployment of the High Availability Controller DaemonSet.
	// +kubebuilder:validation:Optional
	HighAvailabilityController *ComponentSpec `json:"highAvailabilityController,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

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

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

func (*LinstorControllerProperty) DeepCopyInto

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

type LinstorExternalControllerRef added in v2.1.0

type LinstorExternalControllerRef struct {
	// URL of the external controller.
	//+kubebuilder:validation:MinLength=3
	URL string `json:"url"`
}

func (*LinstorExternalControllerRef) DeepCopy added in v2.1.0

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

func (*LinstorExternalControllerRef) DeepCopyInto added in v2.1.0

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

type LinstorNodeConnection added in v2.2.0

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

	Spec   LinstorNodeConnectionSpec   `json:"spec,omitempty"`
	Status LinstorNodeConnectionStatus `json:"status,omitempty"`
}

LinstorNodeConnection is the Schema for the linstornodeconnections API

func (*LinstorNodeConnection) DeepCopy added in v2.2.0

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

func (*LinstorNodeConnection) DeepCopyInto added in v2.2.0

func (in *LinstorNodeConnection) DeepCopyInto(out *LinstorNodeConnection)

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

func (*LinstorNodeConnection) DeepCopyObject added in v2.2.0

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

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

func (*LinstorNodeConnection) SetupWebhookWithManager added in v2.2.0

func (r *LinstorNodeConnection) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*LinstorNodeConnection) ValidateCreate added in v2.2.0

func (r *LinstorNodeConnection) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*LinstorNodeConnection) ValidateDelete added in v2.2.0

func (r *LinstorNodeConnection) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*LinstorNodeConnection) ValidateUpdate added in v2.2.0

func (r *LinstorNodeConnection) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type LinstorNodeConnectionList added in v2.2.0

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

LinstorNodeConnectionList contains a list of LinstorNodeConnection

func (*LinstorNodeConnectionList) DeepCopy added in v2.2.0

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

func (*LinstorNodeConnectionList) DeepCopyInto added in v2.2.0

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

func (*LinstorNodeConnectionList) DeepCopyObject added in v2.2.0

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

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

type LinstorNodeConnectionPath added in v2.2.0

type LinstorNodeConnectionPath struct {
	// Name of the path.
	// +required
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Interface to use on both nodes.
	// +required
	// +kubebuilder:validation:Required
	Interface string `json:"interface"`
}

func (*LinstorNodeConnectionPath) DeepCopy added in v2.2.0

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

func (*LinstorNodeConnectionPath) DeepCopyInto added in v2.2.0

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

type LinstorNodeConnectionSpec added in v2.2.0

type LinstorNodeConnectionSpec struct {
	// Selector selects which pair of Satellites the connection should apply to.
	// If not given, the connection will be applied to all connections.
	// +kubebuilder:validation:Optional
	Selector []SelectorTerm `json:"selector,omitempty"`

	// Properties to apply for the node connection.
	//
	// Use to create default settings for DRBD that should apply to all resources connections between a set of
	// cluster nodes.
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=name
	// +patchMergeKey=name
	// +patchStrategy=merge
	Properties []LinstorControllerProperty `json:"properties,omitempty"`

	// Paths configure the network path used when connecting two nodes.
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=name
	// +patchMergeKey=name
	// +patchStrategy=merge
	Paths []LinstorNodeConnectionPath `json:"paths,omitempty"`
}

LinstorNodeConnectionSpec defines the desired state of LinstorNodeConnection

func (*LinstorNodeConnectionSpec) DeepCopy added in v2.2.0

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

func (*LinstorNodeConnectionSpec) DeepCopyInto added in v2.2.0

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

type LinstorNodeConnectionStatus added in v2.2.0

type LinstorNodeConnectionStatus struct {
	// Current LINSTOR Node Connection state
	// +kubebuilder:validation:Optional
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

LinstorNodeConnectionStatus defines the observed state of LinstorNodeConnection

func (*LinstorNodeConnectionStatus) DeepCopy added in v2.2.0

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

func (*LinstorNodeConnectionStatus) DeepCopyInto added in v2.2.0

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

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

func (*LinstorNodePropertyValueFrom) DeepCopyInto

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() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*LinstorSatellite) ValidateDelete

func (r *LinstorSatellite) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*LinstorSatellite) ValidateUpdate

func (r *LinstorSatellite) ValidateUpdate(old runtime.Object) (admission.Warnings, 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

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

func (*LinstorSatelliteConfiguration) DeepCopyInto

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() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*LinstorSatelliteConfiguration) ValidateDelete

func (r *LinstorSatelliteConfiguration) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*LinstorSatelliteConfiguration) ValidateUpdate

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

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

func (*LinstorSatelliteConfigurationList) DeepCopyInto

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"`

	// NodeAffinity selects which LinstorSatellite resources this spec should be applied to.
	// See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// +kubebuilder:validation:Optional
	NodeAffinity *corev1.NodeSelector `json:"nodeAffinity,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 *TLSConfigWithHandshakeDaemon `json:"internalTLS,omitempty"`

	// Template to apply to Satellite Pods.
	//
	// The template is applied as a patch to the default resource, so it can be "sparse", not listing any
	// containers or volumes that should remain unchanged.
	// See https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:validation:Type=object
	// +kubebuilder:pruning:PreserveUnknownFields
	// +structType=atomic
	PodTemplate json.RawMessage `json:"podTemplate,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

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

func (*LinstorSatelliteConfigurationSpec) DeepCopyInto

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

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

func (*LinstorSatelliteConfigurationStatus) DeepCopyInto

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

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 *TLSConfigWithHandshakeDaemon `json:"internalTLS,omitempty"`
}

LinstorSatelliteSpec defines the desired state of LinstorSatellite

func (*LinstorSatelliteSpec) DeepCopy

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

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"`
	// Configures a ZFS system based storage pool, allocating zvols from the given zpool.
	// +kubebuilder:validation:Optional
	ZfsPool *LinstorStoragePoolZfs `json:"zfsPool,omitempty"`
	// Configures a ZFS system based storage pool, allocating sparse zvols from the given zpool.
	// +kubebuilder:validation:Optional
	ZfsThinPool *LinstorStoragePoolZfs `json:"zfsThinPool,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

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

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

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

func (*LinstorStoragePoolLvmThin) DeepCopyInto

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

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.

func (*LinstorStoragePoolSource) Validate

func (s *LinstorStoragePoolSource) Validate(oldSP *LinstorStoragePool, knownDevices sets.Set[string], fieldPrefix *field.Path) field.ErrorList

type LinstorStoragePoolZfs added in v2.5.0

type LinstorStoragePoolZfs struct {
	// ZPool is the name of the ZFS zpool.
	ZPool string `json:"zPool,omitempty"`
}

func (*LinstorStoragePoolZfs) DeepCopy added in v2.5.0

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

func (*LinstorStoragePoolZfs) DeepCopyInto added in v2.5.0

func (in *LinstorStoragePoolZfs) DeepCopyInto(out *LinstorStoragePoolZfs)

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

func (*LinstorStoragePoolZfs) Validate added in v2.5.0

func (l *LinstorStoragePoolZfs) Validate(oldSP *LinstorStoragePool, fieldPrefix *field.Path, name string, thin bool) field.ErrorList

type MatchLabelSelector added in v2.2.0

type MatchLabelSelector struct {
	// Key is the name of a node label.
	//+kubebuilder:validation:MinLength=1
	//+kubebuilder:validation:Required
	Key string `json:"key"`
	// Op to apply to the label.
	// Exists (default) checks for the presence of the label on both nodes in the pair.
	// DoesNotExist checks that the label is not present on either node in the pair.
	// In checks for the presence of the label value given by Values on both nodes in the pair.
	// NotIn checks that both nodes in the pair do not have any of the label values given by Values.
	// Same checks that the label value is equal in the node pair.
	// NotSame checks that the label value is not equal in the node pair.
	// +kubebuilder:default:=Exists
	// +kubebuilder:validation:Enum:=Exists;DoesNotExist;In;NotIn;Same;NotSame
	// +kubebuilder:validation:Optional
	Op MatchLabelSelectorOperator `json:"op,omitempty"`
	// Values to match on, using the provided Op.
	// +kubebuilder:validation:Optional
	Values []string `json:"values,omitempty"`
}

func (*MatchLabelSelector) DeepCopy added in v2.2.0

func (in *MatchLabelSelector) DeepCopy() *MatchLabelSelector

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

func (*MatchLabelSelector) DeepCopyInto added in v2.2.0

func (in *MatchLabelSelector) DeepCopyInto(out *MatchLabelSelector)

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

type MatchLabelSelectorOperator added in v2.2.0

type MatchLabelSelectorOperator string
const (
	MatchLabelSelectorOpExists       MatchLabelSelectorOperator = "Exists"
	MatchLabelSelectorOpDoesNotExist MatchLabelSelectorOperator = "DoesNotExist"
	MatchLabelSelectorOpIn           MatchLabelSelectorOperator = "In"
	MatchLabelSelectorOpNotIn        MatchLabelSelectorOperator = "NotIn"
	MatchLabelSelectorOpSame         MatchLabelSelectorOperator = "Same"
	MatchLabelSelectorOpNotSame      MatchLabelSelectorOperator = "NotSame"
)

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

func (in *Patch) DeepCopy() *Patch

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

func (*Patch) DeepCopyInto

func (in *Patch) DeepCopyInto(out *Patch)

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

func (*Patch) GetTarget added in v2.4.0

func (p *Patch) GetTarget() *Selector

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

func (in *Selector) DeepCopy() *Selector

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

func (*Selector) DeepCopyInto

func (in *Selector) DeepCopyInto(out *Selector)

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

type SelectorTerm added in v2.2.0

type SelectorTerm struct {
	// MatchLabels is a list of match expressions that the node pairs must meet.
	//+kubebuilder:validation:Required
	MatchLabels []MatchLabelSelector `json:"matchLabels,omitempty"`
}

SelectorTerm matches pairs of nodes by checking that the nodes match all specified requirements.

func (*SelectorTerm) DeepCopy added in v2.2.0

func (in *SelectorTerm) DeepCopy() *SelectorTerm

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

func (*SelectorTerm) DeepCopyInto added in v2.2.0

func (in *SelectorTerm) DeepCopyInto(out *SelectorTerm)

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

func (in *TLSConfig) DeepCopy() *TLSConfig

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

func (*TLSConfig) DeepCopyInto

func (in *TLSConfig) DeepCopyInto(out *TLSConfig)

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

type TLSConfigWithHandshakeDaemon added in v2.3.0

type TLSConfigWithHandshakeDaemon struct {
	TLSConfig `json:",inline"`

	// TLSHandshakeDaemon enables tlshd for establishing TLS sessions for use by DRBD.
	//
	// If enabled, adds a new sidecar to the LINSTOR Satellite that runs the tlshd handshake daemon.
	// The daemon uses the TLS certificate and key to establish secure connections on behalf of DRBD.
	//+kubebuilder:validation:Optional
	TLSHandshakeDaemon bool `json:"tlsHandshakeDaemon,omitempty"`
}

func (*TLSConfigWithHandshakeDaemon) DeepCopy added in v2.3.0

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

func (*TLSConfigWithHandshakeDaemon) DeepCopyInto added in v2.3.0

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