v1alpha1

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2022 License: MIT Imports: 8 Imported by: 4

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the networking.fleet v1alpha1 API group. +kubebuilder:object:generate=true +groupName=networking.fleet.azure.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "networking.fleet.azure.com", 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
)

Functions

This section is empty.

Types

type ClusterID

type ClusterID string

ClusterID is the ID of a member cluster.

type ClusterNamespace

type ClusterNamespace string

ClusterNamespace is the namespace reserved for a specific member cluster in the hub cluster.

type ClusterStatus

type ClusterStatus struct {
	// cluster is the name of the exporting cluster. Must be a valid RFC-1123 DNS label.
	Cluster string `json:"cluster"`
}

ClusterStatus contains service configuration mapped to a specific source cluster.

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

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

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

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

type Endpoint

type Endpoint struct {
	// Addresses of the Endpoint.
	// Addresses should be interpreted per its owner EndpointSliceExport's addressType field. This field contains
	// at least one address and at maximum 100; for more information about this constraint,
	// see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#endpoint-v1beta1-discovery-k8s-io.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems:1
	// +kubebuilder:validation:MaxItems:100
	Addresses []string `json:"addresses"`
}

Endpoint includes all exported addresses from a logical backend.

func (*Endpoint) DeepCopy

func (in *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto

func (in *Endpoint) DeepCopyInto(out *Endpoint)

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

type EndpointSliceExport

type EndpointSliceExport struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +kubebuilder:validation:Required
	Spec EndpointSliceExportSpec `json:"spec"`
}

EndpointSliceExport is a data transport type that member clusters in the fleet use to upload the spec of an EndpointSlice to the hub cluster.

func (*EndpointSliceExport) DeepCopy

func (in *EndpointSliceExport) DeepCopy() *EndpointSliceExport

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

func (*EndpointSliceExport) DeepCopyInto

func (in *EndpointSliceExport) DeepCopyInto(out *EndpointSliceExport)

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

func (*EndpointSliceExport) DeepCopyObject

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

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

type EndpointSliceExportList

type EndpointSliceExportList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// +listType=set
	Items []EndpointSliceExport `json:"items"`
}

EndpointSliceExportList contains a list of EndpointSliceExports.

func (*EndpointSliceExportList) DeepCopy

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

func (*EndpointSliceExportList) DeepCopyInto

func (in *EndpointSliceExportList) DeepCopyInto(out *EndpointSliceExportList)

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

func (*EndpointSliceExportList) DeepCopyObject

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

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

type EndpointSliceExportSpec

type EndpointSliceExportSpec struct {
	// The type of addresses carried by this EndpointSliceExport.
	// At this stage only IPv4 addresses are supported.
	// +kubebuilder:validation:Enum:="IPv4"
	// +kubebuilder:default:="IPv4"
	AddressType discoveryv1.AddressType `json:"addressType"`
	// A list of unique endpoints in the exported EndpointSlice.
	// +kubebuilder:validation:Required
	// +listType=atomic
	Endpoints []Endpoint `json:"endpoints"`
	// The list of ports exported by each endpoint in this EndpointSliceExport. Each port must have a unique name.
	// When the field is empty, it indicates that there are no defined ports. When a port is defined with a nil
	// port value, it indicates that all ports are exported. Each slice may include a maximum of 100 ports.
	// +optional
	// +listType=atomic
	Ports []discoveryv1.EndpointPort `json:"ports"`
	// The reference to the source EndpointSlice.
	// +kubebuilder:validation:Required
	EndpointSliceReference ExportedObjectReference `json:"endpointSliceReference"`
	// The reference to the owner Service.
	// +kubebuilder:validation:Required
	OwnerServiceReference OwnerServiceReference `json:"ownerServiceReference"`
}

EndpointSliceExportSpec specifies the spec of an exported EndpointSlice.

func (*EndpointSliceExportSpec) DeepCopy

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

func (*EndpointSliceExportSpec) DeepCopyInto

func (in *EndpointSliceExportSpec) DeepCopyInto(out *EndpointSliceExportSpec)

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

type EndpointSliceImport

type EndpointSliceImport struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +kubebuilder:validation:Required
	Spec EndpointSliceExportSpec `json:"spec"`
}

EndpointSliceImport is a data transport type that hub cluster uses to distribute exported EndpointSlices to member clusters.

func (*EndpointSliceImport) DeepCopy

func (in *EndpointSliceImport) DeepCopy() *EndpointSliceImport

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

func (*EndpointSliceImport) DeepCopyInto

func (in *EndpointSliceImport) DeepCopyInto(out *EndpointSliceImport)

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

func (*EndpointSliceImport) DeepCopyObject

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

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

type EndpointSliceImportList

type EndpointSliceImportList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// +listType=set
	Items []EndpointSliceImport `json:"items"`
}

EndpointSliceImportList contains a list of EndpointSliceExports.

func (*EndpointSliceImportList) DeepCopy

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

func (*EndpointSliceImportList) DeepCopyInto

func (in *EndpointSliceImportList) DeepCopyInto(out *EndpointSliceImportList)

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

func (*EndpointSliceImportList) DeepCopyObject

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

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

type ExportedObjectReference

type ExportedObjectReference struct {
	// The ID of the cluster where the object is exported.
	// +kubebuilder:validation:Required
	ClusterID string `json:"clusterId"`
	// The API version of the referred object.
	// +optional
	APIVersion string `json:"apiVersion,omitempty"`
	// The kind of the referred object.
	// +kubebuilder:validation:Required
	Kind string `json:"kind"`
	// The namespace of the referred object.
	// +kubebuilder:validation:Required
	Namespace string `json:"namespace"`
	// The name of the referred object.
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// The resource version of the referred object.
	// +kubebuilder:validation:Required
	ResourceVersion string `json:"resourceVersion"`
	// The generation of the referred object.
	// +kubebuilder:validation:Required
	Generation int64 `json:"generation"`
	// The UID of the referred object.
	// +kubebuilder:validation:Required
	UID types.UID `json:"uid"`
	// The namespaced name of the referred object.
	// +kubebuilder:validation:Required
	NamespacedName string `json:"namespacedName"`
}

ExportedObjectReference helps operators identify the source of an exported object, e.g. an EndpointSliceExport. +structType=atomic

func FromMetaObjects

func FromMetaObjects(clusterID string, typeMeta metav1.TypeMeta, objMeta metav1.ObjectMeta) ExportedObjectReference

FromMetaObjects builds a new ExportedObjectReference using TypeMeta and ObjectMeta fields from an object.

func (*ExportedObjectReference) DeepCopy

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

func (*ExportedObjectReference) DeepCopyInto

func (in *ExportedObjectReference) DeepCopyInto(out *ExportedObjectReference)

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

func (*ExportedObjectReference) UpdateFromMetaObject

func (e *ExportedObjectReference) UpdateFromMetaObject(objMeta metav1.ObjectMeta)

UpdateFromMetaObject updates an existing ExportedObjectReference using ObjectMeta fields from the referenced object. Note that most fields in an ExportedObjectReference should be immutable after creation.

type InternalServiceExport

type InternalServiceExport struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +optional
	Spec InternalServiceExportSpec `json:"spec,omitempty"`
	// +optional
	Status InternalServiceExportStatus `json:"status,omitempty"`
}

InternalServiceExport is a data transport type that member clusters in the fleet use to upload the spec of exported Service to the hub cluster.

func (*InternalServiceExport) DeepCopy

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

func (*InternalServiceExport) DeepCopyInto

func (in *InternalServiceExport) DeepCopyInto(out *InternalServiceExport)

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

func (*InternalServiceExport) DeepCopyObject

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

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

type InternalServiceExportList

type InternalServiceExportList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// +listType=set
	Items []InternalServiceExport `json:"items"`
}

InternalServiceExportList contains a list of InternalServiceExports.

func (*InternalServiceExportList) DeepCopy

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

func (*InternalServiceExportList) DeepCopyInto

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

func (*InternalServiceExportList) DeepCopyObject

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

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

type InternalServiceExportSpec

type InternalServiceExportSpec struct {
	// A list of ports exposed by the exported Service.
	// +listType=atomic
	Ports []ServicePort `json:"ports"`
	// The reference to the source Service.
	// +kubebuilder:validation:Required
	ServiceReference ExportedObjectReference `json:"serviceReference"`
}

InternalServiceExportSpec specifies the spec of an exported Service; at this stage only the ports of an exported Service are sync'd.

func (*InternalServiceExportSpec) DeepCopy

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

func (*InternalServiceExportSpec) DeepCopyInto

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

type InternalServiceExportStatus

type InternalServiceExportStatus struct {
	// +optional
	// +patchStrategy=merge
	// +patchMergeKey=type
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

InternalServiceExportStatus contains the current status of an InternalServiceExport.

func (*InternalServiceExportStatus) DeepCopy

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

func (*InternalServiceExportStatus) DeepCopyInto

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

type InternalServiceImport

type InternalServiceImport struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +kubebuilder:validation:Required
	Spec InternalServiceImportSpec `json:"spec"`

	// status contains information about the exported services that form
	// the multi-cluster service referenced by this ServiceImport.
	// +optional
	Status ServiceImportStatus `json:"status,omitempty"`
}

InternalServiceImport is used by the MCS controller to import the Service to a single cluster manually, while ServiceImport is logical identifiers for a Service that exists in another cluster or that stretches across multiple clusters and it will be automatically created in the hub cluster when exporting service.

func (*InternalServiceImport) DeepCopy

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

func (*InternalServiceImport) DeepCopyInto

func (in *InternalServiceImport) DeepCopyInto(out *InternalServiceImport)

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

func (*InternalServiceImport) DeepCopyObject

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

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

type InternalServiceImportList

type InternalServiceImportList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// List of InternalServiceImport.
	// +listType=set
	Items []InternalServiceImport `json:"items"`
}

InternalServiceImportList represents a list of InternalServiceImport.

func (*InternalServiceImportList) DeepCopy

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

func (*InternalServiceImportList) DeepCopyInto

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

func (*InternalServiceImportList) DeepCopyObject

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

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

type InternalServiceImportSpec

type InternalServiceImportSpec struct {
	// The reference to the source ServiceImport.
	// +kubebuilder:validation:Required
	ServiceImportReference ExportedObjectReference `json:"serviceImportReference"`
}

InternalServiceImportSpec specifies the spec of InternalServiceImport.

func (*InternalServiceImportSpec) DeepCopy

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

func (*InternalServiceImportSpec) DeepCopyInto

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

type MultiClusterService

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

	Spec MultiClusterServiceSpec `json:"spec"`
	// +optional
	Status MultiClusterServiceStatus `json:"status,omitempty"`
}

MultiClusterService is the Schema for creating north-south L4 load balancer to consume services across clusters.

func (*MultiClusterService) DeepCopy

func (in *MultiClusterService) DeepCopy() *MultiClusterService

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

func (*MultiClusterService) DeepCopyInto

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

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

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

type MultiClusterServiceConditionType

type MultiClusterServiceConditionType string

MultiClusterServiceConditionType identifies a specific condition.

const (
	// MultiClusterServiceValid means that the ServiceImported referenced by this
	// multi-cluster service and its configurations have been recognized as valid by a mcs-controller.
	// This will be false if the ServiceImport is not found in the hub cluster.
	MultiClusterServiceValid MultiClusterServiceConditionType = "Valid"
)

type MultiClusterServiceList

type MultiClusterServiceList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// +listType=set
	Items []MultiClusterService `json:"items"`
}

MultiClusterServiceList contains a list of MultiClusterService.

func (*MultiClusterServiceList) DeepCopy

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

func (*MultiClusterServiceList) DeepCopyInto

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

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

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

type MultiClusterServiceSpec

type MultiClusterServiceSpec struct {
	// ServiceImport is the reference to the Service with the same name exported in the member clusters.
	ServiceImport ServiceImportRef `json:"serviceImport,omitempty"`
}

MultiClusterServiceSpec defines the desired state of MultiClusterService.

func (*MultiClusterServiceSpec) DeepCopy

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

func (*MultiClusterServiceSpec) DeepCopyInto

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

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

type MultiClusterServiceStatus

type MultiClusterServiceStatus struct {
	// LoadBalancerStatus represents the status of a load-balancer.
	// if one is present.
	// +optional
	LoadBalancer corev1.LoadBalancerStatus `json:"loadBalancer,omitempty"`

	// Current service state
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

MultiClusterServiceStatus represents the current status of a multi-cluster service.

func (*MultiClusterServiceStatus) DeepCopy

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

func (*MultiClusterServiceStatus) DeepCopyInto

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

type OwnerServiceReference

type OwnerServiceReference struct {
	// The namespace of the owner Service.
	// +kubebuilder:validation:Required
	Namespace string `json:"namespace"`
	// The name of the owner Service.
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// The namespaced name (key) of the owner Service.
	// +kubebuilder:validation:Required
	NamespacedName string `json:"namespacedName"`
}

OwnerServiceReference points to the Service that owns the exported EndpointSlice.

func (*OwnerServiceReference) DeepCopy

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

func (*OwnerServiceReference) DeepCopyInto

func (in *OwnerServiceReference) DeepCopyInto(out *OwnerServiceReference)

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

type ServiceExport

type ServiceExport struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// +optional
	Status ServiceExportStatus `json:"status,omitempty"`
}

ServiceExport declares that the associated service should be exported to other clusters.

func (*ServiceExport) DeepCopy

func (in *ServiceExport) DeepCopy() *ServiceExport

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

func (*ServiceExport) DeepCopyInto

func (in *ServiceExport) DeepCopyInto(out *ServiceExport)

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

func (*ServiceExport) DeepCopyObject

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

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

type ServiceExportConditionType

type ServiceExportConditionType string

ServiceExportConditionType identifies a specific condition on a ServiceExport.

const (
	// ServiceExportValid means that the service referenced by this service export has been recognized as valid.
	// This will be false if the service is found to be unexportable (e.g. ExternalName, not found).
	ServiceExportValid ServiceExportConditionType = "Valid"
	// ServiceExportConflict means that there is a conflict between two exports for the same Service.
	// When "True", the condition message should contain enough information to diagnose the conflict:
	// field(s) under contention, which cluster won, and why.
	// Users should not expect detailed per-cluster information in the conflict message.
	ServiceExportConflict ServiceExportConditionType = "Conflict"
)

type ServiceExportList

type ServiceExportList struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// +listType=set
	Items []ServiceExport `json:"items"`
}

ServiceExportList contains a list of ServiceExport.

func (*ServiceExportList) DeepCopy

func (in *ServiceExportList) DeepCopy() *ServiceExportList

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

func (*ServiceExportList) DeepCopyInto

func (in *ServiceExportList) DeepCopyInto(out *ServiceExportList)

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

func (*ServiceExportList) DeepCopyObject

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

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

type ServiceExportStatus

type ServiceExportStatus struct {
	// +optional
	// +patchStrategy=merge
	// +patchMergeKey=type
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

ServiceExportStatus contains the current status of an export.

func (*ServiceExportStatus) DeepCopy

func (in *ServiceExportStatus) DeepCopy() *ServiceExportStatus

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

func (*ServiceExportStatus) DeepCopyInto

func (in *ServiceExportStatus) DeepCopyInto(out *ServiceExportStatus)

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

type ServiceImport

type ServiceImport struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// status contains information about the exported services that form
	// the multi-cluster service referenced by this ServiceImport.
	// +optional
	Status ServiceImportStatus `json:"status,omitempty"`
}

ServiceImport describes a service imported from clusters in a ClusterSet.

func (*ServiceImport) DeepCopy

func (in *ServiceImport) DeepCopy() *ServiceImport

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

func (*ServiceImport) DeepCopyInto

func (in *ServiceImport) DeepCopyInto(out *ServiceImport)

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

func (*ServiceImport) DeepCopyObject

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

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

type ServiceImportList

type ServiceImportList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	// List of ServiceImport.
	// +listType=set
	Items []ServiceImport `json:"items"`
}

ServiceImportList contains a list of ServiceImport.

func (*ServiceImportList) DeepCopy

func (in *ServiceImportList) DeepCopy() *ServiceImportList

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

func (*ServiceImportList) DeepCopyInto

func (in *ServiceImportList) DeepCopyInto(out *ServiceImportList)

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

func (*ServiceImportList) DeepCopyObject

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

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

type ServiceImportRef

type ServiceImportRef struct {
	// Name is the name of the referent.
	//
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern=`^([a-z]([-a-z0-9]*[a-z0-9])?)$`
	// +required
	Name string `json:"name"`
}

ServiceImportRef is the reference to the ServiceImport. To consume multi-cluster service, users are expected to use ServiceImport. When mcs controller sees the MCS definition, the ServiceImport will be created in the importing cluster to represent the multi-cluster service.

func (*ServiceImportRef) DeepCopy

func (in *ServiceImportRef) DeepCopy() *ServiceImportRef

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

func (*ServiceImportRef) DeepCopyInto

func (in *ServiceImportRef) DeepCopyInto(out *ServiceImportRef)

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

type ServiceImportStatus

type ServiceImportStatus struct {
	// ip will be used as the VIP for this service when type is ClusterSetIP.
	// +kubebuilder:validation:MaxItems:=1
	// +optional
	IPs []string `json:"ips,omitempty"`
	// type defines the type of this service.
	// Must be ClusterSetIP or Headless.
	// +kubebuilder:validation:Enum=ClusterSetIP;Headless
	// +optional
	Type ServiceImportType `json:"type,omitempty"`
	// Supports "ClientIP" and "None". Used to maintain session affinity.
	// Enable client IP based session affinity.
	// Must be ClientIP or None.
	// Defaults to None.
	// Ignored when type is Headless
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
	// +optional
	SessionAffinity corev1.ServiceAffinity `json:"sessionAffinity,omitempty"`
	// sessionAffinityConfig contains session affinity configuration.
	// +optional
	SessionAffinityConfig *corev1.SessionAffinityConfig `json:"sessionAffinityConfig,omitempty"`

	// +listType=atomic
	// +optional
	Ports []ServicePort `json:"ports,omitempty"`

	// clusters is the list of exporting clusters from which this service was derived.
	// +optional
	// +patchStrategy=merge
	// +patchMergeKey=cluster
	// +listType=map
	// +listMapKey=cluster
	Clusters []ClusterStatus `json:"clusters,omitempty"`
}

ServiceImportStatus describes derived state of an imported service.

func (*ServiceImportStatus) DeepCopy

func (in *ServiceImportStatus) DeepCopy() *ServiceImportStatus

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

func (*ServiceImportStatus) DeepCopyInto

func (in *ServiceImportStatus) DeepCopyInto(out *ServiceImportStatus)

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

type ServiceImportType

type ServiceImportType string

ServiceImportType designates the type of a ServiceImport

const (
	// ClusterSetIP are only accessible via the ClusterSet IP.
	ClusterSetIP ServiceImportType = "ClusterSetIP"
	// Headless services allow backend pods to be addressed directly.
	Headless ServiceImportType = "Headless"
)

type ServiceInUseBy

type ServiceInUseBy struct {
	MemberClusters map[ClusterNamespace]ClusterID
}

ServiceInUseBy describes the member clusters that have requested to import a Service from the hub cluster. This object is not provided directly as a part of fleet networking API, but provided as a contract for marshaling/unmarshaling ServiceImport annotations, specifically for

  • the InternalServiceImport controller to annotate on a ServiceImport which member clusters have requested to import the Service; and
  • the EndpointSliceExport controller to find out from annotations on a ServiceImport which member clusters have requested to import the Service.

func (*ServiceInUseBy) DeepCopy

func (in *ServiceInUseBy) DeepCopy() *ServiceInUseBy

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

func (*ServiceInUseBy) DeepCopyInto

func (in *ServiceInUseBy) DeepCopyInto(out *ServiceInUseBy)

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

type ServicePort

type ServicePort struct {
	// The name of this port within the service. This must be a DNS_LABEL.
	// All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service,
	// this must match the 'name' field in the EndpointPort.
	// Optional if only one ServicePort is defined on this service.
	// +optional
	Name string `json:"name,omitempty"`

	// The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
	// Default is TCP.
	// +kubebuilder:validation:Enum:=TCP;UDP;SCTP
	Protocol corev1.Protocol `json:"protocol,omitempty"`

	// The application protocol for this port.
	// This field follows standard Kubernetes label syntax.
	// Un-prefixed names are reserved for IANA standard service names (as per
	// RFC-6335 and http://www.iana.org/assignments/service-names).
	// Non-standard protocols should use prefixed names such as
	// mycompany.com/my-custom-protocol.
	// Field can be enabled with ServiceAppProtocol feature gate.
	// +optional
	AppProtocol *string `json:"appProtocol,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// The port that will be exposed by this service.
	Port int32 `json:"port"`

	// The port to access on the pods targeted by the service.
	// +optional
	TargetPort intstr.IntOrString `json:"targetPort,omitempty"`
}

ServicePort represents the port on which the service is exposed.

func (*ServicePort) DeepCopy

func (in *ServicePort) DeepCopy() *ServicePort

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

func (*ServicePort) DeepCopyInto

func (in *ServicePort) DeepCopyInto(out *ServicePort)

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

func (*ServicePort) ToServicePort

func (in *ServicePort) ToServicePort() corev1.ServicePort

ToServicePort converts ServicePort to a K8 ServicePort.

Jump to

Keyboard shortcuts

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