adding coredns as an addon

pull/1995/head
Sandeep Rajan 2017-09-21 10:28:45 -04:00
parent 685f570e8c
commit eba63d86cd
8 changed files with 179 additions and 0 deletions

View File

@ -137,6 +137,12 @@ var settings = []Setting{
validations: []setFn{IsValidAddon}, validations: []setFn{IsValidAddon},
callbacks: []setFn{EnableOrDisableAddon}, callbacks: []setFn{EnableOrDisableAddon},
}, },
{
name: "coredns",
set: SetBool,
validations: []setFn{IsValidAddon},
callbacks: []setFn{EnableOrDisableAddon},
},
{ {
name: "kube-dns", name: "kube-dns",
set: SetBool, set: SetBool,

View File

@ -0,0 +1,18 @@
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
kubernetes.io/bootstrapping: rbac-defaults
addonmanager.kubernetes.io/mode: Reconcile
name: system:coredns
rules:
- apiGroups:
- ""
resources:
- endpoints
- services
- pods
- namespaces
verbs:
- list
- watch

View File

@ -0,0 +1,18 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
labels:
addonmanager.kubernetes.io/mode: EnsureExists
data:
Corefile: |
.:53 {
errors
log stdout
health
kubernetes cluster.local
prometheus
proxy . /etc/resolv.conf
cache 30
}

View File

@ -0,0 +1,58 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: coredns
namespace: kube-system
labels:
k8s-app: coredns
kubernetes.io/name: "CoreDNS"
addonmanager.kubernetes.io/mode: Reconcile
spec:
replicas: 1
selector:
matchLabels:
k8s-app: coredns
template:
metadata:
labels:
k8s-app: coredns
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ''
scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'
spec:
serviceAccountName: coredns
containers:
- name: coredns
image: coredns/coredns:latest
imagePullPolicy: Always
args: [ "-conf", "/etc/coredns/Corefile" ]
volumeMounts:
- name: config-volume
mountPath: /etc/coredns
ports:
- containerPort: 53
name: dns
protocol: UDP
- containerPort: 53
name: dns-tcp
protocol: TCP
- containerPort: 9153
name: metrics
protocol: TCP
livenessProbe:
httpGet:
path: /health
port: 8080
scheme: HTTP
initialDelaySeconds: 60
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
dnsPolicy: Default
volumes:
- name: config-volume
configMap:
name: coredns
items:
- key: Corefile
path: Corefile

View File

@ -0,0 +1,17 @@
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubernetes.io/bootstrapping: rbac-defaults
addonmanager.kubernetes.io/mode: EnsureExists
name: system:coredns
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:coredns
subjects:
- kind: ServiceAccount
name: coredns
namespace: kube-system

View File

@ -0,0 +1,7 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: coredns
namespace: kube-system
labels:
addonmanager.kubernetes.io/mode: Reconcile

View File

@ -0,0 +1,23 @@
apiVersion: v1
kind: Service
metadata:
name: coredns
namespace: kube-system
labels:
k8s-app: coredns
kubernetes.io/name: "CoreDNS"
addonmanager.kubernetes.io/mode: Reconcile
spec:
selector:
k8s-app: coredns
clusterIP: 10.0.0.10
ports:
- name: dns
port: 53
protocol: UDP
- name: dns-tcp
port: 53
protocol: TCP
- name: metrics
port: 9153
protocol: TCP

View File

@ -82,6 +82,38 @@ var Addons = map[string]*Addon{
"storageclass.yaml", "storageclass.yaml",
"0640"), "0640"),
}, true, "default-storageclass"), }, true, "default-storageclass"),
"coredns": NewAddon([]*BinDataAsset{
NewBinDataAsset(
"deploy/addons/coreDNS/coreDNS-controller.yaml",
constants.AddonsPath,
"coreDNS-controller.yaml",
"0640"),
NewBinDataAsset(
"deploy/addons/coreDNS/coreDNS-configmap.yaml",
constants.AddonsPath,
"coreDNS-configmap.yaml",
"0640"),
NewBinDataAsset(
"deploy/addons/coreDNS/coreDNS-svc.yaml",
constants.AddonsPath,
"coreDNS-svc.yaml",
"0640"),
NewBinDataAsset(
"deploy/addons/coreDNS/coreDNS-crbinding.yaml",
constants.AddonsPath,
"coreDNS-crbinding.yaml",
"0640"),
NewBinDataAsset(
"deploy/addons/coreDNS/coreDNS-sa.yaml",
constants.AddonsPath,
"coreDNS-sa.yaml",
"0640"),
NewBinDataAsset(
"deploy/addons/coreDNS/coreDNS-clusterrole.yaml",
constants.AddonsPath,
"coreDNS-clusterrole.yaml",
"0640"),
}, false, "coredns"),
"kube-dns": NewAddon([]*BinDataAsset{ "kube-dns": NewAddon([]*BinDataAsset{
NewBinDataAsset( NewBinDataAsset(
"deploy/addons/kube-dns/kube-dns-controller.yaml", "deploy/addons/kube-dns/kube-dns-controller.yaml",