1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
package v1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// +genclient
// +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// DNS manages the CoreDNS component to provide a name resolution service
// for pods and services in the cluster.
//
// This supports the DNS-based service discovery specification:
// https://github.com/kubernetes/dns/blob/master/docs/specification.md
//
// More details: https://kubernetes.io/docs/tasks/administer-cluster/coredns
type DNS struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// spec is the specification of the desired behavior of the DNS.
Spec DNSSpec `json:"spec,omitempty"`
// status is the most recently observed status of the DNS.
Status DNSStatus `json:"status,omitempty"`
}
// DNSSpec is the specification of the desired behavior of the DNS.
type DNSSpec struct {
}
const (
// Available indicates the DNS controller daemonset is available.
DNSAvailable = "Available"
)
// DNSStatus defines the observed status of the DNS.
type DNSStatus struct {
// clusterIP is the service IP through which this DNS is made available.
//
// In the case of the default DNS, this will be a well known IP that is used
// as the default nameserver for pods that are using the default ClusterFirst DNS policy.
//
// In general, this IP can be specified in a pod's spec.dnsConfig.nameservers list
// or used explicitly when performing name resolution from within the cluster.
// Example: dig foo.com @<service IP>
//
// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
ClusterIP string `json:"clusterIP"`
// clusterDomain is the local cluster DNS domain suffix for DNS services.
// This will be a subdomain as defined in RFC 1034,
// section 3.5: https://tools.ietf.org/html/rfc1034#section-3.5
// Example: "cluster.local"
//
// More info: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service
ClusterDomain string `json:"clusterDomain"`
// conditions provide information about the state of the DNS on the cluster.
//
// These are the supported DNS conditions:
//
// * Available
// - True if the following conditions are met:
// * DNS controller daemonset is available.
// - False if any of those conditions are unsatisfied.
//
// +patchMergeKey=type
// +patchStrategy=merge
// +optional
Conditions []OperatorCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// DNSList contains a list of DNS
type DNSList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []DNS `json:"items"`
}
|