v1alpha1

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2024 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Overview

+groupName=kubelb.k8c.io

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

Index

Constants

View Source
const (
	// DefaultAddressName is the default name for the Addresses object.
	DefaultAddressName = "default"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "kubelb.k8c.io", 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
)
View Source
var PropagateAnnotation = "kubelb.k8c.io/propagate-annotation"

PropagateAnnotation controls the annotations propagation. It is possible to provide optional list of comma separated values after '=', other annotations not reppresented by any key or not matching the optional values are dropped. To configure multiple different annotations, you can provide unique suffix e.g. "kubelb.k8c.io/propagate-annotation-1"

View Source
var SchemeGroupVersion = GroupVersion

SchemeGroupVersion is group version used to register these objects.

Functions

func Resource

func Resource(resource string) schema.GroupResource

Types

type Addresses

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

	Spec   AddressesSpec   `json:"spec,omitempty"`
	Status AddressesStatus `json:"status,omitempty"`
}

Addresses is the Schema for the addresses API

func (*Addresses) DeepCopy

func (in *Addresses) DeepCopy() *Addresses

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

func (*Addresses) DeepCopyInto

func (in *Addresses) DeepCopyInto(out *Addresses)

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

func (*Addresses) DeepCopyObject

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

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

type AddressesList

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

AddressesList contains a list of Addresses

func (*AddressesList) DeepCopy

func (in *AddressesList) DeepCopy() *AddressesList

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

func (*AddressesList) DeepCopyInto

func (in *AddressesList) DeepCopyInto(out *AddressesList)

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

func (*AddressesList) DeepCopyObject

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

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

type AddressesSpec

type AddressesSpec struct {
	// Addresses contains a list of addresses.
	// +kubebuilder:validation:MinItems:=1
	Addresses []EndpointAddress `json:"addresses,omitempty" protobuf:"bytes,1,rep,name=addresses"`
}

AddressesSpec defines the desired state of Addresses

func (*AddressesSpec) DeepCopy

func (in *AddressesSpec) DeepCopy() *AddressesSpec

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

func (*AddressesSpec) DeepCopyInto

func (in *AddressesSpec) DeepCopyInto(out *AddressesSpec)

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

type AddressesStatus

type AddressesStatus struct {
}

AddressesStatus defines the observed state of Addresses

func (*AddressesStatus) DeepCopy

func (in *AddressesStatus) DeepCopy() *AddressesStatus

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

func (*AddressesStatus) DeepCopyInto

func (in *AddressesStatus) DeepCopyInto(out *AddressesStatus)

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

type AnnotationSettings

type AnnotationSettings struct {
	// PropagatedAnnotations defines the list of annotations(key-value pairs) that will be propagated to the LoadBalancer service. Keep the `value` field empty in the key-value pair to allow any value.
	// This will have a higher precedence than the annotations specified at the Config level.
	// +optional
	PropagatedAnnotations *map[string]string `json:"propagatedAnnotations,omitempty"`

	// PropagateAllAnnotations defines whether all annotations will be propagated to the LoadBalancer service. If set to true, PropagatedAnnotations will be ignored.
	// This will have a higher precedence than the value specified at the Config level.
	// +optional
	PropagateAllAnnotations *bool `json:"propagateAllAnnotations,omitempty"`
}

func (*AnnotationSettings) DeepCopy

func (in *AnnotationSettings) DeepCopy() *AnnotationSettings

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

func (*AnnotationSettings) DeepCopyInto

func (in *AnnotationSettings) DeepCopyInto(out *AnnotationSettings)

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

type ConditionType

type ConditionType string
const (
	ConditionResourceAppliedSuccessfully ConditionType = "ResourceAppliedSuccessfully"
)

func (ConditionType) String

func (t ConditionType) String() string

type Config

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

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

Config is the object that represents the Config for the KubeLB management controller.

func (*Config) DeepCopy

func (in *Config) DeepCopy() *Config

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

func (*Config) DeepCopyInto

func (in *Config) DeepCopyInto(out *Config)

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

func (*Config) DeepCopyObject

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

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

func (*Config) GetEnvoyProxyTopology

func (c *Config) GetEnvoyProxyTopology() EnvoyProxyTopology

func (*Config) IsGlobalTopology

func (c *Config) IsGlobalTopology() bool

type ConfigList

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

ConfigList contains a list of Config

func (*ConfigList) DeepCopy

func (in *ConfigList) DeepCopy() *ConfigList

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

func (*ConfigList) DeepCopyInto

func (in *ConfigList) DeepCopyInto(out *ConfigList)

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

func (*ConfigList) DeepCopyObject

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

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

type ConfigSpec

type ConfigSpec struct {
	AnnotationSettings `json:",inline"`

	// EnvoyProxy defines the desired state of the Envoy Proxy
	EnvoyProxy EnvoyProxy `json:"envoyProxy,omitempty"`

	LoadBalancer LoadBalancerSettings `json:"loadBalancer,omitempty"`
	Ingress      IngressSettings      `json:"ingress,omitempty"`
	GatewayAPI   GatewayAPISettings   `json:"gatewayAPI,omitempty"`
}

ConfigSpec defines the desired state of the Config

func (*ConfigSpec) DeepCopy

func (in *ConfigSpec) DeepCopy() *ConfigSpec

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

func (*ConfigSpec) DeepCopyInto

func (in *ConfigSpec) DeepCopyInto(out *ConfigSpec)

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

type EndpointAddress

type EndpointAddress struct {
	// The IP of this endpoint.
	// May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
	// or link-local multicast ((224.0.0.0/24).
	// +kubebuilder:validation:MinLength=7
	IP string `json:"ip" protobuf:"bytes,1,opt,name=ip"`
	// The Hostname of this endpoint
	// +optional
	Hostname string `json:"hostname,omitempty" protobuf:"bytes,3,opt,name=hostname"`
}

EndpointAddress is a tuple that describes single IP address.

func (*EndpointAddress) DeepCopy

func (in *EndpointAddress) DeepCopy() *EndpointAddress

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

func (*EndpointAddress) DeepCopyInto

func (in *EndpointAddress) DeepCopyInto(out *EndpointAddress)

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

type EndpointPort

type EndpointPort struct {
	// The name of this port.  This must match the 'name' field in the
	// corresponding ServicePort.
	// Must be a DNS_LABEL.
	// Optional only if one port is defined.
	// +optional
	Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`

	// The port number of the endpoint.
	Port int32 `json:"port" protobuf:"varint,2,opt,name=port"`

	// The IP protocol for this port. Defaults to "TCP".
	// +kubebuilder:validation:Enum=TCP;UDP
	Protocol corev1.Protocol `json:"protocol,omitempty" protobuf:"bytes,3,opt,name=protocol,casttype=Protocol"`
}

EndpointPort is a tuple that describes a single port.

func (*EndpointPort) DeepCopy

func (in *EndpointPort) DeepCopy() *EndpointPort

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

func (*EndpointPort) DeepCopyInto

func (in *EndpointPort) DeepCopyInto(out *EndpointPort)

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

type EnvoyProxy

type EnvoyProxy struct {

	// Topology defines the deployment topology for Envoy Proxy. Valid values are: shared and global.
	// DEPRECATION NOTICE: The value "dedicated" is deprecated and will be removed in a future release. Dedicated topology will now default to shared topology.
	// +optional
	Topology EnvoyProxyTopology `json:"topology,omitempty"`

	// UseDaemonset defines whether Envoy Proxy will run as daemonset. By default, Envoy Proxy will run as deployment.
	// If set to true, Replicas will be ignored.
	// +optional
	UseDaemonset bool `json:"useDaemonset,omitempty"`

	// Replicas defines the number of replicas for Envoy Proxy. This field is ignored if UseDaemonset is set to true.
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default=3
	// +optional
	Replicas int32 `json:"replicas,omitempty"`

	// SinglePodPerNode defines whether Envoy Proxy pods will be spread across nodes. This ensures that multiple replicas are not running on the same node.
	// +optional
	SinglePodPerNode bool `json:"singlePodPerNode,omitempty"`

	// NodeSelector is used to select nodes to run Envoy Proxy. If specified, the node must have all the indicated labels.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Tolerations is used to schedule Envoy Proxy pods on nodes with matching taints.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Resources defines the resource requirements for Envoy Proxy.
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// Affinity is used to schedule Envoy Proxy pods on nodes with matching affinity.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
}

EnvoyProxy defines the desired state of the EnvoyProxy

func (*EnvoyProxy) DeepCopy

func (in *EnvoyProxy) DeepCopy() *EnvoyProxy

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

func (*EnvoyProxy) DeepCopyInto

func (in *EnvoyProxy) DeepCopyInto(out *EnvoyProxy)

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

type EnvoyProxyTopology

type EnvoyProxyTopology string
const (
	EnvoyProxyTopologyShared    EnvoyProxyTopology = "shared"
	EnvoyProxyTopologyDedicated EnvoyProxyTopology = "dedicated"
	EnvoyProxyTopologyGlobal    EnvoyProxyTopology = "global"
)

type GatewayAPISettings

type GatewayAPISettings struct {
	// Class is the class of the gateway API to use. This can be used to specify a specific gateway API implementation.
	// This has higher precedence than the value specified in the Config.
	// +optional
	Class *string `json:"class,omitempty"`

	// Disable is a flag that can be used to disable Gateway API for a tenant.
	Disable bool `json:"disable,omitempty"`
}

GatewayAPISettings defines the settings for the gateway API.

func (*GatewayAPISettings) DeepCopy

func (in *GatewayAPISettings) DeepCopy() *GatewayAPISettings

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

func (*GatewayAPISettings) DeepCopyInto

func (in *GatewayAPISettings) DeepCopyInto(out *GatewayAPISettings)

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

type IngressSettings

type IngressSettings struct {
	// Class is the class of the ingress to use.
	// This has higher precedence than the value specified in the Config.
	// +optional
	Class *string `json:"class,omitempty"`

	// Disable is a flag that can be used to disable Ingress for a tenant.
	Disable bool `json:"disable,omitempty"`
}

IngressSettings defines the settings for the ingress.

func (*IngressSettings) DeepCopy

func (in *IngressSettings) DeepCopy() *IngressSettings

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

func (*IngressSettings) DeepCopyInto

func (in *IngressSettings) DeepCopyInto(out *IngressSettings)

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

type KubernetesSource

type KubernetesSource struct {

	// +optional
	// +kubebuilder:validation:EmbeddedResource
	// +kubebuilder:pruning:PreserveUnknownFields
	Route unstructured.Unstructured `json:"resource,omitempty"`

	// Services contains the list of services that are used as the source for the Route.
	// +kubebuilder:pruning:PreserveUnknownFields
	Services []UpstreamService `json:"services,omitempty"`
}

func (*KubernetesSource) DeepCopy

func (in *KubernetesSource) DeepCopy() *KubernetesSource

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

func (*KubernetesSource) DeepCopyInto

func (in *KubernetesSource) DeepCopyInto(out *KubernetesSource)

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

type LoadBalancer

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

	Spec   LoadBalancerSpec   `json:"spec,omitempty"`
	Status LoadBalancerStatus `json:"status,omitempty"`
}

LoadBalancer is the Schema for the loadbalancers API

func (*LoadBalancer) DeepCopy

func (in *LoadBalancer) DeepCopy() *LoadBalancer

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

func (*LoadBalancer) DeepCopyInto

func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)

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

func (*LoadBalancer) DeepCopyObject

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

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

type LoadBalancerEndpoints

type LoadBalancerEndpoints struct {
	// Name is the name of the endpoints.
	Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`

	// IP addresses which offer the related ports that are marked as ready. These endpoints
	// should be considered safe for load balancers and clients to utilize.
	// +kubebuilder:validation:MinItems:=1
	Addresses []EndpointAddress `json:"addresses,omitempty" protobuf:"bytes,1,rep,name=addresses"`

	// AddressesReference is a reference to the Addresses object that contains the IP addresses.
	// If this field is set, the Addresses field will be ignored.
	// +optional
	AddressesReference *corev1.ObjectReference `json:"addressesReference,omitempty" protobuf:"bytes,2,opt,name=addressesReference"`

	// Port numbers available on the related IP addresses.
	// This field is ignored for routes that are using kubernetes resources as the source.
	// +optional
	// +kubebuilder:validation:MinItems=1
	Ports []EndpointPort `json:"ports,omitempty" protobuf:"bytes,3,rep,name=ports"`
}

LoadBalancerEndpoints is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:

{
  Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
  Ports:     [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
}

The resulting set of endpoints can be viewed as:

a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],
b: [ 10.10.1.1:309, 10.10.2.2:309 ]

func (*LoadBalancerEndpoints) DeepCopy

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

func (*LoadBalancerEndpoints) DeepCopyInto

func (in *LoadBalancerEndpoints) DeepCopyInto(out *LoadBalancerEndpoints)

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

type LoadBalancerList

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

LoadBalancerList contains a list of LoadBalancer

func (*LoadBalancerList) DeepCopy

func (in *LoadBalancerList) DeepCopy() *LoadBalancerList

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

func (*LoadBalancerList) DeepCopyInto

func (in *LoadBalancerList) DeepCopyInto(out *LoadBalancerList)

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

func (*LoadBalancerList) DeepCopyObject

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

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

type LoadBalancerPort

type LoadBalancerPort struct {
	// The name of this port within the service. This must be a DNS_LABEL.
	// All ports within a Spec 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" protobuf:"bytes,1,opt,name=name"`

	// The IP protocol for this port. Defaults to "TCP".
	// +kubebuilder:validation:Enum=TCP;UDP
	Protocol corev1.Protocol `json:"protocol,omitempty" protobuf:"bytes,2,opt,name=protocol,casttype=Protocol"`

	// The port that will be exposed by the LoadBalancer.
	Port int32 `json:"port" protobuf:"varint,3,opt,name=port"`
}

LoadBalancerPort contains information on service's port.

func (*LoadBalancerPort) DeepCopy

func (in *LoadBalancerPort) DeepCopy() *LoadBalancerPort

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

func (*LoadBalancerPort) DeepCopyInto

func (in *LoadBalancerPort) DeepCopyInto(out *LoadBalancerPort)

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

type LoadBalancerSettings

type LoadBalancerSettings struct {
	// Class is the class of the load balancer to use.
	// This has higher precedence than the value specified in the Config.
	// +optional
	Class *string `json:"class,omitempty"`

	// Disable is a flag that can be used to disable L4 load balancing for a tenant.
	Disable bool `json:"disable,omitempty"`
}

LoadBalancerSettings defines the settings for the load balancers.

func (*LoadBalancerSettings) DeepCopy

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

func (*LoadBalancerSettings) DeepCopyInto

func (in *LoadBalancerSettings) DeepCopyInto(out *LoadBalancerSettings)

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

type LoadBalancerSpec

type LoadBalancerSpec struct {

	// Sets of addresses and ports that comprise an exposed user service on a cluster.
	// +required
	// +kubebuilder:validation:MinItems=1
	Endpoints []LoadBalancerEndpoints `json:"endpoints,omitempty"`

	// The list of ports that are exposed by the load balancer service.
	// only needed for layer 4
	// +optional
	Ports []LoadBalancerPort `json:"ports,omitempty"`

	// type determines how the Service is exposed. Defaults to ClusterIP. Valid
	// options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
	// "ExternalName" maps to the specified externalName.
	// "ClusterIP" allocates a cluster-internal IP address for load-balancing to
	// endpoints. Endpoints are determined by the selector or if that is not
	// specified, by manual construction of an Endpoints object. If clusterIP is
	// "None", no virtual IP is allocated and the endpoints are published as a
	// set of endpoints rather than a stable IP.
	// "NodePort" builds on ClusterIP and allocates a port on every node which
	// routes to the clusterIP.
	// "LoadBalancer" builds on NodePort and creates an
	// external load-balancer (if supported in the current cloud) which routes
	// to the clusterIP.
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
	// +optional
	// +kubebuilder:default=ClusterIP
	Type corev1.ServiceType `json:"type,omitempty" protobuf:"bytes,4,opt,name=type,casttype=ServiceType"`
}

LoadBalancerSpec defines the desired state of LoadBalancer

func (*LoadBalancerSpec) DeepCopy

func (in *LoadBalancerSpec) DeepCopy() *LoadBalancerSpec

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

func (*LoadBalancerSpec) DeepCopyInto

func (in *LoadBalancerSpec) DeepCopyInto(out *LoadBalancerSpec)

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

type LoadBalancerStatus

type LoadBalancerStatus struct {
	// LoadBalancer contains the current status of the load-balancer,
	// if one is present.
	// +optional
	LoadBalancer corev1.LoadBalancerStatus `json:"loadBalancer,omitempty" protobuf:"bytes,1,opt,name=loadBalancer"`

	// Service contains the current status of the LB service.
	// +optional
	Service ServiceStatus `json:"service,omitempty" protobuf:"bytes,2,opt,name=service"`
}

LoadBalancerStatus defines the observed state of LoadBalancer

func (*LoadBalancerStatus) DeepCopy

func (in *LoadBalancerStatus) DeepCopy() *LoadBalancerStatus

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

func (*LoadBalancerStatus) DeepCopyInto

func (in *LoadBalancerStatus) DeepCopyInto(out *LoadBalancerStatus)

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

type ResourceState

type ResourceState struct {
	// APIVersion is the API version of the resource.
	APIVersion string `json:"apiVersion,omitempty"`

	// Kind is the kind of the resource.
	Kind string `json:"kind,omitempty"`

	// Name is the name of the resource.
	Name string `json:"name,omitempty"`

	// Namespace is the namespace of the resource.
	Namespace string `json:"namespace,omitempty"`

	// GeneratedName is the generated name of the resource.
	GeneratedName string `json:"generatedName,omitempty"`

	// Status is the actual status of the resource.
	Status runtime.RawExtension `json:"status,omitempty"`

	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

func (*ResourceState) DeepCopy

func (in *ResourceState) DeepCopy() *ResourceState

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

func (*ResourceState) DeepCopyInto

func (in *ResourceState) DeepCopyInto(out *ResourceState)

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

type Route

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

	Spec   RouteSpec   `json:"spec,omitempty"`
	Status RouteStatus `json:"status,omitempty"`
}

Route is the object that represents a route in the cluster.

func (*Route) DeepCopy

func (in *Route) DeepCopy() *Route

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

func (*Route) DeepCopyInto

func (in *Route) DeepCopyInto(out *Route)

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

func (*Route) DeepCopyObject

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

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

type RouteList

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

RouteList contains a list of Routes

func (*RouteList) DeepCopy

func (in *RouteList) DeepCopy() *RouteList

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

func (*RouteList) DeepCopyInto

func (in *RouteList) DeepCopyInto(out *RouteList)

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

func (*RouteList) DeepCopyObject

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

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

type RouteResourcesStatus

type RouteResourcesStatus struct {
	Source string `json:"source,omitempty"`

	Services map[string]RouteServiceStatus `json:"services,omitempty"`

	Route ResourceState `json:"route,omitempty"`
}

func (*RouteResourcesStatus) DeepCopy

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

func (*RouteResourcesStatus) DeepCopyInto

func (in *RouteResourcesStatus) DeepCopyInto(out *RouteResourcesStatus)

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

type RouteServiceStatus

type RouteServiceStatus struct {
	ResourceState `json:",inline"`
	Ports         []corev1.ServicePort `json:"ports,omitempty"`
}

func (*RouteServiceStatus) DeepCopy

func (in *RouteServiceStatus) DeepCopy() *RouteServiceStatus

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

func (*RouteServiceStatus) DeepCopyInto

func (in *RouteServiceStatus) DeepCopyInto(out *RouteServiceStatus)

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

type RouteSource

type RouteSource struct {
	// Kubernetes contains the information about the Kubernetes source.
	// This field is automatically populated by the KubeLB CCM and in most cases, users should not set this field manually.
	Kubernetes *KubernetesSource `json:"kubernetes,omitempty"`
}

func (*RouteSource) DeepCopy

func (in *RouteSource) DeepCopy() *RouteSource

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

func (*RouteSource) DeepCopyInto

func (in *RouteSource) DeepCopyInto(out *RouteSource)

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

type RouteSpec

type RouteSpec struct {
	// Sets of addresses and ports that comprise an exposed user service on a cluster.
	// +required
	// +kubebuilder:validation:MinItems=1
	Endpoints []LoadBalancerEndpoints `json:"endpoints,omitempty"`

	// Source contains the information about the source of the route. This is used when the route is created from external sources.
	// +optional
	Source RouteSource `json:"source,omitempty"`
}

RouteSpec defines the desired state of the Route.

func (*RouteSpec) DeepCopy

func (in *RouteSpec) DeepCopy() *RouteSpec

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

func (*RouteSpec) DeepCopyInto

func (in *RouteSpec) DeepCopyInto(out *RouteSpec)

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

type RouteStatus

type RouteStatus struct {
	// Resources contains the list of resources that are created/processed as a result of the Route.
	Resources RouteResourcesStatus `json:"resources,omitempty"`
}

RouteStatus defines the observed state of the Route.

func (*RouteStatus) DeepCopy

func (in *RouteStatus) DeepCopy() *RouteStatus

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

func (*RouteStatus) DeepCopyInto

func (in *RouteStatus) DeepCopyInto(out *RouteStatus)

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

type ServicePort

type ServicePort struct {
	corev1.ServicePort `json:",inline"`
	UpstreamTargetPort int32 `json:"upstreamTargetPort" protobuf:"bytes,4,opt,name=port"`
}

ServicePort contains information on service's port.

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 ServiceStatus

type ServiceStatus struct {
	Ports []ServicePort `json:"ports,omitempty" protobuf:"bytes,1,rep,name=ports"`
}

func (*ServiceStatus) DeepCopy

func (in *ServiceStatus) DeepCopy() *ServiceStatus

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

func (*ServiceStatus) DeepCopyInto

func (in *ServiceStatus) DeepCopyInto(out *ServiceStatus)

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

type SyncSecret

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

	// +optional
	Immutable *bool `json:"immutable,omitempty" protobuf:"varint,5,opt,name=immutable"`
	// +optional
	Data map[string][]byte `json:"data,omitempty" protobuf:"bytes,2,rep,name=data"`

	// +k8s:conversion-gen=false
	// +optional
	StringData map[string]string `json:"stringData,omitempty" protobuf:"bytes,4,rep,name=stringData"`

	// +optional
	Type corev1.SecretType `json:"type,omitempty" protobuf:"bytes,3,opt,name=type,casttype=SecretType"`
}

SyncSecret is a wrapper over Kubernetes Secret object. This is used to sync secrets from tenants to the LB cluster in a controlled and secure way.

func (*SyncSecret) DeepCopy

func (in *SyncSecret) DeepCopy() *SyncSecret

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

func (*SyncSecret) DeepCopyInto

func (in *SyncSecret) DeepCopyInto(out *SyncSecret)

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

func (*SyncSecret) DeepCopyObject

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

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

type SyncSecretList

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

SyncSecretList contains a list of SyncSecrets

func (*SyncSecretList) DeepCopy

func (in *SyncSecretList) DeepCopy() *SyncSecretList

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

func (*SyncSecretList) DeepCopyInto

func (in *SyncSecretList) DeepCopyInto(out *SyncSecretList)

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

func (*SyncSecretList) DeepCopyObject

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

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

type Tenant

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

	Spec   TenantSpec   `json:"spec,omitempty"`
	Status TenantStatus `json:"status,omitempty"`
}

Tenant is the Schema for the tenants API

func (*Tenant) DeepCopy

func (in *Tenant) DeepCopy() *Tenant

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

func (*Tenant) DeepCopyInto

func (in *Tenant) DeepCopyInto(out *Tenant)

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

func (*Tenant) DeepCopyObject

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

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

type TenantList

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

TenantList contains a list of Tenant

func (*TenantList) DeepCopy

func (in *TenantList) DeepCopy() *TenantList

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

func (*TenantList) DeepCopyInto

func (in *TenantList) DeepCopyInto(out *TenantList)

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

func (*TenantList) DeepCopyObject

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

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

type TenantSpec

type TenantSpec struct {
	AnnotationSettings `json:",inline"`

	LoadBalancer LoadBalancerSettings `json:"loadBalancer,omitempty"`
	Ingress      IngressSettings      `json:"ingress,omitempty"`
	GatewayAPI   GatewayAPISettings   `json:"gatewayAPI,omitempty"`
}

TenantSpec defines the desired state of Tenant

func (*TenantSpec) DeepCopy

func (in *TenantSpec) DeepCopy() *TenantSpec

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

func (*TenantSpec) DeepCopyInto

func (in *TenantSpec) DeepCopyInto(out *TenantSpec)

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

type TenantStatus

type TenantStatus struct {
}

TenantStatus defines the observed state of Tenant

func (*TenantStatus) DeepCopy

func (in *TenantStatus) DeepCopy() *TenantStatus

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

func (*TenantStatus) DeepCopyInto

func (in *TenantStatus) DeepCopyInto(out *TenantStatus)

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

type UpstreamReferenceGrant

type UpstreamReferenceGrant struct {
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:EmbeddedResource
	gwapiv1alpha2.ReferenceGrant `json:",inline"`
}

UpstreamReferenceGrant is a wrapper over the sigs.k8s.io/gateway-api/apis/v1alpha2.ReferenceGrant object. This is required as kubebuilder:validation:EmbeddedResource marker adds the x-kubernetes-embedded-resource to the array instead of the elements within it. Which results in a broken CRD; validation error. Without this marker, the embedded resource is not properly serialized to the CRD.

func ConvertReferenceGrantsToUpstreamReferenceGrants

func ConvertReferenceGrantsToUpstreamReferenceGrants(referenceGrants []gwapiv1alpha2.ReferenceGrant) []UpstreamReferenceGrant

func (*UpstreamReferenceGrant) DeepCopy

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

func (*UpstreamReferenceGrant) DeepCopyInto

func (in *UpstreamReferenceGrant) DeepCopyInto(out *UpstreamReferenceGrant)

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

type UpstreamService

type UpstreamService struct {
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:EmbeddedResource
	corev1.Service `json:",inline"`
}

UpstreamService is a wrapper over the corev1.Service object. This is required as kubebuilder:validation:EmbeddedResource marker adds the x-kubernetes-embedded-resource to the array instead of the elements within it. Which results in a broken CRD; validation error. Without this marker, the embedded resource is not properly serialized to the CRD.

func ConvertServicesToUpstreamServices

func ConvertServicesToUpstreamServices(services []corev1.Service) []UpstreamService

func (*UpstreamService) DeepCopy

func (in *UpstreamService) DeepCopy() *UpstreamService

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

func (*UpstreamService) DeepCopyInto

func (in *UpstreamService) DeepCopyInto(out *UpstreamService)

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

Jump to

Keyboard shortcuts

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