v1alpha1

package
v0.2.8 Latest Latest
Warning

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

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

Documentation

Overview

+k8s:deepcopy-gen=package,register +groupName=unikorn-cloud.org

Index

Constants

View Source
const (
	// GroupName is the Kubernetes API group our resources belong to.
	GroupName = "unikorn-cloud.org"
	// GroupVersion is the version of our custom resources.
	GroupVersion = "v1alpha1"
	// Group is group/version of our resources.
	Group = GroupName + "/" + GroupVersion
)

Variables

View Source
var (
	// ErrStatusunikornv1core.ConditionLookup is raised when a condition is not found in
	// the resource status.
	ErrStatusConditionLookup = errors.New("status condition not found")

	// ErrMissingLabel is raised when an expected label is not present on
	// a resource.
	ErrMissingLabel = errors.New("expected label is missing")

	// ErrApplicationLookup is raised when the named application is not
	// present in an application bundle bundle.
	ErrApplicationLookup = errors.New("failed to lookup an application")
)
View Source
var (
	// SchemeGroupVersion defines the GV of our resources.
	//nolint:gochecknoglobals
	SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: GroupVersion}

	// SchemeBuilder creates a mapping between GVK and type.
	//nolint:gochecknoglobals
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme adds our GVK to resource mappings to an existing scheme.
	//nolint:gochecknoglobals
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	ErrJSONUnmarshal = errors.New("failed to unmarshal JSON")
)

Functions

func CompareClusterManager added in v0.1.8

func CompareClusterManager(a, b ClusterManager) int

func CompareClusterManagerApplicationBundle added in v0.1.8

func CompareClusterManagerApplicationBundle(a, b ClusterManagerApplicationBundle) int

func CompareKubernetesCluster

func CompareKubernetesCluster(a, b KubernetesCluster) int

func CompareKubernetesClusterApplicationBundle

func CompareKubernetesClusterApplicationBundle(a, b KubernetesClusterApplicationBundle) int

func Resource

func Resource(resource string) schema.GroupResource

Resource maps a resource type to a group resource.

Types

type ApplicationBundleAutoUpgradeSpec

type ApplicationBundleAutoUpgradeSpec struct {
	// WeekDay allows specification of upgrade time windows on individual
	// days of the week.  The platform will select a random  upgrade
	// slot within the specified time windows in order to load balance and
	// mitigate against defects.
	WeekDay *ApplicationBundleAutoUpgradeWeekDaySpec `json:"weekday,omitempty"`
}

func (*ApplicationBundleAutoUpgradeSpec) DeepCopy

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

func (*ApplicationBundleAutoUpgradeSpec) DeepCopyInto

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

type ApplicationBundleAutoUpgradeWeekDaySpec

type ApplicationBundleAutoUpgradeWeekDaySpec struct {
	// Sunday, when specified, provides an upgrade window on that day.
	Sunday *ApplicationBundleAutoUpgradeWindowSpec `json:"sunday,omitempty"`
	// Monday, when specified, provides an upgrade window on that day.
	Monday *ApplicationBundleAutoUpgradeWindowSpec `json:"monday,omitempty"`
	// Tuesday, when specified, provides an upgrade window on that day.
	Tuesday *ApplicationBundleAutoUpgradeWindowSpec `json:"tuesday,omitempty"`
	// Wednesday, when specified, provides an upgrade window on that day.
	Wednesday *ApplicationBundleAutoUpgradeWindowSpec `json:"wednesday,omitempty"`
	// Thursday, when specified, provides an upgrade window on that day.
	Thursday *ApplicationBundleAutoUpgradeWindowSpec `json:"thursday,omitempty"`
	// Friday, when specified, provides an upgrade window on that day.
	Friday *ApplicationBundleAutoUpgradeWindowSpec `json:"friday,omitempty"`
	// Saturday, when specified, provides an upgrade window on that day.
	Saturday *ApplicationBundleAutoUpgradeWindowSpec `json:"saturday,omitempty"`
}

func (*ApplicationBundleAutoUpgradeWeekDaySpec) DeepCopy

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

func (*ApplicationBundleAutoUpgradeWeekDaySpec) DeepCopyInto

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

func (ApplicationBundleAutoUpgradeWeekDaySpec) Weekdays

Weekdays returns the days of the week that are set in the spec.

type ApplicationBundleAutoUpgradeWindowSpec

type ApplicationBundleAutoUpgradeWindowSpec struct {
	// Start is the upgrade window start hour in UTC.  Upgrades will be
	// deterministically scheduled between start and end to balance load
	// across the platform.  Windows can span days, so start=22 and end=07
	// will start at 22:00 on the selected day, and end 07:00 the following
	// one.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=23
	Start int `json:"start"`
	// End is the upgrade window end hour in UTC.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=23
	End int `json:"end"`
}

func (*ApplicationBundleAutoUpgradeWindowSpec) DeepCopy

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

func (*ApplicationBundleAutoUpgradeWindowSpec) DeepCopyInto

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

type ApplicationBundleSpec

type ApplicationBundleSpec struct {
	// Version is a semantic version of the bundle, must be unique.
	Version *string `json:"version"`
	// Preview indicates that this bundle is a preview and should not be
	// used by default.
	Preview *bool `json:"preview,omitempty"`
	// EndOfLife marks when this bundle should not be advertised any more
	// by Unikorn server.  It also provides a hint that users should upgrade
	// ahead of the deadline, or that a forced upgrade should be triggered.
	EndOfLife *metav1.Time `json:"endOfLife,omitempty"`
	// Applications is a list of application references for the bundle.
	Applications []ApplicationNamedReference `json:"applications,omitempty"`
}

ApplicationBundleSpec defines the requested resource state.

func (*ApplicationBundleSpec) DeepCopy

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

func (*ApplicationBundleSpec) DeepCopyInto

func (in *ApplicationBundleSpec) DeepCopyInto(out *ApplicationBundleSpec)

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

func (ApplicationBundleSpec) GetApplication

type ApplicationBundleStatus

type ApplicationBundleStatus struct{}

func (*ApplicationBundleStatus) DeepCopy

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

func (*ApplicationBundleStatus) DeepCopyInto

func (in *ApplicationBundleStatus) DeepCopyInto(out *ApplicationBundleStatus)

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

type ApplicationNamedReference

type ApplicationNamedReference struct {
	// Name is the name of the application.  This must match what is encoded into
	// Unikorn's application management engine.
	Name *string `json:"name"`
	// Reference is a reference to the application definition.
	Reference *unikornv1core.ApplicationReference `json:"reference"`
}

func (*ApplicationNamedReference) DeepCopy

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

func (*ApplicationNamedReference) DeepCopyInto

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

type ClusterManager added in v0.1.8

type ClusterManager struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              ClusterManagerSpec   `json:"spec"`
	Status            ClusterManagerStatus `json:"status,omitempty"`
}

ClusterManager is an abstraction around resource provisioning, for example it may contain a provider like Cluster API that can provision KubernetesCluster resources. +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Namespaced,categories=unikorn +kubebuilder:subresource:status +kubebuilder:printcolumn:name="bundle",type="string",JSONPath=".spec.applicationBundle" +kubebuilder:printcolumn:name="status",type="string",JSONPath=".status.conditions[?(@.type==\"Available\")].reason" +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ClusterManager) DeepCopy added in v0.1.8

func (in *ClusterManager) DeepCopy() *ClusterManager

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

func (*ClusterManager) DeepCopyInto added in v0.1.8

func (in *ClusterManager) DeepCopyInto(out *ClusterManager)

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

func (*ClusterManager) DeepCopyObject added in v0.1.8

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

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

func (ClusterManager) Entropy added in v0.1.8

func (c ClusterManager) Entropy() []byte

func (*ClusterManager) Paused added in v0.1.8

func (c *ClusterManager) Paused() bool

Paused implements the ReconcilePauser interface.

func (*ClusterManager) ResourceLabels added in v0.1.8

func (c *ClusterManager) ResourceLabels() (labels.Set, error)

ResourceLabels generates a set of labels to uniquely identify the resource if it were to be placed in a single global namespace.

func (*ClusterManager) StatusConditionRead added in v0.1.8

StatusConditionRead scans the status conditions for an existing condition whose type matches.

func (*ClusterManager) StatusConditionWrite added in v0.1.8

func (c *ClusterManager) StatusConditionWrite(t unikornv1core.ConditionType, status corev1.ConditionStatus, reason unikornv1core.ConditionReason, message string)

StatusConditionWrite either adds or updates a condition in the cluster manager status. If the condition, status and message match an existing condition the update is ignored.

func (ClusterManager) UpgradeSpec added in v0.1.8

type ClusterManagerApplicationBundle added in v0.1.8

type ClusterManagerApplicationBundle struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              ApplicationBundleSpec   `json:"spec"`
	Status            ApplicationBundleStatus `json:"status,omitempty"`
}

ClusterManagerApplicationBundle defines a bundle of applications related with a particular custom resource e.g. a ClusterManager has vcluster, cert-manager and cluster-api applications associated with it. This forms the backbone of upgrades by allowing bundles to be switched out in cluster managers etc. +genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Cluster,categories=unikorn +kubebuilder:printcolumn:name="version",type="string",JSONPath=".spec.version" +kubebuilder:printcolumn:name="preview",type="string",JSONPath=".spec.preview" +kubebuilder:printcolumn:name="end of life",type="string",JSONPath=".spec.endOfLife" +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"

func (*ClusterManagerApplicationBundle) DeepCopy added in v0.1.8

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

func (*ClusterManagerApplicationBundle) DeepCopyInto added in v0.1.8

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

func (*ClusterManagerApplicationBundle) DeepCopyObject added in v0.1.8

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

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

type ClusterManagerApplicationBundleList added in v0.1.8

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

ClusterManagerApplicationBundleList defines a list of application bundles. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ClusterManagerApplicationBundleList) DeepCopy added in v0.1.8

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

func (*ClusterManagerApplicationBundleList) DeepCopyInto added in v0.1.8

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

func (*ClusterManagerApplicationBundleList) DeepCopyObject added in v0.1.8

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

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

func (ClusterManagerApplicationBundleList) Get added in v0.1.8

Get retrieves the named bundle.

func (ClusterManagerApplicationBundleList) Upgradable added in v0.1.8

Upgradable returns a new list of bundles that are "stable" e.g. not end of life and not a preview.

type ClusterManagerList added in v0.1.8

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

ClusterManagerList is a typed list of cluster managers. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ClusterManagerList) DeepCopy added in v0.1.8

func (in *ClusterManagerList) DeepCopy() *ClusterManagerList

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

func (*ClusterManagerList) DeepCopyInto added in v0.1.8

func (in *ClusterManagerList) DeepCopyInto(out *ClusterManagerList)

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

func (*ClusterManagerList) DeepCopyObject added in v0.1.8

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

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

type ClusterManagerSpec added in v0.1.8

type ClusterManagerSpec struct {
	// Pause, if true, will inhibit reconciliation.
	Pause bool `json:"pause,omitempty"`
	// ApplicationBundle defines the applications used to create the cluster manager.
	// Change this to a new bundle to start an upgrade.
	ApplicationBundle *string `json:"applicationBundle"`
	// ApplicationBundleAutoUpgrade enables automatic upgrade of application bundles.
	// When no properties are set in the specification, the platform will automatically
	// choose an upgrade time for your resource.  This will be before a working day
	// (Mon-Fri) and before working hours (00:00-07:00 UTC).  When any property is set
	// the platform will follow the rules for the upgrade method.
	ApplicationBundleAutoUpgrade *ApplicationBundleAutoUpgradeSpec `json:"applicationBundleAutoUpgrade,omitempty"`
}

ClusterManagerSpec defines any cluster manager specific options.

func (*ClusterManagerSpec) DeepCopy added in v0.1.8

func (in *ClusterManagerSpec) DeepCopy() *ClusterManagerSpec

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

func (*ClusterManagerSpec) DeepCopyInto added in v0.1.8

func (in *ClusterManagerSpec) DeepCopyInto(out *ClusterManagerSpec)

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

type ClusterManagerStatus added in v0.1.8

type ClusterManagerStatus struct {
	// Current service state of a cluster manager.
	Conditions []unikornv1core.Condition `json:"conditions,omitempty"`
}

ClusterManagerStatus defines the status of the project.

func (*ClusterManagerStatus) DeepCopy added in v0.1.8

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

func (*ClusterManagerStatus) DeepCopyInto added in v0.1.8

func (in *ClusterManagerStatus) DeepCopyInto(out *ClusterManagerStatus)

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

type File

type File struct {
	// Path is the absolute path to create the file in.
	Path *string `json:"path"`
	// Content is the file contents.
	Content []byte `json:"content"`
}

File is a file that can be deployed to a cluster node on creation.

func (*File) DeepCopy

func (in *File) DeepCopy() *File

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

func (*File) DeepCopyInto

func (in *File) DeepCopyInto(out *File)

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

type IPv4Address

type IPv4Address struct {
	net.IP
}

+kubebuilder:validation:Type=string +kubebuilder:validation:Pattern="^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])$"

func IPv4AddressSliceFromIPSlice

func IPv4AddressSliceFromIPSlice(in []net.IP) []IPv4Address

IPv4AddressSliceFromIPSlice is a simple converter from Go types to API types.

func (*IPv4Address) DeepCopy

func (in *IPv4Address) DeepCopy() *IPv4Address

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

func (*IPv4Address) DeepCopyInto

func (in *IPv4Address) DeepCopyInto(out *IPv4Address)

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

func (IPv4Address) MarshalJSON

func (a IPv4Address) MarshalJSON() ([]byte, error)

func (IPv4Address) OpenAPISchemaFormat

func (IPv4Address) OpenAPISchemaFormat() string

func (IPv4Address) OpenAPISchemaType

func (IPv4Address) OpenAPISchemaType() []string

There is no interface defined for these. See https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators for reference.

func (IPv4Address) ToUnstructured

func (a IPv4Address) ToUnstructured() interface{}

func (*IPv4Address) UnmarshalJSON

func (a *IPv4Address) UnmarshalJSON(b []byte) error

type IPv4Prefix

type IPv4Prefix struct {
	net.IPNet
}

See https://regex101.com/r/QUfWrF/1 +kubebuilder:validation:Type=string +kubebuilder:validation:Pattern="^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\/(?:3[0-2]|[1-2]?[0-9])$"

func (*IPv4Prefix) DeepCopy

func (in *IPv4Prefix) DeepCopy() *IPv4Prefix

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

func (*IPv4Prefix) DeepCopyInto

func (p *IPv4Prefix) DeepCopyInto(out *IPv4Prefix)

DeepCopyInto implements the interface deepcopy-gen is totally unable to do by itself.

func (IPv4Prefix) MarshalJSON

func (p IPv4Prefix) MarshalJSON() ([]byte, error)

func (IPv4Prefix) OpenAPISchemaFormat

func (IPv4Prefix) OpenAPISchemaFormat() string

func (IPv4Prefix) OpenAPISchemaType

func (IPv4Prefix) OpenAPISchemaType() []string

There is no interface defined for these. See https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators for reference.

func (IPv4Prefix) ToUnstructured

func (p IPv4Prefix) ToUnstructured() interface{}

func (*IPv4Prefix) UnmarshalJSON

func (p *IPv4Prefix) UnmarshalJSON(b []byte) error

type KubernetesCluster

type KubernetesCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              KubernetesClusterSpec   `json:"spec"`
	Status            KubernetesClusterStatus `json:"status,omitempty"`
}

KubernetesCluster is an object representing a Kubernetes cluster. For now, this is a monolith for simplicity. In future it may reference a provider specific implementation e.g. if CAPI goes out of favour for some other new starlet. +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Namespaced,categories=unikorn +kubebuilder:subresource:status +kubebuilder:printcolumn:name="bundle",type="string",JSONPath=".spec.applicationBundle" +kubebuilder:printcolumn:name="version",type="string",JSONPath=".spec.version" +kubebuilder:printcolumn:name="status",type="string",JSONPath=".status.conditions[?(@.type==\"Available\")].reason" +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"

func (*KubernetesCluster) AutoscalingEnabled

func (c *KubernetesCluster) AutoscalingEnabled() bool

AutoscalingEnabled indicates whether cluster autoscaling is enabled for the cluster.

func (*KubernetesCluster) DeepCopy

func (in *KubernetesCluster) DeepCopy() *KubernetesCluster

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

func (*KubernetesCluster) DeepCopyInto

func (in *KubernetesCluster) DeepCopyInto(out *KubernetesCluster)

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

func (*KubernetesCluster) DeepCopyObject

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

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

func (KubernetesCluster) Entropy

func (c KubernetesCluster) Entropy() []byte

func (*KubernetesCluster) NvidiaOperatorEnabled

func (c *KubernetesCluster) NvidiaOperatorEnabled() bool

NvidiaOperatorEnabled indicates whether to install the Nvidia GPU operator.

func (*KubernetesCluster) Paused

func (c *KubernetesCluster) Paused() bool

Paused implements the ReconcilePauser interface.

func (*KubernetesCluster) ResourceLabels

func (c *KubernetesCluster) ResourceLabels() (labels.Set, error)

ResourceLabels generates a set of labels to uniquely identify the resource if it were to be placed in a single global namespace.

func (*KubernetesCluster) StatusConditionRead

StatusConditionRead scans the status conditions for an existing condition whose type matches.

func (*KubernetesCluster) StatusConditionWrite

func (c *KubernetesCluster) StatusConditionWrite(t unikornv1core.ConditionType, status corev1.ConditionStatus, reason unikornv1core.ConditionReason, message string)

StatusConditionWrite either adds or updates a condition in the cluster status. If the condition, status and message match an existing condition the update is ignored.

func (KubernetesCluster) UpgradeSpec

type KubernetesClusterAPISpec

type KubernetesClusterAPISpec struct {
	// SubjectAlternativeNames is a list of X.509 SANs to add to the API
	// certificate.
	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
	// AllowedPrefixes is a list of all IPv4 prefixes that are allowed to access
	// the API.
	AllowedPrefixes []IPv4Prefix `json:"allowedPrefixes,omitempty"`
}

func (*KubernetesClusterAPISpec) DeepCopy

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

func (*KubernetesClusterAPISpec) DeepCopyInto

func (in *KubernetesClusterAPISpec) DeepCopyInto(out *KubernetesClusterAPISpec)

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

type KubernetesClusterApplicationBundle

type KubernetesClusterApplicationBundle struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              ApplicationBundleSpec   `json:"spec"`
	Status            ApplicationBundleStatus `json:"status,omitempty"`
}

KubernetesClusterApplicationBundle defines a bundle of applications related with a particular custom resource e.g. a ClusterManager has vcluster, cert-manager and cluster-api applications associated with it. This forms the backbone of upgrades by allowing bundles to be switched out in cluster managers etc. +genclient +genclient:nonNamespaced +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Cluster,categories=unikorn +kubebuilder:printcolumn:name="version",type="string",JSONPath=".spec.version" +kubebuilder:printcolumn:name="preview",type="string",JSONPath=".spec.preview" +kubebuilder:printcolumn:name="end of life",type="string",JSONPath=".spec.endOfLife" +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"

func (*KubernetesClusterApplicationBundle) DeepCopy

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

func (*KubernetesClusterApplicationBundle) DeepCopyInto

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

func (*KubernetesClusterApplicationBundle) DeepCopyObject

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

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

type KubernetesClusterApplicationBundleList

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

KubernetesClusterApplicationBundleList defines a list of application bundles. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*KubernetesClusterApplicationBundleList) DeepCopy

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

func (*KubernetesClusterApplicationBundleList) DeepCopyInto

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

func (*KubernetesClusterApplicationBundleList) DeepCopyObject

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

func (KubernetesClusterApplicationBundleList) Get

func (KubernetesClusterApplicationBundleList) Upgradable

type KubernetesClusterControlPlaneSpec

type KubernetesClusterControlPlaneSpec struct {
	MachineGeneric `json:",inline"`
}

func (*KubernetesClusterControlPlaneSpec) DeepCopy

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

func (*KubernetesClusterControlPlaneSpec) DeepCopyInto

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

type KubernetesClusterFeaturesSpec

type KubernetesClusterFeaturesSpec struct {
	// Autoscaling, if true, provisions a cluster autoscaler
	// and allows workload pools to specify autoscaling configuration.
	Autoscaling *bool `json:"autoscaling,omitempty"`
	// NvidiaOperator, if false do not install the Nvidia Operator, otherwise
	// install if GPU flavors are detected
	NvidiaOperator *bool `json:"nvidiaOperator,omitempty"`
}

func (*KubernetesClusterFeaturesSpec) DeepCopy

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

func (*KubernetesClusterFeaturesSpec) DeepCopyInto

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

type KubernetesClusterList

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

KubernetesClusterList is a typed list of kubernetes clusters. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*KubernetesClusterList) DeepCopy

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

func (*KubernetesClusterList) DeepCopyInto

func (in *KubernetesClusterList) DeepCopyInto(out *KubernetesClusterList)

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

func (*KubernetesClusterList) DeepCopyObject

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

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

type KubernetesClusterNetworkSpec

type KubernetesClusterNetworkSpec struct {
	// NodeNetwork is the IPv4 prefix for the node network.
	NodeNetwork *IPv4Prefix `json:"nodeNetwork"`
	// PodNetwork is the IPv4 prefix for the pod network.
	PodNetwork *IPv4Prefix `json:"podNetwork"`
	// ServiceNetwork is the IPv4 prefix for the service network.
	ServiceNetwork *IPv4Prefix `json:"serviceNetwork"`
	// DNSNameservers sets the DNS nameservers for pods.
	// At present due to some technical challenges, this must contain
	// only one DNS server.
	// +listType=set
	// +kubebuilder:validation:MinItems=1
	DNSNameservers []IPv4Address `json:"dnsNameservers"`
}

func (*KubernetesClusterNetworkSpec) DeepCopy

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

func (*KubernetesClusterNetworkSpec) DeepCopyInto

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

type KubernetesClusterOpenstackSpec

type KubernetesClusterOpenstackSpec struct {
	// CACert is the CA used to trust the Openstack endpoint.
	CACert *[]byte `json:"caCert,omitempty"`
	// CloudConfig is a base64 encoded minimal clouds.yaml file for
	// use by the ClusterManager to provision the IaaS bits.
	CloudConfig *[]byte `json:"cloudConfig"`
	// Cloud is the clouds.yaml key that identifes the configuration
	// to use for provisioning.
	Cloud *string `json:"cloud"`
	// SSHKeyName is the SSH key name to use to provide access to the VMs.
	SSHKeyName *string `json:"sshKeyName,omitempty"`
	// FailureDomain is the global failure domain to use.  The cluster manager
	// will always be deployed in this region.  Individual worload pools will
	// default to this, but can override it.
	FailureDomain *string `json:"failureDomain,omitempty"`
	// VolumeFailureDomain is the default failure domain to use for volumes
	// as these needn't match compute.  For legacy reasons, this will default
	// to FailureDomain, but you shouldn't reply on this behaviour.
	VolumeFailureDomain *string `json:"volumeFailureDomain,omitempty"`
	// ExternalNetworkID is the Openstack external network ID.
	ExternalNetworkID *string `json:"externalNetworkId"`
}

func (*KubernetesClusterOpenstackSpec) DeepCopy

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

func (*KubernetesClusterOpenstackSpec) DeepCopyInto

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

type KubernetesClusterSpec

type KubernetesClusterSpec struct {
	// Pause, if true, will inhibit reconciliation.
	Pause bool `json:"pause,omitempty"`
	// Region to provision the cluster in.
	Region string `json:"region"`
	// ClusterManager that provides lifecycle management for the cluster.
	ClusterManager string `json:"clusterManager"`
	// Version is the Kubernetes version to install.  For performance
	// reasons this should match what is already pre-installed on the
	// provided image.
	Version *SemanticVersion `json:"version"`
	// Openstack defines global Openstack related configuration.
	Openstack *KubernetesClusterOpenstackSpec `json:"openstack"`
	// Network defines the Kubernetes networking.
	Network *KubernetesClusterNetworkSpec `json:"network"`
	// API defines Kubernetes API specific options.
	API *KubernetesClusterAPISpec `json:"api,omitempty"`
	// ControlPlane defines the cluster manager topology.
	ControlPlane *KubernetesClusterControlPlaneSpec `json:"controlPlane"`
	// WorkloadPools defines the workload cluster topology.
	WorkloadPools *KubernetesClusterWorkloadPoolsSpec `json:"workloadPools"`
	// Features defines add-on features that can be enabled for the cluster.
	Features *KubernetesClusterFeaturesSpec `json:"features,omitempty"`
	// ApplicationBundle defines the applications used to create the cluster.
	// Change this to a new bundle to start an upgrade.
	ApplicationBundle *string `json:"applicationBundle"`
	// ApplicationBundleAutoUpgrade enables automatic upgrade of application bundles.
	// When no properties are set in the specification, the platform will automatically
	// choose an upgrade time for your resource.  This will be before a working day
	// (Mon-Fri) and before working hours (00:00-07:00 UTC).  When any property is set
	// the platform will follow the rules for the upgrade method.
	ApplicationBundleAutoUpgrade *ApplicationBundleAutoUpgradeSpec `json:"applicationBundleAutoUpgrade,omitempty"`
}

KubernetesClusterSpec defines the requested state of the Kubernetes cluster.

func (*KubernetesClusterSpec) DeepCopy

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

func (*KubernetesClusterSpec) DeepCopyInto

func (in *KubernetesClusterSpec) DeepCopyInto(out *KubernetesClusterSpec)

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

type KubernetesClusterStatus

type KubernetesClusterStatus struct {
	// Namespace defines the namespace a cluster resides in.
	Namespace string `json:"namespace,omitempty"`

	// Current service state of a Kubernetes cluster.
	Conditions []unikornv1core.Condition `json:"conditions,omitempty"`
}

KubernetesClusterStatus defines the observed state of the Kubernetes cluster.

func (*KubernetesClusterStatus) DeepCopy

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

func (*KubernetesClusterStatus) DeepCopyInto

func (in *KubernetesClusterStatus) DeepCopyInto(out *KubernetesClusterStatus)

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

type KubernetesClusterWorkloadPoolsPoolSpec

type KubernetesClusterWorkloadPoolsPoolSpec struct {
	KubernetesWorkloadPoolSpec `json:",inline"`
}

func (*KubernetesClusterWorkloadPoolsPoolSpec) DeepCopy

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

func (*KubernetesClusterWorkloadPoolsPoolSpec) DeepCopyInto

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

type KubernetesClusterWorkloadPoolsSpec

type KubernetesClusterWorkloadPoolsSpec struct {
	// Pools contains an inline set of pools.  This field will be ignored
	// when Selector is set.  Inline pools are expected to be used for UI
	// generated clusters.
	Pools []KubernetesClusterWorkloadPoolsPoolSpec `json:"pools,omitempty"`
}

func (*KubernetesClusterWorkloadPoolsSpec) DeepCopy

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

func (*KubernetesClusterWorkloadPoolsSpec) DeepCopyInto

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

type KubernetesWorkloadPoolSpec

type KubernetesWorkloadPoolSpec struct {
	MachineGeneric `json:",inline"`
	// Name is the name of the pool.
	Name string `json:"name"`
	// FailureDomain is the failure domain to use for the pool.
	FailureDomain *string `json:"failureDomain,omitempty"`
	// Labels is the set of node labels to apply to the pool on
	// initialisation/join.
	Labels map[string]string `json:"labels,omitempty"`
	// Files are a set of files that can be installed onto the node
	// on initialisation/join.
	Files []File `json:"files,omitempty"`
	// Autoscaling contains optional sclaing limits and scheduling
	// hints for autoscaling.
	Autoscaling *MachineGenericAutoscaling `json:"autoscaling,omitempty"`
}

KubernetesWorkloadPoolSpec defines the requested machine pool state.

func (*KubernetesWorkloadPoolSpec) DeepCopy

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

func (*KubernetesWorkloadPoolSpec) DeepCopyInto

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

type MachineGeneric

type MachineGeneric struct {
	// Image is the OpenStack Glance image to deploy with.
	Image *string `json:"image"`
	// Flavor is the OpenStack Nova flavor to deploy with.
	Flavor *string `json:"flavor"`
	// DiskSize is the persistent root disk size to deploy with.  This
	// overrides the default ephemeral disk size defined in the flavor.
	DiskSize *resource.Quantity `json:"diskSize,omitempty"`
	// VolumeFailureDomain allows the volume failure domain to be set
	// on a per machine deployment basis.
	VolumeFailureDomain *string `json:"volumeFailureDomain,omitempty"`
	// Replicas is the initial pool size to deploy.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=3
	Replicas *int `json:"replicas,omitempty"`
	// ServerGroupID sets the server group of the cluster manager in
	// order to maintain anti-affinity rules.
	ServerGroupID *string `json:"serverGroupId,omitempty"`
}

MachineGeneric contains common things across all pool types, including Kubernetes cluster manager nodes and workload pools.

func (*MachineGeneric) DeepCopy

func (in *MachineGeneric) DeepCopy() *MachineGeneric

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

func (*MachineGeneric) DeepCopyInto

func (in *MachineGeneric) DeepCopyInto(out *MachineGeneric)

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

type MachineGenericAutoscaling

type MachineGenericAutoscaling struct {
	// MinimumReplicas defines the minimum number of replicas that
	// this pool can be scaled down to.
	// +kubebuilder:validation:Minimum=0
	MinimumReplicas *int `json:"minimumReplicas"`
	// MaximumReplicas defines the maximum numer of replicas that
	// this pool can be scaled up to.
	// +kubebuilder:validation:Minimum=1
	MaximumReplicas *int `json:"maximumReplicas"`
	// Scheduler is required when scale-from-zero support is requested
	// i.e. MimumumReplicas is 0.  This provides scheduling hints to
	// the autoscaler as it cannot derive CPU/memory constraints from
	// the machine flavor.
	Scheduler *MachineGenericAutoscalingScheduler `json:"scheduler,omitempty"`
}

MachineGenericAutoscaling defines generic autoscaling configuration. +kubebuilder:validation:XValidation:message="maximumReplicas must be greater than minimumReplicas",rule=(self.maximumReplicas > self.minimumReplicas)

func (*MachineGenericAutoscaling) DeepCopy

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

func (*MachineGenericAutoscaling) DeepCopyInto

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

type MachineGenericAutoscalingScheduler

type MachineGenericAutoscalingScheduler struct {
	// CPU defines the number of CPUs for the pool flavor.
	// +kubebuilder:validation:Minimum=1
	CPU *int `json:"cpu"`
	// Memory defines the amount of memory for the pool flavor.
	// Internally this will be rounded down to the nearest Gi.
	Memory *resource.Quantity `json:"memory"`
	// GPU needs to be set when the pool contains GPU resources so
	// the autoscaler can make informed choices when scaling up.
	GPU *MachineGenericAutoscalingSchedulerGPU `json:"gpu,omitempty"`
}

MachineGenericAutoscalingScheduler defines generic autoscaling scheduling constraints.

func (*MachineGenericAutoscalingScheduler) DeepCopy

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

func (*MachineGenericAutoscalingScheduler) DeepCopyInto

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

type MachineGenericAutoscalingSchedulerGPU

type MachineGenericAutoscalingSchedulerGPU struct {
	// Type is the type of GPU.
	// +kubebuilder:validation:Enum=nvidia.com/gpu
	Type *string `json:"type"`
	// Count is the number of GPUs for the pool flavor.
	// +kubebuilder:validation:Minimum=1
	Count *int `json:"count"`
}

MachineGenericAutoscalingSchedulerGPU defines generic autoscaling scheduling constraints for GPUs.

func (*MachineGenericAutoscalingSchedulerGPU) DeepCopy

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

func (*MachineGenericAutoscalingSchedulerGPU) DeepCopyInto

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

type NamespacedObject

type NamespacedObject struct {
	// Namespace is the namespace in which the object resides.
	Namespace string `json:"namespace"`
	// Name is the name of the object.
	Name string `json:"name"`
}

func (*NamespacedObject) DeepCopy

func (in *NamespacedObject) DeepCopy() *NamespacedObject

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

func (*NamespacedObject) DeepCopyInto

func (in *NamespacedObject) DeepCopyInto(out *NamespacedObject)

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

type OpenstackGPUDescriptor

type OpenstackGPUDescriptor struct {
	// Property is the property name to examine e.g. "resources.VGPU".
	Property string `json:"property"`
	// Expression describes how to extract the number of GPUs from the property
	// if it exists.  This must contain exactly one submatch that is a number
	// e.g. "^(\d+)$".
	Expression string `json:"expression"`
}

func (*OpenstackGPUDescriptor) DeepCopy

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

func (*OpenstackGPUDescriptor) DeepCopyInto

func (in *OpenstackGPUDescriptor) DeepCopyInto(out *OpenstackGPUDescriptor)

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

type Provider

type Provider string

Provider is used to communicate the cloud type. +kubebuilder:validation:Enum=openstack

const (
	ProviderOpenstack Provider = "openstack"
)

type Region

type Region struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              RegionSpec   `json:"spec"`
	Status            RegionStatus `json:"status,omitempty"`
}

Region defines a geographical region where clusters can be provisioned. A region defines the endpoints that can be used to derive information about the provider for that region. +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Cluster,categories=unikorn +kubebuilder:subresource:status +kubebuilder:printcolumn:name="provider",type="string",JSONPath=".spec.provider" +kubebuilder:printcolumn:name="status",type="string",JSONPath=".status.conditions[?(@.type==\"Available\")].reason" +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"

func (*Region) DeepCopy

func (in *Region) DeepCopy() *Region

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

func (*Region) DeepCopyInto

func (in *Region) DeepCopyInto(out *Region)

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

func (*Region) DeepCopyObject

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

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

type RegionList

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

RegionList is a typed list of regions. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*RegionList) DeepCopy

func (in *RegionList) DeepCopy() *RegionList

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

func (*RegionList) DeepCopyInto

func (in *RegionList) DeepCopyInto(out *RegionList)

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

func (*RegionList) DeepCopyObject

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

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

type RegionOpenstackComputeSpec

type RegionOpenstackComputeSpec struct {
	// ServerGroupPolicy defines the anti-affinity policy to use for
	// scheduling cluster nodes.  Defaults to "soft-anti-affinity".
	ServerGroupPolicy *string `json:"serverGroupPolicy,omitempty"`
	// FlavorExtraSpecsExclude discards any flavors with the listed
	// extra specs keys.
	FlavorExtraSpecsExclude []string `json:"flavorExtraSpecsExclude,omitempty"`
	// GPUDescriptors defines a set of keys that can be probed to
	// list GPU topology information.
	GPUDescriptors []OpenstackGPUDescriptor `json:"gpuDescriptors,omitempty"`
}

func (*RegionOpenstackComputeSpec) DeepCopy

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

func (*RegionOpenstackComputeSpec) DeepCopyInto

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

type RegionOpenstackIdentitySpec

type RegionOpenstackIdentitySpec struct {
	// ClusterRoles are the roles required to be assigned to an application
	// credential in order to provision, scale and deprovision a cluster, along
	// with any required for CNI/CSI functionality.
	ClusterRoles []string `json:"clusterRoles,omitempty"`
}

func (*RegionOpenstackIdentitySpec) DeepCopy

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

func (*RegionOpenstackIdentitySpec) DeepCopyInto

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

type RegionOpenstackImageSpec

type RegionOpenstackImageSpec struct {
	// PropertiesInclude defines the set of properties that must all exist
	// for an image to be advertised by the provider.
	PropertiesInclude []string `json:"propertiesInclude,omitempty"`
	// SigningKey defines a PEM encoded public ECDSA signing key used to verify
	// the image is trusted.  If specified, an image must contain the "digest"
	// property, the value of which must be a base64 encoded ECDSA signature of
	// the SHA256 hash of the image ID.
	SigningKey []byte `json:"signingKey,omitempty"`
}

func (*RegionOpenstackImageSpec) DeepCopy

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

func (*RegionOpenstackImageSpec) DeepCopyInto

func (in *RegionOpenstackImageSpec) DeepCopyInto(out *RegionOpenstackImageSpec)

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

type RegionOpenstackSpec

type RegionOpenstackSpec struct {
	// Endpoint is the Keystone URL e.g. https://foo.bar:5000.
	Endpoint string `json:"endpoint"`
	// ServiceAccountSecretName points to the secret containing credentials
	// required to perform the tasks the provider needs to perform.
	ServiceAccountSecret *NamespacedObject `json:"serviceAccountSecret"`
	// Identity is configuration for the identity service.
	Identity *RegionOpenstackIdentitySpec `json:"identity,omitempty"`
	// Compute is configuration for the compute service.
	Compute *RegionOpenstackComputeSpec `json:"compute,omitempty"`
	// Image is configuration for the image service.
	Image *RegionOpenstackImageSpec `json:"image,omitempty"`
}

func (*RegionOpenstackSpec) DeepCopy

func (in *RegionOpenstackSpec) DeepCopy() *RegionOpenstackSpec

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

func (*RegionOpenstackSpec) DeepCopyInto

func (in *RegionOpenstackSpec) DeepCopyInto(out *RegionOpenstackSpec)

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

type RegionSpec

type RegionSpec struct {
	// Type defines the provider type.
	Provider Provider `json:"provider"`
	// Openstack is provider specific configuration for the region.
	Openstack *RegionOpenstackSpec `json:"openstack,omitempty"`
}

RegionSpec defines metadata about the region.

func (*RegionSpec) DeepCopy

func (in *RegionSpec) DeepCopy() *RegionSpec

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

func (*RegionSpec) DeepCopyInto

func (in *RegionSpec) DeepCopyInto(out *RegionSpec)

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

type RegionStatus

type RegionStatus struct {
	// Current service state of a region.
	Conditions []unikornv1core.Condition `json:"conditions,omitempty"`
}

RegionStatus defines the status of the region.

func (*RegionStatus) DeepCopy

func (in *RegionStatus) DeepCopy() *RegionStatus

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

func (*RegionStatus) DeepCopyInto

func (in *RegionStatus) DeepCopyInto(out *RegionStatus)

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

type SemanticVersion

type SemanticVersion string

+kubebuilder:validation:Pattern="^v(?:[0-9]+\\.){2}(?:[0-9]+)$"

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL