Skip to content

Commit 589a010

Browse files
committed
Merge branch 'gecube-master' into release-0.11.0
2 parents a766e02 + 2366875 commit 589a010

File tree

7 files changed

+240
-10
lines changed

7 files changed

+240
-10
lines changed
Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
name: coredns
5+
namespace: kube-system
6+
---
7+
apiVersion: rbac.authorization.k8s.io/v1
8+
kind: ClusterRole
9+
metadata:
10+
labels:
11+
kubernetes.io/bootstrapping: rbac-defaults
12+
name: system:coredns
13+
rules:
14+
- apiGroups:
15+
- ""
16+
resources:
17+
- endpoints
18+
- services
19+
- pods
20+
- namespaces
21+
verbs:
22+
- list
23+
- watch
24+
- apiGroups:
25+
- ""
26+
resources:
27+
- nodes
28+
verbs:
29+
- get
30+
- apiGroups:
31+
- discovery.k8s.io
32+
resources:
33+
- endpointslices
34+
verbs:
35+
- list
36+
- watch
37+
---
38+
apiVersion: rbac.authorization.k8s.io/v1
39+
kind: ClusterRoleBinding
40+
metadata:
41+
annotations:
42+
rbac.authorization.kubernetes.io/autoupdate: "true"
43+
labels:
44+
kubernetes.io/bootstrapping: rbac-defaults
45+
name: system:coredns
46+
roleRef:
47+
apiGroup: rbac.authorization.k8s.io
48+
kind: ClusterRole
49+
name: system:coredns
50+
subjects:
51+
- kind: ServiceAccount
52+
name: coredns
53+
namespace: kube-system
54+
---
55+
apiVersion: v1
56+
kind: ConfigMap
57+
metadata:
58+
name: coredns
59+
namespace: kube-system
60+
data:
61+
Corefile: |
62+
.:53 {
63+
errors
64+
health
65+
ready
66+
kubernetes cluster.local in-addr.arpa ip6.arpa {
67+
pods insecure
68+
fallthrough in-addr.arpa ip6.arpa
69+
}
70+
prometheus :9153
71+
cache 30
72+
loop
73+
reload
74+
loadbalance
75+
}
76+
---
77+
apiVersion: apps/v1
78+
kind: Deployment
79+
metadata:
80+
name: coredns
81+
namespace: kube-system
82+
labels:
83+
k8s-app: kube-dns
84+
kubernetes.io/name: "CoreDNS"
85+
spec:
86+
replicas: {{ .Values.coredns.replicaCount }}
87+
strategy:
88+
type: RollingUpdate
89+
rollingUpdate:
90+
maxUnavailable: 1
91+
selector:
92+
matchLabels:
93+
k8s-app: kube-dns
94+
template:
95+
metadata:
96+
labels:
97+
k8s-app: kube-dns
98+
spec:
99+
priorityClassName: system-cluster-critical
100+
serviceAccountName: coredns
101+
tolerations:
102+
- key: "CriticalAddonsOnly"
103+
operator: "Exists"
104+
nodeSelector:
105+
beta.kubernetes.io/os: linux
106+
{{- with .Values.coredns.image.pullSecrets }}
107+
imagePullSecrets:
108+
{{- toYaml . | nindent 10 }}
109+
{{- end }}
110+
containers:
111+
- name: coredns
112+
{{- with .Values.coredns.image }}
113+
image: "{{ .repository }}{{ if .digest }}@{{ .digest }}{{ else }}:{{ .tag }}{{ end }}"
114+
imagePullPolicy: {{ .pullPolicy }}
115+
{{- end }}
116+
resources:
117+
{{- toYaml .Values.coredns.resources | nindent 10 }}
118+
args: [ "-conf", "/etc/coredns/Corefile" ]
119+
volumeMounts:
120+
- name: config-volume
121+
mountPath: /etc/coredns
122+
readOnly: true
123+
ports:
124+
- containerPort: 53
125+
name: dns
126+
protocol: UDP
127+
- containerPort: 53
128+
name: dns-tcp
129+
protocol: TCP
130+
- containerPort: 9153
131+
name: metrics
132+
protocol: TCP
133+
securityContext:
134+
allowPrivilegeEscalation: false
135+
capabilities:
136+
add:
137+
- NET_BIND_SERVICE
138+
drop:
139+
- all
140+
readOnlyRootFilesystem: true
141+
livenessProbe:
142+
httpGet:
143+
path: /health
144+
port: 8080
145+
scheme: HTTP
146+
initialDelaySeconds: 60
147+
timeoutSeconds: 5
148+
successThreshold: 1
149+
failureThreshold: 5
150+
readinessProbe:
151+
httpGet:
152+
path: /ready
153+
port: 8181
154+
scheme: HTTP
155+
dnsPolicy: Default
156+
volumes:
157+
- name: config-volume
158+
configMap:
159+
name: coredns
160+
items:
161+
- key: Corefile
162+
path: Corefile
163+
---
164+
apiVersion: v1
165+
kind: Service
166+
metadata:
167+
name: kube-dns
168+
namespace: kube-system
169+
annotations:
170+
prometheus.io/port: "9153"
171+
prometheus.io/scrape: "true"
172+
labels:
173+
k8s-app: kube-dns
174+
kubernetes.io/cluster-service: "true"
175+
kubernetes.io/name: "CoreDNS"
176+
spec:
177+
selector:
178+
k8s-app: kube-dns
179+
clusterIP: {{ template "getCoreDNS" . }}
180+
ports:
181+
- name: dns
182+
port: 53
183+
protocol: UDP
184+
- name: dns-tcp
185+
port: 53
186+
protocol: TCP
187+
- name: metrics
188+
port: 9153
189+
protocol: TCP

deploy/helm/kubernetes/scripts/configure-cluster.sh

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,24 +62,23 @@ EOT
6262
# install konnectivity server
6363
kubectl apply -f /manifests/konnectivity-server-rbac.yaml
6464
{{- else }}{{"\n"}}
65-
kubectl delete clusterrolebinding/system:konnectivity-server 2>/dev/null || true
65+
kubectl delete -f /manifests/konnectivity-server-rbac.yaml 2>/dev/null || true
6666
{{- end }}
6767

6868
{{- if .Values.konnectivityAgent.enabled }}{{"\n"}}
6969
# install konnectivity agent
7070
kubectl apply -f /manifests/konnectivity-agent-deployment.yaml -f /manifests/konnectivity-agent-rbac.yaml
7171
{{- else }}{{"\n"}}
7272
# uninstall konnectivity agent
73-
kubectl -n kube-system delete deployment/konnectivity-agent serviceaccount/konnectivity-agent 2>/dev/null || true
73+
kubectl delete -f /manifests/konnectivity-agent-deployment.yaml -f /manifests/konnectivity-agent-rbac.yaml 2>/dev/null || true
7474
{{- end }}
7575

7676
{{- if .Values.coredns.enabled }}{{"\n"}}
7777
# install coredns addon
78-
# TODO: https://github.com/kvaps/kubernetes-in-kubernetes/issues/3
79-
kubeadm init phase addon coredns --config /config/kubeadmcfg.yaml
78+
kubectl apply -f /manifests/coredns.yaml
8079
{{- else }}{{"\n"}}
8180
# uninstall coredns addon
82-
kubectl -n kube-system delete configmap/coredns deployment/coredns 2>/dev/null || true
81+
kubectl delete -f /manifests/coredns.yaml 2>/dev/null || true
8382
{{- end }}
8483

8584
{{- if .Values.kubeProxy.enabled }}{{"\n"}}

deploy/helm/kubernetes/templates/_helpers.tpl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,16 @@ Generate etcd servers list.
6161
{{- end -}}
6262
{{- end -}}
6363
{{- end -}}
64+
65+
{{/*
66+
Take the first IP address from the serviceClusterIPRange for the kube-dns service.
67+
*/}}
68+
{{- define "getCoreDNS" -}}
69+
{{- $octetsList := splitList "." .Values.apiServer.serviceClusterIPRange -}}
70+
{{- printf "%d.%d.%d.%d" (index $octetsList 0 | int) (index $octetsList 1 | int) (index $octetsList 2 | int) 10 -}}
71+
{{- end -}}
72+
73+
{{- define "getAPIAddress" -}}
74+
{{- $octetsList := splitList "." .Values.apiServer.serviceClusterIPRange -}}
75+
{{- printf "%d.%d.%d.%d" (index $octetsList 0 | int) (index $octetsList 1 | int) (index $octetsList 2 | int) 1 -}}
76+
{{- end -}}

deploy/helm/kubernetes/templates/kubeadm-job.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ spec:
7070
name: pki-admin-client
7171
- mountPath: /scripts
7272
name: scripts
73-
{{- if or .Values.extraManifests .Values.konnectivityServer.enabled .Values.konnectivityAgent.enabled }}
73+
{{- if or .Values.extraManifests .Values.konnectivityServer.enabled .Values.konnectivityAgent.enabled .Values.coredns.enabled }}
7474
- mountPath: /manifests
7575
name: manifests
7676
{{- end }}
@@ -93,7 +93,7 @@ spec:
9393
configMap:
9494
name: "{{ $fullName }}-kubeadm-scripts"
9595
defaultMode: 0777
96-
{{- if or .Values.extraManifests .Values.konnectivityServer.enabled .Values.konnectivityAgent.enabled }}
96+
{{- if or .Values.extraManifests .Values.konnectivityServer.enabled .Values.konnectivityAgent.enabled .Values.coredns.enabled }}
9797
- name: manifests
9898
projected:
9999
sources:
@@ -105,6 +105,10 @@ spec:
105105
- configMap:
106106
name: "{{ $fullName }}-konnectivity-manifests"
107107
{{- end }}
108+
{{- if .Values.coredns.enabled }}
109+
- configMap:
110+
name: "{{ $fullName }}-coredns-manifests"
111+
{{- end }}
108112
{{- end }}
109113
- name: config
110114
configMap:
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{{- if .Values.coredns.enabled }}
2+
{{- $fullName := include "kubernetes.fullname" . -}}
3+
---
4+
apiVersion: v1
5+
kind: ConfigMap
6+
metadata:
7+
name: {{ $fullName }}-coredns-manifests
8+
data:
9+
{{- if .Values.coredns.enabled }}
10+
coredns.yaml: |
11+
{{- tpl (.Files.Get "manifests/coredns-1.8.yaml") . | nindent 4 }}
12+
{{- end }}
13+
{{- end }}

deploy/helm/kubernetes/templates/kubernetes-certs.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ spec:
8080
{{- end }}
8181
ipAddresses:
8282
- "127.0.0.1"
83-
- "10.96.0.1"
83+
- "{{- template "getAPIAddress" . }}"
8484
{{- with .Values.apiServer.service.loadBalancerIP }}
8585
{{- if not (has . $.Values.apiServer.certSANs.ipAddresses) }}
8686
- {{ . | quote }}
@@ -122,7 +122,7 @@ spec:
122122
{{- end }}
123123
ipAddresses:
124124
- "127.0.0.1"
125-
- "10.96.0.1"
125+
- "{{- template "getAPIAddress" . }}"
126126
{{- with .Values.apiServer.service.loadBalancerIP }}
127127
{{- if not (has . $.Values.apiServer.certSANs.ipAddresses) }}
128128
- {{ . | quote }}
@@ -164,7 +164,7 @@ spec:
164164
{{- end }}
165165
ipAddresses:
166166
- "127.0.0.1"
167-
- "10.96.0.1"
167+
- "{{- template "getAPIAddress" . }}"
168168
{{- with .Values.apiServer.service.loadBalancerIP }}
169169
{{- if not (has . $.Values.apiServer.certSANs.ipAddresses) }}
170170
- {{ . | quote }}

deploy/helm/kubernetes/values.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,18 @@ kubeProxy:
272272

273273
coredns:
274274
enabled: true
275+
image:
276+
repository: coredns/coredns
277+
tag: 1.8.3
278+
pullPolicy: IfNotPresent
279+
pullSecrets: []
280+
replicaCount: 2
281+
resources:
282+
limits:
283+
memory: 170Mi
284+
requests:
285+
cpu: 100m
286+
memory: 70Mi
275287

276288
konnectivityServer:
277289
enabled: false

0 commit comments

Comments
 (0)