v1alpha1

package
v0.0.0-...-48345f6 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=externaldns.olm.openshift.io

Index

Constants

This section is empty.

Variables

View Source
var (
	// Available indicates that the ExternalDNS is available.
	ExternalDNSAvailableConditionType = "Available"

	// AuthenticationFailed indicates that there were issues starting
	// ExternalDNS pods related to the given provider credentials.
	ExternalDNSProviderAuthFailedReasonType = "AuthenticationFailed"
)
View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "externaldns.olm.openshift.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type DomainMatchType

type DomainMatchType string

+kubebuilder:validation:Enum=Exact;Pattern

const (
	DomainMatchTypeExact DomainMatchType = "Exact"
	DomainMatchTypeRegex DomainMatchType = "Pattern"
)

type ExternalDNS

type ExternalDNS struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec is the specification of the desired behavior of the ExternalDNS.
	Spec ExternalDNSSpec `json:"spec"`
	// status is the most recently observed status of the ExternalDNS.
	Status ExternalDNSStatus `json:"status,omitempty"`
}

ExternalDNS describes a managed ExternalDNS controller instance for a cluster. The controller is responsible for creating external DNS records in supported DNS providers based off of instances of select Kubernetes resources.

func (*ExternalDNS) DeepCopy

func (in *ExternalDNS) DeepCopy() *ExternalDNS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNS.

func (*ExternalDNS) DeepCopyInto

func (in *ExternalDNS) DeepCopyInto(out *ExternalDNS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ExternalDNS) DeepCopyObject

func (in *ExternalDNS) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ExternalDNS) SetupWebhookWithManager

func (r *ExternalDNS) SetupWebhookWithManager(mgr ctrl.Manager, openshift bool) error

func (*ExternalDNS) ValidateCreate

func (r *ExternalDNS) ValidateCreate() (admission.Warnings, error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*ExternalDNS) ValidateDelete

func (r *ExternalDNS) ValidateDelete() (admission.Warnings, error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*ExternalDNS) ValidateUpdate

func (r *ExternalDNS) ValidateUpdate(_ runtime.Object) (admission.Warnings, error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type ExternalDNSAWSProviderOptions

type ExternalDNSAWSProviderOptions struct {
	// Credentials is a reference to a secret containing
	// the shared credentials file (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
	// under `credentials` key or following keys (with corresponding values):
	//
	// * aws_access_key_id
	// * aws_secret_access_key
	//
	// See
	// https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md
	// for more information.
	//
	// +kubebuilder:validation:Required
	// +required
	Credentials SecretReference `json:"credentials"`
}

func (*ExternalDNSAWSProviderOptions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSAWSProviderOptions.

func (*ExternalDNSAWSProviderOptions) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSAzureProviderOptions

type ExternalDNSAzureProviderOptions struct {
	// ConfigFile is a reference to a secret containing
	// the necessary information to use the Azure provider.
	// The secret referenced by ConfigFile should contain
	// a key named `azure.json` similar to the following:
	//
	// {
	//   "tenantId": "123",
	//   "subscriptionId": "456",
	//   "resourceGroup": "MyDnsResourceGroup",
	//   "aadClientId": "789",
	//   "aadClientSecret": "123"
	// }
	//
	// See
	// https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/azure.md
	// for more information on the necessary configuration key/values and how to obtain them.
	//
	// +kubebuilder:validation:Required
	// +required
	ConfigFile SecretReference `json:"configFile"`
}

func (*ExternalDNSAzureProviderOptions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSAzureProviderOptions.

func (*ExternalDNSAzureProviderOptions) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSBlueCatProviderOptions

type ExternalDNSBlueCatProviderOptions struct {
	// ConfigFile is a reference to a secret containing
	// the necessary information to use the BlueCat provider.
	// The secret referenced by ConfigFile should contain
	// an object named `bluecat.json` similar to the following:
	//
	// {
	//   "gatewayHost": "https://bluecatgw.example.com",
	//   "gatewayUsername": "user",
	//   "gatewayPassword": "pass",
	//   "dnsConfiguration": "Example",
	//   "dnsView": "Internal",
	//   "rootZone": "example.com",
	//   "skipTLSVerify": false
	// }
	//
	// See
	// https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/bluecat.md
	// for more information on the necessary configuration values and how to obtain them.
	//
	// +kubebuilder:validation:Required
	// +required
	ConfigFile SecretReference `json:"configFile"`
}

func (*ExternalDNSBlueCatProviderOptions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSBlueCatProviderOptions.

func (*ExternalDNSBlueCatProviderOptions) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSCRDSourceOptions

type ExternalDNSCRDSourceOptions struct {
	// Kind is the kind of the CRD
	// source resource type to be
	// consumed by ExternalDNS.
	//
	// e.g. "DNSEndpoint"
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +required
	Kind string `json:"kind"`

	// Version is the API version
	// of the given resource kind for
	// ExternalDNS to use.
	//
	// e.g. "externaldns.k8s.io/v1alpha1"
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +required
	Version string `json:"version"`

	// LabelFilter specifies a label filter
	// to be used to filter CRD resource instances.
	// Only one label filter can be specified on
	// an ExternalDNS instance.
	//
	// +kubebuilder:validation:Optional
	// +optional
	LabelFilter *metav1.LabelSelector `json:"labelFilter,omitempty"`
}

ExternalDNSCRDSourceOptions describes options for configuring the ExternalDNS CRD source. The ExternalDNS CRD Source implementation expects CRD resources to have specific fields, including a DNSName field. See https://github.com/kubernetes-sigs/external-dns/blob/master/docs/contributing/crd-source.md for more information.

A configured CRD source would grant precise control to external DNS resources to any user who can create/update/delete the given CRD.

func (*ExternalDNSCRDSourceOptions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSCRDSourceOptions.

func (*ExternalDNSCRDSourceOptions) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSDomain

type ExternalDNSDomain struct {
	ExternalDNSDomainUnion `json:",inline"`

	// FilterType marks the Name or Pattern field
	// as an included or excluded set of domains.
	//
	// In the event of contradicting domain options,
	// preference is given to excluded domains.
	//
	// This field accepts the following values:
	//
	//  "Include": Include the domain set specified
	//  by name or pattern.
	//
	//  "Exclude": Exclude the domain set specified
	//  by name or pattern.
	//
	// +kubebuilder:validation:Required
	// +required
	FilterType ExternalDNSFilterType `json:"filterType"`
}

ExternalDNSDomain describes how sets of included or excluded domains are to be constructed.

func (*ExternalDNSDomain) DeepCopy

func (in *ExternalDNSDomain) DeepCopy() *ExternalDNSDomain

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSDomain.

func (*ExternalDNSDomain) DeepCopyInto

func (in *ExternalDNSDomain) DeepCopyInto(out *ExternalDNSDomain)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSDomainUnion

type ExternalDNSDomainUnion struct {
	// MatchType specifies the type of match to be performed
	// by ExternalDNS when determining whether or not to publish DNS
	// records for a given source resource based on the resource's
	// requested hostname.
	//
	// This field accepts the following values:
	//
	//  "Exact": Explicitly match the full domain string
	//   specified via the Name field, including any subdomains
	//   of Name.
	//
	//  "Pattern": Match potential domains against
	//  the provided regular expression pattern string.
	//
	// +unionDiscriminator
	// +kubebuilder:validation:Required
	// +required
	MatchType DomainMatchType `json:"matchType"`

	// Name is a string representing a single domain
	// value. Subdomains are included.
	//
	// e.g. my-app.my-cluster-domain.com
	// would also include
	// foo.my-app.my-cluster-domain.com
	//
	// +kubebuilder:validation:Optional
	// +optional
	Name *string `json:"name,omitempty"`

	// Pattern is a regular expression used to
	// match a set of domains. Any provided
	// regular expressions should follow the syntax
	// used by the go regexp package (RE2).
	// See https://golang.org/pkg/regexp/ for more information.
	//
	// +kubebuilder:validation:Optional
	// +optional
	Pattern *string `json:"pattern,omitempty"`
}

ExternalDNSDomainUnion describes optional fields of an External domain that should be captured. +union

func (*ExternalDNSDomainUnion) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSDomainUnion.

func (*ExternalDNSDomainUnion) DeepCopyInto

func (in *ExternalDNSDomainUnion) DeepCopyInto(out *ExternalDNSDomainUnion)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSFilterType

type ExternalDNSFilterType string

+kubebuilder:validation:Enum=Include;Exclude

const (
	FilterTypeInclude ExternalDNSFilterType = "Include"
	FilterTypeExclude ExternalDNSFilterType = "Exclude"
)

type ExternalDNSGCPProviderOptions

type ExternalDNSGCPProviderOptions struct {
	// Project is the GCP project to use for
	// creating DNS records. This field is not necessary
	// when running on GCP as externalDNS auto-detects
	// the GCP project to use when running on GCP.
	//
	// +kubebuilder:validation:Optional
	// +optional
	Project *string `json:"project,omitempty"`

	// Credentials is a reference to a secret containing
	// the necessary GCP service account keys.
	// The secret referenced by Credentials should
	// contain a key named `gcp-credentials.json`
	// presumably generated by the gcloud CLI.
	//
	// +kubebuilder:validation:Required
	// +required
	Credentials SecretReference `json:"credentials"`
}

func (*ExternalDNSGCPProviderOptions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSGCPProviderOptions.

func (*ExternalDNSGCPProviderOptions) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSInfobloxProviderOptions

type ExternalDNSInfobloxProviderOptions struct {
	// Credentials is a reference to a secret containing
	// the following keys (with proper corresponding values):
	//
	// * EXTERNAL_DNS_INFOBLOX_WAPI_USERNAME
	// * EXTERNAL_DNS_INFOBLOX_WAPI_PASSWORD
	//
	// See
	// https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/infoblox.md
	// for more information and configuration options.
	//
	// +kubebuilder:validation:Required
	// +required
	Credentials SecretReference `json:"credentials"`

	// GridHost is the IP of the Infoblox Grid host.
	//
	// +kubebuilder:validation:Required
	// +required
	GridHost string `json:"gridHost"`

	// WAPIPort is the port for the Infoblox WAPI.
	//
	// +kubebuilder:validation:Required
	// +required
	WAPIPort int `json:"wapiPort"`

	// WAPIVersion is the version of the Infoblox WAPI.
	//
	// +kubebuilder:validation:Required
	// +required
	WAPIVersion string `json:"wapiVersion"`
}

func (*ExternalDNSInfobloxProviderOptions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSInfobloxProviderOptions.

func (*ExternalDNSInfobloxProviderOptions) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSList

type ExternalDNSList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ExternalDNS `json:"items"`
}

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

ExternalDNSList contains a list of ExternalDNSes.

func (*ExternalDNSList) DeepCopy

func (in *ExternalDNSList) DeepCopy() *ExternalDNSList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSList.

func (*ExternalDNSList) DeepCopyInto

func (in *ExternalDNSList) DeepCopyInto(out *ExternalDNSList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ExternalDNSList) DeepCopyObject

func (in *ExternalDNSList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ExternalDNSOpenShiftRouteOptions

type ExternalDNSOpenShiftRouteOptions struct {
	// RouterName is the name of a router (AKA ingress controller) as
	// reported in Route.status.ingress[].routerName.  External-dns will use
	// the canonical hostname of the router identified by this name when
	// publishing records for a given route.
	//
	// +kubebuilder:validation:Required
	// +required
	RouterName string `json:"routerName"`
}

func (*ExternalDNSOpenShiftRouteOptions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSOpenShiftRouteOptions.

func (*ExternalDNSOpenShiftRouteOptions) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSProvider

type ExternalDNSProvider struct {
	// Type describes which DNS provider
	// ExternalDNS should publish records to.
	// The following DNS providers are supported:
	//
	//  * AWS (Route 53)
	//  * GCP (Google DNS)
	//  * Azure
	//  * BlueCat
	//  * Infoblox
	//
	// +kubebuilder:validation:Required
	// +unionDiscriminator
	// +required
	Type ExternalDNSProviderType `json:"type"`

	// AWS describes provider configuration options
	// specific to AWS (Route 53).
	//
	// +kubebuilder:validation:Optional
	// +optional
	AWS *ExternalDNSAWSProviderOptions `json:"aws,omitempty"`

	// GCP describes provider configuration options
	// specific to GCP (Google DNS).
	//
	// +kubebuilder:validation:Optional
	// +optional
	GCP *ExternalDNSGCPProviderOptions `json:"gcp,omitempty"`

	// Azure describes provider configuration options
	// specific to Azure DNS.
	//
	// +kubebuilder:validation:Optional
	// +optional
	Azure *ExternalDNSAzureProviderOptions `json:"azure,omitempty"`

	// BlueCat describes provider configuration options
	// specific to BlueCat DNS.
	//
	// +kubebuilder:validation:Optional
	// +optional
	BlueCat *ExternalDNSBlueCatProviderOptions `json:"blueCat,omitempty"`

	// Infoblox describes provider configuration options
	// specific to Infoblox DNS.
	//
	// +kubebuilder:validation:Optional
	// +optional
	Infoblox *ExternalDNSInfobloxProviderOptions `json:"infoblox,omitempty"`
}

ExternalDNSProvider specifies configuration options for the desired ExternalDNS DNS provider. +union

func (*ExternalDNSProvider) DeepCopy

func (in *ExternalDNSProvider) DeepCopy() *ExternalDNSProvider

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSProvider.

func (*ExternalDNSProvider) DeepCopyInto

func (in *ExternalDNSProvider) DeepCopyInto(out *ExternalDNSProvider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSProviderType

type ExternalDNSProviderType string

+kubebuilder:validation:Enum=AWS;GCP;Azure;BlueCat;Infoblox

const (
	ProviderTypeAWS      ExternalDNSProviderType = "AWS"
	ProviderTypeGCP      ExternalDNSProviderType = "GCP"
	ProviderTypeAzure    ExternalDNSProviderType = "Azure"
	ProviderTypeBlueCat  ExternalDNSProviderType = "BlueCat"
	ProviderTypeInfoblox ExternalDNSProviderType = "Infoblox"
)

type ExternalDNSServiceSourceOptions

type ExternalDNSServiceSourceOptions struct {
	// ServiceType determines what types of Service resources
	// are watched by ExternalDNS. The following types are
	// available options:
	//
	//  "NodePort"
	//  "ExternalName"
	//  "LoadBalancer"
	//  "ClusterIP"
	//
	// One or more Service types can be specified, if desired.
	//
	// Note that using the "ClusterIP" service type will enable
	// the ExternalDNS "--publish-internal-services" flag,
	// which allows ExternalDNS to publish DNS records
	// for ClusterIP services.
	//
	// If no service types are provided, ExternalDNS will be
	// configured to create DNS records for LoadBalancer services
	// only by default.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:default:={"LoadBalancer"}
	// +kubebuilder:validation:MinItems=1
	// +required
	ServiceType []corev1.ServiceType `json:"serviceType,omitempty"`
}

ExternalDNSServiceSourceOptions describes options specific to the ExternalDNS service source.

func (*ExternalDNSServiceSourceOptions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSServiceSourceOptions.

func (*ExternalDNSServiceSourceOptions) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSSource

type ExternalDNSSource struct {
	ExternalDNSSourceUnion `json:",inline"`

	// HostnameAnnotationPolicy specifies whether or not ExternalDNS
	// should ignore the "external-dns.alpha.kubernetes.io/hostname"
	// annotation, which overrides DNS hostnames on a given source resource.
	//
	// The following values are accepted:
	//
	//  "Ignore": Ignore any hostname annotation overrides.
	//  "Allow": Allow all hostname annotation overrides.
	//
	// The default behavior of the ExternalDNS is "Ignore".
	//
	// Note that by setting a HostnameAnnotationPolicy of "Allow",
	// may grant privileged DNS permissions to under-privileged cluster
	// users.
	//
	// +kubebuilder:default:=Ignore
	// +kubebuilder:validation:Optional
	// +optional
	HostnameAnnotationPolicy HostnameAnnotationPolicy `json:"hostnameAnnotation"`

	// FQDNTemplate sets a templated string that's used to generate DNS names
	// from sources that don't define a hostname themselves.
	// Multiple global FQDN templates are possible.
	//
	// This field must be specified with a nonempty value if the source type
	// is Service or CRD and HostnameAnnotationPolicy is set to Ignore.  The
	// field value may be omitted or empty if HostnameAnnotationPolicy is
	// set to Allow or if the source type is OpenShiftRoute.
	//
	// Provided templates should follow the syntax defined for text/template Go package,
	// see https://pkg.go.dev/text/template.
	// Annotations inside the template correspond to the definition of the source resource object (e.g. Kubernetes service, OpenShift route).
	// Example: "{{.Name}}.example.com" would be expanded to "myservice.example.com" for service source
	//
	// +kubebuilder:validation:Optional
	// +optional
	FQDNTemplate []string `json:"fqdnTemplate,omitempty"`
}

ExternalDNSSource describes which Source resource the ExternalDNS should create DNS records for.

func (*ExternalDNSSource) DeepCopy

func (in *ExternalDNSSource) DeepCopy() *ExternalDNSSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSSource.

func (*ExternalDNSSource) DeepCopyInto

func (in *ExternalDNSSource) DeepCopyInto(out *ExternalDNSSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSSourceType

type ExternalDNSSourceType string

+kubebuilder:validation:Enum=OpenShiftRoute;Service;CRD

const (
	SourceTypeRoute   ExternalDNSSourceType = "OpenShiftRoute"
	SourceTypeService ExternalDNSSourceType = "Service"
	SourceTypeCRD     ExternalDNSSourceType = "CRD"
)

type ExternalDNSSourceUnion

type ExternalDNSSourceUnion struct {
	// Type specifies an ExternalDNS source resource
	// to create DNS records for.
	//
	// +unionDiscriminator
	// +kubebuilder:validation:Required
	// +required
	Type ExternalDNSSourceType `json:"type"`

	// LabelFilter specifies a label selector for filtering the objects for
	// which ExternalDNS publishes records. The filter uses label selector
	// semantics against object labels.  Specifying a null or empty label
	// selector causes ExternalDNS to publish records for all objects of the
	// source type resource.
	//
	// +kubebuilder:validation:Optional
	// +optional
	LabelFilter *metav1.LabelSelector `json:"labelFilter,omitempty"`

	// Service describes source configuration options specific
	// to the service source resource.
	//
	// +kubebuilder:validation:Optional
	// +optional
	Service *ExternalDNSServiceSourceOptions `json:"service,omitempty"`

	// OpenShiftRoute describes source configuration options specific to the
	// routes.route.openshift.io resource.
	//
	// +kubebuilder:validation:Optional
	// +optional
	OpenShiftRoute *ExternalDNSOpenShiftRouteOptions `json:"openshiftRouteOptions,omitempty"`
}

ExternalDNSSourceUnion describes optional fields for an ExternalDNS source that should be captured. +union

func (*ExternalDNSSourceUnion) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSSourceUnion.

func (*ExternalDNSSourceUnion) DeepCopyInto

func (in *ExternalDNSSourceUnion) DeepCopyInto(out *ExternalDNSSourceUnion)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSSpec

type ExternalDNSSpec struct {
	// Domains specifies which domains that ExternalDNS should
	// create DNS records for. Multiple domain values
	// can be specified such that subdomains of an included domain
	// can effectively be ignored using the "Include" and "Exclude"
	// domain filter options.
	//
	// An empty list of domains means ExternalDNS will create
	// DNS records for any included source resource regardless
	// of the resource's desired hostname.
	//
	// Populating Domains with only excluded options means ExternalDNS
	// will create DNS records for any included source resource that do not
	// match the provided excluded domain options.
	//
	// Excluding DNS records that were previous included via a resource update
	// will *not* result in the original DNS records being deleted.
	//
	// +kubebuilder:validation:Optional
	// +optional
	Domains []ExternalDNSDomain `json:"domains,omitempty"`

	// Provider refers to the DNS provider that ExternalDNS
	// should publish records to. Note that each ExternalDNS
	// is tied to a single provider.
	//
	// +kubebuilder:validation:Required
	// +required
	Provider ExternalDNSProvider `json:"provider"`

	// Source describes which source resource
	// ExternalDNS will be configured to create
	// DNS records for.
	//
	// Multiple ExternalDNS CRs must be
	// created if multiple ExternalDNS source resources
	// are desired.
	//
	// +kubebuilder:validation:Required
	// +required
	Source ExternalDNSSource `json:"source"`

	// Zones describes which DNS Zone IDs
	// ExternalDNS should publish records to.
	//
	// Updating this field after creation
	// will cause all DNS records in the previous
	// zone(s) to be left behind.
	//
	// An empty list of zones means that the ExternalDNS will
	// publish to all zones (i.e public and private), unless the
	// operator runs on a platform on which the operator can
	// lookup a default set of zones e.g on OpenShift with its cluster
	// DNS config
	//
	// +kubebuilder:validation:MaxItems=10
	// +kubebuilder:validation:Optional
	// +optional
	Zones []string `json:"zones,omitempty"`
}

ExternalDNSSpec defines the desired state of the ExternalDNS.

func (*ExternalDNSSpec) DeepCopy

func (in *ExternalDNSSpec) DeepCopy() *ExternalDNSSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSSpec.

func (*ExternalDNSSpec) DeepCopyInto

func (in *ExternalDNSSpec) DeepCopyInto(out *ExternalDNSSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSStatus

type ExternalDNSStatus struct {
	// Conditions is a list of operator-specific conditions
	// and their status.
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the most recent generation observed.
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Zones is the configured zones in use by ExternalDNS.
	Zones []string `json:"zones,omitempty"`
}

ExternalDNSStatus defines the observed state of ExternalDNS.

func (*ExternalDNSStatus) DeepCopy

func (in *ExternalDNSStatus) DeepCopy() *ExternalDNSStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSStatus.

func (*ExternalDNSStatus) DeepCopyInto

func (in *ExternalDNSStatus) DeepCopyInto(out *ExternalDNSStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HostnameAnnotationPolicy

type HostnameAnnotationPolicy string

+kubebuilder:validation:Enum=Ignore;Allow

const (
	HostnameAnnotationPolicyIgnore HostnameAnnotationPolicy = "Ignore"
	HostnameAnnotationPolicyAllow  HostnameAnnotationPolicy = "Allow"
)

type SecretReference

type SecretReference struct {
	// Name is the name of the secret.
	//
	// +kubebuilder:validation:Required
	// +required
	Name string `json:"name"`
}

SecretReference contains the information to let you locate the desired secret. Secret is required to be in the operator namespace.

func (*SecretReference) DeepCopy

func (in *SecretReference) DeepCopy() *SecretReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretReference.

func (*SecretReference) DeepCopyInto

func (in *SecretReference) DeepCopyInto(out *SecretReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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