v1alpha1

package
v0.2.9 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2024 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"`
	// The timestamp from a local clock when the generation of the object is exported.
	// This field is marked as optional for backwards compatibility reasons.
	// +kubebuilder:validation:Optional
	ExportedSince metav1.Time `json:"exportedSince,omitempty"`
}

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, exportedSince metav1.Time) 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, exportedSince metav1.Time)

UpdateFromMetaObject updates an existing ExportedObjectReference. 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