v1alpha1

package
v0.0.0-...-a1286a7 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the samba-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=samba-operator.samba.org

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{
		Group:   "samba-operator.samba.org",
		Version: "v1alpha1",
	}

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type SmbCommonConfig

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

	Spec   SmbCommonConfigSpec   `json:"spec,omitempty"`
	Status SmbCommonConfigStatus `json:"status,omitempty"`
}

SmbCommonConfig is the Schema for the smbcommonconfigs API

func (*SmbCommonConfig) DeepCopy

func (in *SmbCommonConfig) DeepCopy() *SmbCommonConfig

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

func (*SmbCommonConfig) DeepCopyInto

func (in *SmbCommonConfig) DeepCopyInto(out *SmbCommonConfig)

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

func (*SmbCommonConfig) DeepCopyObject

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

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

type SmbCommonConfigList

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

SmbCommonConfigList contains a list of SmbCommonConfig

func (*SmbCommonConfigList) DeepCopy

func (in *SmbCommonConfigList) DeepCopy() *SmbCommonConfigList

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

func (*SmbCommonConfigList) DeepCopyInto

func (in *SmbCommonConfigList) DeepCopyInto(out *SmbCommonConfigList)

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

func (*SmbCommonConfigList) DeepCopyObject

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

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

type SmbCommonConfigPodSettings

type SmbCommonConfigPodSettings struct {
	// NodeSelector values will be assigned to a PodSpec's NodeSelector.
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Affinity values will be used as defaults for pods created by the
	// samba operator.
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

SmbCommonConfigPodSettings contains values pertaining to the customization of pods created by the samba operator.

func (*SmbCommonConfigPodSettings) DeepCopy

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

func (*SmbCommonConfigPodSettings) DeepCopyInto

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

type SmbCommonConfigSpec

type SmbCommonConfigSpec struct {
	// Network specifies what kind of networking shares associated with
	// this config will use.
	// +kubebuilder:validation:Required
	Network SmbCommonNetworkSpec `json:"network,omitempty"`

	// PodSettings are configuration values that are applied to pods that
	// the operator may create in order to host shares. The values specified
	// under PodSettings allow admins and users to customize how pods
	// are scheduled in a kubernetes cluster.
	PodSettings *SmbCommonConfigPodSettings `json:"podSettings,omitempty"`
}

SmbCommonConfigSpec values act as a template for properties of the services that will host shares.

func (*SmbCommonConfigSpec) DeepCopy

func (in *SmbCommonConfigSpec) DeepCopy() *SmbCommonConfigSpec

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

func (*SmbCommonConfigSpec) DeepCopyInto

func (in *SmbCommonConfigSpec) DeepCopyInto(out *SmbCommonConfigSpec)

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

type SmbCommonConfigStatus

type SmbCommonConfigStatus struct {
}

SmbCommonConfigStatus defines the observed state of SmbCommonConfig

func (*SmbCommonConfigStatus) DeepCopy

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

func (*SmbCommonConfigStatus) DeepCopyInto

func (in *SmbCommonConfigStatus) DeepCopyInto(out *SmbCommonConfigStatus)

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

type SmbCommonNetworkSpec

type SmbCommonNetworkSpec struct {
	// Publish broadly specifies what kind of networking shares associated with
	// this config are expected to use.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum:=cluster;external
	Publish string `json:"publish,omitempty"`
}

SmbCommonNetworkSpec values define networking properties for the services that will host shares.

func (*SmbCommonNetworkSpec) DeepCopy

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

func (*SmbCommonNetworkSpec) DeepCopyInto

func (in *SmbCommonNetworkSpec) DeepCopyInto(out *SmbCommonNetworkSpec)

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

type SmbSecurityConfig

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

	Spec   SmbSecurityConfigSpec   `json:"spec,omitempty"`
	Status SmbSecurityConfigStatus `json:"status,omitempty"`
}

SmbSecurityConfig is the Schema for the smbsecurityconfigs API

func (*SmbSecurityConfig) DeepCopy

func (in *SmbSecurityConfig) DeepCopy() *SmbSecurityConfig

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

func (*SmbSecurityConfig) DeepCopyInto

func (in *SmbSecurityConfig) DeepCopyInto(out *SmbSecurityConfig)

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

func (*SmbSecurityConfig) DeepCopyObject

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

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

type SmbSecurityConfigList

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

SmbSecurityConfigList contains a list of SmbSecurityConfig

func (*SmbSecurityConfigList) DeepCopy

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

func (*SmbSecurityConfigList) DeepCopyInto

func (in *SmbSecurityConfigList) DeepCopyInto(out *SmbSecurityConfigList)

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

func (*SmbSecurityConfigList) DeepCopyObject

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

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

type SmbSecurityConfigSpec

type SmbSecurityConfigSpec struct {
	// Mode specifies what approach to security is being used.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum:=user;active-directory
	Mode string `json:"mode,omitempty"`

	// Users is used to configure "local" user and group based security.
	Users *SmbSecurityUsersSpec `json:"users,omitempty"`

	// Realm specifies the active directory domain to use.
	Realm string `json:"realm,omitempty"`

	// JoinSources holds a list of sources for domain join data for
	// this configuration.
	JoinSources []SmbSecurityJoinSpec `json:"joinSources,omitempty"`

	// Domains holds a list of primary & trusted domain configurations.
	// If left empty a simple default that automatically works with
	// trusted domains will be used.
	// +optional
	Domains []SmbSecurityDomainSpec `json:"domains,omitempty"`

	// DNS is used to configure properties related to the DNS services
	// of the domain.
	// +optional
	DNS *SmbSecurityDNSSpec `json:"dns,omitempty"`
}

SmbSecurityConfigSpec defines the desired state of SmbSecurityConfig

func (*SmbSecurityConfigSpec) DeepCopy

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

func (*SmbSecurityConfigSpec) DeepCopyInto

func (in *SmbSecurityConfigSpec) DeepCopyInto(out *SmbSecurityConfigSpec)

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

type SmbSecurityConfigStatus

type SmbSecurityConfigStatus struct {
}

SmbSecurityConfigStatus defines the observed state of SmbSecurityConfig

func (*SmbSecurityConfigStatus) DeepCopy

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

func (*SmbSecurityConfigStatus) DeepCopyInto

func (in *SmbSecurityConfigStatus) DeepCopyInto(out *SmbSecurityConfigStatus)

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

type SmbSecurityDNSSpec

type SmbSecurityDNSSpec struct {
	// Register a specified member server's address with the domain's DNS or
	// disabled when set to "never".
	// NOTE: cluster-ip is not generally supported, it is only for testing.
	// +kubebuilder:validation:Enum:=never;external-ip;cluster-ip
	Register string `json:"register,omitempty"`
}

SmbSecurityDNSSpec configures the relationship between systems managed via this SmbSecurityConfig and the domain. Ignored by user mode.

func (*SmbSecurityDNSSpec) DeepCopy

func (in *SmbSecurityDNSSpec) DeepCopy() *SmbSecurityDNSSpec

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

func (*SmbSecurityDNSSpec) DeepCopyInto

func (in *SmbSecurityDNSSpec) DeepCopyInto(out *SmbSecurityDNSSpec)

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

type SmbSecurityDomainSpec

type SmbSecurityDomainSpec struct {
	// Name of the domain.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength:=1
	Name string `json:"name,omitempty"`

	// Mode specifies what approach to security is being used.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum:=autorid;ad-rfc2307
	Backend string `json:"backend,omitempty"`
}

SmbSecurityDomainSpec configures samba's domain management and ID mapping behavior for the specified domain.

func (*SmbSecurityDomainSpec) DeepCopy

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

func (*SmbSecurityDomainSpec) DeepCopyInto

func (in *SmbSecurityDomainSpec) DeepCopyInto(out *SmbSecurityDomainSpec)

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

type SmbSecurityJoinSpec

type SmbSecurityJoinSpec struct {
	UserJoin *SmbSecurityUserJoinSpec `json:"userJoin,omitempty"`
}

SmbSecurityJoinSpec configures how samba instances are allowed to join to active directory if needed.

func (*SmbSecurityJoinSpec) DeepCopy

func (in *SmbSecurityJoinSpec) DeepCopy() *SmbSecurityJoinSpec

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

func (*SmbSecurityJoinSpec) DeepCopyInto

func (in *SmbSecurityJoinSpec) DeepCopyInto(out *SmbSecurityJoinSpec)

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

type SmbSecurityUserJoinSpec

type SmbSecurityUserJoinSpec struct {
	// Secret that contains the username and password.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength:=1
	Secret string `json:"secret,omitempty"`
	// Key within the secret containing the username and password.
	// +kubebuilder:default:=join.json
	// +optional
	Key string `json:"key,omitempty"`
}

SmbSecurityUserJoinSpec configures samba container instances to use a secret containing a username and password.

func (*SmbSecurityUserJoinSpec) DeepCopy

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

func (*SmbSecurityUserJoinSpec) DeepCopyInto

func (in *SmbSecurityUserJoinSpec) DeepCopyInto(out *SmbSecurityUserJoinSpec)

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

type SmbSecurityUsersSpec

type SmbSecurityUsersSpec struct {
	// Secret identifies the name of the secret storing user and group
	// configuration json.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength:=1
	Secret string `json:"secret,omitempty"`

	// Key identifies the key within the secret that stores the user and
	// group configuration json.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength:=1
	Key string `json:"key,omitempty"`
}

SmbSecurityUsersSpec configures user level security.

func (*SmbSecurityUsersSpec) DeepCopy

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

func (*SmbSecurityUsersSpec) DeepCopyInto

func (in *SmbSecurityUsersSpec) DeepCopyInto(out *SmbSecurityUsersSpec)

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

type SmbShare

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

	Spec   SmbShareSpec   `json:"spec,omitempty"`
	Status SmbShareStatus `json:"status,omitempty"`
}

SmbShare is the Schema for the smbshares API

func (*SmbShare) DeepCopy

func (in *SmbShare) DeepCopy() *SmbShare

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

func (*SmbShare) DeepCopyInto

func (in *SmbShare) DeepCopyInto(out *SmbShare)

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

func (*SmbShare) DeepCopyObject

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

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

type SmbShareList

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

SmbShareList contains a list of SmbShare

func (*SmbShareList) DeepCopy

func (in *SmbShareList) DeepCopy() *SmbShareList

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

func (*SmbShareList) DeepCopyInto

func (in *SmbShareList) DeepCopyInto(out *SmbShareList)

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

func (*SmbShareList) DeepCopyObject

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

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

type SmbSharePvcSpec

type SmbSharePvcSpec struct {
	// Name of the PVC to use for the share.
	// +optional
	Name string `json:"name,omitempty"`

	// Spec defines a new, temporary, PVC to use for the share.
	// Behaves similar to the embedded PVC spec for pods.
	// +optional
	Spec *corev1.PersistentVolumeClaimSpec `json:"spec,omitempty"`

	// Path within the PVC which should be exported.
	// +kubebuilder:validation:Pattern=`^[^\/]+$`
	// +optional
	Path string `json:"path,omitempty"`
}

SmbSharePvcSpec defines how a PVC may be associated with a share.

func (*SmbSharePvcSpec) DeepCopy

func (in *SmbSharePvcSpec) DeepCopy() *SmbSharePvcSpec

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

func (*SmbSharePvcSpec) DeepCopyInto

func (in *SmbSharePvcSpec) DeepCopyInto(out *SmbSharePvcSpec)

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

type SmbShareScalingSpec

type SmbShareScalingSpec struct {
	// AvailabilityMode specifies how the operator is to scale share resources
	// for (high-)availability purposes.
	// +optional
	// +kubebuilder:validation:Enum:=standard;clustered
	// +kubebuilder:default:=standard
	AvailabilityMode string `json:"availabilityMode,omitempty"`
	// MinClusterSize specifies the minimum number of smb server instances
	// to establish when availabilityMode is "clustered".
	MinClusterSize int `json:"minClusterSize,omitempty"`
	// Group specifies the name of a server group that will host
	// this share. If the group doesn't already exist it will be created.
	// The value must be a valid Kubernetes resource name (RFC 1035 label).
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$`
	// +optional
	Group string `json:"group,omitempty"`
	// GroupMode specifies how this share can be grouped with other
	// shares under one (logical) server host.
	// Valid values are "never" and "explicit".
	// +optional
	// +kubebuilder:validation:Enum:=never;explicit
	// +kubebuilder:default:=never
	GroupMode string `json:"groupMode,omitempty"`
}

SmbShareScalingSpec defines scaling parameters for a share.

func (*SmbShareScalingSpec) DeepCopy

func (in *SmbShareScalingSpec) DeepCopy() *SmbShareScalingSpec

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

func (*SmbShareScalingSpec) DeepCopyInto

func (in *SmbShareScalingSpec) DeepCopyInto(out *SmbShareScalingSpec)

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

type SmbShareSpec

type SmbShareSpec struct {

	// ShareName is an optional string that lets you define an SMB compliant
	// name for the share. If unset, the name will be derived automatically.
	// +optional
	ShareName string `json:"shareName,omitempty"`

	// Storage defines the type and location of the storage that backs this
	// share.
	Storage SmbShareStorageSpec `json:"storage"`

	// ReadOnly controls if this share is to be read-only or not.
	// +kubebuilder:default:=false
	// +optional
	ReadOnly bool `json:"readOnly"`

	// Browseable controls if the share will be browseable. A browseable share
	// is visible in listings.
	// +kubebuilder:default:=true
	// +optional
	Browseable bool `json:"browseable"`

	// SecurityConfig specifies which SmbSecurityConfig CR is to be used
	// for this share. If left blank, the operator's default will be
	// used.
	// +kubebuilder:validation:MinLength:=1
	// +optional
	SecurityConfig string `json:"securityConfig,omitempty"`

	// CommonConfig specifies which SmbCommonConfig CR is to be used
	// for this share. If left blank, the operator's default will be
	// used.
	// +kubebuilder:validation:MinLength:=1
	// +optional
	CommonConfig string `json:"commonConfig,omitempty"`

	// Scaling specifies parameters relating to how share resources can and
	// should be scaled.
	Scaling *SmbShareScalingSpec `json:"scaling,omitempty"`
}

SmbShareSpec defines the desired state of SmbShare

func (*SmbShareSpec) DeepCopy

func (in *SmbShareSpec) DeepCopy() *SmbShareSpec

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

func (*SmbShareSpec) DeepCopyInto

func (in *SmbShareSpec) DeepCopyInto(out *SmbShareSpec)

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

type SmbShareStatus

type SmbShareStatus struct {
	// ServerGroup is a string indicating a name for the smb server or group of
	// servers hosting this share. The name is assigned by the operator but is
	// frequently the same as the SmbShare resource's name.
	ServerGroup string `json:"serverGroup,omitempty"`
}

SmbShareStatus defines the observed state of SmbShare

func (*SmbShareStatus) DeepCopy

func (in *SmbShareStatus) DeepCopy() *SmbShareStatus

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

func (*SmbShareStatus) DeepCopyInto

func (in *SmbShareStatus) DeepCopyInto(out *SmbShareStatus)

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

type SmbShareStorageSpec

type SmbShareStorageSpec struct {
	// Pvc defines PVC backed storage for this share.
	// +optional
	Pvc *SmbSharePvcSpec `json:"pvc,omitempty"`
}

SmbShareStorageSpec defines how storage is associated with a share.

func (*SmbShareStorageSpec) DeepCopy

func (in *SmbShareStorageSpec) DeepCopy() *SmbShareStorageSpec

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

func (*SmbShareStorageSpec) DeepCopyInto

func (in *SmbShareStorageSpec) DeepCopyInto(out *SmbShareStorageSpec)

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