v1alpha1

package
v0.11.0-rc.3 Latest Latest
Warning

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

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

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the core v1alpha1 API group

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "core.liqo.io", Version: "v1alpha1"}

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

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

	// ForeignClusterResource is the resource name used to register the ForeignCluster CRD.
	ForeignClusterResource = "foreignclusters"

	// ForeignClusterGroupVersionResource is the group version resource used to register the ForeignCluster CRD.
	ForeignClusterGroupVersionResource = GroupVersion.WithResource(ForeignClusterResource)

	// ForeignClusterGroupResource is the group resource used to register the ForeignCluster CRD.
	ForeignClusterGroupResource = schema.GroupResource{Group: GroupVersion.Group, Resource: ForeignClusterResource}
)

Functions

This section is empty.

Types

type ClusterID

type ClusterID string

ClusterID contains the unique identifier of a ForeignCluster. It must be a DNS (RFC 1123) compatible name. +kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`

type Condition

type Condition struct {
	// Type of the condition.
	// +kubebuilder:validation:Enum="APIServerStatus";"NetworkConnectionStatus";"NetworkGatewayServerStatus";"NetworkGatewayClientStatus";"AuthIdentityControlPlaneStatus";"AuthTenantStatus";"OffloadingVirtualNodeStatus";"OffloadingNodeStatus"
	//
	//nolint:lll // ignore long lines given by Kubebuilder marker annotations
	Type ConditionType `json:"type"`
	// Status of the condition.
	// +kubebuilder:validation:Enum="None";"Pending";"Established";"Error";"Ready";"NotReady";"SomeNotReady"
	// +kubebuilder:default="None"
	Status ConditionStatusType `json:"status"`
	// LastTransitionTime -> timestamp for when the condition last transitioned from one status to another.
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Reason -> Machine-readable, UpperCamelCase text indicating the reason for the condition's last transition.
	Reason string `json:"reason,omitempty"`
	// Message -> Human-readable message indicating details about the last status transition.
	Message string `json:"message,omitempty"`
}

Condition contains details about state of a.

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

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

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

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

type ConditionStatusType

type ConditionStatusType string

ConditionStatusType indicates the status of a condition with a remote cluster.

const (
	// ConditionStatusNone indicates that the condition is not applicable.
	ConditionStatusNone ConditionStatusType = "None"
	// ConditionStatusPending indicates that the condition is pending.
	ConditionStatusPending ConditionStatusType = "Pending"
	// ConditionStatusEstablished indicates that the condition has been established.
	ConditionStatusEstablished ConditionStatusType = "Established"
	// ConditionStatusError indicates that an error has occurred.
	ConditionStatusError ConditionStatusType = "Error"
	// ConditionStatusReady indicates that the condition is ready.
	ConditionStatusReady ConditionStatusType = "Ready"
	// ConditionStatusNotReady indicates that the condition is not ready.
	ConditionStatusNotReady ConditionStatusType = "NotReady"
	// ConditionStatusSomeNotReady indicates that not all components of the conditions are ready.
	ConditionStatusSomeNotReady ConditionStatusType = "SomeNotReady"
)

type ConditionType

type ConditionType string

ConditionType represents different conditions that a could assume.

const (
	// GENERIC
	// APIServerStatusCondition shows the status of the API Server.
	APIServerStatusCondition ConditionType = "APIServerStatus"

	// NETWORKING
	// NetworkConnectionStatusCondition shows the network connection status.
	NetworkConnectionStatusCondition ConditionType = "NetworkConnectionStatus"
	// NetworkGatewayServerStatusCondition shows the network gateway server status.
	NetworkGatewayServerStatusCondition ConditionType = "NetworkGatewayServerStatus"
	// NetworkGatewayClientStatusCondition shows the network gateway client status.
	NetworkGatewayClientStatusCondition ConditionType = "NetworkGatewayClientStatus"

	// AUTHENTICATION
	// AuthIdentityControlPlaneStatusCondition shows the status of the ControlPlane Identity.
	AuthIdentityControlPlaneStatusCondition ConditionType = "AuthIdentityControlPlaneStatus"
	// AuthTenantStatusCondition shows the status of the Tenant.
	AuthTenantStatusCondition ConditionType = "AuthTenantStatus"

	// OFFLOADING
	// OffloadingVirtualNodeStatusCondition shows the status of a Virtual Node.
	OffloadingVirtualNodeStatusCondition ConditionType = "OffloadingVirtualNodeStatus"
	// OffloadingNodeStatusCondition shows the status of a Node.
	OffloadingNodeStatusCondition ConditionType = "OffloadingNodeStatus"
)

These are valid type of Conditions.

type ForeignCluster

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

	Spec   ForeignClusterSpec   `json:"spec,omitempty"`
	Status ForeignClusterStatus `json:"status,omitempty"`
}

ForeignCluster is the Schema for the foreignclusters API. +kubebuilder:printcolumn:name="Role",type=string,JSONPath=`.status.role` +kubebuilder:printcolumn:name="ClusterID",type=string,priority=1,JSONPath=`.spec.clusterID` +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`

func (*ForeignCluster) DeepCopy

func (in *ForeignCluster) DeepCopy() *ForeignCluster

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

func (*ForeignCluster) DeepCopyInto

func (in *ForeignCluster) DeepCopyInto(out *ForeignCluster)

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

func (*ForeignCluster) DeepCopyObject

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

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

type ForeignClusterList

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

ForeignClusterList contains a list of ForeignCluster.

func (*ForeignClusterList) DeepCopy

func (in *ForeignClusterList) DeepCopy() *ForeignClusterList

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

func (*ForeignClusterList) DeepCopyInto

func (in *ForeignClusterList) DeepCopyInto(out *ForeignClusterList)

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

func (*ForeignClusterList) DeepCopyObject

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

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

type ForeignClusterSpec

type ForeignClusterSpec struct {
	// Foreign Cluster ID.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ClusterID field is immutable"
	ClusterID ClusterID `json:"clusterID"`
}

ForeignClusterSpec defines the desired state of ForeignCluster.

func (*ForeignClusterSpec) DeepCopy

func (in *ForeignClusterSpec) DeepCopy() *ForeignClusterSpec

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

func (*ForeignClusterSpec) DeepCopyInto

func (in *ForeignClusterSpec) DeepCopyInto(out *ForeignClusterSpec)

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

type ForeignClusterStatus

type ForeignClusterStatus struct {
	// Role of the ForeignCluster.
	// +kubebuilder:validation:Enum="Consumer";"Provider";"ConsumerAndProvider";"Unknown"
	// +kubebuilder:default="Unknown"
	Role RoleType `json:"role"`

	// Modules contains the configuration of the modules for this foreign cluster.
	Modules Modules `json:"modules,omitempty"`

	// URL of the forign cluster's API server.
	// +kubebuilder:validation:Optional
	APIServerURL string `json:"apiServerUrl,omitempty"`

	// URL where to contact foreign proxy for the api server.
	// This URL is used when creating the k8s clients toward the remote cluster.
	// +kubebuilder:validation:Optional
	ForeignProxyURL string `json:"foreignProxyUrl,omitempty"`

	// TenantNamespace names in the peered clusters
	// +kubebuilder:validation:Optional
	TenantNamespace TenantNamespaceType `json:"tenantNamespace"`

	// Generic conditions related to the foreign cluster.
	Conditions []Condition `json:"conditions,omitempty"`
}

ForeignClusterStatus defines the observed state of ForeignCluster.

func (*ForeignClusterStatus) DeepCopy

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

func (*ForeignClusterStatus) DeepCopyInto

func (in *ForeignClusterStatus) DeepCopyInto(out *ForeignClusterStatus)

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

type IngressType

type IngressType struct {
	// IngressClassName indicates the name of the ingress class.
	IngressClassName string `json:"ingressClassName"`
	// Default indicates whether this ingress class is the default ingress class for Liqo.
	Default bool `json:"default,omitempty"`
}

IngressType defines the type of ingress offered by a resource offer.

func (*IngressType) DeepCopy

func (in *IngressType) DeepCopy() *IngressType

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

func (*IngressType) DeepCopyInto

func (in *IngressType) DeepCopyInto(out *IngressType)

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

type LoadBalancerType

type LoadBalancerType struct {
	// LoadBalancerClassName indicates the name of the load balancer class.
	LoadBalancerClassName string `json:"loadBalancerClassName"`
	// Default indicates whether this load balancer class is the default load balancer class for Liqo.
	Default bool `json:"default,omitempty"`
}

LoadBalancerType defines the type of load balancer offered by a resource offer.

func (*LoadBalancerType) DeepCopy

func (in *LoadBalancerType) DeepCopy() *LoadBalancerType

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

func (*LoadBalancerType) DeepCopyInto

func (in *LoadBalancerType) DeepCopyInto(out *LoadBalancerType)

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

type Module

type Module struct {
	// Enabled indicates if the module is enabled or not.
	Enabled bool `json:"enabled"`
	// Conditions contains the status conditions related to the module.
	Conditions []Condition `json:"conditions,omitempty"`
}

Module contains the configuration and conditions of a module for a foreign cluster.

func (*Module) DeepCopy

func (in *Module) DeepCopy() *Module

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

func (*Module) DeepCopyInto

func (in *Module) DeepCopyInto(out *Module)

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

type Modules

type Modules struct {
	Networking     Module `json:"networking"`
	Authentication Module `json:"authentication"`
	Offloading     Module `json:"offloading"`
}

Modules contains the configuration of the modules for this foreign cluster.

func (*Modules) DeepCopy

func (in *Modules) DeepCopy() *Modules

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

func (*Modules) DeepCopyInto

func (in *Modules) DeepCopyInto(out *Modules)

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

type RoleType

type RoleType string

RoleType represents the role of a ForeignCluster.

const (
	// ConsumerRole represents a cluster that consumes resources from the local cluster.
	ConsumerRole RoleType = "Consumer"
	// ProviderRole represents a cluster that provides resources to the local cluster.
	ProviderRole RoleType = "Provider"
	// ConsumerAndProviderRole represents a cluster that consumes and provides resources to the local cluster.
	ConsumerAndProviderRole RoleType = "ConsumerAndProvider"
	// UnknownRole represents a cluster whose role is unknown.
	UnknownRole RoleType = "Unknown"
)

These are valid roles for a ForeignCluster.

type StorageType

type StorageType struct {
	// StorageClassName indicates the name of the storage class.
	StorageClassName string `json:"storageClassName"`
	// Default indicates whether this storage class is the default storage class for Liqo.
	Default bool `json:"default,omitempty"`
}

StorageType defines the type of storage offered by a resource offer.

func (*StorageType) DeepCopy

func (in *StorageType) DeepCopy() *StorageType

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

func (*StorageType) DeepCopyInto

func (in *StorageType) DeepCopyInto(out *StorageType)

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

type TenantNamespaceType

type TenantNamespaceType struct {
	// local TenantNamespace name
	Local string `json:"local,omitempty"`
	// remote TenantNamespace name
	Remote string `json:"remote,omitempty"`
}

TenantNamespaceType contains the names of the local and the remote namespaces assigned to the pair of clusters.

func (*TenantNamespaceType) DeepCopy

func (in *TenantNamespaceType) DeepCopy() *TenantNamespaceType

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

func (*TenantNamespaceType) DeepCopyInto

func (in *TenantNamespaceType) DeepCopyInto(out *TenantNamespaceType)

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