Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the v1alpha1 API group +kubebuilder:object:generate=true +groupName=kuadrant.io
Index ¶
- Constants
- Variables
- type AdditionalHeader
- type AdditionalHeaders
- type AdditionalHeadersRef
- type ConditionReason
- type ConditionType
- type DNSHealthCheckProbe
- type DNSHealthCheckProbeList
- type DNSHealthCheckProbeSpec
- type DNSHealthCheckProbeStatus
- type DNSRecord
- func (in *DNSRecord) DeepCopy() *DNSRecord
- func (in *DNSRecord) DeepCopyInto(out *DNSRecord)
- func (in *DNSRecord) DeepCopyObject() runtime.Object
- func (s *DNSRecord) GetProviderRef() ProviderRef
- func (s *DNSRecord) GetRootHost() string
- func (s *DNSRecord) GetUIDHash() string
- func (s *DNSRecord) HasDNSZoneAssigned() bool
- func (s *DNSRecord) HasOwnerIDAssigned() bool
- func (s *DNSRecord) HasProviderSecretAssigned() bool
- func (s *DNSRecord) IsActive() bool
- func (s *DNSRecord) IsAuthoritativeRecord() bool
- func (s *DNSRecord) IsDelegating() bool
- func (s *DNSRecord) IsDeleting() bool
- func (s *DNSRecord) Validate() error
- type DNSRecordList
- type DNSRecordSpec
- type DNSRecordStatus
- func (in *DNSRecordStatus) DeepCopy() *DNSRecordStatus
- func (in *DNSRecordStatus) DeepCopyInto(out *DNSRecordStatus)
- func (s *DNSRecordStatus) GetRemoteRecordStatus(clusterID string) DNSRecordStatus
- func (s *DNSRecordStatus) GetRemoteRecordStatuses() map[string]DNSRecordStatus
- func (s *DNSRecordStatus) ProviderEndpointsDeletion() bool
- func (s *DNSRecordStatus) ProviderEndpointsRemoved() bool
- func (s *DNSRecordStatus) ReadyForDelegation() bool
- func (s *DNSRecordStatus) SetRemoteRecordStatus(clusterID string, rStatus DNSRecordStatus)
- type DNSRecordType
- type HealthCheckSpec
- type HealthCheckStatus
- type HealthCheckStatusProbe
- type Protocol
- type ProviderAccessor
- type ProviderRef
Constants ¶
const ( ProviderSpecificWeight = "weight" ProviderSpecificGeoCode = "geo-code" )
const ( // SecretTypeKuadrantAWS contains data needed for aws(route53) authentication and configuration. // // Required fields: // - Secret.Data["AWS_ACCESS_KEY_ID"] - aws access key id // - Secret.Data["AWS_SECRET_ACCESS_KEY"] - aws secret access key SecretTypeKuadrantAWS corev1.SecretType = "kuadrant.io/aws" // AWSAccessKeyIDKey is the key of the required AWS access key id for SecretTypeKuadrantAWS provider secrets AWSAccessKeyIDKey = "AWS_ACCESS_KEY_ID" // AWSSecretAccessKeyKey is the key of the required AWS secret access key for SecretTypeKuadrantAWS provider secrets AWSSecretAccessKeyKey = "AWS_SECRET_ACCESS_KEY" // AWSRegionKey is the key of the optional region for SecretTypeKuadrantAWS provider secrets AWSRegionKey = "AWS_REGION" // SecretTypeKuadrantGCP contains data needed for gcp(google cloud dns) authentication and configuration. // // Required fields: // - Secret.Data["GOOGLE"] - json formatted google credentials string // - Secret.Data["PROJECT_ID"] - google project id SecretTypeKuadrantGCP corev1.SecretType = "kuadrant.io/gcp" // GoogleJsonKey is the key of the required json formatted credentials string for SecretTypeKuadrantGCP provider secrets GoogleJsonKey = "GOOGLE" // GoogleProjectIDKey is the key of the required project id for SecretTypeKuadrantGCP provider secrets GoogleProjectIDKey = "PROJECT_ID" // SecretTypeKuadrantAzure contains data needed for azure authentication and configuration. // // Required fields: // - Secret.Data["azure.json"] - json formatted azure credentials string SecretTypeKuadrantAzure corev1.SecretType = "kuadrant.io/azure" // AzureJsonKey is the key of the required data for SecretTypeDockerConfigJson provider secrets AzureJsonKey = "azure.json" // SecretTypeKuadrantInmemory contains data needed for inmemory configuration. SecretTypeKuadrantInmemory corev1.SecretType = "kuadrant.io/inmemory" // InmemInitZonesKey is the key of the optional comma separated list of zone names to initialise in the SecretTypeKuadrantInmemory provider secrets InmemInitZonesKey = "INMEM_INIT_ZONES" SecretTypeKuadrantCoreDNS corev1.SecretType = "kuadrant.io/coredns" // CoreDNSZonesKey list of zones available to add records into. Must be configured in the Corefile with a 'kuadrant' directive. CoreDNSZonesKey = "ZONES" DefaultProviderSecretLabel = "kuadrant.io/default-provider" // This label defines the GVR to use for the endpoints provider EndpointGVRKey = "ENDPOINT_GVR" // The GVR to use in the endpoint provider is none are provided DefaultEndpointGVR = "kuadrant.io/v1alpha1.dnsrecords" // This is a label selector for the endpoint provider to find available zones EndpointLabelSelectorKey = "ENDPOINT_ZONE_RECORD_LABEL" // Default label selector used by the endpoint provider DefaultLabelSelector = "kuadrant.io/zone-record=true" // SecretTypeKuadrantEndpoint contains required fields for setting up an endpoint provider. // // no required fields, optional fields are: // - ENDPOINT_GVR (defaults to: kuadrant.io/v1alpha1.dnsrecords) // - ENDPOINT_ZONE_RECORD_LABEL (defaults to: kuadrant.io/zone-record=true) SecretTypeKuadrantEndpoint corev1.SecretType = "kuadrant.io/endpoint" )
const AuthoritativeRecordHashLabel = "kuadrant.io/authoritative-record-hash"
const AuthoritativeRecordLabel = "kuadrant.io/authoritative-record"
const WildcardPrefix = "*."
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "kuadrant.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 AdditionalHeader ¶
func (*AdditionalHeader) DeepCopy ¶
func (in *AdditionalHeader) DeepCopy() *AdditionalHeader
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalHeader.
func (*AdditionalHeader) DeepCopyInto ¶
func (in *AdditionalHeader) DeepCopyInto(out *AdditionalHeader)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AdditionalHeaders ¶
type AdditionalHeaders []AdditionalHeader
func (AdditionalHeaders) DeepCopy ¶
func (in AdditionalHeaders) DeepCopy() AdditionalHeaders
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalHeaders.
func (AdditionalHeaders) DeepCopyInto ¶
func (in AdditionalHeaders) DeepCopyInto(out *AdditionalHeaders)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AdditionalHeadersRef ¶
type AdditionalHeadersRef struct {
Name string `json:"name"`
}
func (*AdditionalHeadersRef) DeepCopy ¶
func (in *AdditionalHeadersRef) DeepCopy() *AdditionalHeadersRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalHeadersRef.
func (*AdditionalHeadersRef) DeepCopyInto ¶
func (in *AdditionalHeadersRef) DeepCopyInto(out *AdditionalHeadersRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConditionReason ¶ added in v0.2.0
type ConditionReason string
const ConditionReasonAwaitingValidation ConditionReason = "AwaitingValidation"
const ConditionReasonFinalizersSet ConditionReason = "FinalizersSet"
const ConditionReasonHealthy ConditionReason = "AllChecksPassed"
const ConditionReasonInActiveGroup ConditionReason = "MemberOfActiveGroup"
const ConditionReasonInInactiveGroup ConditionReason = "MemberOfInactiveGroup"
const ConditionReasonNotInActiveGroup ConditionReason = "NotMemberOfActiveGroup"
const ConditionReasonPartiallyHealthy ConditionReason = "SomeChecksPassed"
const ConditionReasonProviderEndpointsDeletion ConditionReason = "ProviderEndpointsDeletion"
const ConditionReasonProviderEndpointsRemoved ConditionReason = "ProviderEndpointsRemoved"
const ConditionReasonProviderError ConditionReason = "ProviderError"
const ConditionReasonProviderSuccess ConditionReason = "ProviderSuccess"
const ConditionReasonUnhealthy ConditionReason = "HealthChecksFailed"
const ConditionReasonValidationError ConditionReason = "ValidationError"
type ConditionType ¶ added in v0.2.0
type ConditionType string
const ConditionTypeActive ConditionType = "Active"
const ConditionTypeHealthy ConditionType = "Healthy"
const ConditionTypeReady ConditionType = "Ready"
const ConditionTypeReadyForDelegation ConditionType = "ReadyForDelegation"
type DNSHealthCheckProbe ¶
type DNSHealthCheckProbe struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec DNSHealthCheckProbeSpec `json:"spec,omitempty"`
Status DNSHealthCheckProbeStatus `json:"status,omitempty"`
}
DNSHealthCheckProbe is the Schema for the dnshealthcheckprobes API
func (*DNSHealthCheckProbe) DeepCopy ¶
func (in *DNSHealthCheckProbe) DeepCopy() *DNSHealthCheckProbe
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSHealthCheckProbe.
func (*DNSHealthCheckProbe) DeepCopyInto ¶
func (in *DNSHealthCheckProbe) DeepCopyInto(out *DNSHealthCheckProbe)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DNSHealthCheckProbe) DeepCopyObject ¶
func (in *DNSHealthCheckProbe) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DNSHealthCheckProbe) Default ¶
func (p *DNSHealthCheckProbe) Default()
func (*DNSHealthCheckProbe) ToString ¶ added in v0.7.0
func (p *DNSHealthCheckProbe) ToString() string
type DNSHealthCheckProbeList ¶
type DNSHealthCheckProbeList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []DNSHealthCheckProbe `json:"items"`
}
DNSHealthCheckProbeList contains a list of DNSHealthCheckProbe
func (*DNSHealthCheckProbeList) DeepCopy ¶
func (in *DNSHealthCheckProbeList) DeepCopy() *DNSHealthCheckProbeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSHealthCheckProbeList.
func (*DNSHealthCheckProbeList) DeepCopyInto ¶
func (in *DNSHealthCheckProbeList) DeepCopyInto(out *DNSHealthCheckProbeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DNSHealthCheckProbeList) DeepCopyObject ¶
func (in *DNSHealthCheckProbeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DNSHealthCheckProbeSpec ¶
type DNSHealthCheckProbeSpec struct {
// Port to connect to the host on. Must be either 80, 443 or 1024-49151
// +kubebuilder:validation:XValidation:rule="self in [80, 443] || (self >= 1024 && self <= 49151)",message="Only ports 80, 443, 1024-49151 are allowed"
Port int `json:"port,omitempty"`
// Hostname is the value sent in the host header, to route the request to the correct service
// Represents a root host of the parent DNS Record.
Hostname string `json:"hostname,omitempty"`
// Address to connect to the host on (IP Address (A Record) or hostname (CNAME)).
Address string `json:"address,omitempty"`
// Path is the path to append to the host to reach the expected health check.
// Must start with "?" or "/", contain only valid URL characters and end with alphanumeric char or "/". For example "/" or "/healthz" are common
// +kubebuilder:validation:Pattern=`^(?:\?|\/)[\w\-.~:\/?#\[\]@!$&'()*+,;=]+(?:[a-zA-Z0-9]|\/){1}$`
Path string `json:"path,omitempty"`
// Protocol to use when connecting to the host, valid values are "HTTP" or "HTTPS"
// +kubebuilder:validation:XValidation:rule="self in ['HTTP','HTTPS']",message="Only HTTP or HTTPS protocols are allowed"
Protocol Protocol `json:"protocol,omitempty"`
// Interval defines how frequently this probe should execute
Interval *metav1.Duration `json:"interval,omitempty"`
// AdditionalHeadersRef refers to a secret that contains extra headers to send in the probe request, this is primarily useful if an authentication
// token is required by the endpoint.
// +optional
AdditionalHeadersRef *AdditionalHeadersRef `json:"additionalHeadersRef,omitempty"`
// FailureThreshold is the number of consecutive failures that must be exceeded for a host to be considered unhealthy.
// When the number of consecutive failures exceeds this threshold, the health check will be marked as unhealthy.
// +kubebuilder:validation:XValidation:rule="self > 0",message="Failure threshold must be greater than 0"
FailureThreshold int `json:"failureThreshold,omitempty"`
// AllowInsecureCertificate will instruct the health check probe to not fail on a self-signed or otherwise invalid SSL certificate
// this is primarily used in development or testing environments and is set by the --insecure-health-checks flag
AllowInsecureCertificate bool `json:"allowInsecureCertificate,omitempty"`
}
DNSHealthCheckProbeSpec defines the desired state of DNSHealthCheckProbe
func (*DNSHealthCheckProbeSpec) DeepCopy ¶
func (in *DNSHealthCheckProbeSpec) DeepCopy() *DNSHealthCheckProbeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSHealthCheckProbeSpec.
func (*DNSHealthCheckProbeSpec) DeepCopyInto ¶
func (in *DNSHealthCheckProbeSpec) DeepCopyInto(out *DNSHealthCheckProbeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DNSHealthCheckProbeStatus ¶
type DNSHealthCheckProbeStatus struct {
LastCheckedAt metav1.Time `json:"-"`
ConsecutiveFailures int `json:"consecutiveFailures,omitempty"`
Reason string `json:"reason,omitempty"`
Status int `json:"status,omitempty"`
Healthy *bool `json:"healthy,omitempty"`
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}
DNSHealthCheckProbeStatus defines the observed state of DNSHealthCheckProbe
func (*DNSHealthCheckProbeStatus) DeepCopy ¶
func (in *DNSHealthCheckProbeStatus) DeepCopy() *DNSHealthCheckProbeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSHealthCheckProbeStatus.
func (*DNSHealthCheckProbeStatus) DeepCopyInto ¶
func (in *DNSHealthCheckProbeStatus) DeepCopyInto(out *DNSHealthCheckProbeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DNSRecord ¶
type DNSRecord struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec DNSRecordSpec `json:"spec,omitempty"`
Status DNSRecordStatus `json:"status,omitempty"`
}
DNSRecord is the Schema for the dnsrecords API
func (*DNSRecord) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSRecord.
func (*DNSRecord) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DNSRecord) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*DNSRecord) GetProviderRef ¶ added in v0.5.0
func (s *DNSRecord) GetProviderRef() ProviderRef
func (*DNSRecord) GetRootHost ¶ added in v0.15.0
GetRootHost returns the root host for the current record.
Removes any wildcard prefix i.e. "*." that might exist. Access the spec directly if the raw value is required i.e. spec.RootHost
func (*DNSRecord) GetUIDHash ¶ added in v0.4.1
GetUIDHash returns a hash of the current records UID with a fixed length of 8.
func (*DNSRecord) HasDNSZoneAssigned ¶ added in v0.5.0
func (*DNSRecord) HasOwnerIDAssigned ¶ added in v0.5.0
func (*DNSRecord) HasProviderSecretAssigned ¶ added in v0.15.0
func (*DNSRecord) IsActive ¶ added in v0.16.0
IsActive always returns true for base DNSRecord instances. This method is part of the DNSRecordAccessor interface and is overridden by GroupAdapter to provide group-aware behavior. The base implementation ensures that non-grouped records are always considered active.
func (*DNSRecord) IsAuthoritativeRecord ¶ added in v0.15.0
func (*DNSRecord) IsDelegating ¶ added in v0.15.0
func (*DNSRecord) IsDeleting ¶ added in v0.15.0
type DNSRecordList ¶
type DNSRecordList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []DNSRecord `json:"items"`
}
DNSRecordList contains a list of DNSRecord
func (*DNSRecordList) DeepCopy ¶
func (in *DNSRecordList) DeepCopy() *DNSRecordList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSRecordList.
func (*DNSRecordList) DeepCopyInto ¶
func (in *DNSRecordList) DeepCopyInto(out *DNSRecordList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DNSRecordList) DeepCopyObject ¶
func (in *DNSRecordList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DNSRecordSpec ¶
type DNSRecordSpec struct {
// ownerID is a unique string used to identify the owner of this record.
// If unset or set to an empty string the record UID will be used.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="OwnerID is immutable"
// +kubebuilder:validation:MinLength=6
// +kubebuilder:validation:MaxLength=36
OwnerID string `json:"ownerID,omitempty"`
// rootHost is the single root for all endpoints in a DNSRecord.
// it is expected all defined endpoints are children of or equal to this rootHost
// Must contain at least two groups of valid URL characters separated by a "."
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="RootHost is immutable"
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=255
// +kubebuilder:validation:Pattern=`^(?:[\w\-.~:\/?#[\]@!$&'()*+,;=]+)\.(?:[\w\-.~:\/?#[\]@!$&'()*+,;=]+)$`
RootHost string `json:"rootHost"`
// ProviderRef is a reference to a provider secret.
// +optional
ProviderRef *ProviderRef `json:"providerRef,omitempty"`
// endpoints is a list of endpoints that will be published into the dns provider.
// +kubebuilder:validation:MinItems=0
// +optional
Endpoints []*externaldns.Endpoint `json:"endpoints,omitempty"`
// +optional
HealthCheck *HealthCheckSpec `json:"healthCheck,omitempty"`
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="delegate is immutable"
Delegate bool `json:"delegate,omitempty"`
}
DNSRecordSpec defines the desired state of DNSRecord +kubebuilder:validation:XValidation:rule="!has(oldSelf.ownerID) || has(self.ownerID)", message="OwnerID can't be unset if it was previously set" +kubebuilder:validation:XValidation:rule="has(oldSelf.ownerID) || !has(self.ownerID)", message="OwnerID can't be set if it was previously unset" +kubebuilder:validation:XValidation:rule="has(oldSelf.delegate) || !has(self.delegate) || self.delegate == false", message="delegate can't be set to true if unset" +kubebuilder:validation:XValidation:rule="!has(oldSelf.delegate) || oldSelf.delegate == false || has(self.delegate)", message="delegate can't be unset if true" +kubebuilder:validation:XValidation:rule="!(has(self.providerRef) && has(self.delegate) && self.delegate == true)", message="delegate=true and providerRef are mutually exclusive"
func (*DNSRecordSpec) DeepCopy ¶
func (in *DNSRecordSpec) DeepCopy() *DNSRecordSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSRecordSpec.
func (*DNSRecordSpec) DeepCopyInto ¶
func (in *DNSRecordSpec) DeepCopyInto(out *DNSRecordSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DNSRecordStatus ¶
type DNSRecordStatus struct {
// conditions are any conditions associated with the record in the dns provider.
//
// If publishing the record fails, the "Failed" condition will be set with a
// reason and message describing the cause of the failure.
Conditions []metav1.Condition `json:"conditions,omitempty"`
// observedGeneration is the most recently observed generation of the DNSRecord.
// +optional
ObservedGeneration int64 `json:"observedGeneration,omitempty"`
// QueuedAt is a time when DNS record was received for the reconciliation
QueuedAt metav1.Time `json:"queuedAt,omitempty"`
// ValidFor indicates duration since the last reconciliation we consider data in the record to be valid
ValidFor string `json:"validFor,omitempty"`
// WriteCounter represent a number of consecutive write attempts on the same generation of the record.
// It is being reset to 0 when the generation changes or there are no changes to write.
WriteCounter int64 `json:"writeCounter,omitempty"`
// endpoints are the last endpoints that were successfully published to the provider zone
Endpoints []*externaldns.Endpoint `json:"endpoints,omitempty"`
HealthCheck *HealthCheckStatus `json:"healthCheck,omitempty"`
// ownerID is a unique string used to identify the owner of this record.
OwnerID string `json:"ownerID,omitempty"`
// ProviderRef is a reference to a provider secret used to publish endpoints.
ProviderRef ProviderRef `json:"providerRef,omitempty"`
// DomainOwners is a list of all the owners working against the root domain of this record
DomainOwners []string `json:"domainOwners,omitempty"`
// zoneID is the provider specific id to which this dns record is publishing endpoints
ZoneID string `json:"zoneID,omitempty"`
// zoneDomainName is the domain name of the zone that the dns record is publishing endpoints
ZoneDomainName string `json:"zoneDomainName,omitempty"`
// remoteRecordStatuses is a map of cluster IDs and their unique DNSRecordStatus as raw JSON.
//
// A CRD can't reference a type within itself so the `apiextensionsv1.JSON` type is used.
// Use GetRemoteRecordStatuses to get the converted type.
RemoteRecordStatuses map[string]apiextensionsv1.JSON `json:"remoteRecordStatuses,omitempty"`
// Group displays the group which the dns-operator belongs to, if set.
Group types.Group `json:"group,omitempty"`
// ActiveGroups displays the last read list of active groups
ActiveGroups string `json:"activeGroups,omitempty"`
}
DNSRecordStatus defines the observed state of DNSRecord
func (*DNSRecordStatus) DeepCopy ¶
func (in *DNSRecordStatus) DeepCopy() *DNSRecordStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSRecordStatus.
func (*DNSRecordStatus) DeepCopyInto ¶
func (in *DNSRecordStatus) DeepCopyInto(out *DNSRecordStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DNSRecordStatus) GetRemoteRecordStatus ¶ added in v0.15.0
func (s *DNSRecordStatus) GetRemoteRecordStatus(clusterID string) DNSRecordStatus
GetRemoteRecordStatus returns a remote record status for the given cluster ID.
func (*DNSRecordStatus) GetRemoteRecordStatuses ¶ added in v0.15.0
func (s *DNSRecordStatus) GetRemoteRecordStatuses() map[string]DNSRecordStatus
GetRemoteRecordStatuses returns any remote record statuses in the current status.
Converts the raw json type `map[string]apiextensionsv1.JSON` to the desired map[string]DNSRecordStatus` type.
func (*DNSRecordStatus) ProviderEndpointsDeletion ¶ added in v0.15.0
func (s *DNSRecordStatus) ProviderEndpointsDeletion() bool
ProviderEndpointsDeletion return true if the ready status condition has the reason set to "ProviderEndpointsDeletion"
func (*DNSRecordStatus) ProviderEndpointsRemoved ¶ added in v0.15.0
func (s *DNSRecordStatus) ProviderEndpointsRemoved() bool
ProviderEndpointsRemoved return true if the ready status condition has the reason set to "ProviderEndpointsRemoved". Any remote record statuses must also have the same condition set to true.
func (*DNSRecordStatus) ReadyForDelegation ¶ added in v0.15.0
func (s *DNSRecordStatus) ReadyForDelegation() bool
func (*DNSRecordStatus) SetRemoteRecordStatus ¶ added in v0.15.0
func (s *DNSRecordStatus) SetRemoteRecordStatus(clusterID string, rStatus DNSRecordStatus)
SetRemoteRecordStatus sets a remote record status for the given cluster ID.
type DNSRecordType ¶
type DNSRecordType string
DNSRecordType is a DNS resource record type. +kubebuilder:validation:Enum=CNAME;A
const ( // CNAMERecordType is an RFC 1035 CNAME record. CNAMERecordType DNSRecordType = "CNAME" // ARecordType is an RFC 1035 A record. ARecordType DNSRecordType = "A" // NSRecordType is a name server record. NSRecordType DNSRecordType = "NS" )
type HealthCheckSpec ¶ added in v0.2.0
type HealthCheckSpec struct {
// Port to connect to the host on. Must be either 80, 443 or 1024-49151
// Defaults to port 443
// +kubebuilder:validation:XValidation:rule="self in [80, 443] || (self >= 1024 && self <= 49151)",message="Only ports 80, 443, 1024-49151 are allowed"
// +kubebuilder:default=443
Port int `json:"port,omitempty"`
// Path is the path to append to the host to reach the expected health check.
// Must start with "?" or "/", contain only valid URL characters and end with alphanumeric char or "/". For example "/" or "/healthz" are common
// +kubebuilder:validation:Pattern=`^(?:\?|\/)[\w\-.~:\/?#\[\]@!$&'()*+,;=]+(?:[a-zA-Z0-9]|\/){1}$`
Path string `json:"path,omitempty"`
// Protocol to use when connecting to the host, valid values are "HTTP" or "HTTPS"
// Defaults to HTTPS
// +kubebuilder:validation:XValidation:rule="self in ['HTTP','HTTPS']",message="Only HTTP or HTTPS protocols are allowed"
// +kubebuilder:default=HTTPS
Protocol Protocol `json:"protocol,omitempty"`
// Interval defines how frequently this probe should execute
// Defaults to 5 minutes
// +kubebuilder:default="5m"
Interval *metav1.Duration `json:"interval,omitempty"`
// AdditionalHeadersRef refers to a secret that contains extra headers to send in the probe request, this is primarily useful if an authentication
// token is required by the endpoint.
// +optional
AdditionalHeadersRef *AdditionalHeadersRef `json:"additionalHeadersRef,omitempty"`
// FailureThreshold is the number of consecutive failures that must be exceeded for a host to be considered unhealthy.
// When the number of consecutive failures exceeds this threshold, the health check will be marked as unhealthy.
// Defaults to 5
// +kubebuilder:validation:XValidation:rule="self > 0",message="Failure threshold must be greater than 0"
// +kubebuilder:default=5
FailureThreshold int `json:"failureThreshold,omitempty"`
}
HealthCheckSpec configures health checks in the DNS provider. By default this health check will be applied to each unique DNS A Record for the listeners assigned to the target gateway
func (*HealthCheckSpec) DeepCopy ¶ added in v0.2.0
func (in *HealthCheckSpec) DeepCopy() *HealthCheckSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheckSpec.
func (*HealthCheckSpec) DeepCopyInto ¶ added in v0.2.0
func (in *HealthCheckSpec) DeepCopyInto(out *HealthCheckSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HealthCheckStatus ¶ added in v0.2.0
type HealthCheckStatus struct {
Conditions []metav1.Condition `json:"conditions,omitempty"`
Probes []HealthCheckStatusProbe `json:"probes,omitempty"`
}
func (*HealthCheckStatus) DeepCopy ¶ added in v0.2.0
func (in *HealthCheckStatus) DeepCopy() *HealthCheckStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheckStatus.
func (*HealthCheckStatus) DeepCopyInto ¶ added in v0.2.0
func (in *HealthCheckStatus) DeepCopyInto(out *HealthCheckStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HealthCheckStatusProbe ¶ added in v0.2.0
type HealthCheckStatusProbe struct {
ID string `json:"id"`
IPAddress string `json:"ipAddress"`
Host string `json:"host"`
Synced bool `json:"synced,omitempty"`
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
func (*HealthCheckStatusProbe) DeepCopy ¶ added in v0.2.0
func (in *HealthCheckStatusProbe) DeepCopy() *HealthCheckStatusProbe
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheckStatusProbe.
func (*HealthCheckStatusProbe) DeepCopyInto ¶ added in v0.2.0
func (in *HealthCheckStatusProbe) DeepCopyInto(out *HealthCheckStatusProbe)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Protocol ¶ added in v0.7.0
type Protocol string
const HttpProtocol Protocol = "HTTP"
const HttpsProtocol Protocol = "HTTPS"
type ProviderAccessor ¶
type ProviderAccessor interface {
GetNamespace() string
GetProviderRef() ProviderRef
GetRootHost() string
IsAuthoritativeRecord() bool
IsDelegating() bool
}
+kubebuilder:object:generate=false
type ProviderRef ¶
type ProviderRef struct {
Name string `json:"name"`
}
func (*ProviderRef) DeepCopy ¶
func (in *ProviderRef) DeepCopy() *ProviderRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderRef.
func (*ProviderRef) DeepCopyInto ¶
func (in *ProviderRef) DeepCopyInto(out *ProviderRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.