v1alpha1

package
v1.19.1 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the multiclusterdns v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=sigs.k8s.io/kubefed/pkg/apis/multiclusterdns +k8s:defaulter-gen=TypeMeta +groupName=multiclusterdns.kubefed.io

Package v1alpha1 contains API Schema definitions for the multiclusterdns v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=sigs.k8s.io/kubefed/pkg/apis/multiclusterdns +k8s:defaulter-gen=TypeMeta +groupName=multiclusterdns.kubefed.io

Index

Constants

This section is empty.

Variables

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

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

	// AddToScheme is required by pkg/client/...
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

Types

type ClusterDNS

type ClusterDNS struct {
	// Cluster name
	Cluster string `json:"cluster,omitempty"`
	// LoadBalancer for the corresponding service
	LoadBalancer corev1.LoadBalancerStatus `json:"loadBalancer,omitempty"`
	// Zones to which the cluster belongs
	Zones []string `json:"zones,omitempty"`
	// Region to which the cluster belongs
	Region string `json:"region,omitempty"`
}

ClusterDNS defines the observed status of LoadBalancer within a cluster.

func (*ClusterDNS) DeepCopy

func (in *ClusterDNS) DeepCopy() *ClusterDNS

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

func (*ClusterDNS) DeepCopyInto

func (in *ClusterDNS) DeepCopyInto(out *ClusterDNS)

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

type ClusterIngressDNS

type ClusterIngressDNS struct {
	// Cluster name
	Cluster string `json:"cluster,omitempty"`
	// LoadBalancer for the corresponding ingress controller
	LoadBalancer corev1.LoadBalancerStatus `json:"loadBalancer,omitempty"`
}

ClusterIngressDNS defines the observed status of Ingress within a cluster.

func (*ClusterIngressDNS) DeepCopy

func (in *ClusterIngressDNS) DeepCopy() *ClusterIngressDNS

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

func (*ClusterIngressDNS) DeepCopyInto

func (in *ClusterIngressDNS) DeepCopyInto(out *ClusterIngressDNS)

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

type DNSEndpoint

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

	Spec   DNSEndpointSpec   `json:"spec,omitempty"`
	Status DNSEndpointStatus `json:"status,omitempty"`
}

DNSEndpoint is the CRD wrapper for Endpoint which is designed to act as a source of truth for external-dns.

+k8s:openapi-gen=true +kubebuilder:resource:path=dnsendpoints +kubebuilder:subresource:status

func (*DNSEndpoint) DeepCopy

func (in *DNSEndpoint) DeepCopy() *DNSEndpoint

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

func (*DNSEndpoint) DeepCopyInto

func (in *DNSEndpoint) DeepCopyInto(out *DNSEndpoint)

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

func (*DNSEndpoint) DeepCopyObject

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

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

type DNSEndpointList

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

DNSEndpointList contains a list of DNSEndpoint

func (*DNSEndpointList) DeepCopy

func (in *DNSEndpointList) DeepCopy() *DNSEndpointList

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

func (*DNSEndpointList) DeepCopyInto

func (in *DNSEndpointList) DeepCopyInto(out *DNSEndpointList)

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

func (*DNSEndpointList) DeepCopyObject

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

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

type DNSEndpointSpec

type DNSEndpointSpec struct {
	Endpoints []*Endpoint `json:"endpoints,omitempty"`
}

DNSEndpointSpec defines the desired state of DNSEndpoint

func (*DNSEndpointSpec) DeepCopy

func (in *DNSEndpointSpec) DeepCopy() *DNSEndpointSpec

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

func (*DNSEndpointSpec) DeepCopyInto

func (in *DNSEndpointSpec) DeepCopyInto(out *DNSEndpointSpec)

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

type DNSEndpointStatus

type DNSEndpointStatus struct {
	// ObservedGeneration is the generation as observed by the controller consuming the DNSEndpoint.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

DNSEndpointStatus defines the observed state of DNSEndpoint

func (*DNSEndpointStatus) DeepCopy

func (in *DNSEndpointStatus) DeepCopy() *DNSEndpointStatus

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

func (*DNSEndpointStatus) DeepCopyInto

func (in *DNSEndpointStatus) DeepCopyInto(out *DNSEndpointStatus)

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

type Domain

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

	// Domain is the DNS zone associated with the KubeFed control plane
	Domain string `json:"domain"`
	// NameServer is the authoritative DNS name server for the KubeFed domain
	NameServer string `json:"nameServer,omitempty"`
}

Domain +k8s:openapi-gen=true +kubebuilder:resource:path=domains

func (*Domain) DeepCopy

func (in *Domain) DeepCopy() *Domain

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

func (*Domain) DeepCopyInto

func (in *Domain) DeepCopyInto(out *Domain)

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

func (*Domain) DeepCopyObject

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

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

type DomainList

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

DomainList contains a list of Domain

func (*DomainList) DeepCopy

func (in *DomainList) DeepCopy() *DomainList

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

func (*DomainList) DeepCopyInto

func (in *DomainList) DeepCopyInto(out *DomainList)

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

func (*DomainList) DeepCopyObject

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

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

type Endpoint

type Endpoint struct {
	// The FQDN of the DNS record.
	DNSName string `json:"dnsName,omitempty"`
	// The targets that 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"`
	// TTL for the record in seconds.
	RecordTTL TTL `json:"recordTTL,omitempty"`
	// Labels stores labels defined for the Endpoint.
	// +optional
	Labels Labels `json:"labels,omitempty"`
}

Endpoint is a high-level association 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.

type IngressDNSRecord

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

	Spec   IngressDNSRecordSpec   `json:"spec,omitempty"`
	Status IngressDNSRecordStatus `json:"status,omitempty"`
}

IngressDNSRecord +k8s:openapi-gen=true +kubebuilder:resource:path=ingressdnsrecords +kubebuilder:subresource:status

func (*IngressDNSRecord) DeepCopy

func (in *IngressDNSRecord) DeepCopy() *IngressDNSRecord

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

func (*IngressDNSRecord) DeepCopyInto

func (in *IngressDNSRecord) DeepCopyInto(out *IngressDNSRecord)

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

func (*IngressDNSRecord) DeepCopyObject

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

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

type IngressDNSRecordList

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

IngressDNSRecordList contains a list of IngressDNSRecord

func (*IngressDNSRecordList) DeepCopy

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

func (*IngressDNSRecordList) DeepCopyInto

func (in *IngressDNSRecordList) DeepCopyInto(out *IngressDNSRecordList)

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

func (*IngressDNSRecordList) DeepCopyObject

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

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

type IngressDNSRecordSpec

type IngressDNSRecordSpec struct {
	// Host from the IngressRule in Cluster Ingress Spec
	Hosts []string `json:"hosts,omitempty"`
	// RecordTTL is the TTL in seconds for DNS records created for the Ingress, if omitted a default would be used
	RecordTTL TTL `json:"recordTTL,omitempty"`
}

IngressDNSRecordSpec defines the desired state of IngressDNSRecord

func (*IngressDNSRecordSpec) DeepCopy

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

func (*IngressDNSRecordSpec) DeepCopyInto

func (in *IngressDNSRecordSpec) DeepCopyInto(out *IngressDNSRecordSpec)

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

type IngressDNSRecordStatus

type IngressDNSRecordStatus struct {
	// Array of Ingress Controller LoadBalancers
	DNS []ClusterIngressDNS `json:"dns,omitempty"`
}

IngressDNSRecordStatus defines the observed state of IngressDNSRecord

func (*IngressDNSRecordStatus) DeepCopy

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

func (*IngressDNSRecordStatus) DeepCopyInto

func (in *IngressDNSRecordStatus) DeepCopyInto(out *IngressDNSRecordStatus)

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

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 ServiceDNSRecord

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

	Spec   ServiceDNSRecordSpec   `json:"spec,omitempty"`
	Status ServiceDNSRecordStatus `json:"status,omitempty"`
}

ServiceDNSRecord defines a scheme of DNS name and subdomains that should be programmed with endpoint information about a Service deployed in multiple Kubernetes clusters. ServiceDNSRecord is name-associated with the Services it programs endpoint information for, meaning that a ServiceDNSRecord expresses the intent to program DNS with information about endpoints for the Kubernetes Service resources with the same name and namespace in different clusters.

For the example, given the following values:

metadata.name: test-service metadata.namespace: test-namespace spec.federationName: test-federation

the following set of DNS names will be programmed:

Global Level: test-service.test-namespace.test-federation.svc.<federation-domain> Region Level: test-service.test-namespace.test-federation.svc.(status.DNS[*].region).<federation-domain> Zone Level : test-service.test-namespace.test-federation.svc.(status.DNS[*].zone).(status.DNS[*].region).<federation-domain>

Optionally, when DNSPrefix is specified, another DNS name will be programmed which would be a CNAME record pointing to DNS name at global level as below: <dns-prefix>.<federation-domain> --> test-service.test-namespace.test-federation.svc.<federation-domain>

+k8s:openapi-gen=true +kubebuilder:resource:path=servicednsrecords +kubebuilder:subresource:status

func (*ServiceDNSRecord) DeepCopy

func (in *ServiceDNSRecord) DeepCopy() *ServiceDNSRecord

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

func (*ServiceDNSRecord) DeepCopyInto

func (in *ServiceDNSRecord) DeepCopyInto(out *ServiceDNSRecord)

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

func (*ServiceDNSRecord) DeepCopyObject

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

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

type ServiceDNSRecordList

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

ServiceDNSRecordList contains a list of ServiceDNSRecord

func (*ServiceDNSRecordList) DeepCopy

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

func (*ServiceDNSRecordList) DeepCopyInto

func (in *ServiceDNSRecordList) DeepCopyInto(out *ServiceDNSRecordList)

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

func (*ServiceDNSRecordList) DeepCopyObject

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

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

type ServiceDNSRecordSpec

type ServiceDNSRecordSpec struct {
	// DomainRef is the name of the domain object to which the corresponding federated service belongs
	DomainRef string `json:"domainRef"`
	// RecordTTL is the TTL in seconds for DNS records created for this Service, if omitted a default would be used
	RecordTTL TTL `json:"recordTTL,omitempty"`
	// DNSPrefix when specified, an additional DNS record would be created with <DNSPrefix>.<KubeFedDomain>
	DNSPrefix string `json:"dnsPrefix,omitempty"`
	// ExternalName when specified, replaces the service name portion of a resource record
	// with the value of ExternalName.
	ExternalName string `json:"externalName,omitempty"`
	// AllowServiceWithoutEndpoints allows DNS records to be written for Service shards without endpoints
	AllowServiceWithoutEndpoints bool `json:"allowServiceWithoutEndpoints,omitempty"`
}

ServiceDNSRecordSpec defines the desired state of ServiceDNSRecord.

func (*ServiceDNSRecordSpec) DeepCopy

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

func (*ServiceDNSRecordSpec) DeepCopyInto

func (in *ServiceDNSRecordSpec) DeepCopyInto(out *ServiceDNSRecordSpec)

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

type ServiceDNSRecordStatus

type ServiceDNSRecordStatus struct {
	// Domain is the DNS domain of the KubeFed control plane as in Domain API
	Domain string       `json:"domain,omitempty"`
	DNS    []ClusterDNS `json:"dns,omitempty"`
}

ServiceDNSRecordStatus defines the observed state of ServiceDNSRecord.

func (*ServiceDNSRecordStatus) DeepCopy

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

func (*ServiceDNSRecordStatus) DeepCopyInto

func (in *ServiceDNSRecordStatus) DeepCopyInto(out *ServiceDNSRecordStatus)

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