v1alpha1

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the dns v1alpha1 API group +kubebuilder:object:generate:=true +groupName=dns.fabedge.io

Index

Constants

This section is empty.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "dns.fabedge.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type Endpoint

type Endpoint struct {
	// addresses of this endpoint. The contents of this field are interpreted
	// according to the corresponding EndpointSlice addressType field. Consumers
	// must handle different types of addresses in the context of their own
	// capabilities. This must contain at least one address but no more than
	// 100.
	// +listType=set
	Addresses []string `json:"addresses"`
	// hostname of this endpoint. This field may be used by consumers of
	// endpoints to distinguish endpoints from each other (e.g. in DNS names).
	// Multiple endpoints which use the same hostname should be considered
	// fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS
	// Label (RFC 1123) validation.
	// +optional
	Hostname *string `json:"hostname,omitempty"`
	// targetRef is a reference to a Kubernetes object that represents this
	// endpoint.
	// +optional
	TargetRef *corev1.ObjectReference `json:"targetRef,omitempty"`

	// Cluster indicates the cluster where an endpoint is located
	Cluster string `json:"cluster,omitempty"`
	// Zone indicates the zone where the endpoint is located
	Zone string `json:"zone,omitempty"`
	// Region indicates the region where the endpoint is located
	Region string `json:"region,omitempty"`
}

Endpoint represents a single logical "backend" implementing a service.

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 GlobalService

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

	Spec GlobalServiceSpec `json:"spec,omitempty"`
}

GlobalService is used to represent a service which can be accessed through multi-clusters A global services' endpoints can be services if its type is ClusterIP or pods if its type is Headless +genclient +kubebuilder:object:root=true +kubebuilder:printcolumn:name="Type",type="string",JSONPath=".spec.type",description="The type of global service" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="How long a global service is created"

func (*GlobalService) DeepCopy

func (in *GlobalService) DeepCopy() *GlobalService

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

func (*GlobalService) DeepCopyInto

func (in *GlobalService) DeepCopyInto(out *GlobalService)

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

func (*GlobalService) DeepCopyObject

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

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

type GlobalServiceList

type GlobalServiceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []GlobalService `json:"items,omitempty"`
}

GlobalServiceList contains a list of global services +kubebuilder:object:root=true

func (*GlobalServiceList) DeepCopy

func (in *GlobalServiceList) DeepCopy() *GlobalServiceList

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

func (*GlobalServiceList) DeepCopyInto

func (in *GlobalServiceList) DeepCopyInto(out *GlobalServiceList)

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

func (*GlobalServiceList) DeepCopyObject

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

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

type GlobalServiceSpec

type GlobalServiceSpec struct {
	// Type represents the type of services which are the backends of a global service
	// Must be ClusterIP or Headless
	// +kubebuilder:validation:Enum=ClusterIP;Headless
	Type ServiceType `json:"type,omitempty"`

	Ports []ServicePort `json:"ports,omitempty"`

	Endpoints []Endpoint `json:"endpoints,omitempty"`
}

GlobalServiceSpec describes global service and the information necessary to consume it.

func (*GlobalServiceSpec) DeepCopy

func (in *GlobalServiceSpec) DeepCopy() *GlobalServiceSpec

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

func (*GlobalServiceSpec) DeepCopyInto

func (in *GlobalServiceSpec) DeepCopyInto(out *GlobalServiceSpec)

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.
	// +optional
	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"`

	// The port that will be exposed by this service.
	Port int32 `json:"port,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.

type ServiceType

type ServiceType string
const (
	ClusterIP ServiceType = "ClusterIP"
	Headless  ServiceType = "Headless"
)

Jump to

Keyboard shortcuts

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