v1alpha1

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: May 3, 2024 License: Apache-2.0 Imports: 11 Imported by: 2

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the v1alpha1 API group +kubebuilder:object:generate=true +groupName=kuadrant.io

Index

Constants

View Source
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"

	DefaultGeo string = "default"
)
View Source
const (
	ProviderSpecificWeight  = "weight"
	ProviderSpecificGeoCode = "geo-code"
)
View Source
const WildcardPrefix = "*."

Variables

View Source
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 ConditionReason added in v0.2.0

type ConditionReason string

type ConditionType added in v0.2.0

type ConditionType string
const ConditionTypeReady ConditionType = "Ready"

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

func (in *DNSRecord) DeepCopy() *DNSRecord

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

func (*DNSRecord) DeepCopyInto

func (in *DNSRecord) DeepCopyInto(out *DNSRecord)

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

func (*DNSRecord) DeepCopyObject

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

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

func (*DNSRecord) GetRegistry added in v0.2.0

func (s *DNSRecord) GetRegistry(provider externaldnsprovider.Provider, managedDNSRecordTypes, excludeDNSRecordTypes []string) (externaldnsregistry.Registry, error)

func (*DNSRecord) Validate added in v0.2.0

func (s *DNSRecord) Validate() error

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.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="OwnerID is immutable"
	// +optional
	OwnerID *string `json:"ownerID,omitempty"`

	// rootHost is the single root for all endpoints in a DNSRecord.
	// If rootHost is set, it is expected all defined endpoints are children of or equal to this rootHost
	// +optional
	RootHost *string `json:"rootHost,omitempty"`

	// managedZone is a reference to a ManagedZone instance to which this record will publish its endpoints.
	ManagedZoneRef *ManagedZoneReference `json:"managedZone"`

	// endpoints is a list of endpoints that will be published into the dns provider.
	// +kubebuilder:validation:MinItems=1
	// +optional
	Endpoints []*externaldns.Endpoint `json:"endpoints,omitempty"`

	// +optional
	HealthCheck *HealthCheckSpec `json:"healthCheck,omitempty"`
}

DNSRecordSpec defines the desired state of DNSRecord

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 managed zone.
	//
	// 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.  When the DNSRecord is updated, the controller updates the
	// corresponding record in each managed zone.  If an update for a
	// particular zone fails, that failure is recorded in the status
	// condition for the zone so that the controller can determine that it
	// needs to retry the update for that specific zone.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// QueuedAt is a time when DNS record was received for the reconciliation
	QueuedAt metav1.Time `json:"queuedAt,omitempty"`

	// QueuedFor is a time when we expect a DNS record to be reconciled again
	QueuedFor metav1.Time `json:"queuedFor,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 by the provider
	//
	// Provides a simple mechanism to store the current provider records in order to
	// delete any that are no longer present in DNSRecordSpec.Endpoints
	//
	// Note: This will not be required if/when we switch to using external-dns since when
	// running with a "sync" policy it will clean up unused records automatically.
	Endpoints []*externaldns.Endpoint `json:"endpoints,omitempty"`

	HealthCheck *HealthCheckStatus `json:"healthCheck,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.

type DNSRecordType

type DNSRecordType string

DNSRecordType is a DNS resource record type. +kubebuilder:validation:Enum=CNAME;A

type HealthCheckSpec added in v0.2.0

type HealthCheckSpec struct {
	Endpoint         string          `json:"endpoint,omitempty"`
	Port             *int            `json:"port,omitempty"`
	Protocol         *HealthProtocol `json:"protocol,omitempty"`
	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

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 HealthProtocol

type HealthProtocol string
const HttpProtocol HealthProtocol = "HTTP"
const HttpsProtocol HealthProtocol = "HTTPS"

type ManagedHost

type ManagedHost struct {
	Subdomain   string
	Host        string
	ManagedZone *ManagedZone
	DnsRecord   *DNSRecord
}

func (*ManagedHost) DeepCopy

func (in *ManagedHost) DeepCopy() *ManagedHost

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

func (*ManagedHost) DeepCopyInto

func (in *ManagedHost) DeepCopyInto(out *ManagedHost)

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

type ManagedZone

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

	Spec   ManagedZoneSpec   `json:"spec,omitempty"`
	Status ManagedZoneStatus `json:"status,omitempty"`
}

ManagedZone is the Schema for the managedzones API

func (*ManagedZone) DeepCopy

func (in *ManagedZone) DeepCopy() *ManagedZone

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

func (*ManagedZone) DeepCopyInto

func (in *ManagedZone) DeepCopyInto(out *ManagedZone)

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

func (*ManagedZone) DeepCopyObject

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

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

func (*ManagedZone) GetProviderRef

func (mz *ManagedZone) GetProviderRef() ProviderRef

type ManagedZoneList

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

ManagedZoneList contains a list of ManagedZone

func (*ManagedZoneList) DeepCopy

func (in *ManagedZoneList) DeepCopy() *ManagedZoneList

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

func (*ManagedZoneList) DeepCopyInto

func (in *ManagedZoneList) DeepCopyInto(out *ManagedZoneList)

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

func (*ManagedZoneList) DeepCopyObject

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

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

type ManagedZoneReference

type ManagedZoneReference struct {
	// `name` is the name of the managed zone.
	// Required
	Name string `json:"name"`
}

ManagedZoneReference holds a reference to a ManagedZone

func (*ManagedZoneReference) DeepCopy

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

func (*ManagedZoneReference) DeepCopyInto

func (in *ManagedZoneReference) DeepCopyInto(out *ManagedZoneReference)

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

type ManagedZoneSpec

type ManagedZoneSpec struct {
	// id is the provider assigned id of this  zone (i.e. route53.HostedZone.ID).
	// +optional
	ID string `json:"id,omitempty"`

	//domainName of this ManagedZone
	// +kubebuilder:validation:Pattern=`^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$`
	DomainName string `json:"domainName"`

	//description for this ManagedZone
	Description string `json:"description"`

	// parentManagedZone reference to another managed zone that this managed zone belongs to.
	// +optional
	ParentManagedZone *ManagedZoneReference `json:"parentManagedZone,omitempty"`

	// dnsProviderSecretRef reference to a secret containing credentials to access a dns provider.
	SecretRef ProviderRef `json:"dnsProviderSecretRef"`
}

ManagedZoneSpec defines the desired state of ManagedZone

func (*ManagedZoneSpec) DeepCopy

func (in *ManagedZoneSpec) DeepCopy() *ManagedZoneSpec

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

func (*ManagedZoneSpec) DeepCopyInto

func (in *ManagedZoneSpec) DeepCopyInto(out *ManagedZoneSpec)

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

type ManagedZoneStatus

type ManagedZoneStatus struct {
	// List of status conditions to indicate the status of a ManagedZone.
	// Known condition types are `Ready`.
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// observedGeneration is the most recently observed generation of the ManagedZone.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// The ID assigned by this provider for this zone (i.e. route53.HostedZone.ID)
	// +optional
	ID string `json:"id,omitempty"`

	// The number of records in the provider zone
	// +optional
	RecordCount int64 `json:"recordCount,omitempty"`

	// The NameServers assigned by the provider for this zone (i.e. route53.DelegationSet.NameServers)
	// +optional
	NameServers []*string `json:"nameServers,omitempty"`
}

ManagedZoneStatus defines the observed state of a Zone

func (*ManagedZoneStatus) DeepCopy

func (in *ManagedZoneStatus) DeepCopy() *ManagedZoneStatus

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

func (*ManagedZoneStatus) DeepCopyInto

func (in *ManagedZoneStatus) DeepCopyInto(out *ManagedZoneStatus)

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

type ProviderAccessor

type ProviderAccessor interface {
	GetNamespace() string
	GetProviderRef() ProviderRef
}

+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.

Jump to

Keyboard shortcuts

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