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=github.com/kubernetes-sigs/federation-v2/pkg/apis/multiclusterdns +k8s:defaulter-gen=TypeMeta +groupName=multiclusterdns.federation.k8s.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=github.com/kubernetes-sigs/federation-v2/pkg/apis/multiclusterdns +k8s:defaulter-gen=TypeMeta +groupName=multiclusterdns.federation.k8s.io
Index ¶
- Variables
- func Resource(resource string) schema.GroupResource
- type ClusterDNS
- type ClusterIngressDNS
- type DNSEndpoint
- type DNSEndpointList
- type DNSEndpointSpec
- type DNSEndpointStatus
- type Domain
- type DomainList
- type Endpoint
- type IngressDNSRecord
- type IngressDNSRecordList
- type IngressDNSRecordSpec
- type IngressDNSRecordStatus
- type Labels
- type ServiceDNSRecord
- type ServiceDNSRecordList
- type ServiceDNSRecordSpec
- type ServiceDNSRecordStatus
- type TTL
- type Targets
Constants ¶
This section is empty.
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "multiclusterdns.federation.k8s.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 ¶ added in v0.0.2
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 ¶ added in v0.0.2
func (in *ClusterIngressDNS) DeepCopy() *ClusterIngressDNS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressDNS.
func (*ClusterIngressDNS) DeepCopyInto ¶ added in v0.0.2
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 ¶ added in v0.0.2
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 ¶ added in v0.0.2
func (in *DNSEndpoint) DeepCopy() *DNSEndpoint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSEndpoint.
func (*DNSEndpoint) DeepCopyInto ¶ added in v0.0.2
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 ¶ added in v0.0.2
func (in *DNSEndpoint) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DNSEndpointList ¶ added in v0.0.2
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 ¶ added in v0.0.2
func (in *DNSEndpointList) DeepCopy() *DNSEndpointList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSEndpointList.
func (*DNSEndpointList) DeepCopyInto ¶ added in v0.0.2
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 ¶ added in v0.0.2
func (in *DNSEndpointList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DNSEndpointSpec ¶ added in v0.0.2
type DNSEndpointSpec struct {
Endpoints []*Endpoint `json:"endpoints,omitempty"`
}
DNSEndpointSpec defines the desired state of DNSEndpoint
func (*DNSEndpointSpec) DeepCopy ¶ added in v0.0.2
func (in *DNSEndpointSpec) DeepCopy() *DNSEndpointSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSEndpointSpec.
func (*DNSEndpointSpec) DeepCopyInto ¶ added in v0.0.2
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 ¶ added in v0.0.2
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 ¶ added in v0.0.2
func (in *DNSEndpointStatus) DeepCopy() *DNSEndpointStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSEndpointStatus.
func (*DNSEndpointStatus) DeepCopyInto ¶ added in v0.0.2
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 ¶ added in v0.0.3
type Domain struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // Domain is the DNS zone associated with the federation Domain string `json:"domain"` // NameServer is the authoritative DNS name server for the federation domain NameServer string `json:"nameServer,omitempty"` }
Domain +k8s:openapi-gen=true +kubebuilder:resource:path=domains
func (*Domain) DeepCopy ¶ added in v0.0.3
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Domain.
func (*Domain) DeepCopyInto ¶ added in v0.0.3
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Domain) DeepCopyObject ¶ added in v0.0.3
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DomainList ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *DomainList) DeepCopy() *DomainList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DomainList.
func (*DomainList) DeepCopyInto ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *DomainList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type Endpoint ¶ added in v0.0.2
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 ¶ added in v0.0.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.
func (*Endpoint) DeepCopyInto ¶ added in v0.0.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngressDNSRecord ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *IngressDNSRecord) DeepCopy() *IngressDNSRecord
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressDNSRecord.
func (*IngressDNSRecord) DeepCopyInto ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *IngressDNSRecord) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IngressDNSRecordList ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *IngressDNSRecordList) DeepCopy() *IngressDNSRecordList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressDNSRecordList.
func (*IngressDNSRecordList) DeepCopyInto ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *IngressDNSRecordList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type IngressDNSRecordSpec ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *IngressDNSRecordSpec) DeepCopy() *IngressDNSRecordSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressDNSRecordSpec.
func (*IngressDNSRecordSpec) DeepCopyInto ¶ added in v0.0.3
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 ¶ added in v0.0.3
type IngressDNSRecordStatus struct { // Array of Ingress Controller LoadBalancers DNS []ClusterIngressDNS `json:"dns,omitempty"` }
IngressDNSRecordStatus defines the observed state of IngressDNSRecord
func (*IngressDNSRecordStatus) DeepCopy ¶ added in v0.0.3
func (in *IngressDNSRecordStatus) DeepCopy() *IngressDNSRecordStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressDNSRecordStatus.
func (*IngressDNSRecordStatus) DeepCopyInto ¶ added in v0.0.3
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 ¶ added in v0.0.2
Labels store metadata related to the endpoint it is then stored in a persistent storage via serialization
func (Labels) DeepCopy ¶ added in v0.0.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Labels.
func (Labels) DeepCopyInto ¶ added in v0.0.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceDNSRecord ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *ServiceDNSRecord) DeepCopy() *ServiceDNSRecord
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDNSRecord.
func (*ServiceDNSRecord) DeepCopyInto ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *ServiceDNSRecord) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ServiceDNSRecordList ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *ServiceDNSRecordList) DeepCopy() *ServiceDNSRecordList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDNSRecordList.
func (*ServiceDNSRecordList) DeepCopyInto ¶ added in v0.0.3
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 ¶ added in v0.0.3
func (in *ServiceDNSRecordList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ServiceDNSRecordSpec ¶ added in v0.0.3
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>.<FederationDomain> 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 ¶ added in v0.0.3
func (in *ServiceDNSRecordSpec) DeepCopy() *ServiceDNSRecordSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDNSRecordSpec.
func (*ServiceDNSRecordSpec) DeepCopyInto ¶ added in v0.0.3
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 ¶ added in v0.0.3
type ServiceDNSRecordStatus struct { // Domain is the DNS domain of the federation as in Domain API Domain string `json:"domain,omitempty"` DNS []ClusterDNS `json:"dns,omitempty"` }
ServiceDNSRecordStatus defines the observed state of ServiceDNSRecord.
func (*ServiceDNSRecordStatus) DeepCopy ¶ added in v0.0.3
func (in *ServiceDNSRecordStatus) DeepCopy() *ServiceDNSRecordStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDNSRecordStatus.
func (*ServiceDNSRecordStatus) DeepCopyInto ¶ added in v0.0.3
func (in *ServiceDNSRecordStatus) DeepCopyInto(out *ServiceDNSRecordStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Targets ¶ added in v0.0.2
type Targets []string
Targets is a representation of a list of targets for an endpoint.
func (Targets) DeepCopy ¶ added in v0.0.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Targets.
func (Targets) DeepCopyInto ¶ added in v0.0.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.