v1alpha1

package
v1.8.2 Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2024 License: Apache-2.0 Imports: 5 Imported by: 7

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API. +k8s:deepcopy-gen=package,register +k8s:openapi-gen=true +groupName=networking.karmada.io

Index

Constants

View Source
const (
	// ResourceKindMultiClusterIngress is kind name of MultiClusterIngress.
	ResourceKindMultiClusterIngress = "MultiClusterIngress"
	// ResourceSingularMultiClusterIngress is singular name of MultiClusterIngress.
	ResourceSingularMultiClusterIngress = "multiclusteringress"
	// ResourcePluralMultiClusterIngress is plural name of MultiClusterIngress.
	ResourcePluralMultiClusterIngress = "multiclusteringresses"
	// ResourceNamespaceScopedMultiClusterIngress indicates if MultiClusterIngress is NamespaceScoped.
	ResourceNamespaceScopedMultiClusterIngress = true
)
View Source
const (
	// ResourceKindMultiClusterService is kind name of MultiClusterService.
	ResourceKindMultiClusterService = "MultiClusterService"
	// ResourceSingularMultiClusterService is singular name of MultiClusterService.
	ResourceSingularMultiClusterService = "multiclusterservice"
	// ResourcePluralMultiClusterService is plural name of MultiClusterService.
	ResourcePluralMultiClusterService = "multiclusterservices"
	// ResourceNamespaceScopedMultiClusterService indicates if MultiClusterService is NamespaceScoped.
	ResourceNamespaceScopedMultiClusterService = true
	// MCSServiceAppliedConditionType is indicates the condition type of mcs service applied.
	MCSServiceAppliedConditionType = "ServiceApplied"
	// EndpointSliceDispatched indicates whether the EndpointSlice is dispatched to consumption clusters
	EndpointSliceDispatched string = "EndpointSliceDispatched"
)
View Source
const GroupName = "networking.karmada.io"

GroupName specifies the group name used to register the objects.

View Source
const (
	// MultiClusterServicePermanentIDLabel is the identifier of a MultiClusterService object.
	// Karmada generates a unique identifier, such as metadata.UUID, for each MultiClusterService object.
	// This identifier will be used as a label selector to locate corresponding work of service.
	// The reason for generating a new unique identifier instead of simply using metadata.UUID is because:
	// In backup scenarios, when applying the backup resource manifest in a new cluster, the UUID may change.
	MultiClusterServicePermanentIDLabel = "multiclusterservice.karmada.io/permanent-id"
)

Variables

View Source
var (
	// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
	SchemeBuilder runtime.SchemeBuilder

	// Depreciated: use Install instead
	AddToScheme = localSchemeBuilder.AddToScheme
	Install     = localSchemeBuilder.AddToScheme
)
View Source
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}

GroupVersion specifies the group and the version used to register the objects.

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects Deprecated: use GroupVersion instead.

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type ExposurePort added in v1.7.0

type ExposurePort struct {
	// Name is the name of the port that needs to be exposed within the service.
	// The port name must be the same as that defined in the service.
	// +optional
	Name string `json:"name,omitempty"`

	// Port specifies the exposed service port.
	// +required
	Port int32 `json:"port"`
}

ExposurePort describes which port will be exposed.

func (*ExposurePort) DeepCopy added in v1.7.0

func (in *ExposurePort) DeepCopy() *ExposurePort

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

func (*ExposurePort) DeepCopyInto added in v1.7.0

func (in *ExposurePort) DeepCopyInto(out *ExposurePort)

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

type ExposureRange added in v1.7.0

type ExposureRange struct {
	// ClusterNames is the list of clusters to be selected.
	// +optional
	ClusterNames []string `json:"clusterNames,omitempty"`
}

ExposureRange describes a list of clusters where the service is exposed. Now supports selecting cluster by name, leave the room for extend more methods such as using label selector.

func (*ExposureRange) DeepCopy added in v1.7.0

func (in *ExposureRange) DeepCopy() *ExposureRange

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

func (*ExposureRange) DeepCopyInto added in v1.7.0

func (in *ExposureRange) DeepCopyInto(out *ExposureRange)

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

type ExposureType added in v1.7.0

type ExposureType string

ExposureType describes how to expose the service.

const (
	// ExposureTypeCrossCluster means a service will be accessible across clusters.
	ExposureTypeCrossCluster ExposureType = "CrossCluster"

	// ExposureTypeLoadBalancer means a service will be exposed via an external
	// load balancer.
	ExposureTypeLoadBalancer ExposureType = "LoadBalancer"
)

type MultiClusterIngress

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

	// Spec is the desired state of the MultiClusterIngress.
	// +optional
	Spec networkingv1.IngressSpec `json:"spec,omitempty"`

	// Status is the current state of the MultiClusterIngress.
	// +optional
	Status networkingv1.IngressStatus `json:"status,omitempty"`
}

MultiClusterIngress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. The structure of MultiClusterIngress is same as Ingress, indicates the Ingress in multi-clusters.

func (*MultiClusterIngress) DeepCopy

func (in *MultiClusterIngress) DeepCopy() *MultiClusterIngress

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

func (*MultiClusterIngress) DeepCopyInto

func (in *MultiClusterIngress) DeepCopyInto(out *MultiClusterIngress)

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

func (*MultiClusterIngress) DeepCopyObject

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

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

type MultiClusterIngressList

type MultiClusterIngressList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is the list of MultiClusterIngress.
	Items []MultiClusterIngress `json:"items"`
}

MultiClusterIngressList is a collection of MultiClusterIngress.

func (*MultiClusterIngressList) DeepCopy

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

func (*MultiClusterIngressList) DeepCopyInto

func (in *MultiClusterIngressList) DeepCopyInto(out *MultiClusterIngressList)

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

func (*MultiClusterIngressList) DeepCopyObject

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

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

type MultiClusterService added in v1.7.0

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

	// Spec is the desired state of the MultiClusterService.
	Spec MultiClusterServiceSpec `json:"spec"`

	// Status is the current state of the MultiClusterService.
	// +optional
	Status corev1.ServiceStatus `json:"status,omitempty"`
}

MultiClusterService is a named abstraction of multi-cluster software service. The name field of MultiClusterService is the same as that of Service name. Services with the same name in different clusters are regarded as the same service and are associated with the same MultiClusterService. MultiClusterService can control the exposure of services to outside multiple clusters, and also enable service discovery between clusters.

func (*MultiClusterService) DeepCopy added in v1.7.0

func (in *MultiClusterService) DeepCopy() *MultiClusterService

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

func (*MultiClusterService) DeepCopyInto added in v1.7.0

func (in *MultiClusterService) DeepCopyInto(out *MultiClusterService)

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

func (*MultiClusterService) DeepCopyObject added in v1.7.0

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

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

type MultiClusterServiceList added in v1.7.0

type MultiClusterServiceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is the list of MultiClusterService.
	Items []MultiClusterService `json:"items"`
}

MultiClusterServiceList is a collection of MultiClusterService.

func (*MultiClusterServiceList) DeepCopy added in v1.7.0

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

func (*MultiClusterServiceList) DeepCopyInto added in v1.7.0

func (in *MultiClusterServiceList) DeepCopyInto(out *MultiClusterServiceList)

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

func (*MultiClusterServiceList) DeepCopyObject added in v1.7.0

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

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

type MultiClusterServiceSpec added in v1.7.0

type MultiClusterServiceSpec struct {
	// Types specifies how to expose the service referencing by this
	// MultiClusterService.
	// +required
	Types []ExposureType `json:"types"`

	// Ports is the list of ports that are exposed by this MultiClusterService.
	// No specified port will be filtered out during the service
	// exposure and discovery process.
	// All ports in the referencing service will be exposed by default.
	// +optional
	Ports []ExposurePort `json:"ports,omitempty"`

	// Range specifies the ranges where the referencing service should
	// be exposed.
	// Only valid and optional in case of Types contains CrossCluster.
	// If not set and Types contains CrossCluster, all clusters will
	// be selected, that means the referencing service will be exposed
	// across all registered clusters.
	// Deprecated: in favor of ServiceProvisionClusters/ServiceConsumptionClusters.
	// +optional
	Range ExposureRange `json:"range,omitempty"`

	// ServiceProvisionClusters specifies the clusters which will provision the service backend.
	// If leave it empty, we will collect the backend endpoints from all clusters and sync
	// them to the ServiceConsumptionClusters.
	// +optional
	ServiceProvisionClusters []string `json:"serviceProvisionClusters,omitempty"`

	// ServiceConsumptionClusters specifies the clusters where the service will be exposed, for clients.
	// If leave it empty, the service will be exposed to all clusters.
	// +optional
	ServiceConsumptionClusters []string `json:"serviceConsumptionClusters,omitempty"`
}

MultiClusterServiceSpec is the desired state of the MultiClusterService.

func (*MultiClusterServiceSpec) DeepCopy added in v1.7.0

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

func (*MultiClusterServiceSpec) DeepCopyInto added in v1.7.0

func (in *MultiClusterServiceSpec) DeepCopyInto(out *MultiClusterServiceSpec)

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