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 ¶
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 )
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" )
const GroupName = "networking.karmada.io"
GroupName specifies the group name used to register the objects.
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 ¶
var ( // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. SchemeBuilder runtime.SchemeBuilder // Depreciated: use Install instead AddToScheme = localSchemeBuilder.AddToScheme Install = localSchemeBuilder.AddToScheme )
var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}
GroupVersion specifies the group and the version used to register the objects.
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 ¶
func (in *MultiClusterIngressList) DeepCopy() *MultiClusterIngressList
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
func (in *MultiClusterServiceList) DeepCopy() *MultiClusterServiceList
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
func (in *MultiClusterServiceSpec) DeepCopy() *MultiClusterServiceSpec
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.