controller

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2019 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// 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 menas accept ingresses with the annotation
	IngressClass = "terraform"

	// LabelNodeRoleMaster 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
	LabelNodeRoleMaster = "node-role.kubernetes.io/master"

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

	// The IngressControllerTag that is added to the related resources.
	IngressControllerTag = "terraform.ingress.kubernetes.io"

	// The IngressAnnotationTCPConfigMap specifies the TCP configmap name to be used by the terraform to create a loadbalancer
	IngressAnnotationTCPConfigMap = "terraform.ingress.kubernetes.io/tcp-configmap"

	// The IngressAnnotationUDPConfigMap specifies the UDP configmap name to be used by the terraform to create a loadbalancer
	IngressAnnotationUDPConfigMap = "terraform.ingress.kubernetes.io/udp-configmap"

	// The IngressAnnotationSkipHTTP specifies to skip the HTTP listener creation
	IngressAnnotationSkipHTTP = "terraform.ingress.kubernetes.io/skip-http-listener"

	// The IngressAnnotationTemplate specifies the go template to used by the terraform to create a loadbalancer
	IngressAnnotationTemplate = "terraform.ingress.kubernetes.io/template"

	// The IngressAnnotationUseOctavia specifies whether terraform provider should use Octavia API instead of Neutron LBaaS v2
	IngressAnnotationUseOctavia = "terraform.ingress.kubernetes.io/use-octavia"

	// The IngressAnnotationLbMethod specifies the loadbalancer method
	IngressAnnotationLbMethod = "terraform.ingress.kubernetes.io/lb-method"

	// The IngressAnnotationLockTimeout specifies the terraform "-lock-timeout" CLI parameter
	IngressAnnotationLockTimeout = "terraform.ingress.kubernetes.io/lock-timeout"

	// IngressAnnotationProxyProtocol specifies whether to use the PROXY protocol for pool members
	// Available only when "terraform.ingress.kubernetes.io/use-octavia" is set to true
	IngressAnnotationProxyProtocol = "terraform.ingress.kubernetes.io/proxy-protocol"
)

Variables

This section is empty.

Functions

func IsValid

func IsValid(ing *nwv1beta1.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 terraform ingress controller.

type Event

type Event struct {
	Type EventType
	Obj  interface{}
}

Event holds the context of an event

type EventType

type EventType string

EventType type of event associated with an informer

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"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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