Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IngressInfo ¶
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, template certmanager.Certificate) 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.
Click to show internal directories.
Click to hide internal directories.