v1alpha1

package
v0.1.37 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	// GroupName is the Kubernetes API group our resources belong to.
	GroupName = "region.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 (
	// 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
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource maps a resource type to a group resource.

Types

type CPUSpec added in v0.1.17

type CPUSpec struct {
	// Count allows you to override the number of CPUs.  Usually this wouldn't
	// be necessary, but alas some operators may not set this correctly for baremetal
	// flavors to make horizon display overcommit correctly...
	Count *int `json:"count,omitempty"`
	// Family is a free-form string that can communicate the CPU family to clients
	// e.g. "Xeon Platinum 8160T (Skylake)", and allows users to make scheduling
	// decisions based on CPU architecture and performance etc.
	Family *string `json:"family,omitempty"`
}

func (*CPUSpec) DeepCopy added in v0.1.17

func (in *CPUSpec) DeepCopy() *CPUSpec

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

func (*CPUSpec) DeepCopyInto added in v0.1.17

func (in *CPUSpec) DeepCopyInto(out *CPUSpec)

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

type ExternalNetworks added in v0.1.26

type ExternalNetworks struct {
	// Selector defines a set of rules to lookup external networks.
	// In none is specified, all external networks are selected.
	Selector *NetworkSelector `json:"selector,omitempty"`
}

func (*ExternalNetworks) DeepCopy added in v0.1.26

func (in *ExternalNetworks) DeepCopy() *ExternalNetworks

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

func (*ExternalNetworks) DeepCopyInto added in v0.1.26

func (in *ExternalNetworks) DeepCopyInto(out *ExternalNetworks)

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

type FlavorMetadata added in v0.1.27

type FlavorMetadata struct {
	// ID is the immutable Openstack identifier for the flavor.
	ID string `json:"id"`
	// Baremetal indicates that this is a baremetal flavor, as opposed to a
	// virtualized one in case this affects image selection or even how instances
	// are provisioned.
	Baremetal bool `json:"baremetal,omitempty"`
	// CPU defines additional CPU metadata.
	CPU *CPUSpec `json:"cpu,omitempty"`
	// Memory allows the memory amount to be overridden.
	Memory *resource.Quantity `json:"memory,omitempty"`
	// GPU defines additional GPU metadata.  When provided it will enable selection
	// of images based on GPU vendor and model.
	GPU *GPUSpec `json:"gpu,omitempty"`
}

func (*FlavorMetadata) DeepCopy added in v0.1.27

func (in *FlavorMetadata) DeepCopy() *FlavorMetadata

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

func (*FlavorMetadata) DeepCopyInto added in v0.1.27

func (in *FlavorMetadata) DeepCopyInto(out *FlavorMetadata)

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

type FlavorSelector added in v0.1.27

type FlavorSelector struct {
	// IDs is an explicit list of allowed flavors IDs.  If not specified,
	// then all flavors are considered.
	IDs []string `json:"ids,omitempty"`
}

func (*FlavorSelector) DeepCopy added in v0.1.27

func (in *FlavorSelector) DeepCopy() *FlavorSelector

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

func (*FlavorSelector) DeepCopyInto added in v0.1.27

func (in *FlavorSelector) DeepCopyInto(out *FlavorSelector)

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

type GPUSpec added in v0.1.17

type GPUSpec struct {
	// Vendor is the GPU vendor, used for coarse grained flavor and image
	// selection.
	Vendor GPUVendor `json:"vendor"`
	// Model is a free-form model name that corresponds to the supported models
	// property included on images, and must be an exact match e.g. H100.
	Model string `json:"model"`
	// Memory is the amount of memory each logical GPU has access to.
	Memory *resource.Quantity `json:"memory"`
	// Count is the number of logical GPUs in the flavor.
	Count int `json:"count"`
}

func (*GPUSpec) DeepCopy added in v0.1.17

func (in *GPUSpec) DeepCopy() *GPUSpec

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

func (*GPUSpec) DeepCopyInto added in v0.1.17

func (in *GPUSpec) DeepCopyInto(out *GPUSpec)

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

type GPUVendor added in v0.1.17

type GPUVendor string

+kubebuilder:validation:Enum=NVIDIA;AMD

const (
	NVIDIA GPUVendor = "NVIDIA"
	AMD    GPUVendor = "AMD"
)

type Identity

type Identity struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              IdentitySpec   `json:"spec"`
	Status            IdentityStatus `json:"status,omitempty"`
}

Identity defines an on-demand cloud identity. The region controller must create any resources necessary to provide dynamic provisioning of clusters e.g. compute, storage and networking. This resource is used for persistence of information by the controller and not for manual lifecycle management. Any credentials should not be stored unless absolutely necessary, and should be passed to a client on initial identity creation only. +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Namespaced,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 (*Identity) DeepCopy

func (in *Identity) DeepCopy() *Identity

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

func (*Identity) DeepCopyInto

func (in *Identity) DeepCopyInto(out *Identity)

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

func (*Identity) DeepCopyObject

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

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

func (*Identity) Paused added in v0.1.33

func (c *Identity) Paused() bool

Paused implements the ReconcilePauser interface.

func (*Identity) ResourceLabels added in v0.1.33

func (c *Identity) 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 (*Identity) StatusConditionRead added in v0.1.33

func (c *Identity) StatusConditionRead(t unikornv1core.ConditionType) (*unikornv1core.Condition, error)

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

func (*Identity) StatusConditionWrite added in v0.1.33

func (c *Identity) 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.

type IdentityList

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

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

func (*IdentityList) DeepCopy

func (in *IdentityList) DeepCopy() *IdentityList

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

func (*IdentityList) DeepCopyInto

func (in *IdentityList) DeepCopyInto(out *IdentityList)

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

func (*IdentityList) DeepCopyObject

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

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

type IdentitySpec

type IdentitySpec struct {
	// Pause, if true, will inhibit reconciliation.
	Pause bool `json:"pause,omitempty"`
	// Tags are an abitrary list of key/value pairs that a client
	// may populate to store metadata for the resource.
	Tags TagList `json:"tags,omitempty"`
	// Provider defines the provider type.
	Provider Provider `json:"provider"`
}

IdentitySpec stores any state necessary to manage identity.

func (*IdentitySpec) DeepCopy

func (in *IdentitySpec) DeepCopy() *IdentitySpec

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

func (*IdentitySpec) DeepCopyInto

func (in *IdentitySpec) DeepCopyInto(out *IdentitySpec)

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

type IdentityStatus

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

func (*IdentityStatus) DeepCopy

func (in *IdentityStatus) DeepCopy() *IdentityStatus

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

func (*IdentityStatus) DeepCopyInto

func (in *IdentityStatus) DeepCopyInto(out *IdentityStatus)

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

type ImageSelector added in v0.1.26

type ImageSelector struct {
	// Properties defines the set of properties an image needs to have to
	// be selected.
	Properties []string `json:"properties,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 (*ImageSelector) DeepCopy added in v0.1.26

func (in *ImageSelector) DeepCopy() *ImageSelector

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

func (*ImageSelector) DeepCopyInto added in v0.1.26

func (in *ImageSelector) DeepCopyInto(out *ImageSelector)

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 NetworkSelector added in v0.1.26

type NetworkSelector struct {
	// IDs is an explicit list of network IDs.
	IDs []string `json:"ids,omitempty"`
	// Tags is an implicit selector of networks with a set of all specified tags.
	Tags []string `json:"tags,omitempty"`
}

func (*NetworkSelector) DeepCopy added in v0.1.26

func (in *NetworkSelector) DeepCopy() *NetworkSelector

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

func (*NetworkSelector) DeepCopyInto added in v0.1.26

func (in *NetworkSelector) DeepCopyInto(out *NetworkSelector)

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

type OpenstackFlavorSelectionPolicy added in v0.1.17

type OpenstackFlavorSelectionPolicy string

+kubebuilder:validation:Enum=All;None

const (
	OpenstackFlavorSelectionPolicySelectAll  OpenstackFlavorSelectionPolicy = "All"
	OpenstackFlavorSelectionPolicySelectNone OpenstackFlavorSelectionPolicy = "None"
)

type OpenstackFlavorsSpec added in v0.1.17

type OpenstackFlavorsSpec struct {
	// Selector allows flavors to be manually selected for inclusion.  The selected
	// set is a boolean intersection of all defined filters in the selector.
	// Note that there are some internal rules that will fiter out flavors such as
	// if the flavor does not have enough resource to function correctly.
	Selector *FlavorSelector `json:"selector,omitempty"`
	// Metadata allows flavors to be explicitly augmented with additional metadata.
	// This acknowledges the fact that OpenStack is inadequate acting as a source
	// of truth for machine topology, and needs external input to describe things
	// like add on peripherals.
	Metadata []FlavorMetadata `json:"metadata,omitempty"`
}

func (*OpenstackFlavorsSpec) DeepCopy added in v0.1.17

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

func (*OpenstackFlavorsSpec) DeepCopyInto added in v0.1.17

func (in *OpenstackFlavorsSpec) DeepCopyInto(out *OpenstackFlavorsSpec)

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

type OpenstackIdentity added in v0.1.33

type OpenstackIdentity struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              OpenstackIdentitySpec   `json:"spec"`
	Status            OpenstackIdentityStatus `json:"status,omitempty"`
}

OpenstackIdentity has no controller, its a database record of state. +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Namespaced,categories=unikorn +kubebuilder:printcolumn:name="provider",type="string",JSONPath=".spec.provider" +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"

func (*OpenstackIdentity) DeepCopy added in v0.1.33

func (in *OpenstackIdentity) DeepCopy() *OpenstackIdentity

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

func (*OpenstackIdentity) DeepCopyInto added in v0.1.33

func (in *OpenstackIdentity) DeepCopyInto(out *OpenstackIdentity)

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

func (*OpenstackIdentity) DeepCopyObject added in v0.1.33

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

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

type OpenstackIdentityList added in v0.1.33

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

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

func (*OpenstackIdentityList) DeepCopy added in v0.1.33

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

func (*OpenstackIdentityList) DeepCopyInto added in v0.1.33

func (in *OpenstackIdentityList) DeepCopyInto(out *OpenstackIdentityList)

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

func (*OpenstackIdentityList) DeepCopyObject added in v0.1.33

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

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

type OpenstackIdentitySpec added in v0.1.33

type OpenstackIdentitySpec struct {
	// CloudConfig is a client compatible cloud configuration.
	CloudConfig []byte `json:"cloudConfig,omitempty"`
	// Cloud is the cloud name in the cloud config to use.
	Cloud *string `json:"cloud,omitempty"`
	// UserID is the ID of the user created for the identity.
	UserID *string `json:"userID,omitempty"`
	// Password is the login for the user.
	Password *string `json:"password,omitempty"`
	// ProjectID is the ID of the project created for the identity.
	ProjectID *string `json:"projectID,omitempty"`
	// ApplicationCredentialID is the ID of the user's application credential.
	ApplicationCredentialID *string `json:"applicationCredentialID,omitempty"`
	// ApplicationCredentialSecret is the one-time secret for the application credential.
	ApplicationCredentialSecret *string `json:"applicationCredentialSecret,omitempty"`
	// ServerGroupID is the ID of the server group created for the identity.
	ServerGroupID *string `json:"serverGroupID,omitempty"`
	// SSHKeyName is the ssh key that may be injected into clusters by consuming services.
	SSHKeyName *string `json:"sshKeyName,omitempty"`
	// SSHPrivateKey is a PEM encoded private key.
	SSHPrivateKey []byte `json:"sshPrivateKey,omitempty"`
}

func (*OpenstackIdentitySpec) DeepCopy added in v0.1.33

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

func (*OpenstackIdentitySpec) DeepCopyInto added in v0.1.33

func (in *OpenstackIdentitySpec) DeepCopyInto(out *OpenstackIdentitySpec)

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

type OpenstackIdentityStatus added in v0.1.33

type OpenstackIdentityStatus struct{}

func (*OpenstackIdentityStatus) DeepCopy added in v0.1.33

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

func (*OpenstackIdentityStatus) DeepCopyInto added in v0.1.33

func (in *OpenstackIdentityStatus) DeepCopyInto(out *OpenstackIdentityStatus)

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

type OpenstackPhysicalNetwork added in v0.1.34

type OpenstackPhysicalNetwork struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              OpenstackPhysicalNetworkSpec   `json:"spec"`
	Status            OpenstackPhysicalNetworkStatus `json:"status,omitempty"`
}

OpenstackPhysicalNetwork defines a physical network beloning to an identity. +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Namespaced,categories=unikorn +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"

func (*OpenstackPhysicalNetwork) DeepCopy added in v0.1.34

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

func (*OpenstackPhysicalNetwork) DeepCopyInto added in v0.1.34

func (in *OpenstackPhysicalNetwork) DeepCopyInto(out *OpenstackPhysicalNetwork)

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

func (*OpenstackPhysicalNetwork) DeepCopyObject added in v0.1.34

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

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

type OpenstackPhysicalNetworkList added in v0.1.34

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

OpenstackPhysicalNetworkList s a typed list of physical networks. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*OpenstackPhysicalNetworkList) DeepCopy added in v0.1.34

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

func (*OpenstackPhysicalNetworkList) DeepCopyInto added in v0.1.34

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

func (*OpenstackPhysicalNetworkList) DeepCopyObject added in v0.1.34

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

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

type OpenstackPhysicalNetworkSpec added in v0.1.34

type OpenstackPhysicalNetworkSpec struct {
	// NetworkID is the network ID.
	NetworkID *string `json:"networkID,omitempty"`
	// VlanID is the ID if the VLAN for IPAM.
	VlanID *int `json:"vlanID,omitempty"`
	// SubnetID is the subnet ID.
	SubnetID *string `json:"subnetID,omitempty"`
	// RouterID is the router ID.
	RouterID *string `json:"routerID,omitempty"`
	// RouterSubnetInterfaceAdded tells us if this step has been accomplished.
	RouterSubnetInterfaceAdded bool `json:"routerSubnetInterfaceAdded,omitempty"`
}

func (*OpenstackPhysicalNetworkSpec) DeepCopy added in v0.1.34

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

func (*OpenstackPhysicalNetworkSpec) DeepCopyInto added in v0.1.34

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

type OpenstackPhysicalNetworkStatus added in v0.1.34

type OpenstackPhysicalNetworkStatus struct {
}

func (*OpenstackPhysicalNetworkStatus) DeepCopy added in v0.1.34

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

func (*OpenstackPhysicalNetworkStatus) DeepCopyInto added in v0.1.34

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

type PhysicalNetwork added in v0.1.18

type PhysicalNetwork struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              PhysicalNetworkSpec   `json:"spec"`
	Status            PhysicalNetworkStatus `json:"status,omitempty"`
}

PhysicalNetwork defines a physical network beloning to an identity. +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Namespaced,categories=unikorn +kubebuilder:subresource:status +kubebuilder:printcolumn:name="status",type="string",JSONPath=".status.conditions[?(@.type==\"Available\")].reason" +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"

func (*PhysicalNetwork) DeepCopy added in v0.1.18

func (in *PhysicalNetwork) DeepCopy() *PhysicalNetwork

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

func (*PhysicalNetwork) DeepCopyInto added in v0.1.18

func (in *PhysicalNetwork) DeepCopyInto(out *PhysicalNetwork)

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

func (*PhysicalNetwork) DeepCopyObject added in v0.1.18

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

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

func (*PhysicalNetwork) Paused added in v0.1.34

func (c *PhysicalNetwork) Paused() bool

Paused implements the ReconcilePauser interface.

func (*PhysicalNetwork) ResourceLabels added in v0.1.34

func (c *PhysicalNetwork) 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 (*PhysicalNetwork) StatusConditionRead added in v0.1.34

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

func (*PhysicalNetwork) StatusConditionWrite added in v0.1.34

func (c *PhysicalNetwork) 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.

type PhysicalNetworkList added in v0.1.18

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

PhysicalNetworkList s a typed list of physical networks. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*PhysicalNetworkList) DeepCopy added in v0.1.18

func (in *PhysicalNetworkList) DeepCopy() *PhysicalNetworkList

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

func (*PhysicalNetworkList) DeepCopyInto added in v0.1.18

func (in *PhysicalNetworkList) DeepCopyInto(out *PhysicalNetworkList)

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

func (*PhysicalNetworkList) DeepCopyObject added in v0.1.18

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

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

type PhysicalNetworkSpec added in v0.1.18

type PhysicalNetworkSpec struct {
	// Pause, if true, will inhibit reconciliation.
	Pause bool `json:"pause,omitempty"`
	// Tags are an abitrary list of key/value pairs that a client
	// may populate to store metadata for the resource.
	Tags TagList `json:"tags,omitempty"`
	// Provider defines the provider type.
	Provider Provider `json:"provider"`
	// Prefix is the IPv4 address prefix.
	Prefix *unikornv1core.IPv4Prefix `json:"prefix"`
	// DNSNameservers are a set of DNS nameservrs for the network.
	DNSNameservers []unikornv1core.IPv4Address `json:"dnsNameservers"`
}

func (*PhysicalNetworkSpec) DeepCopy added in v0.1.18

func (in *PhysicalNetworkSpec) DeepCopy() *PhysicalNetworkSpec

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

func (*PhysicalNetworkSpec) DeepCopyInto added in v0.1.18

func (in *PhysicalNetworkSpec) DeepCopyInto(out *PhysicalNetworkSpec)

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

type PhysicalNetworkStatus added in v0.1.18

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

func (*PhysicalNetworkStatus) DeepCopy added in v0.1.18

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

func (*PhysicalNetworkStatus) DeepCopyInto added in v0.1.18

func (in *PhysicalNetworkStatus) DeepCopyInto(out *PhysicalNetworkStatus)

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 ProviderNetworks added in v0.1.26

type ProviderNetworks struct {
	// PhysicalNetwork is the neutron provider specific network name used
	// to provision provider networks e.g. VLANs for bare metal clusters.
	PhysicalNetwork *string `json:"physicalNetwork,omitempty"`
	// VLAN is the VLAN configuration.  If not specified and a VLAN provider
	// network is requested then the ID will be allocated between 1-6094
	// inclusive.
	VLAN *VLANSpec `json:"vlan,omitempty"`
}

func (*ProviderNetworks) DeepCopy added in v0.1.26

func (in *ProviderNetworks) DeepCopy() *ProviderNetworks

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

func (*ProviderNetworks) DeepCopyInto added in v0.1.26

func (in *ProviderNetworks) DeepCopyInto(out *ProviderNetworks)

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

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=Namespaced,categories=unikorn +kubebuilder:subresource:status +kubebuilder:printcolumn:name="display name",type="string",JSONPath=".metadata.labels['unikorn-cloud\\.org/name']" +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"`
	// Flavors defines how flavors are filtered and reported to
	// clients.  If not defined, then all flavors are exported.
	Flavors *OpenstackFlavorsSpec `json:"flavors,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 {
	// Selector defines a set of rules to lookup images.
	// If not specified, all images are selected.
	Selector *ImageSelector `json:"selector,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 RegionOpenstackNetworkSpec added in v0.1.17

type RegionOpenstackNetworkSpec struct {
	// ExternalNetworks allows external network options to be specified.
	ExternalNetworks *ExternalNetworks `json:"externalNetworks,omitempty"`
	// ProviderNetworks allows provider networks to be configured.
	ProviderNetworks *ProviderNetworks `json:"providerNetworks,omitempty"`
}

func (*RegionOpenstackNetworkSpec) DeepCopy added in v0.1.17

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

func (*RegionOpenstackNetworkSpec) DeepCopyInto added in v0.1.17

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"`
	// Network is configuration for the network service.
	Network *RegionOpenstackNetworkSpec `json:"network,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 Tag added in v0.1.18

type Tag struct {
	// Name of the tag.
	Name string `json:"name"`
	// Value of the tag.
	Value string `json:"value"`
}

Tag is an arbirary key/value.

func (*Tag) DeepCopy added in v0.1.18

func (in *Tag) DeepCopy() *Tag

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

func (*Tag) DeepCopyInto added in v0.1.18

func (in *Tag) DeepCopyInto(out *Tag)

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

type TagList added in v0.1.18

type TagList []Tag

TagList is an ordered list of tags.

func (TagList) DeepCopy added in v0.1.18

func (in TagList) DeepCopy() TagList

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

func (TagList) DeepCopyInto added in v0.1.18

func (in TagList) DeepCopyInto(out *TagList)

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

type VLANAllocation added in v0.1.34

type VLANAllocation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              VLANAllocationSpec   `json:"spec"`
	Status            VLANAllocationStatus `json:"status,omitempty"`
}

VLANAllocation is used to manage VLAN allocations. Only a single instance is allowed per region. As this is a custom resource, we are guaranteed atomicity due to Kubernetes' speculative locking implementation. +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:resource:scope=Namespaced,categories=unikorn +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp"

func (*VLANAllocation) DeepCopy added in v0.1.34

func (in *VLANAllocation) DeepCopy() *VLANAllocation

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

func (*VLANAllocation) DeepCopyInto added in v0.1.34

func (in *VLANAllocation) DeepCopyInto(out *VLANAllocation)

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

func (*VLANAllocation) DeepCopyObject added in v0.1.34

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

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

type VLANAllocationEntry added in v0.1.34

type VLANAllocationEntry struct {
	// ID is the VLAN ID.
	ID int `json:"id"`
	// PhysicalNetworkID is the physical network/provider specific physical network
	// identifier that owns this entry.
	PhysicalNetworkID string `json:"physicalNetworkID"`
}

func (*VLANAllocationEntry) DeepCopy added in v0.1.34

func (in *VLANAllocationEntry) DeepCopy() *VLANAllocationEntry

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

func (*VLANAllocationEntry) DeepCopyInto added in v0.1.34

func (in *VLANAllocationEntry) DeepCopyInto(out *VLANAllocationEntry)

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

type VLANAllocationList added in v0.1.34

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

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

func (*VLANAllocationList) DeepCopy added in v0.1.34

func (in *VLANAllocationList) DeepCopy() *VLANAllocationList

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

func (*VLANAllocationList) DeepCopyInto added in v0.1.34

func (in *VLANAllocationList) DeepCopyInto(out *VLANAllocationList)

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

func (*VLANAllocationList) DeepCopyObject added in v0.1.34

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

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

type VLANAllocationSpec added in v0.1.34

type VLANAllocationSpec struct {
	// Allocations are an explcit set of VLAN allocations.
	Allocations []VLANAllocationEntry `json:"allocations,omitempty"`
}

func (*VLANAllocationSpec) DeepCopy added in v0.1.34

func (in *VLANAllocationSpec) DeepCopy() *VLANAllocationSpec

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

func (*VLANAllocationSpec) DeepCopyInto added in v0.1.34

func (in *VLANAllocationSpec) DeepCopyInto(out *VLANAllocationSpec)

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

type VLANAllocationStatus added in v0.1.34

type VLANAllocationStatus struct {
}

func (*VLANAllocationStatus) DeepCopy added in v0.1.34

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

func (*VLANAllocationStatus) DeepCopyInto added in v0.1.34

func (in *VLANAllocationStatus) DeepCopyInto(out *VLANAllocationStatus)

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

type VLANSegment added in v0.1.18

type VLANSegment struct {
	// StartID is VLAN ID at the start of the range.
	// +kubebuilder:validation:Minimum=1
	StartID int `json:"startId"`
	// EndID is the VLAN ID at the end of the range.
	// +kubebuilder:validation:Maximum=4094
	EndID int `json:"endId"`
}

func (*VLANSegment) DeepCopy added in v0.1.18

func (in *VLANSegment) DeepCopy() *VLANSegment

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

func (*VLANSegment) DeepCopyInto added in v0.1.18

func (in *VLANSegment) DeepCopyInto(out *VLANSegment)

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

type VLANSpec added in v0.1.18

type VLANSpec struct {
	// Segements allow blocks of VLAN IDs to be allocated from.  In a multi
	// tenant system, it's possible and perhaps necessary, that this controller
	// be limited to certain ranges to avoid split brain scenarios when another
	// user or system is allocating VLAN IDs for itself.
	// +kubebuilder:validation:MinItems=1
	Segments []VLANSegment `json:"segments,omitempty"`
}

func (*VLANSpec) DeepCopy added in v0.1.18

func (in *VLANSpec) DeepCopy() *VLANSpec

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

func (*VLANSpec) DeepCopyInto added in v0.1.18

func (in *VLANSpec) DeepCopyInto(out *VLANSpec)

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

Jump to

Keyboard shortcuts

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