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
- Variables
- func Resource(resource string) schema.GroupResource
- type ClusterSelector
- type ExposurePort
- type ExposureRange
- type ExposureType
- type MultiClusterIngress
- type MultiClusterIngressList
- type MultiClusterIngressStatus
- type MultiClusterService
- type MultiClusterServiceList
- type MultiClusterServiceSpec
- type ServiceLocation
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 ( // 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" // MultiClusterServiceNameAnnotation is the name of a MultiClusterService object. // This annotation will be added to the resource template and ResourceBinding MultiClusterServiceNameAnnotation = "multiclusterservice.karmada.io/name" // MultiClusterServiceNamespaceAnnotation is the namespace of a MultiClusterService object. // This annotation will be added to the resource template and ResourceBinding MultiClusterServiceNamespaceAnnotation = "multiclusterservice.karmada.io/namespace" )
const GroupName = "networking.karmada.io"
GroupName specifies the group name used to register the objects.
Variables ¶
var ( // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. SchemeBuilder runtime.SchemeBuilder // Deprecated: 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 ClusterSelector ¶ added in v1.9.0
type ClusterSelector struct { // Name is the name of the cluster to be selected. // +required Name string `json:"name,omitempty"` }
ClusterSelector specifies the cluster to be selected.
func (*ClusterSelector) DeepCopy ¶ added in v1.9.0
func (in *ClusterSelector) DeepCopy() *ClusterSelector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSelector.
func (*ClusterSelector) DeepCopyInto ¶ added in v1.9.0
func (in *ClusterSelector) DeepCopyInto(out *ClusterSelector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 MultiClusterIngressStatus `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 MultiClusterIngressStatus ¶ added in v1.9.0
type MultiClusterIngressStatus struct { networkingv1.IngressStatus `json:",inline"` // TrafficBlockClusters records the cluster name list that needs to perform traffic block. // When the cloud provider implements its multicluster-cloud-provider and refreshes // the service backend address to the LoadBalancer Service, it needs to filter out // the backend addresses in these clusters. // +optional TrafficBlockClusters []string `json:"trafficBlockClusters,omitempty"` // ServiceLocations records the locations of MulticlusterIngress's backend // Service resources. It will be set by the system controller. // +optional ServiceLocations []ServiceLocation `json:"serviceLocations,omitempty"` }
MultiClusterIngressStatus is the current state of the MultiClusterIngress.
func (*MultiClusterIngressStatus) DeepCopy ¶ added in v1.9.0
func (in *MultiClusterIngressStatus) DeepCopy() *MultiClusterIngressStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MultiClusterIngressStatus.
func (*MultiClusterIngressStatus) DeepCopyInto ¶ added in v1.9.0
func (in *MultiClusterIngressStatus) DeepCopyInto(out *MultiClusterIngressStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ProviderClusters/ConsumerClusters. // +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. // Deprecated: in favor of ProviderClusters/ConsumerClusters. // +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. // Deprecated: in favor of ProviderClusters/ConsumerClusters. // +optional ServiceConsumptionClusters []string `json:"serviceConsumptionClusters,omitempty"` // ProviderClusters specifies the clusters which will provide the service backend. // If leave it empty, we will collect the backend endpoints from all clusters and sync // them to the ConsumerClusters. // +optional ProviderClusters []ClusterSelector `json:"providerClusters,omitempty"` // ConsumerClusters specifies the clusters where the service will be exposed, for clients. // If leave it empty, the service will be exposed to all clusters. // +optional ConsumerClusters []ClusterSelector `json:"consumerClusters,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.
type ServiceLocation ¶ added in v1.9.0
type ServiceLocation struct { // name is the referenced service. The service must exist in // the same namespace as the MultiClusterService object. Name string `json:"name"` // Clusters records the cluster list where the Service is located. // +optional Clusters []string `json:"clusters,omitempty"` }
ServiceLocation records the locations of MulticlusterIngress's backend Service resources.
func (*ServiceLocation) DeepCopy ¶ added in v1.9.0
func (in *ServiceLocation) DeepCopy() *ServiceLocation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceLocation.
func (*ServiceLocation) DeepCopyInto ¶ added in v1.9.0
func (in *ServiceLocation) DeepCopyInto(out *ServiceLocation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.