Documentation
¶
Overview ¶
Package v1beta1 contains API Schema definitions for the slinky v1beta1 API group +kubebuilder:object:generate=true +groupName=slinky.slurm.net
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type Accounting
- func (o *Accounting) AuthJwksKey() types.NamespacedName
- func (o *Accounting) AuthJwksRef() *corev1.ConfigMapKeySelector
- func (o *Accounting) AuthJwtHs256Key() types.NamespacedNamedeprecated
- func (o *Accounting) AuthJwtHs256Ref() corev1.SecretKeySelectordeprecated
- func (o *Accounting) AuthJwtKey() types.NamespacedName
- func (o *Accounting) AuthJwtRef() corev1.SecretKeySelector
- func (o *Accounting) AuthSlurmKey() types.NamespacedName
- func (o *Accounting) AuthSlurmRef() corev1.SecretKeySelector
- func (o *Accounting) AuthStorageKey() types.NamespacedName
- func (o *Accounting) AuthStorageRef() corev1.SecretKeySelector
- func (o *Accounting) ConfigKey() types.NamespacedName
- func (in *Accounting) DeepCopy() *Accounting
- func (in *Accounting) DeepCopyInto(out *Accounting)
- func (in *Accounting) DeepCopyObject() runtime.Object
- func (src *Accounting) Hub()
- func (o *Accounting) Key() types.NamespacedName
- func (o *Accounting) PrimaryName() string
- func (o *Accounting) ServiceFQDN() string
- func (o *Accounting) ServiceFQDNShort() string
- func (o *Accounting) ServiceKey() types.NamespacedName
- type AccountingList
- type AccountingSpec
- type AccountingStatus
- type ContainerWrapper
- type Controller
- func (o *Controller) AuthJwksKey() types.NamespacedName
- func (o *Controller) AuthJwksRef() *corev1.ConfigMapKeySelector
- func (o *Controller) AuthJwtHs256Key() types.NamespacedNamedeprecated
- func (o *Controller) AuthJwtHs256Ref() corev1.SecretKeySelectordeprecated
- func (o *Controller) AuthJwtKey() types.NamespacedName
- func (o *Controller) AuthJwtRef() corev1.SecretKeySelector
- func (o *Controller) AuthSlurmKey() types.NamespacedName
- func (o *Controller) AuthSlurmRef() corev1.SecretKeySelector
- func (o *Controller) ClusterName() string
- func (o *Controller) ConfigKey() types.NamespacedName
- func (in *Controller) DeepCopy() *Controller
- func (in *Controller) DeepCopyInto(out *Controller)
- func (in *Controller) DeepCopyObject() runtime.Object
- func (src *Controller) Hub()
- func (o *Controller) Key() types.NamespacedName
- func (o *Controller) PrimaryFQDN() string
- func (o *Controller) PrimaryName() string
- func (o *Controller) ServiceFQDN() string
- func (o *Controller) ServiceFQDNShort() string
- func (o *Controller) ServiceKey() types.NamespacedName
- type ControllerList
- type ControllerPersistence
- type ControllerSpec
- type ControllerStatus
- type ExternalConfig
- type JwtSecretKeySelector
- type LoginSet
- func (in *LoginSet) DeepCopy() *LoginSet
- func (in *LoginSet) DeepCopyInto(out *LoginSet)
- func (in *LoginSet) DeepCopyObject() runtime.Object
- func (src *LoginSet) Hub()
- func (o *LoginSet) Key() types.NamespacedName
- func (o *LoginSet) ServiceFQDN() string
- func (o *LoginSet) ServiceFQDNShort() string
- func (o *LoginSet) ServiceKey() types.NamespacedName
- func (o *LoginSet) SshConfigKey() types.NamespacedName
- func (o *LoginSet) SshHostKeys() types.NamespacedName
- func (o *LoginSet) SssdSecretKey() types.NamespacedName
- func (o *LoginSet) SssdSecretRef() corev1.SecretKeySelector
- type LoginSetList
- type LoginSetSpec
- type LoginSetStatus
- type Metadata
- type MetricEndpoint
- type Metrics
- type NodeSet
- func (in *NodeSet) DeepCopy() *NodeSet
- func (in *NodeSet) DeepCopyInto(out *NodeSet)
- func (in *NodeSet) DeepCopyObject() runtime.Object
- func (o *NodeSet) HeadlessServiceKey() types.NamespacedName
- func (src *NodeSet) Hub()
- func (o *NodeSet) Key() types.NamespacedName
- func (o *NodeSet) SshConfigKey() types.NamespacedName
- func (o *NodeSet) SssdSecretKey() types.NamespacedName
- func (o *NodeSet) SssdSecretRef() corev1.SecretKeySelector
- type NodeSetList
- type NodeSetPartition
- type NodeSetPersistentVolumeClaimRetentionPolicy
- type NodeSetSpec
- type NodeSetSsh
- type NodeSetStatus
- type NodeSetUpdateStrategy
- type NodeSetUpdateStrategyType
- type ObjectReference
- type PersistentVolumeClaimRetentionPolicyType
- type PodSpecWrapper
- type PodTemplate
- type RestApi
- func (in *RestApi) DeepCopy() *RestApi
- func (in *RestApi) DeepCopyInto(out *RestApi)
- func (in *RestApi) DeepCopyObject() runtime.Object
- func (src *RestApi) Hub()
- func (o *RestApi) Key() types.NamespacedName
- func (o *RestApi) ServiceFQDN() string
- func (o *RestApi) ServiceFQDNShort() string
- func (o *RestApi) ServiceKey() types.NamespacedName
- type RestApiList
- type RestApiSpec
- type RestApiStatus
- type RollingUpdateNodeSetStrategy
- type ScalingModeType
- type ServiceMonitor
- type ServiceSpec
- type ServiceSpecWrapper
- type StorageConfig
- type Token
- func (in *Token) DeepCopy() *Token
- func (in *Token) DeepCopyInto(out *Token)
- func (in *Token) DeepCopyObject() runtime.Object
- func (src *Token) Hub()
- func (o *Token) JwtHs256Key() types.NamespacedNamedeprecated
- func (o *Token) JwtHs256Ref() JwtSecretKeySelectordeprecated
- func (o *Token) JwtKey() types.NamespacedName
- func (o *Token) JwtRef() JwtSecretKeySelector
- func (o *Token) Key() types.NamespacedName
- func (o *Token) Lifetime() time.Duration
- func (o *Token) SecretKey() types.NamespacedName
- func (o *Token) SecretRef() corev1.SecretKeySelector
- func (o *Token) Username() string
- type TokenList
- type TokenSpec
- type TokenStatus
Constants ¶
const ( SlinkyPrefix = "slinky.slurm.net/" NodeSetPrefix = "nodeset." + SlinkyPrefix LoginSetPrefix = "loginset." + SlinkyPrefix TopologyPrefix = "topology." + SlinkyPrefix )
Prefixes
const ( // AnnotationPodCordon indicates NodeSet Pods that should be DRAIN[ING|ED] in Slurm. AnnotationPodCordon = NodeSetPrefix + "pod-cordon" // LabelPodDeletionCost can be used to set to an int32 that represent the cost of deleting a pod compared to other // pods belonging to the same ReplicaSet. Pods with lower deletion cost are preferred to be deleted before pods // with higher deletion cost. // NOTE: this is honored on a best-effort basis, and does not offer guarantees on pod deletion order. // The implicit deletion cost for pods that don't set the annotation is 0, negative values are permitted. AnnotationPodDeletionCost = NodeSetPrefix + "pod-deletion-cost" // AnnotationPodDeadline stores a time.RFC3339 timestamp, indicating when the Slurm node should complete its running // workload by. Pods with an earlier deadline are preferred to be deleted before pods with a later deadline. // NOTE: this is honored on a best-effort basis, and does not offer guarantees on pod deletion order. AnnotationPodDeadline = NodeSetPrefix + "pod-deadline" )
Well Known Annotations
const ( // AnnotationNodeCordonReason indicates a custom reason for the Slurm DRAIN action taken when the Kube node on which // a NodeSet pod is scheduled is cordoned AnnotationNodeCordonReason = NodeSetPrefix + "node-cordon-reason" // AnnotationNodeTopologySpec indicates the Slurm dynamic topology line (e.g. "topo-switch:s2,topo-block:b2"). // Ref: https://slurm.schedmd.com/topology.html#dynamic_topo AnnotationNodeTopologySpec = TopologyPrefix + "spec" )
Well Known Annotations for Objects of type corev1.Node
const ( // LabelNodeSetPodName indicates the pod name. // NOTE: Set by the NodeSet controller. LabelNodeSetPodName = NodeSetPrefix + "pod-name" // LabelNodeSetPodIndex indicates the pod's ordinal. // NOTE: Set by the NodeSet controller. LabelNodeSetPodIndex = NodeSetPrefix + "pod-index" // LabelNodeSetPodHostname indicates the pod hostname (used as Slurm node name). // NOTE: Set by the NodeSet controller. LabelNodeSetPodHostname = NodeSetPrefix + "pod-hostname" // LabelNodeSetPodProtect indicates whether the pod is protected against eviction using a PodDisruptionBudget // NOTE: Set by the NodeSet controller LabelNodeSetPodProtect = NodeSetPrefix + "pod-protect" // LabelNodeSetScalingMode indicates the scaling mode (DaemonSet or StatefulSet). // NOTE: Set by the NodeSet controller. LabelNodeSetScalingMode = NodeSetPrefix + "scaling-mode" )
Well Known Labels
const (
AccountingKind = "Accounting"
)
const (
ControllerKind = "Controller"
)
const (
LoginSetKind = "LoginSet"
)
const (
NodeSetKind = "NodeSet"
)
const (
RestApiKind = "RestApi"
)
const (
TokenKind = "Token"
)
Variables ¶
var ( AccountingGVK = GroupVersion.WithKind(AccountingKind) AccountingAPIVersion = GroupVersion.String() )
var ( ControllerGVK = GroupVersion.WithKind(ControllerKind) ControllerAPIVersion = GroupVersion.String() )
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "slinky.slurm.net", Version: "v1beta1"} SchemeGroupVersion = GroupVersion // 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 ( LoginSetGVK = GroupVersion.WithKind(LoginSetKind) LoginSetAPIVersion = GroupVersion.String() )
var ( NodeSetGVK = GroupVersion.WithKind(NodeSetKind) NodeSetAPIVersion = GroupVersion.String() )
var ( RestApiGVK = GroupVersion.WithKind(RestApiKind) RestApiAPIVersion = GroupVersion.String() )
var ( TokenGVK = GroupVersion.WithKind(TokenKind) TokenAPIVersion = GroupVersion.String() )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource is required by pkg/client/listers/...
Types ¶
type Accounting ¶
type Accounting struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec AccountingSpec `json:"spec,omitempty"`
Status AccountingStatus `json:"status,omitempty"`
}
Accounting is the Schema for the accountings API
func (*Accounting) AuthJwksKey ¶
func (o *Accounting) AuthJwksKey() types.NamespacedName
func (*Accounting) AuthJwksRef ¶
func (o *Accounting) AuthJwksRef() *corev1.ConfigMapKeySelector
func (*Accounting) AuthJwtHs256Key
deprecated
func (o *Accounting) AuthJwtHs256Key() types.NamespacedName
Deprecated: use AuthJwtKey() instead.
func (*Accounting) AuthJwtHs256Ref
deprecated
func (o *Accounting) AuthJwtHs256Ref() corev1.SecretKeySelector
Deprecated: use AuthJwtRef() instead.
func (*Accounting) AuthJwtKey ¶
func (o *Accounting) AuthJwtKey() types.NamespacedName
func (*Accounting) AuthJwtRef ¶
func (o *Accounting) AuthJwtRef() corev1.SecretKeySelector
NOTE: Return non-nil because this field is effectively required.
func (*Accounting) AuthSlurmKey ¶
func (o *Accounting) AuthSlurmKey() types.NamespacedName
func (*Accounting) AuthSlurmRef ¶
func (o *Accounting) AuthSlurmRef() corev1.SecretKeySelector
func (*Accounting) AuthStorageKey ¶
func (o *Accounting) AuthStorageKey() types.NamespacedName
func (*Accounting) AuthStorageRef ¶
func (o *Accounting) AuthStorageRef() corev1.SecretKeySelector
func (*Accounting) ConfigKey ¶
func (o *Accounting) ConfigKey() types.NamespacedName
func (*Accounting) DeepCopy ¶
func (in *Accounting) DeepCopy() *Accounting
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Accounting.
func (*Accounting) DeepCopyInto ¶
func (in *Accounting) DeepCopyInto(out *Accounting)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Accounting) DeepCopyObject ¶
func (in *Accounting) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Accounting) Hub ¶
func (src *Accounting) Hub()
Hub implements conversion.Hub interface.
NOTE: `conversion.Hub` must be implemented on the `+kubebuilder:storageversion`.
func (*Accounting) Key ¶
func (o *Accounting) Key() types.NamespacedName
func (*Accounting) PrimaryName ¶
func (o *Accounting) PrimaryName() string
func (*Accounting) ServiceFQDN ¶
func (o *Accounting) ServiceFQDN() string
func (*Accounting) ServiceFQDNShort ¶
func (o *Accounting) ServiceFQDNShort() string
func (*Accounting) ServiceKey ¶
func (o *Accounting) ServiceKey() types.NamespacedName
type AccountingList ¶
type AccountingList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Accounting `json:"items"`
}
AccountingList contains a list of Accounting
func (*AccountingList) DeepCopy ¶
func (in *AccountingList) DeepCopy() *AccountingList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccountingList.
func (*AccountingList) DeepCopyInto ¶
func (in *AccountingList) DeepCopyInto(out *AccountingList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AccountingList) DeepCopyObject ¶
func (in *AccountingList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AccountingSpec ¶
type AccountingSpec struct {
// Slurm `auth/slurm` key authentication.
// +optional
SlurmKeyRef corev1.SecretKeySelector `json:"slurmKeyRef,omitzero"`
// Slurm `auth/jwt` JWT HS256 key authentication.
// +optional
//
// Deprecated: use JwtKeyRef instead.
JwtHs256KeyRef *corev1.SecretKeySelector `json:"jwtHs256KeyRef,omitzero"`
// Slurm `auth/jwt` JWT key authentication.
// +optional
JwtKeyRef *corev1.SecretKeySelector `json:"jwtKeyRef,omitzero"`
// Slurm `auth/jwt` JWKS key authentication.
// +optional
JwksKeyRef *corev1.ConfigMapKeySelector `json:"jwksKeyRef,omitempty"`
// external indicates if this component is external to Kubernetes or not.
// If true, then externalConfig is used and other fields are ignored.
// +optional
// +default:=false
External bool `json:"external,omitzero"`
// ExternalConfig describes how to communicate with this external component.
// +optional
ExternalConfig ExternalConfig `json:"externalConfig,omitzero"`
// The slurmdbd container configuration.
// See corev1.Container spec.
// Ref: https://github.com/kubernetes/api/blob/master/core/v1/types.go#L2885
// +optional
Slurmdbd ContainerWrapper `json:"slurmdbd,omitempty"`
// Template is the object that describes the pod that will be created if
// insufficient replicas are detected.
// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
// +optional
Template PodTemplate `json:"template,omitempty"`
// StorageConfig is the configuration for mysql/mariadb access.
// +optional
StorageConfig StorageConfig `json:"storageConfig,omitzero"`
// ExtraConf is appended onto the end of the `slurmdbd.conf` file.
// Ref: https://slurm.schedmd.com/slurmdbd.conf.html
// +optional
ExtraConf string `json:"extraConf,omitzero"`
// Service defines a template for a Kubernetes Service object.
// +optional
Service ServiceSpec `json:"service,omitzero"`
}
AccountingSpec defines the desired state of Accounting +kubebuilder:validation:XValidation:rule="!self.external ? has(self.slurmKeyRef) : true", message="slurmKeyRef must be set when external is false" +kubebuilder:validation:XValidation:rule="!self.external ? has(self.jwtKeyRef) || has(self.jwtHs256KeyRef) : true", message="jwtKeyRef or jwtHs256KeyRef must be set when external is false" +kubebuilder:validation:XValidation:rule="self.external ? has(self.externalConfig) : true", message="externalConfig must be set when external is true"
func (*AccountingSpec) DeepCopy ¶
func (in *AccountingSpec) DeepCopy() *AccountingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccountingSpec.
func (*AccountingSpec) DeepCopyInto ¶
func (in *AccountingSpec) DeepCopyInto(out *AccountingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AccountingStatus ¶
type AccountingStatus struct {
// Represents the latest available observations of a Accounting's current state.
// +optional
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}
AccountingStatus defines the observed state of Accounting
func (*AccountingStatus) DeepCopy ¶
func (in *AccountingStatus) DeepCopy() *AccountingStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccountingStatus.
func (*AccountingStatus) DeepCopyInto ¶
func (in *AccountingStatus) DeepCopyInto(out *AccountingStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ContainerWrapper ¶
ContainerWrapper is a wrapper around corev1.Container with a custom implementation of MarshalJSON and UnmarshalJSON which delegate to the underlying Spec to avoid CRD pollution. +kubebuilder:pruning:PreserveUnknownFields
func (*ContainerWrapper) DeepCopy ¶
func (o *ContainerWrapper) DeepCopy() *ContainerWrapper
func (*ContainerWrapper) DeepCopyInto ¶
func (in *ContainerWrapper) DeepCopyInto(out *ContainerWrapper)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ContainerWrapper) MarshalJSON ¶
func (o *ContainerWrapper) MarshalJSON() ([]byte, error)
MarshalJSON defers JSON encoding data from the wrapper.
func (*ContainerWrapper) UnmarshalJSON ¶
func (o *ContainerWrapper) UnmarshalJSON(data []byte) error
UnmarshalJSON will decode the data into the wrapper.
type Controller ¶
type Controller struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ControllerSpec `json:"spec,omitempty"`
Status ControllerStatus `json:"status,omitempty"`
}
Controller is the Schema for the controllers API
func (*Controller) AuthJwksKey ¶
func (o *Controller) AuthJwksKey() types.NamespacedName
func (*Controller) AuthJwksRef ¶
func (o *Controller) AuthJwksRef() *corev1.ConfigMapKeySelector
func (*Controller) AuthJwtHs256Key
deprecated
func (o *Controller) AuthJwtHs256Key() types.NamespacedName
Deprecated: use AuthJwtKey() instead.
func (*Controller) AuthJwtHs256Ref
deprecated
func (o *Controller) AuthJwtHs256Ref() corev1.SecretKeySelector
Deprecated: use AuthJwtRef() instead.
func (*Controller) AuthJwtKey ¶
func (o *Controller) AuthJwtKey() types.NamespacedName
func (*Controller) AuthJwtRef ¶
func (o *Controller) AuthJwtRef() corev1.SecretKeySelector
NOTE: Return non-nil because this field is effectively required.
func (*Controller) AuthSlurmKey ¶
func (o *Controller) AuthSlurmKey() types.NamespacedName
func (*Controller) AuthSlurmRef ¶
func (o *Controller) AuthSlurmRef() corev1.SecretKeySelector
func (*Controller) ClusterName ¶
func (o *Controller) ClusterName() string
func (*Controller) ConfigKey ¶
func (o *Controller) ConfigKey() types.NamespacedName
func (*Controller) DeepCopy ¶
func (in *Controller) DeepCopy() *Controller
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Controller.
func (*Controller) DeepCopyInto ¶
func (in *Controller) DeepCopyInto(out *Controller)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Controller) DeepCopyObject ¶
func (in *Controller) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Controller) Hub ¶
func (src *Controller) Hub()
Hub implements conversion.Hub interface.
NOTE: `conversion.Hub` must be implemented on the `+kubebuilder:storageversion`.
func (*Controller) Key ¶
func (o *Controller) Key() types.NamespacedName
func (*Controller) PrimaryFQDN ¶
func (o *Controller) PrimaryFQDN() string
func (*Controller) PrimaryName ¶
func (o *Controller) PrimaryName() string
func (*Controller) ServiceFQDN ¶
func (o *Controller) ServiceFQDN() string
func (*Controller) ServiceFQDNShort ¶
func (o *Controller) ServiceFQDNShort() string
func (*Controller) ServiceKey ¶
func (o *Controller) ServiceKey() types.NamespacedName
type ControllerList ¶
type ControllerList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Controller `json:"items"`
}
ControllerList contains a list of Controller
func (*ControllerList) DeepCopy ¶
func (in *ControllerList) DeepCopy() *ControllerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerList.
func (*ControllerList) DeepCopyInto ¶
func (in *ControllerList) DeepCopyInto(out *ControllerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControllerList) DeepCopyObject ¶
func (in *ControllerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ControllerPersistence ¶
type ControllerPersistence struct {
// Enabled controls if the optional accounting subsystem is enabled.
// +default:=true
Enabled *bool `json:"enabled"`
// ExistingClaim is the name of an existing `PersistentVolumeClaim` to use instead.
// If this is not empty, then certain other fields will be ignored.
// +optional
ExistingClaim string `json:"existingClaim,omitempty"`
// +optional
corev1.PersistentVolumeClaimSpec `json:",inline"`
}
func (*ControllerPersistence) DeepCopy ¶
func (in *ControllerPersistence) DeepCopy() *ControllerPersistence
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerPersistence.
func (*ControllerPersistence) DeepCopyInto ¶
func (in *ControllerPersistence) DeepCopyInto(out *ControllerPersistence)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControllerSpec ¶
type ControllerSpec struct {
// The Slurm ClusterName, which uniquely identifies the Slurm Cluster to
// itself and accounting.
// Ref: https://slurm.schedmd.com/slurm.conf.html#OPT_ClusterName
// +optional
ClusterName string `json:"clusterName,omitzero"`
// Slurm `auth/slurm` key authentication.
// +optional
SlurmKeyRef corev1.SecretKeySelector `json:"slurmKeyRef,omitzero"`
// Slurm `auth/jwt` JWT HS256 key authentication.
// +optional
//
// Deprecated: use JwtKeyRef instead.
JwtHs256KeyRef *corev1.SecretKeySelector `json:"jwtHs256KeyRef,omitzero"`
// Slurm `auth/jwt` JWT key authentication.
// +optional
JwtKeyRef *corev1.SecretKeySelector `json:"jwtKeyRef,omitzero"`
// Slurm `auth/jwt` JWKS key authentication.
// +optional
JwksKeyRef *corev1.ConfigMapKeySelector `json:"jwksKeyRef,omitempty"`
// accountingRef is a reference to the Accounting CR to which this has membership.
// +optional
AccountingRef *ObjectReference `json:"accountingRef,omitempty"`
// external indicates if this component is external to Kubernetes or not.
// If true, then externalConfig is used and other fields are ignored.
// +optional
// +default:=false
External bool `json:"external,omitzero"`
// ExternalConfig describes how to communicate with this external component.
// +optional
ExternalConfig ExternalConfig `json:"externalConfig,omitzero"`
// The slurmctld container configuration.
// See corev1.Container spec.
// Ref: https://github.com/kubernetes/api/blob/master/core/v1/types.go#L2885
// +optional
Slurmctld ContainerWrapper `json:"slurmctld,omitempty"`
// The reconfigure container configuration.
// +optional
Reconfigure ContainerWrapper `json:"reconfigure,omitzero"`
// The logfile sidecar configuration.
// +optional
LogFile ContainerWrapper `json:"logfile,omitzero"`
// Template is the object that describes the pod that will be created if
// insufficient replicas are detected.
// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
// +optional
Template PodTemplate `json:"template,omitempty"`
// ExtraConf is appended onto the end of the `slurm.conf` file.
// Ref: https://slurm.schedmd.com/slurm.conf.html
// +optional
ExtraConf string `json:"extraConf,omitempty"`
// ConfigFileRefs is a list of ConfigMap references containing files to be mounted in `/etc/slurm`.
// Ref: https://slurm.schedmd.com/slurm.conf.html
// +nullable
// +optional
ConfigFileRefs []ObjectReference `json:"configFileRefs,omitzero"`
// PrologScriptRefs is a list of prolog scripts to be mounted in `/etc/slurm`.
// Ref: https://slurm.schedmd.com/prolog_epilog.html
// +nullable
// +optional
PrologScriptRefs []ObjectReference `json:"prologScriptRefs,omitzero"`
// EpilogScriptRefs is a list of epilog scripts to be mounted in `/etc/slurm`.
// Ref: https://slurm.schedmd.com/prolog_epilog.html
// +nullable
// +optional
EpilogScriptRefs []ObjectReference `json:"epilogScriptRefs,omitzero"`
// PrologSlurmctldScriptRefs is a list of PrologSlurmctld scripts to be mounted in `/etc/slurm`.
// Ref: https://slurm.schedmd.com/slurm.conf.html#OPT_PrologSlurmctld
// +nullable
// +optional
PrologSlurmctldScriptRefs []ObjectReference `json:"prologSlurmctldScriptRefs,omitzero"`
// EpilogSlurmctldScriptRefs is a list of EpilogSlurmctld scripts to be mounted in `/etc/slurm`.
// Ref: https://slurm.schedmd.com/slurm.conf.html#OPT_EpilogSlurmctld
// +nullable
// +optional
EpilogSlurmctldScriptRefs []ObjectReference `json:"epilogSlurmctldScriptRefs,omitzero"`
// Persistence defines a persistent volume for the slurm controller to store its save-state.
// Used to recover from system failures or from pod upgrades.
// +optional
Persistence ControllerPersistence `json:"persistence,omitzero"`
// Service defines a template for a Kubernetes Service object.
// +optional
Service ServiceSpec `json:"service,omitzero"`
// Metrics defines the metric collection configuration.
// +optional
Metrics Metrics `json:"metrics,omitzero"`
}
ControllerSpec defines the desired state of Controller +kubebuilder:validation:XValidation:rule="!self.external ? has(self.slurmKeyRef) : true", message="slurmKeyRef must be set when external is false" +kubebuilder:validation:XValidation:rule="!self.external ? has(self.jwtKeyRef) || has(self.jwtHs256KeyRef) : true", message="jwtKeyRef or jwtHs256KeyRef must be set when external is false" +kubebuilder:validation:XValidation:rule="self.external ? has(self.externalConfig) : true", message="externalConfig must be set when external is true"
func (*ControllerSpec) DeepCopy ¶
func (in *ControllerSpec) DeepCopy() *ControllerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerSpec.
func (*ControllerSpec) DeepCopyInto ¶
func (in *ControllerSpec) DeepCopyInto(out *ControllerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ControllerStatus ¶
type ControllerStatus struct {
// Represents the latest available observations of a Controller's current state.
// +optional
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}
ControllerStatus defines the observed state of Controller
func (*ControllerStatus) DeepCopy ¶
func (in *ControllerStatus) DeepCopy() *ControllerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerStatus.
func (*ControllerStatus) DeepCopyInto ¶
func (in *ControllerStatus) DeepCopyInto(out *ControllerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalConfig ¶
type ExternalConfig struct {
// Host defines the hostname or IP address to communicate with.
// +required
Host string `json:"host,omitzero"`
// Port defines the port to communicate over.
// +required
Port int `json:"port,omitzero"`
}
ExternalConfig describes how to communicate with an external service.
func (*ExternalConfig) DeepCopy ¶
func (in *ExternalConfig) DeepCopy() *ExternalConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalConfig.
func (*ExternalConfig) DeepCopyInto ¶
func (in *ExternalConfig) DeepCopyInto(out *ExternalConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JwtSecretKeySelector ¶
type JwtSecretKeySelector struct {
// SecretKeySelector selects a key of a Secret.
// +structType=atomic
corev1.SecretKeySelector `json:",inline"`
// The namespace of the Slurm `auth/jwt` JWT key.
// +optional
Namespace string `json:"namespace,omitempty"`
}
func (*JwtSecretKeySelector) DeepCopy ¶
func (in *JwtSecretKeySelector) DeepCopy() *JwtSecretKeySelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JwtSecretKeySelector.
func (*JwtSecretKeySelector) DeepCopyInto ¶
func (in *JwtSecretKeySelector) DeepCopyInto(out *JwtSecretKeySelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoginSet ¶
type LoginSet struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec LoginSetSpec `json:"spec,omitempty"`
Status LoginSetStatus `json:"status,omitempty"`
}
LoginSet is the Schema for the loginsets API
func (*LoginSet) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginSet.
func (*LoginSet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LoginSet) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*LoginSet) Hub ¶
func (src *LoginSet) Hub()
Hub implements conversion.Hub interface.
NOTE: `conversion.Hub` must be implemented on the `+kubebuilder:storageversion`.
func (*LoginSet) Key ¶
func (o *LoginSet) Key() types.NamespacedName
func (*LoginSet) ServiceFQDN ¶
func (*LoginSet) ServiceFQDNShort ¶
func (*LoginSet) ServiceKey ¶
func (o *LoginSet) ServiceKey() types.NamespacedName
func (*LoginSet) SshConfigKey ¶
func (o *LoginSet) SshConfigKey() types.NamespacedName
func (*LoginSet) SshHostKeys ¶
func (o *LoginSet) SshHostKeys() types.NamespacedName
func (*LoginSet) SssdSecretKey ¶
func (o *LoginSet) SssdSecretKey() types.NamespacedName
func (*LoginSet) SssdSecretRef ¶
func (o *LoginSet) SssdSecretRef() corev1.SecretKeySelector
type LoginSetList ¶
type LoginSetList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []LoginSet `json:"items"`
}
LoginSetList contains a list of LoginSet
func (*LoginSetList) DeepCopy ¶
func (in *LoginSetList) DeepCopy() *LoginSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginSetList.
func (*LoginSetList) DeepCopyInto ¶
func (in *LoginSetList) DeepCopyInto(out *LoginSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*LoginSetList) DeepCopyObject ¶
func (in *LoginSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type LoginSetSpec ¶
type LoginSetSpec struct {
// controllerRef is a reference to the Controller CR to which this has membership.
// +required
ControllerRef ObjectReference `json:"controllerRef"`
// replicas is the desired number of replicas of the given Template.
// These are replicas in the sense that they are instantiations of the
// same Template, but individual replicas also have a consistent identity.
// If unspecified, defaults to 1.
// +optional
// +default:=1
Replicas *int32 `json:"replicas,omitempty"`
// The login container configuration.
// See corev1.Container spec.
// Ref: https://github.com/kubernetes/api/blob/master/core/v1/types.go#L2885
// +optional
Login ContainerWrapper `json:"login,omitempty"`
// The initconf container configuration.
// See corev1.Container spec.
// Ref: https://github.com/kubernetes/api/blob/master/core/v1/types.go#L2885
// +optional
InitConf ContainerWrapper `json:"initconf,omitzero"`
// Template is the object that describes the pod that will be created if
// insufficient replicas are detected.
// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
// +optional
Template PodTemplate `json:"template,omitempty"`
// RootSshAuthorizedKeys is `root/.ssh/authorized_keys`.
// +optional
RootSshAuthorizedKeys string `json:"rootSshAuthorizedKeys,omitzero"`
// ExtraSshdConfig is added to the end of `sshd_config`.
// Ref: https://man7.org/linux/man-pages/man5/sshd_config.5.html
// +optional
ExtraSshdConfig string `json:"extraSshdConfig,omitzero"`
// SssdConfRef is a reference to a secret containing the `sssd.conf`.
// +required
SssdConfRef corev1.SecretKeySelector `json:"sssdConfRef,omitzero"`
// Strategy is the deployment strategy to use to replace existing pods with new ones.
// Ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
// +optional
Strategy appsv1.DeploymentStrategy `json:"strategy,omitzero"`
// Service defines a template for a Kubernetes Service object.
// +optional
Service ServiceSpec `json:"service,omitzero"`
}
LoginSetSpec defines the desired state of LoginSet
func (*LoginSetSpec) DeepCopy ¶
func (in *LoginSetSpec) DeepCopy() *LoginSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginSetSpec.
func (*LoginSetSpec) DeepCopyInto ¶
func (in *LoginSetSpec) DeepCopyInto(out *LoginSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoginSetStatus ¶
type LoginSetStatus struct {
// Total number of non-terminated pods targeted by this LoginSet (their labels match the Selector).
// +optional
Replicas int32 `json:"replicas,omitempty"`
// Represents the latest available observations of a LoginSet's current state.
// +optional
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// Add Selector to status for HPA support in the scale subresource.
Selector string `json:"selector"`
}
LoginSetStatus defines the observed state of LoginSet
func (*LoginSetStatus) DeepCopy ¶
func (in *LoginSetStatus) DeepCopy() *LoginSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginSetStatus.
func (*LoginSetStatus) DeepCopyInto ¶
func (in *LoginSetStatus) DeepCopyInto(out *LoginSetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Metadata ¶
type Metadata struct {
// Map of string keys and values that can be used to organize and categorize
// (scope and select) objects. May match selectors of replication controllers
// and services.
// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels
// +nullable
// +optional
Labels map[string]string `json:"labels,omitempty"`
// Annotations is an unstructured key value map stored with a resource that may be
// set by external tools to store and retrieve arbitrary metadata. They are not
// queryable and should be preserved when modifying objects.
// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
// +nullable
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
}
Metadata defines the metadata to added to resources.
func (*Metadata) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metadata.
func (*Metadata) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetricEndpoint ¶
type MetricEndpoint struct {
// path defines the HTTP path from which to scrape for metrics.
// +required
Path string `json:"path,omitempty"`
// interval at which Prometheus scrapes the metrics from the target.
//
// If empty, the local global value will be used.
// +optional
Interval monitoringv1.Duration `json:"interval,omitzero"`
// scrapeTimeout defines the timeout after which Prometheus considers the scrape to be failed.
//
// If empty, the local global value will be used.
// +optional
ScrapeTimeout monitoringv1.Duration `json:"scrapeTimeout,omitzero"`
}
func (*MetricEndpoint) DeepCopy ¶
func (in *MetricEndpoint) DeepCopy() *MetricEndpoint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricEndpoint.
func (*MetricEndpoint) DeepCopyInto ¶
func (in *MetricEndpoint) DeepCopyInto(out *MetricEndpoint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Metrics ¶
type Metrics struct {
// Enabled controls if metrics will be configured.
// +optional
// +default:=false
Enabled bool `json:"enabled"`
// +optional
ServiceMonitor ServiceMonitor `json:"serviceMonitor,omitzero"`
}
Metrics defines the metric collection configuration.
func (*Metrics) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metrics.
func (*Metrics) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSet ¶
type NodeSet struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec NodeSetSpec `json:"spec,omitempty"`
Status NodeSetStatus `json:"status,omitempty"`
}
NodeSet is the Schema for the nodesets API
func (*NodeSet) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSet.
func (*NodeSet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeSet) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*NodeSet) HeadlessServiceKey ¶
func (o *NodeSet) HeadlessServiceKey() types.NamespacedName
func (*NodeSet) Hub ¶
func (src *NodeSet) Hub()
Hub implements conversion.Hub interface.
NOTE: `conversion.Hub` must be implemented on the `+kubebuilder:storageversion`.
func (*NodeSet) Key ¶
func (o *NodeSet) Key() types.NamespacedName
func (*NodeSet) SshConfigKey ¶
func (o *NodeSet) SshConfigKey() types.NamespacedName
func (*NodeSet) SssdSecretKey ¶
func (o *NodeSet) SssdSecretKey() types.NamespacedName
func (*NodeSet) SssdSecretRef ¶
func (o *NodeSet) SssdSecretRef() corev1.SecretKeySelector
type NodeSetList ¶
type NodeSetList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []NodeSet `json:"items"`
}
NodeSetList contains a list of NodeSet
func (*NodeSetList) DeepCopy ¶
func (in *NodeSetList) DeepCopy() *NodeSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSetList.
func (*NodeSetList) DeepCopyInto ¶
func (in *NodeSetList) DeepCopyInto(out *NodeSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeSetList) DeepCopyObject ¶
func (in *NodeSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NodeSetPartition ¶
type NodeSetPartition struct {
// Enabled will create a partition for this NodeSet.
// +default:=false
Enabled bool `json:"enabled"`
// Config is added to the NodeSet's partition line.
// Ref: https://slurm.schedmd.com/slurm.conf.html#SECTION_PARTITION-CONFIGURATION
// +optional
Config string `json:"config,omitzero"`
}
NodeSetPartition defines the Slurm partition configuration for the NodeSet.
func (*NodeSetPartition) DeepCopy ¶
func (in *NodeSetPartition) DeepCopy() *NodeSetPartition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSetPartition.
func (*NodeSetPartition) DeepCopyInto ¶
func (in *NodeSetPartition) DeepCopyInto(out *NodeSetPartition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSetPersistentVolumeClaimRetentionPolicy ¶
type NodeSetPersistentVolumeClaimRetentionPolicy struct {
// WhenDeleted specifies what happens to PVCs created from NodeSet
// VolumeClaimTemplates when the NodeSet is deleted. The default policy
// of `Retain` causes PVCs to not be affected by NodeSet deletion. The
// `Delete` policy causes those PVCs to be deleted.
// +kubebuilder:validation:Enum=Retain;Delete
// +kubebuilder:default:=Retain
WhenDeleted PersistentVolumeClaimRetentionPolicyType `json:"whenDeleted,omitempty"`
// WhenScaled specifies what happens to PVCs created from NodeSet
// VolumeClaimTemplates when the NodeSet is scaled down. The default
// policy of `Retain` causes PVCs to not be affected by a scaledown. The
// `Delete` policy causes the associated PVCs for any excess pods to be
// deleted.
// +kubebuilder:validation:Enum=Retain;Delete
// +kubebuilder:default:=Retain
WhenScaled PersistentVolumeClaimRetentionPolicyType `json:"whenScaled,omitempty"`
}
NodeSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the NodeSet VolumeClaimTemplates.
func (*NodeSetPersistentVolumeClaimRetentionPolicy) DeepCopy ¶
func (in *NodeSetPersistentVolumeClaimRetentionPolicy) DeepCopy() *NodeSetPersistentVolumeClaimRetentionPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSetPersistentVolumeClaimRetentionPolicy.
func (*NodeSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto ¶
func (in *NodeSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto(out *NodeSetPersistentVolumeClaimRetentionPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSetSpec ¶
type NodeSetSpec struct {
// controllerRef is a reference to the Controller CR to which this has membership.
// +required
ControllerRef ObjectReference `json:"controllerRef"`
// replicas is the desired number of replicas of the given Template.
// These are replicas in the sense that they are instantiations of the
// same Template, but individual replicas also have a consistent identity.
// If unspecified, defaults to 1.
// When ScalingMode is daemonset, this field is ignored.
// +optional
// +default:=1
Replicas *int32 `json:"replicas,omitempty"`
// ScalingMode controls how the NodeSet scales pods.
// "StatefulSet" uses a fixed replica count; "DaemonSet" schedules one pod per matching node.
// +optional
// +kubebuilder:validation:Enum=DaemonSet;StatefulSet
// +kubebuilder:default:=StatefulSet
ScalingMode ScalingModeType `json:"scalingMode,omitempty"`
// The slurmd container configuration.
// See corev1.Container spec.
// Ref: https://github.com/kubernetes/api/blob/master/core/v1/types.go#L2885
// +optional
Slurmd ContainerWrapper `json:"slurmd,omitempty"`
// SSH configuration for worker pods.
// +optional
Ssh NodeSetSsh `json:"ssh,omitzero"`
// The logfile sidecar configuration.
// +optional
LogFile ContainerWrapper `json:"logfile,omitzero"`
// Template is the object that describes the pod that will be created if
// insufficient replicas are detected.
// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
// +optional
Template PodTemplate `json:"template,omitempty"`
// ExtraConf is added to the slurmd args as `--conf <extraConf>`.
// Ref: https://slurm.schedmd.com/slurmd.html#OPT_conf-%3Cnode-parameters%3E
// +optional
ExtraConf string `json:"extraConf,omitzero"`
// Partition defines the Slurm partition configuration for this NodeSet.
// +optional
Partition NodeSetPartition `json:"partition,omitzero"`
// volumeClaimTemplates is a list of claims that pods are allowed to reference.
// The NodeSet controller is responsible for mapping network identities to
// claims in a way that maintains the identity of a pod. Every claim in
// this list must have at least one matching (by name) volumeMount in one
// container in the template. A claim in this list takes precedence over
// any volumes in the template, with the same name.
// +nullable
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
// +kubebuilder:validation:Schemaless
VolumeClaimTemplates []corev1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"`
// updateStrategy indicates the NodeSetUpdateStrategy that will be
// employed to update Pods in the NodeSet when a revision is made to
// Template.
UpdateStrategy NodeSetUpdateStrategy `json:"updateStrategy,omitempty"`
// revisionHistoryLimit is the maximum number of revisions that will
// be maintained in the NodeSet's revision history. The revision history
// consists of all revisions not represented by a currently applied
// NodeSetSpec version. The default value is 0.
// +optional
// +default:=0
RevisionHistoryLimit int32 `json:"revisionHistoryLimit,omitempty"`
// PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs
// created from the NodeSet VolumeClaimTemplates. This requires the
// NodeSetAutoDeletePVC feature gate to be enabled, which is alpha.
// +optional
PersistentVolumeClaimRetentionPolicy NodeSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty"`
// minReadySeconds is the minimum number of seconds for which a newly
// created NodeSet Pod should be ready without any of its container crashing,
// for it to be considered available.
// Defaults to 0 (pod will be considered available as soon as it is ready).
// +optional
MinReadySeconds int32 `json:"minReadySeconds,omitempty"`
// OrdinalPadding indicates how many digit places to pad with zeroes when constructing the pod ordinal.
// This is used only when `scalingMode=StatefulSet`.
// +optional
// +default:=0
OrdinalPadding uint `json:"ordinalPadding,omitempty"`
// TaintKubeNodes controls whether or not to apply a NoExecute taint to any nodes which are running a pod from this NodeSet.
// See https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ for more information.
// +optional
// +default:=false
TaintKubeNodes bool `json:"taintKubeNodes,omitempty"`
// WorkloadDisruptionProtection controls whether or not pods in this nodeset which are actively running Slurm jobs are protected by
// a Pod Disruption Budget.
// See https://kubernetes.io/docs/tasks/run-application/configure-pdb/ for more information.
// +optional
// +default:=true
WorkloadDisruptionProtection *bool `json:"workloadDisruptionProtection,omitempty"`
}
NodeSetSpec defines the desired state of NodeSet
func (*NodeSetSpec) DeepCopy ¶
func (in *NodeSetSpec) DeepCopy() *NodeSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSetSpec.
func (*NodeSetSpec) DeepCopyInto ¶
func (in *NodeSetSpec) DeepCopyInto(out *NodeSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSetSsh ¶
type NodeSetSsh struct {
// Enabled controls whether SSH access is enabled for this NodeSet.
// +default:=false
Enabled bool `json:"enabled"`
// ExtraSshdConfig is added to the end of `sshd_config`.
// Ref: https://man7.org/linux/man-pages/man5/sshd_config.5.html
// +optional
ExtraSshdConfig string `json:"extraSshdConfig,omitzero"`
// SssdConfRef is a reference to a secret containing the `sssd.conf`.
// +required
SssdConfRef corev1.SecretKeySelector `json:"sssdConfRef,omitzero"`
}
NodeSetSsh defines SSH configuration for NodeSet worker pods.
func (*NodeSetSsh) DeepCopy ¶
func (in *NodeSetSsh) DeepCopy() *NodeSetSsh
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSetSsh.
func (*NodeSetSsh) DeepCopyInto ¶
func (in *NodeSetSsh) DeepCopyInto(out *NodeSetSsh)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSetStatus ¶
type NodeSetStatus struct {
// Total number of non-terminated pods targeted by this NodeSet (their labels match the Selector).
// +optional
Replicas int32 `json:"replicas,omitempty"`
// Total number of non-terminated pods targeted by this NodeSet that have the desired template spec.
// +optional
UpdatedReplicas int32 `json:"updatedReplicas,omitempty"`
// readyReplicas is the number of pods targeted by this NodeSet with a Ready Condition.
// +optional
ReadyReplicas int32 `json:"readyReplicas,omitempty"`
// Total number of available pods (ready for at least minReadySeconds) targeted by this NodeSet.
// +optional
AvailableReplicas int32 `json:"availableReplicas,omitempty"`
// pods that are still required for the NodeSet to have 100% available capacity. They may
// either be pods that are running but not yet available or pods that still have not been created.
// +optional
UnavailableReplicas int32 `json:"unavailableReplicas,omitempty"`
// Desired is the number of nodes that should be running a NodeSet pod.
// In DaemonSet scaling mode this is the number of nodes matching the node selector and tolerations.
// In StatefulSet scaling mode this is the number of replicas.
// +optional
Desired int32 `json:"desired,omitempty"`
// The number of NodeSet pods that are running and are in the Slurm IDLE
// state. IDLE means the Slurm nodes is not ALLOCATED or MIXED, hence is not
// allocated any Slurm jobs, nor doing work.
// +optional
SlurmIdle int32 `json:"slurmIdle,omitempty"`
// The number of NodeSet pods that are running and are in the Slurm
// ALLOCATED or MIXED state. ALLOCATED/MIXED means the Slurm node is
// allocated one or more Slurm jobs and is doing work.
// +optional
SlurmAllocated int32 `json:"slurmAllocated,omitempty"`
// The number of NodeSet pods that are running and are in the Slurm
// DOWN state. DOWN means the Slurm node is unavailable for use.
// +optional
SlurmDown int32 `json:"slurmDown,omitempty"`
// The number of NodeSet pods that are running and are in the Slurm DRAIN
// state. DRAIN means the Slurm node becomes unschedulable but allocated
// Slurm jobs will not be evicted and can continue running until completion.
// +optional
SlurmDrain int32 `json:"slurmDrain,omitempty"`
// observedGeneration is the most recent generation observed for this NodeSet. It corresponds to the
// NodeSet's generation, which is updated on mutation by the API Server.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// NodeSetHash is the "controller-revision-hash", which represents the
// latest version of the NodeSet.
NodeSetHash string `json:"nodeSetHash"`
// Count of hash collisions for the NodeSet. The NodeSet controller
// uses this field as a collision avoidance mechanism when it needs to
// create the name for the newest ControllerRevision.
// +optional
CollisionCount *int32 `json:"collisionCount,omitempty"`
// Represents the latest available observations of a NodeSet's current state.
// +optional
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// Add Selector to status for HPA support in the scale subresource.
Selector string `json:"selector"`
}
NodeSetStatus defines the observed state of NodeSet
func (*NodeSetStatus) DeepCopy ¶
func (in *NodeSetStatus) DeepCopy() *NodeSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSetStatus.
func (*NodeSetStatus) DeepCopyInto ¶
func (in *NodeSetStatus) DeepCopyInto(out *NodeSetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSetUpdateStrategy ¶
type NodeSetUpdateStrategy struct {
// Type indicates the type of the NodeSetUpdateStrategy.
// One of: RollingUpdate; OnDelete.
// Default is RollingUpdate.
// +optional
// +kubebuilder:validation:Enum=RollingUpdate;OnDelete
// +kubebuilder:default:=RollingUpdate
Type NodeSetUpdateStrategyType `json:"type,omitempty"`
// RollingUpdate is used to communicate parameters when Type is
// RollingUpdateNodeSetStrategyType.
// +optional
RollingUpdate RollingUpdateNodeSetStrategy `json:"rollingUpdate,omitempty"`
}
NodeSetUpdateStrategy indicates the strategy that the NodeSet controller will be used to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.
func (*NodeSetUpdateStrategy) DeepCopy ¶
func (in *NodeSetUpdateStrategy) DeepCopy() *NodeSetUpdateStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSetUpdateStrategy.
func (*NodeSetUpdateStrategy) DeepCopyInto ¶
func (in *NodeSetUpdateStrategy) DeepCopyInto(out *NodeSetUpdateStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeSetUpdateStrategyType ¶
type NodeSetUpdateStrategyType string
NodeSetUpdateStrategyType is a string enumeration type that enumerates all possible update strategies for the NodeSet controller. +enum
const ( // RollingUpdateNodeSetStrategyType indicates that NodeSet pods will replace // the old pods by new ones using a rolling update method // (i.e replace pods on each node one after the other). RollingUpdateNodeSetStrategyType NodeSetUpdateStrategyType = "RollingUpdate" // OnDeleteNodeSetStrategyType indicates that NodeSet pods will only be // replaced when the old pod is killed for any reason. OnDeleteNodeSetStrategyType NodeSetUpdateStrategyType = "OnDelete" )
type ObjectReference ¶
type ObjectReference struct {
// Namespace of the referent.
// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
// +optional
Namespace string `json:"namespace,omitempty"`
// Name of the referent.
// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
// +optional
Name string `json:"name,omitempty"`
}
ObjectReference is a reference to an object. +structType=atomic
func (*ObjectReference) DeepCopy ¶
func (in *ObjectReference) DeepCopy() *ObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference.
func (*ObjectReference) DeepCopyInto ¶
func (in *ObjectReference) DeepCopyInto(out *ObjectReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ObjectReference) IsMatch ¶
func (o *ObjectReference) IsMatch(key types.NamespacedName) bool
func (*ObjectReference) NamespacedName ¶
func (o *ObjectReference) NamespacedName() types.NamespacedName
type PersistentVolumeClaimRetentionPolicyType ¶
type PersistentVolumeClaimRetentionPolicyType string
PersistentVolumeClaimRetentionPolicyType is a string enumeration of the policies that will determine when volumes from the VolumeClaimTemplates will be deleted when the controlling NodeSet is deleted or scaled down.
const ( // RetainPersistentVolumeClaimRetentionPolicyType is the default // PersistentVolumeClaimRetentionPolicy and specifies that // PersistentVolumeClaims associated with NodeSet VolumeClaimTemplates // will not be deleted. RetainPersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = "Retain" // DeletePersistentVolumeClaimRetentionPolicyType specifies that // PersistentVolumeClaims associated with NodeSet VolumeClaimTemplates // will be deleted in the scenario specified in // NodeSetPersistentVolumeClaimPolicy. DeletePersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = "Delete" )
type PodSpecWrapper ¶
PodSpecWrapper is a wrapper around corev1.PodSpec with a custom implementation of MarshalJSON and UnmarshalJSON which delegate to the underlying Spec to avoid CRD pollution. +kubebuilder:pruning:PreserveUnknownFields
func (*PodSpecWrapper) DeepCopy ¶
func (o *PodSpecWrapper) DeepCopy() *PodSpecWrapper
func (*PodSpecWrapper) DeepCopyInto ¶
func (in *PodSpecWrapper) DeepCopyInto(out *PodSpecWrapper)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PodSpecWrapper) MarshalJSON ¶
func (o *PodSpecWrapper) MarshalJSON() ([]byte, error)
MarshalJSON defers JSON encoding data from the wrapper.
func (*PodSpecWrapper) UnmarshalJSON ¶
func (o *PodSpecWrapper) UnmarshalJSON(data []byte) error
UnmarshalJSON will decode the data into the wrapper.
type PodTemplate ¶
type PodTemplate struct {
// Standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +optional
Metadata Metadata `json:"metadata,omitempty"`
// PodSpec is a description of a pod.
// +optional
PodSpecWrapper PodSpecWrapper `json:"spec,omitempty"`
}
PodTemplate describes a template for creating copies of a predefined pod.
func (*PodTemplate) DeepCopy ¶
func (in *PodTemplate) DeepCopy() *PodTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplate.
func (*PodTemplate) DeepCopyInto ¶
func (in *PodTemplate) DeepCopyInto(out *PodTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestApi ¶
type RestApi struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec RestApiSpec `json:"spec,omitempty"`
Status RestApiStatus `json:"status,omitempty"`
}
Restapi is the Schema for the restapis API
func (*RestApi) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestApi.
func (*RestApi) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RestApi) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RestApi) Hub ¶
func (src *RestApi) Hub()
Hub implements conversion.Hub interface.
NOTE: `conversion.Hub` must be implemented on the `+kubebuilder:storageversion`.
func (*RestApi) Key ¶
func (o *RestApi) Key() types.NamespacedName
func (*RestApi) ServiceFQDN ¶
func (*RestApi) ServiceFQDNShort ¶
func (*RestApi) ServiceKey ¶
func (o *RestApi) ServiceKey() types.NamespacedName
type RestApiList ¶
type RestApiList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []RestApi `json:"items"`
}
RestapiList contains a list of Restapi
func (*RestApiList) DeepCopy ¶
func (in *RestApiList) DeepCopy() *RestApiList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestApiList.
func (*RestApiList) DeepCopyInto ¶
func (in *RestApiList) DeepCopyInto(out *RestApiList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RestApiList) DeepCopyObject ¶
func (in *RestApiList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RestApiSpec ¶
type RestApiSpec struct {
// controllerRef is a reference to the Controller CR to which this has membership.
// +required
ControllerRef ObjectReference `json:"controllerRef"`
// replicas is the desired number of replicas.
// If unspecified, defaults to 1.
// +optional
// +default:=1
Replicas *int32 `json:"replicas,omitempty"`
// The slurmrestd container configuration.
// See corev1.Container spec.
// Ref: https://github.com/kubernetes/api/blob/master/core/v1/types.go#L2885
// +optional
Slurmrestd ContainerWrapper `json:"slurmrestd,omitempty"`
// Template is the object that describes the pod that will be created if
// insufficient replicas are detected.
// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
// +optional
Template PodTemplate `json:"template,omitempty"`
// Service defines a template for a Kubernetes Service object.
// +optional
Service ServiceSpec `json:"service,omitzero"`
}
RestApiSpec defines the desired state of RestApi
func (*RestApiSpec) DeepCopy ¶
func (in *RestApiSpec) DeepCopy() *RestApiSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestApiSpec.
func (*RestApiSpec) DeepCopyInto ¶
func (in *RestApiSpec) DeepCopyInto(out *RestApiSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RestApiStatus ¶
type RestApiStatus struct {
// Represents the latest available observations of a Restapi's current state.
// +optional
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}
RestApiStatus defines the observed state of Restapi
func (*RestApiStatus) DeepCopy ¶
func (in *RestApiStatus) DeepCopy() *RestApiStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestApiStatus.
func (*RestApiStatus) DeepCopyInto ¶
func (in *RestApiStatus) DeepCopyInto(out *RestApiStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RollingUpdateNodeSetStrategy ¶
type RollingUpdateNodeSetStrategy struct {
// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
// Absolute number is calculated from percentage by rounding up. This can not be 0.
// Defaults to 25%.
// +optional
// +kubebuilder:default:="25%"
MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
}
RollingUpdateNodeSetStrategy is used to communicate parameters for RollingUpdateNodeSetStrategyType.
func (*RollingUpdateNodeSetStrategy) DeepCopy ¶
func (in *RollingUpdateNodeSetStrategy) DeepCopy() *RollingUpdateNodeSetStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateNodeSetStrategy.
func (*RollingUpdateNodeSetStrategy) DeepCopyInto ¶
func (in *RollingUpdateNodeSetStrategy) DeepCopyInto(out *RollingUpdateNodeSetStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScalingModeType ¶
type ScalingModeType string
ScalingModeType is a string enumeration of how a NodeSet scales its pods. +enum
const ( // ScalingModeStatefulset indicates replica-based scaling similar to a StatefulSet. ScalingModeStatefulset ScalingModeType = "StatefulSet" // ScalingModeDaemonset indicates one pod per matching node similar to a DaemonSet. ScalingModeDaemonset ScalingModeType = "DaemonSet" )
type ServiceMonitor ¶
type ServiceMonitor struct {
// Enabled controls if metrics will be configured.
// +optional
// +default:=false
Enabled bool `json:"enabled"`
// +nullable
// +optional
Metadata `json:",inline"`
// interval at which Prometheus scrapes the metrics from the target.
//
// If empty, Prometheus uses the global scrape interval.
// +optional
Interval monitoringv1.Duration `json:"interval,omitempty"`
// scrapeTimeout defines the timeout after which Prometheus considers the scrape to be failed.
//
// If empty, Prometheus uses the global scrape timeout unless it is less
// than the target's scrape interval value in which the latter is used.
// The value cannot be greater than the scrape interval otherwise the operator will reject the resource.
// +optional
ScrapeTimeout monitoringv1.Duration `json:"scrapeTimeout,omitempty"`
// endpoints to scrape.
// +nullable
// +optional
MetricEndpoints []MetricEndpoint `json:"endpoints,omitempty"`
}
ServiceMonitor defines a Prometheus service monitor to metrics discovery.
func (*ServiceMonitor) DeepCopy ¶
func (in *ServiceMonitor) DeepCopy() *ServiceMonitor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMonitor.
func (*ServiceMonitor) DeepCopyInto ¶
func (in *ServiceMonitor) DeepCopyInto(out *ServiceMonitor)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceSpec ¶
type ServiceSpec struct {
// Standard object's metadata.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +optional
Metadata Metadata `json:"metadata,omitempty"`
// ServiceSpec describes the attributes that a user creates on a service.
// +optional
ServiceSpecWrapper ServiceSpecWrapper `json:"spec,omitempty"`
// The external service port number.
// +optional
Port int `json:"port"`
// The port on each node on which this service is exposed when type is
// NodePort or LoadBalancer. Usually assigned by the system. If a value is
// specified, in-range, and not in use it will be used, otherwise the
// operation will fail. If not specified, a port will be allocated if this
// Service requires one. If this field is specified when creating a
// Service which does not need it, creation will fail.
// +optional
NodePort int `json:"nodePort,omitempty"`
}
ServiceSpec defines a template to customize Service objects.
func (*ServiceSpec) DeepCopy ¶
func (in *ServiceSpec) DeepCopy() *ServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.
func (*ServiceSpec) DeepCopyInto ¶
func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceSpecWrapper ¶
type ServiceSpecWrapper struct {
corev1.ServiceSpec `json:"-"`
}
ServiceSpecWrapper is a wrapper around corev1.Container with a custom implementation of MarshalJSON and UnmarshalJSON which delegate to the underlying Spec to avoid CRD pollution. +kubebuilder:pruning:PreserveUnknownFields
func (*ServiceSpecWrapper) DeepCopy ¶
func (o *ServiceSpecWrapper) DeepCopy() *ServiceSpecWrapper
func (*ServiceSpecWrapper) DeepCopyInto ¶
func (in *ServiceSpecWrapper) DeepCopyInto(out *ServiceSpecWrapper)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ServiceSpecWrapper) MarshalJSON ¶
func (o *ServiceSpecWrapper) MarshalJSON() ([]byte, error)
MarshalJSON defers JSON encoding data from the wrapper.
func (*ServiceSpecWrapper) UnmarshalJSON ¶
func (o *ServiceSpecWrapper) UnmarshalJSON(data []byte) error
UnmarshalJSON will decode the data into the wrapper.
type StorageConfig ¶
type StorageConfig struct {
// Define the name of the host the database is running where we are going to
// store the data.
// Ref: https://slurm.schedmd.com/slurmdbd.conf.html#OPT_StorageHost
// +required
Host string `json:"host,omitzero"`
// The port number that the Slurm Database Daemon (slurmdbd) communicates
// with the database.
// Default is 3306.
// Ref: https://slurm.schedmd.com/slurmdbd.conf.html#OPT_StoragePort
// +optional
// +default:=3306
Port int `json:"port,omitzero"`
// Specify the name of the database as the location where accounting records
// are written.
// Default is "slurm_acct_db".
// Ref: https://slurm.schedmd.com/slurmdbd.conf.html#OPT_StorageLoc
// +optional
// +default:="slurm_acct_db"
Database string `json:"database,omitzero"`
// Define the name of the user we are going to connect to the database with
// to store the job accounting data.
// Ref: https://slurm.schedmd.com/slurmdbd.conf.html#OPT_StorageUser
// +optional
Username string `json:"username,omitzero"`
// PasswordKeyRef is a reference to a secret containing the password for the
// user, specified by username, to access the given database.
// Ref: https://slurm.schedmd.com/slurmdbd.conf.html#OPT_StoragePass
// +required
PasswordKeyRef corev1.SecretKeySelector `json:"passwordKeyRef,omitzero"`
}
StorageConfig defines access to mysql/mariadb.
func (*StorageConfig) DeepCopy ¶
func (in *StorageConfig) DeepCopy() *StorageConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageConfig.
func (*StorageConfig) DeepCopyInto ¶
func (in *StorageConfig) DeepCopyInto(out *StorageConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Token ¶
type Token struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec TokenSpec `json:"spec,omitempty"`
Status TokenStatus `json:"status,omitempty"`
}
Token is the Schema for the tokens API
func (*Token) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Token.
func (*Token) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Token) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Token) Hub ¶
func (src *Token) Hub()
Hub implements conversion.Hub interface.
NOTE: `conversion.Hub` must be implemented on the `+kubebuilder:storageversion`.
func (*Token) JwtHs256Key
deprecated
func (o *Token) JwtHs256Key() types.NamespacedName
Deprecated: use JwtKey() instead.
func (*Token) JwtHs256Ref
deprecated
func (o *Token) JwtHs256Ref() JwtSecretKeySelector
Deprecated: use JwtRef() instead.
func (*Token) JwtKey ¶
func (o *Token) JwtKey() types.NamespacedName
func (*Token) JwtRef ¶
func (o *Token) JwtRef() JwtSecretKeySelector
NOTE: Return non-nil because this field is effectively required.
func (*Token) Key ¶
func (o *Token) Key() types.NamespacedName
func (*Token) SecretKey ¶
func (o *Token) SecretKey() types.NamespacedName
func (*Token) SecretRef ¶
func (o *Token) SecretRef() corev1.SecretKeySelector
type TokenList ¶
type TokenList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Token `json:"items"`
}
TokenList contains a list of Token
func (*TokenList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenList.
func (*TokenList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TokenList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TokenSpec ¶
type TokenSpec struct {
// Slurm `auth/jwt` JWT HS256 key authentication.
// +optional
//
// Deprecated: use JwtKeyRef instead.
JwtHs256KeyRef *JwtSecretKeySelector `json:"jwtHs256KeyRef,omitzero"`
// Slurm `auth/jwt` JWT key authentication.
// +optional
JwtKeyRef *JwtSecretKeySelector `json:"jwtKeyRef,omitzero"`
// The username whom the token is created for.
// +required
Username string `json:"username,omitzero"`
// The lifetime of the JWT before it expires.
// +optional
Lifetime *metav1.Duration `json:"lifetime,omitempty"`
// Controls if the JWT will be rotated.
// If set to false, then the secret will be created as immutable.
// +optional
// +default:=true
Refresh *bool `json:"refresh,omitzero"`
// SecretRef describes how to create the secret containing the JWT.
// +optional
SecretRef *corev1.SecretKeySelector `json:"secretRef,omitempty"`
}
TokenSpec defines the desired state of Token +kubebuilder:validation:XValidation:rule="has(self.jwtKeyRef) || has(self.jwtHs256KeyRef)", message="jwtKeyRef or jwtHs256KeyRef must be set"
func (*TokenSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenSpec.
func (*TokenSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TokenStatus ¶
type TokenStatus struct {
// IssuedAt indicates the time when the JWT was issued.
IssuedAt *metav1.Time `json:"issuedAt,omitempty"`
// Represents the latest available observations of a Restapi's current state.
// +optional
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}
TokenStatus defines the observed state of Token
func (*TokenStatus) DeepCopy ¶
func (in *TokenStatus) DeepCopy() *TokenStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenStatus.
func (*TokenStatus) DeepCopyInto ¶
func (in *TokenStatus) DeepCopyInto(out *TokenStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files
¶
- accounting_convert.go
- accounting_keys.go
- accounting_types.go
- base_types.go
- controller_convert.go
- controller_keys.go
- controller_types.go
- groupversion_info.go
- loginset_convert.go
- loginset_keys.go
- loginset_types.go
- nodeset_convert.go
- nodeset_keys.go
- nodeset_types.go
- restapi_convert.go
- restapi_keys.go
- restapi_types.go
- token_convert.go
- token_keys.go
- token_types.go
- well_known.go
- zz_generated.deepcopy.go