Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the externaldns.olm v1beta1 API group +kubebuilder:object:generate=true +groupName=externaldns.olm.openshift.io
Index ¶
- Variables
- type DomainMatchType
- type ExternalDNS
- func (in *ExternalDNS) DeepCopy() *ExternalDNS
- func (in *ExternalDNS) DeepCopyInto(out *ExternalDNS)
- func (in *ExternalDNS) DeepCopyObject() runtime.Object
- func (r *ExternalDNS) SetupWebhookWithManager(mgr ctrl.Manager, openshift bool) error
- func (r *ExternalDNS) ValidateCreate() (admission.Warnings, error)
- func (r *ExternalDNS) ValidateDelete() (admission.Warnings, error)
- func (r *ExternalDNS) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type ExternalDNSAWSAssumeRoleOptions
- type ExternalDNSAWSProviderOptions
- type ExternalDNSAzureProviderOptions
- type ExternalDNSBlueCatProviderOptions
- type ExternalDNSCRDSourceOptions
- type ExternalDNSDomain
- type ExternalDNSDomainUnion
- type ExternalDNSFilterType
- type ExternalDNSGCPProviderOptions
- type ExternalDNSInfobloxProviderOptions
- type ExternalDNSList
- type ExternalDNSOpenShiftRouteOptions
- type ExternalDNSProvider
- type ExternalDNSProviderType
- type ExternalDNSServiceSourceOptions
- type ExternalDNSSource
- type ExternalDNSSourceType
- type ExternalDNSSourceUnion
- type ExternalDNSSpec
- type ExternalDNSStatus
- type HostnameAnnotationPolicy
- type SecretReference
Constants ¶
This section is empty.
Variables ¶
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" )
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "externaldns.olm.openshift.io", Version: "v1beta1"} // 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 ¶
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type ExternalDNSAWSAssumeRoleOptions ¶
type ExternalDNSAWSAssumeRoleOptions struct { // arn is an IAM role ARN that the ExternalDNS // operator will assume when making DNS updates. // // +kubebuilder:validation:Required // +required ARN string `json:"arn,omitempty"` }
func (*ExternalDNSAWSAssumeRoleOptions) DeepCopy ¶
func (in *ExternalDNSAWSAssumeRoleOptions) DeepCopy() *ExternalDNSAWSAssumeRoleOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSAWSAssumeRoleOptions.
func (*ExternalDNSAWSAssumeRoleOptions) DeepCopyInto ¶
func (in *ExternalDNSAWSAssumeRoleOptions) DeepCopyInto(out *ExternalDNSAWSAssumeRoleOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ExternalDNSAWSProviderOptions ¶
type ExternalDNSAWSProviderOptions struct { // Credentials is a reference to a secret containing // the following keys (with corresponding values): // // * aws_access_key_id // * aws_secret_access_key // // +kubebuilder:validation:Required // +kubebuilder:default:={"name":""} // +required Credentials SecretReference `json:"credentials"` // assumeRole is a reference to the IAM role that // ExternalDNS will be assuming in order to perform // any DNS updates. // // +kubebuilder:validation:Optional // +optional AssumeRole *ExternalDNSAWSAssumeRoleOptions `json:"assumeRole,omitempty"` }
func (*ExternalDNSAWSProviderOptions) DeepCopy ¶
func (in *ExternalDNSAWSProviderOptions) DeepCopy() *ExternalDNSAWSProviderOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSAWSProviderOptions.
func (*ExternalDNSAWSProviderOptions) DeepCopyInto ¶
func (in *ExternalDNSAWSProviderOptions) DeepCopyInto(out *ExternalDNSAWSProviderOptions)
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/226dbb931f7a2019810b3703aec096c4ea4f40ea/docs/tutorials/azure.md#configuration-file // 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 ¶
func (in *ExternalDNSAzureProviderOptions) DeepCopy() *ExternalDNSAzureProviderOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSAzureProviderOptions.
func (*ExternalDNSAzureProviderOptions) DeepCopyInto ¶
func (in *ExternalDNSAzureProviderOptions) DeepCopyInto(out *ExternalDNSAzureProviderOptions)
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/226dbb931f7a2019810b3703aec096c4ea4f40ea/docs/tutorials/bluecat.md#using-json-configuration-file // for more information on the necessary configuration values and how to obtain them. // // +kubebuilder:validation:Required // +required ConfigFile SecretReference `json:"configFile"` }
func (*ExternalDNSBlueCatProviderOptions) DeepCopy ¶
func (in *ExternalDNSBlueCatProviderOptions) DeepCopy() *ExternalDNSBlueCatProviderOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSBlueCatProviderOptions.
func (*ExternalDNSBlueCatProviderOptions) DeepCopyInto ¶
func (in *ExternalDNSBlueCatProviderOptions) DeepCopyInto(out *ExternalDNSBlueCatProviderOptions)
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 ¶
func (in *ExternalDNSCRDSourceOptions) DeepCopy() *ExternalDNSCRDSourceOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSCRDSourceOptions.
func (*ExternalDNSCRDSourceOptions) DeepCopyInto ¶
func (in *ExternalDNSCRDSourceOptions) DeepCopyInto(out *ExternalDNSCRDSourceOptions)
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 ¶
func (in *ExternalDNSDomainUnion) DeepCopy() *ExternalDNSDomainUnion
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 ¶
func (in *ExternalDNSGCPProviderOptions) DeepCopy() *ExternalDNSGCPProviderOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSGCPProviderOptions.
func (*ExternalDNSGCPProviderOptions) DeepCopyInto ¶
func (in *ExternalDNSGCPProviderOptions) DeepCopyInto(out *ExternalDNSGCPProviderOptions)
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 // // +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 ¶
func (in *ExternalDNSInfobloxProviderOptions) DeepCopy() *ExternalDNSInfobloxProviderOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSInfobloxProviderOptions.
func (*ExternalDNSInfobloxProviderOptions) DeepCopyInto ¶
func (in *ExternalDNSInfobloxProviderOptions) DeepCopyInto(out *ExternalDNSInfobloxProviderOptions)
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 ¶
func (in *ExternalDNSOpenShiftRouteOptions) DeepCopy() *ExternalDNSOpenShiftRouteOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSOpenShiftRouteOptions.
func (*ExternalDNSOpenShiftRouteOptions) DeepCopyInto ¶
func (in *ExternalDNSOpenShiftRouteOptions) DeepCopyInto(out *ExternalDNSOpenShiftRouteOptions)
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 ¶
func (in *ExternalDNSServiceSourceOptions) DeepCopy() *ExternalDNSServiceSourceOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSServiceSourceOptions.
func (*ExternalDNSServiceSourceOptions) DeepCopyInto ¶
func (in *ExternalDNSServiceSourceOptions) DeepCopyInto(out *ExternalDNSServiceSourceOptions)
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 ¶
func (in *ExternalDNSSourceUnion) DeepCopy() *ExternalDNSSourceUnion
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.