integrations

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: May 29, 2022 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type IngressInfo

type IngressInfo struct {
	Hosts         []string
	TLSSecretName *string
}

IngressInfo encapsulates information extracted from ingress objects that integrations act upon.

type Integration

type Integration interface {
	// Name returns a canonical name for this integration to identify it in logs.
	Name() string

	// OwnedResource returns the resource (i.e. CRD of an external tool) that this integration
	// owns. The resource should be "empty", i.e. no fields should be set.
	OwnedResource() client.Object

	// WatchedObject optionally returns a particular object whose changes require the
	// reconciliation of all resources that this integration is applied to. In contrast to
	// `OwnedResource`, this method returns a concrete object (i.e. its name and namespace must
	// set set). If the integration does not watch any resources, this method may return `nil`.
	WatchedObject() client.Object

	// UpdateResource updates the resource that ought to be owned by the passed object. Updating
	// may entail creating the resource, updating an existing resource, or deleting the resouce.
	// All information the generated resource is derived from the integration's global
	// configuration along with the given ingress information.
	UpdateResource(ctx context.Context, owner metav1.Object, info IngressInfo) error
}

Integration is an interface for any component that allows to create "derivative" Kubernetes resources for a Traefik ingress resources. An example is the external-dns integration which generates DNSEndpoint resources for IngressRoute objects.

func NewCertManager

func NewCertManager(client client.Client, issuer cmmeta.ObjectReference) Integration

NewCertManager initializes a new cert-manager integration which creates certificates which use the provided issuer.

func NewExternalDNS

func NewExternalDNS(client client.Client, target switchboard.Target) Integration

NewExternalDNS initializes a new external-dns integration whose created DNS endpoints target the provided service.

Jump to

Keyboard shortcuts

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