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 ¶
- 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.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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Domain.
func (*Domain) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Domain) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.
func (*Endpoint) DeepCopyInto ¶
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 ¶
func (in *IngressDNSRecordList) DeepCopy() *IngressDNSRecordList
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 ¶
func (in *IngressDNSRecordSpec) DeepCopy() *IngressDNSRecordSpec
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 ¶
func (in *IngressDNSRecordStatus) DeepCopy() *IngressDNSRecordStatus
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 ¶
Labels store metadata related to the endpoint it is then stored in a persistent storage via serialization
func (Labels) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Labels.
func (Labels) DeepCopyInto ¶
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 ¶
func (in *ServiceDNSRecordList) DeepCopy() *ServiceDNSRecordList
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 ¶
func (in *ServiceDNSRecordSpec) DeepCopy() *ServiceDNSRecordSpec
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 ¶
func (in *ServiceDNSRecordStatus) DeepCopy() *ServiceDNSRecordStatus
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 Targets ¶
type Targets []string
Targets is a representation of a list of targets for an endpoint.
func (Targets) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Targets.
func (Targets) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.