v1

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

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

Index

Constants

View Source
const (
	TargetTypeHost = "HOST"
	TargetTypeIP   = "IP"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "kuadrant.io", Version: "v1"}

	// 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
)
View Source
var (
	// Failed means the record is not available within a zone.
	DNSRecordFailedConditionType = "Failed"
)

Functions

This section is empty.

Types

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.

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 {
	// +kubebuilder:validation:MinItems=1
	// +optional
	Endpoints []*Endpoint `json:"endpoints"`
}

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 {
	// zones are the status of the record in each zone.
	Zones []DNSZoneStatus `json:"zones,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"`
}

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

const (
	// CNAMERecordType is an RFC 1035 CNAME record.
	CNAMERecordType DNSRecordType = "CNAME"

	// ARecordType is an RFC 1035 A record.
	ARecordType DNSRecordType = "A"
)

type DNSZone

type DNSZone struct {
	// id is the identifier that can be used to find the DNS hosted zone.
	//
	// on AWS zone can be fetched using `ID` as id in [1]
	// on Azure zone can be fetched using `ID` as a pre-determined name in [2],
	// on GCP zone can be fetched using `ID` as a pre-determined name in [3].
	//
	// [1]: https://docs.aws.amazon.com/cli/latest/reference/route53/get-hosted-zone.html#options
	// [2]: https://docs.microsoft.com/en-us/cli/azure/network/dns/zone?view=azure-cli-latest#az-network-dns-zone-show
	// [3]: https://cloud.google.com/dns/docs/reference/v1/managedZones/get
	// +optional
	ID string `json:"id,omitempty"`

	// tags can be used to query the DNS hosted zone.
	//
	// on AWS, resourcegroupstaggingapi [1] can be used to fetch a zone using `Tags` as tag-filters,
	//
	// [1]: https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html#options
	// +optional
	Tags map[string]string `json:"tags,omitempty"`
}

DNSZone is used to define a DNS hosted zone. A zone can be identified by an ID or tags.

func (*DNSZone) DeepCopy

func (in *DNSZone) DeepCopy() *DNSZone

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

func (*DNSZone) DeepCopyInto

func (in *DNSZone) DeepCopyInto(out *DNSZone)

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

type DNSZoneCondition

type DNSZoneCondition struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +required
	Type string `json:"type"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +required
	Status             string      `json:"status"`
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	Reason             string      `json:"reason,omitempty"`
	Message            string      `json:"message,omitempty"`
}

DNSZoneCondition is just the standard condition fields.

func (*DNSZoneCondition) DeepCopy

func (in *DNSZoneCondition) DeepCopy() *DNSZoneCondition

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

func (*DNSZoneCondition) DeepCopyInto

func (in *DNSZoneCondition) DeepCopyInto(out *DNSZoneCondition)

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

type DNSZoneStatus

type DNSZoneStatus struct {
	// dnsZone is the zone where the record is published.
	DNSZone DNSZone `json:"dnsZone"`
	// conditions are any conditions associated with the record in the zone.
	//
	// If publishing the record fails, the "Failed" condition will be set with a
	// reason and message describing the cause of the failure.
	Conditions []DNSZoneCondition `json:"conditions,omitempty"`
	// endpoints are the last endpoints that were successfully published to 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 []*Endpoint `json:"endpoints,omitempty"`
}

DNSZoneStatus is the status of a record within a specific zone.

func (*DNSZoneStatus) DeepCopy

func (in *DNSZoneStatus) DeepCopy() *DNSZoneStatus

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

func (*DNSZoneStatus) DeepCopyInto

func (in *DNSZoneStatus) DeepCopyInto(out *DNSZoneStatus)

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

type Endpoint

type Endpoint struct {
	// The hostname of the DNS record
	DNSName string `json:"dnsName,omitempty"`
	// The targets the DNS record points to
	Targets Targets `json:"targets,omitempty"`
	// RecordType type of record, e.g. CNAME, A, SRV, TXT etc
	RecordType string `json:"recordType,omitempty"`
	// Identifier to distinguish multiple records with the same name and type (e.g. Route53 records with routing policies other than 'simple')
	SetIdentifier string `json:"setIdentifier,omitempty"`
	// TTL for the record
	RecordTTL TTL `json:"recordTTL,omitempty"`
	// Labels stores labels defined for the Endpoint
	// +optional
	Labels Labels `json:"labels,omitempty"`
	// ProviderSpecific stores provider specific config
	// +optional
	ProviderSpecific ProviderSpecific `json:"providerSpecific,omitempty"`
}

Endpoint is a high-level way of a connection between a service and an IP

func (*Endpoint) DeepCopy

func (in *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto

func (in *Endpoint) DeepCopyInto(out *Endpoint)

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

func (*Endpoint) DeleteProviderSpecific

func (endpoint *Endpoint) DeleteProviderSpecific(name string) bool

func (*Endpoint) GetAddress

func (endpoint *Endpoint) GetAddress() (string, bool)

func (*Endpoint) GetProviderSpecific

func (endpoint *Endpoint) GetProviderSpecific(name string) (string, bool)

func (*Endpoint) GetProviderSpecificProperty

func (e *Endpoint) GetProviderSpecificProperty(key string) (ProviderSpecificProperty, bool)

GetProviderSpecificProperty returns a ProviderSpecificProperty if the property exists.

func (*Endpoint) SetID

func (e *Endpoint) SetID() string

SetID returns an id that should be unique across a set of endpoints

func (*Endpoint) SetProviderSpecific

func (endpoint *Endpoint) SetProviderSpecific(name, value string)

func (*Endpoint) String

func (e *Endpoint) String() string

func (*Endpoint) WithProviderSpecific

func (e *Endpoint) WithProviderSpecific(key, value string) *Endpoint

WithProviderSpecific attaches a key/value pair to the Endpoint and returns the Endpoint. This can be used to pass additional data through the stages of ExternalDNS's Endpoint processing. The assumption is that most of the time this will be provider specific metadata that doesn't warrant its own field on the Endpoint object itself. It differs from Labels in the fact that it's not persisted in the Registry but only kept in memory during a single record synchronization.

func (*Endpoint) WithSetIdentifier

func (e *Endpoint) WithSetIdentifier(setIdentifier string) *Endpoint

WithSetIdentifier applies the given set identifier to the endpoint.

type Labels

type Labels map[string]string

Labels store metadata related to the endpoint it is then stored in a persistent storage via serialization

func (Labels) DeepCopy

func (in Labels) DeepCopy() Labels

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

func (Labels) DeepCopyInto

func (in Labels) DeepCopyInto(out *Labels)

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

type ProviderSpecific

type ProviderSpecific []ProviderSpecificProperty

ProviderSpecific holds configuration which is specific to individual DNS providers

func (ProviderSpecific) DeepCopy

func (in ProviderSpecific) DeepCopy() ProviderSpecific

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

func (ProviderSpecific) DeepCopyInto

func (in ProviderSpecific) DeepCopyInto(out *ProviderSpecific)

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

type ProviderSpecificProperty

type ProviderSpecificProperty struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

ProviderSpecificProperty holds the name and value of a configuration which is specific to individual DNS providers

func (*ProviderSpecificProperty) DeepCopy

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

func (*ProviderSpecificProperty) DeepCopyInto

func (in *ProviderSpecificProperty) DeepCopyInto(out *ProviderSpecificProperty)

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

type TTL

type TTL int64

TTL is a structure defining the TTL of a DNS record

type Target

type Target struct {
	Cluster    string
	TargetType string
	Value      string
}

func (*Target) DeepCopy

func (in *Target) DeepCopy() *Target

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

func (*Target) DeepCopyInto

func (in *Target) DeepCopyInto(out *Target)

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

type Targets

type Targets []string

Targets is a representation of a list of targets for an endpoint.

func (Targets) DeepCopy

func (in Targets) DeepCopy() Targets

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

func (Targets) DeepCopyInto

func (in Targets) DeepCopyInto(out *Targets)

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