controller

package
v1.29.0 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2024 License: Apache-2.0 Imports: 40 Imported by: 1

Documentation

Index

Constants

View Source
const (

	// CreateEvent event associated with new objects in an informer
	CreateEvent EventType = "CREATE"
	// UpdateEvent event associated with an object update in an informer
	UpdateEvent EventType = "UPDATE"
	// DeleteEvent event associated when an object is removed from an informer
	DeleteEvent EventType = "DELETE"

	// IngressKey picks a specific "class" for the Ingress.
	// The controller only processes Ingresses with this annotation either
	// unset, or set to either the configured value or the empty string.
	IngressKey = "kubernetes.io/ingress.class"

	// IngressClass specifies which Ingress class we accept
	IngressClass = "openstack"

	// LabelNodeExcludeLB specifies that a node should not be used to create a Loadbalancer on
	// https://github.com/kubernetes/cloud-provider/blob/25867882d509131a6fdeaf812ceebfd0f19015dd/controllers/service/controller.go#L673
	LabelNodeExcludeLB = "node.kubernetes.io/exclude-from-external-load-balancers"

	// DeprecatedLabelNodeRoleMaster specifies that a node is a master
	// It's copied over to kubeadm until it's merged in core: https://github.com/kubernetes/kubernetes/pull/39112
	// Deprecated in favor of LabelNodeExcludeLB
	DeprecatedLabelNodeRoleMaster = "node-role.kubernetes.io/master"

	// IngressAnnotationInternal is the annotation used on the Ingress
	// to indicate that we want an internal loadbalancer service so that octavia-ingress-controller won't associate
	// floating ip to the load balancer VIP.
	// Default to true.
	IngressAnnotationInternal = "octavia.ingress.kubernetes.io/internal"

	// IngressAnnotationSourceRangesKey is the key of the annotation on an ingress to set allowed IP ranges on their LoadBalancers.
	// It should be a comma-separated list of CIDRs.
	IngressAnnotationSourceRangesKey = "octavia.ingress.kubernetes.io/whitelist-source-range"

	// IngressControllerTag is added to the related resources.
	IngressControllerTag = "octavia.ingress.kubernetes.io"

	// IngressAnnotationTimeoutClientData is the timeout for frontend client inactivity.
	// If not set, this value defaults to the Octavia configuration key `timeout_client_data`.
	// Refer to https://docs.openstack.org/octavia/latest/configuration/configref.html#haproxy_amphora.timeout_client_data
	IngressAnnotationTimeoutClientData = "octavia.ingress.kubernetes.io/timeout-client-data"

	// IngressAnnotationTimeoutMemberData is the timeout for backend member inactivity.
	// If not set, this value defaults to the Octavia configuration key `timeout_member_data`.
	// Refer to https://docs.openstack.org/octavia/latest/configuration/configref.html#haproxy_amphora.timeout_member_data
	IngressAnnotationTimeoutMemberData = "octavia.ingress.kubernetes.io/timeout-member-data"

	// IngressAnnotationTimeoutMemberConnect is the timeout for backend member connection.
	// If not set, this value defaults to the Octavia configuration key `timeout_member_connect`.
	// Refer to https://docs.openstack.org/octavia/latest/configuration/configref.html#haproxy_amphora.timeout_member_connect
	IngressAnnotationTimeoutMemberConnect = "octavia.ingress.kubernetes.io/timeout-member-connect"

	// IngressAnnotationTimeoutTCPInspect is the time to wait for TCP packets for content inspection.
	// If not set, this value defaults to the Octavia configuration key `timeout_tcp_inspect`.
	// Refer to https://docs.openstack.org/octavia/latest/configuration/configref.html#haproxy_amphora.timeout_tcp_inspect
	IngressAnnotationTimeoutTCPInspect = "octavia.ingress.kubernetes.io/timeout-tcp-inspect"

	// IngressSecretCertName is certificate key name defined in the secret data.
	IngressSecretCertName = "tls.crt"
	// IngressSecretKeyName is private key name defined in the secret data.
	IngressSecretKeyName = "tls.key"

	// BarbicanSecretNameTemplate is the name format string to create Barbican secret.
	BarbicanSecretNameTemplate = "kube_ingress_%s_%s_%s_%s"
)

Variables

This section is empty.

Functions

func IsValid

func IsValid(ing *nwv1.Ingress) bool

IsValid returns true if the given Ingress either doesn't specify the ingress.class annotation, or it's set to the configured in the ingress controller.

Types

type Controller

type Controller struct {
	// contains filtered or unexported fields
}

Controller ...

func NewController

func NewController(conf config.Config) *Controller

NewController creates a new OpenStack Ingress controller.

func (*Controller) Start

func (c *Controller) Start()

Start starts the openstack ingress controller.

type Event added in v1.14.0

type Event struct {
	Type EventType
	Obj  interface{}
}

Event holds the context of an event

type EventType added in v1.14.0

type EventType string

EventType type of event associated with an informer

type NodeConditionPredicate added in v1.18.0

type NodeConditionPredicate func(node *apiv1.Node) bool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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