v1alpha1

package
v0.0.6 Latest Latest
Warning

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

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

Documentation

Overview

+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

Copyright 2018 The Kubernetes Authors.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var (
	// Define CRDs for resources
	DNSEndpointCRD = v1beta1.CustomResourceDefinition{
		ObjectMeta: metav1.ObjectMeta{
			Name: "dnsendpoints.multiclusterdns.federation.k8s.io",
		},
		Spec: v1beta1.CustomResourceDefinitionSpec{
			Group:   "multiclusterdns.federation.k8s.io",
			Version: "v1alpha1",
			Names: v1beta1.CustomResourceDefinitionNames{
				Kind:   "DNSEndpoint",
				Plural: "dnsendpoints",
			},
			Scope: "Namespaced",
			Validation: &v1beta1.CustomResourceValidation{
				OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
					Properties: map[string]v1beta1.JSONSchemaProps{
						"apiVersion": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"kind": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"metadata": v1beta1.JSONSchemaProps{
							Type: "object",
						},
						"spec": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"endpoints": v1beta1.JSONSchemaProps{
									Type: "array",
									Items: &v1beta1.JSONSchemaPropsOrArray{
										Schema: &v1beta1.JSONSchemaProps{
											Type: "object",
											Properties: map[string]v1beta1.JSONSchemaProps{
												"dnsName": v1beta1.JSONSchemaProps{
													Type: "string",
												},
												"labels": v1beta1.JSONSchemaProps{
													Type: "object",
												},
												"recordTTL": v1beta1.JSONSchemaProps{
													Type:   "integer",
													Format: "int64",
												},
												"recordType": v1beta1.JSONSchemaProps{
													Type: "string",
												},
												"targets": v1beta1.JSONSchemaProps{
													Type: "array",
													Items: &v1beta1.JSONSchemaPropsOrArray{
														Schema: &v1beta1.JSONSchemaProps{
															Type: "string",
														},
													},
												},
											},
										},
									},
								},
							},
						},
						"status": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"observedGeneration": v1beta1.JSONSchemaProps{
									Type:   "integer",
									Format: "int64",
								},
							},
						},
					},
				},
			},
			Subresources: &v1beta1.CustomResourceSubresources{
				Status: &v1beta1.CustomResourceSubresourceStatus{},
			},
		},
	}
	// Define CRDs for resources
	DomainCRD = v1beta1.CustomResourceDefinition{
		ObjectMeta: metav1.ObjectMeta{
			Name: "domains.multiclusterdns.federation.k8s.io",
		},
		Spec: v1beta1.CustomResourceDefinitionSpec{
			Group:   "multiclusterdns.federation.k8s.io",
			Version: "v1alpha1",
			Names: v1beta1.CustomResourceDefinitionNames{
				Kind:   "Domain",
				Plural: "domains",
			},
			Scope: "Namespaced",
			Validation: &v1beta1.CustomResourceValidation{
				OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
					Properties: map[string]v1beta1.JSONSchemaProps{
						"apiVersion": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"domain": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"kind": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"metadata": v1beta1.JSONSchemaProps{
							Type: "object",
						},
						"nameServer": v1beta1.JSONSchemaProps{
							Type: "string",
						},
					},
					Required: []string{
						"domain",
					}},
			},
		},
	}
	// Define CRDs for resources
	IngressDNSRecordCRD = v1beta1.CustomResourceDefinition{
		ObjectMeta: metav1.ObjectMeta{
			Name: "ingressdnsrecords.multiclusterdns.federation.k8s.io",
		},
		Spec: v1beta1.CustomResourceDefinitionSpec{
			Group:   "multiclusterdns.federation.k8s.io",
			Version: "v1alpha1",
			Names: v1beta1.CustomResourceDefinitionNames{
				Kind:   "IngressDNSRecord",
				Plural: "ingressdnsrecords",
			},
			Scope: "Namespaced",
			Validation: &v1beta1.CustomResourceValidation{
				OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
					Properties: map[string]v1beta1.JSONSchemaProps{
						"apiVersion": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"kind": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"metadata": v1beta1.JSONSchemaProps{
							Type: "object",
						},
						"spec": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"hosts": v1beta1.JSONSchemaProps{
									Type: "array",
									Items: &v1beta1.JSONSchemaPropsOrArray{
										Schema: &v1beta1.JSONSchemaProps{
											Type: "string",
										},
									},
								},
								"recordTTL": v1beta1.JSONSchemaProps{
									Type:   "integer",
									Format: "int64",
								},
							},
						},
						"status": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"dns": v1beta1.JSONSchemaProps{
									Type: "array",
									Items: &v1beta1.JSONSchemaPropsOrArray{
										Schema: &v1beta1.JSONSchemaProps{
											Type: "object",
											Properties: map[string]v1beta1.JSONSchemaProps{
												"cluster": v1beta1.JSONSchemaProps{
													Type: "string",
												},
												"loadBalancer": v1beta1.JSONSchemaProps{
													Type:       "object",
													Properties: map[string]v1beta1.JSONSchemaProps{},
												},
											},
										},
									},
								},
							},
						},
					},
				},
			},
			Subresources: &v1beta1.CustomResourceSubresources{
				Status: &v1beta1.CustomResourceSubresourceStatus{},
			},
		},
	}
	// Define CRDs for resources
	ServiceDNSRecordCRD = v1beta1.CustomResourceDefinition{
		ObjectMeta: metav1.ObjectMeta{
			Name: "servicednsrecords.multiclusterdns.federation.k8s.io",
		},
		Spec: v1beta1.CustomResourceDefinitionSpec{
			Group:   "multiclusterdns.federation.k8s.io",
			Version: "v1alpha1",
			Names: v1beta1.CustomResourceDefinitionNames{
				Kind:   "ServiceDNSRecord",
				Plural: "servicednsrecords",
			},
			Scope: "Namespaced",
			Validation: &v1beta1.CustomResourceValidation{
				OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
					Properties: map[string]v1beta1.JSONSchemaProps{
						"apiVersion": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"kind": v1beta1.JSONSchemaProps{
							Type: "string",
						},
						"metadata": v1beta1.JSONSchemaProps{
							Type: "object",
						},
						"spec": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"allowServiceWithoutEndpoints": v1beta1.JSONSchemaProps{
									Type: "boolean",
								},
								"dnsPrefix": v1beta1.JSONSchemaProps{
									Type: "string",
								},
								"domainRef": v1beta1.JSONSchemaProps{
									Type: "string",
								},
								"externalName": v1beta1.JSONSchemaProps{
									Type: "string",
								},
								"recordTTL": v1beta1.JSONSchemaProps{
									Type:   "integer",
									Format: "int64",
								},
							},
							Required: []string{
								"domainRef",
							}},
						"status": v1beta1.JSONSchemaProps{
							Type: "object",
							Properties: map[string]v1beta1.JSONSchemaProps{
								"dns": v1beta1.JSONSchemaProps{
									Type: "array",
									Items: &v1beta1.JSONSchemaPropsOrArray{
										Schema: &v1beta1.JSONSchemaProps{
											Type: "object",
											Properties: map[string]v1beta1.JSONSchemaProps{
												"cluster": v1beta1.JSONSchemaProps{
													Type: "string",
												},
												"loadBalancer": v1beta1.JSONSchemaProps{
													Type:       "object",
													Properties: map[string]v1beta1.JSONSchemaProps{},
												},
												"region": v1beta1.JSONSchemaProps{
													Type: "string",
												},
												"zone": v1beta1.JSONSchemaProps{
													Type: "string",
												},
											},
										},
									},
								},
								"domain": v1beta1.JSONSchemaProps{
									Type: "string",
								},
							},
						},
					},
				},
			},
			Subresources: &v1beta1.CustomResourceSubresources{
				Status: &v1beta1.CustomResourceSubresourceStatus{},
			},
		},
	}
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: "multiclusterdns.federation.k8s.io", Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type ClusterDNS

type ClusterDNS struct {
	// Cluster name
	Cluster string `json:"cluster,omitempty"`
	// LoadBalancer for the corresponding service
	LoadBalancer corev1.LoadBalancerStatus `json:"loadBalancer,omitempty"`
	// Zone to which the cluster belongs
	Zone string `json:"zone,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"`
}

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

func (in *Domain) DeepCopy() *Domain

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

func (*Domain) DeepCopyInto added in v0.0.3

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 added in v0.0.3

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

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"`
}

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

func (in *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto added in v0.0.2

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 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"`
}

func (*IngressDNSRecordList) DeepCopy added in v0.0.3

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

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

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

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 added in v0.0.2

func (in Labels) DeepCopy() Labels

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

func (Labels) DeepCopyInto added in v0.0.2

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 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"`
}

func (*ServiceDNSRecordList) DeepCopy added in v0.0.3

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

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

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 TTL added in v0.0.2

type TTL int64

TTL is a structure defining the TTL of a DNS record

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

func (in Targets) DeepCopy() Targets

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

func (Targets) DeepCopyInto added in v0.0.2

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