KubeLB Community Edition CRD References

Packages

kubelb.k8c.io/v1alpha1

Package v1alpha1 contains API Schema definitions for the kubelb.k8c.io v1alpha1 API group

Resource Types

Config

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

Appears in:

Field Description
apiVersion string kubelb.k8c.io/v1alpha1
kind string Config
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ConfigSpec

Back to top

ConfigList

ConfigList contains a list of Config

Field Description
apiVersion string kubelb.k8c.io/v1alpha1
kind string ConfigList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items Config array

Back to top

ConfigSpec

ConfigSpec defines the desired state of the Config

Appears in:

Field Description
envoyProxy EnvoyProxy EnvoyProxy defines the desired state of the Envoy Proxy
propagatedAnnotations object (keys:string, values:string) PropagatedAnnotations defines the list of annotations(key-value pairs) that will be propagated to the LoadBalancer service. Keep the value empty to allow any value. Annotations specified at the namespace level will have a higher precedence than the annotations specified at the Config level.
propagateAllAnnotations boolean PropagateAllAnnotations defines whether all annotations will be propagated to the LoadBalancer service. If set to true, PropagatedAnnotations will be ignored.

Back to top

EndpointAddress

EndpointAddress is a tuple that describes single IP address.

Appears in:

Field Description
ip string 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).
hostname string The Hostname of this endpoint

Back to top

EndpointPort

EndpointPort is a tuple that describes a single port.

Appears in:

Field Description
name string 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.
port integer The port number of the endpoint.
protocol Protocol The IP protocol for this port. Must be TCP. Default is TCP.

Back to top

EnvoyProxy

EnvoyProxy defines the desired state of the EnvoyProxy

Appears in:

Field Description
topology EnvoyProxyTopology Topology defines the deployment topology for Envoy Proxy. Valid values are: shared, dedicated, and global.
useDaemonset boolean 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.
replicas integer Replicas defines the number of replicas for Envoy Proxy. This field is ignored if UseDaemonset is set to true.
singlePodPerNode boolean SinglePodPerNode defines whether Envoy Proxy pods will be spread across nodes. This ensures that multiple replicas are not running on the same node.
nodeSelector object (keys:string, values:string) NodeSelector is used to select nodes to run Envoy Proxy. If specified, the node must have all the indicated labels.
tolerations Toleration array Tolerations is used to schedule Envoy Proxy pods on nodes with matching taints.
resources ResourceRequirements Resources defines the resource requirements for Envoy Proxy.
affinity Affinity Affinity is used to schedule Envoy Proxy pods on nodes with matching affinity.

Back to top

LoadBalancer

LoadBalancer is the Schema for the loadbalancers API

Appears in:

Field Description
apiVersion string kubelb.k8c.io/v1alpha1
kind string LoadBalancer
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec LoadBalancerSpec
status LoadBalancerStatus

Back to top

LoadBalancerEndpoints

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 ]

Appears in:

Field Description
addresses EndpointAddress array 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.
ports EndpointPort array Port numbers available on the related IP addresses.

Back to top

LoadBalancerList

LoadBalancerList contains a list of LoadBalancer

Field Description
apiVersion string kubelb.k8c.io/v1alpha1
kind string LoadBalancerList
metadata ListMeta Refer to Kubernetes API documentation for fields of metadata.
items LoadBalancer array

Back to top

LoadBalancerPort

LoadBalancerPort contains information on service’s port.

Appears in:

Field Description
name string 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.
protocol Protocol The IP protocol for this port. Supports “TCP”. Default is TCP.
port integer The port that will be exposed by the LoadBalancer.

Back to top

LoadBalancerSpec

LoadBalancerSpec defines the desired state of LoadBalancer

Appears in:

Field Description
endpoints LoadBalancerEndpoints array Sets of addresses and ports that comprise an exposed user service on a cluster.
ports LoadBalancerPort array The list of ports that are exposed by the load balancer service. only needed for layer 4
type ServiceType 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

Back to top

LoadBalancerStatus

LoadBalancerStatus defines the observed state of LoadBalancer

Appears in:

Field Description
loadBalancer LoadBalancerStatus LoadBalancer contains the current status of the load-balancer, if one is present.
service ServiceStatus Service contains the current status of the LB service.

Back to top

ServicePort

ServicePort contains information on service’s port.

Appears in:

Field Description
ServicePort ServicePort
upstreamTargetPort integer

Back to top

ServiceStatus

Appears in:

Field Description
ports ServicePort array

Back to top