Skip to content

Commit dfa8026

Browse files
committed
K8S-69 upgrades improvement
1 parent cbad166 commit dfa8026

File tree

2 files changed

+78
-7
lines changed

2 files changed

+78
-7
lines changed

addons/upgrade.jps

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ categories:
77
- apps/dev-and-admin-tools
88

99
homepage: https://github.com/jelastic-jps/kubernetes
10-
baseUrl: https://raw.githubusercontent.com/jelastic-jps/kubernetes/master
10+
baseUrl: https://raw.githubusercontent.com/jelastic-jps/kubernetes/v1.16.3
1111
logo: /images/k8s-logo.png
1212

1313
description:
1414
text: "K8s upgrade"
1515
short: Kubernetes Upgrade
1616

1717
onInstall:
18+
- upgrade-configuration
1819
- upgrade-masters:
1920
id: ${nodes.k8sm.master.id}
2021
master: true
@@ -36,23 +37,86 @@ onInstall:
3637
return {result:"info", message:message};
3738

3839
actions:
40+
upgrade-configuration:
41+
- cmd[${nodes.k8sm.master.id}]: |-
42+
systemctl daemon-reload > /dev/null 2>&1
43+
wget -nv ${baseUrl}/scripts/wait-deployment.sh -O /usr/local/sbin/wait-deployment.sh
44+
chmod +x /usr/local/sbin/wait-deployment.sh
45+
kubectl get daemonset weave-net -n kube-system && {
46+
kubectl apply -f ${baseUrl}/addons/weave-pack.yaml;
47+
kubectl -n kube-system wait --for=condition=Ready pod -l name=weave-net --timeout=-1s; }
48+
- cmd[${nodes.k8sm.master.id}]: |-
49+
kubectl get daemonset traefik-ingress-controller -n kube-system &>/dev/null && echo "traefik" ||:
50+
kubectl get deployment nginx-ingress-controller -n ingress-nginx &>/dev/null && echo "nginx" ||:
51+
kubectl get daemonset haproxy-ingress -n ingress-controller &>/dev/null && echo "haproxy" ||:
52+
- setGlobals:
53+
ingress-dir: ${response.out}
54+
- cmd[${nodes.k8sm.master.id}]: |-
55+
case "x${globals.ingress-dir}" in
56+
xtraefik)
57+
kubectl apply -f ${baseUrl}/addons/traefik/traefik-rbac.yaml
58+
kubectl apply -f ${baseUrl}/addons/traefik/traefik-ds.yaml
59+
kubectl apply -f ${baseUrl}/addons/traefik/traefik-ui.yaml
60+
kubectl -n kube-system wait --for=condition=Ready pod -l name=traefik-ingress-lb --timeout=-1s
61+
;;
62+
xnginx)
63+
kubectl apply -f ${baseUrl}/addons/nginx/mandatory.yaml
64+
kubectl apply -f ${baseUrl}/addons/nginx/cloud-generic.yaml
65+
wait-deployment.sh nginx-ingress-controller ingress-nginx 1 720
66+
;;
67+
xhaproxy)
68+
kubectl apply -f ${baseUrl}/addons/haproxy/haproxy-deployment.yaml
69+
wait-deployment.sh ingress-default-backend ingress-controller 1 720
70+
;;
71+
*)
72+
echo "Invalid ingress controller used!"
73+
exit 1
74+
;;
75+
esac
76+
- cmd[${nodes.k8sm.master.id}]: |-
77+
kubectl apply -f ${baseUrl}/addons/metrics-server/aggregated-metrics-reader.yaml
78+
kubectl apply -f ${baseUrl}/addons/metrics-server/auth-delegator.yaml
79+
kubectl apply -f ${baseUrl}/addons/metrics-server/auth-reader.yaml
80+
kubectl apply -f ${baseUrl}/addons/metrics-server/metrics-apiservice.yaml
81+
kubectl apply -f ${baseUrl}/addons/metrics-server/metrics-server-deployment.yaml
82+
kubectl apply -f ${baseUrl}/addons/metrics-server/metrics-server-service.yaml
83+
kubectl apply -f ${baseUrl}/addons/metrics-server/resource-reader.yaml
84+
wait-deployment.sh metrics-server kube-system 1 720
85+
- cmd[${nodes.k8sm.master.id}]: |-
86+
kubectl get deploy kubernetes-dashboard -n kubernetes-dashboard && {
87+
kubectl delete ns kubernetes-dashboard;
88+
kubectl apply -f ${baseUrl}/addons/kubernetes-dashboard-beta.yaml;
89+
kubectl apply -f ${baseUrl}/addons/ingress/${globals.ingress-dir}/dashboard-ingress-beta.yaml; }
90+
- cmd[${nodes.k8sm.master.id}]: |-
91+
helm init --upgrade --service-account tiller
92+
helm repo update
93+
wait-deployment.sh tiller-deploy kube-system 1 720
94+
3995
upgrade-masters:
4096
- env.control.RedeployContainers:
4197
nodeId: ${this.id}
4298
tag: ${this.version}
4399
skipReinstall: true
44100
- cmd[${this.id}]: |-
101+
wget -nv https://github.com/weaveworks/weave/releases/download/v2.5.2/weave -O /usr/bin/weave
102+
chmod +x /usr/bin/weave
103+
wget -nv ${baseUrl}/scripts/wait-deployment.sh -O /usr/local/sbin/wait-deployment.sh
104+
chmod +x /usr/local/sbin/wait-deployment.sh
45105
while true; do kubectl get nodes --no-headers | grep -qv '\sReady\s' || break ; done
46106
sleep 5
47107
- if (${this.master}):
48108
- cmd[${this.id}]: |-
49109
/usr/bin/kubeadm upgrade plan --ignore-preflight-errors=all || exit 1
50110
/usr/bin/kubeadm upgrade apply ${this.version} || exit 1
51-
service kubelet restart
52111
- if (!${this.master}):
53112
- cmd[${this.id}]: |-
54113
/usr/bin/kubeadm upgrade node --kubelet-version ${this.version} || exit 2
55-
service kubelet restart
114+
- upgrade-master-post: ${this.id}
115+
116+
upgrade-master-post:
117+
- cmd[${this}]: |-
118+
service kubelet restart
119+
helm repo update
56120

57121
upgrade-workers:
58122
- cmd[${nodes.k8sm.master.id}]: |-
@@ -65,6 +129,9 @@ actions:
65129
skipReinstall: true
66130
- cmd[${this.id}]: |-
67131
/usr/bin/kubeadm upgrade node --kubelet-version ${this.version} || exit 4
132+
local_ip=$(/usr/sbin/ip route get 1.2.3.4 | grep -v 'cache' | uniq | head -n 1 | sed -n 's/.* src \([^ ]*\).*/\1/p')
133+
[ -n "${local_ip}" ] && local_ip_route="10.244.0.0/15 dev venet0 src ${local_ip}"
134+
[ -n "${local_ip_route}" ] && /usr/sbin/ip route add ${local_ip_route} && echo "${local_ip_route}" >> /etc/sysconfig/network-scripts/route-venet0
68135
service kubelet restart
69136
- cmd[${nodes.k8sm.master.id}]: |-
70137
/usr/bin/kubectl uncordon ${this.hostname} || exit 5

manifest.jps

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,8 @@ actions:
233233

234234
- if ('${settings.dashboard}' == 'version2'):
235235
cmd[${nodes.k8sm.master.id}]: |-
236-
kubectl create -f ${baseUrl}/addons/kubernetes-dashboard-beta.yaml
237-
kubectl create -f ${baseUrl}/addons/ingress/${globals.ingress-dir}/dashboard-ingress-beta.yaml
236+
kubectl apply -f ${baseUrl}/addons/kubernetes-dashboard-beta.yaml
237+
kubectl apply -f ${baseUrl}/addons/ingress/${globals.ingress-dir}/dashboard-ingress-beta.yaml
238238

239239
install-helm-master:
240240
cmd[${nodes.k8sm.master.id}]: |-
@@ -499,11 +499,15 @@ addons:
499499
if (resp.result != 0) return resp;
500500
var tags = resp.object;
501501
var upgrades = [];
502-
for (var i = 0; i < tags.length; i++) if (tags[i] > version) upgrades.push(tags[i]);
502+
var sig_version = ["v1.15.6"];
503+
for (var i = 0; i < sig_version.length; i++) if (sig_version[i] > version) upgrades.push(sig_version[i]);
504+
tags.sort();
505+
var last_version = tags.pop();
506+
if (last_version > version) upgrades.push(last_version);
503507
var message = "Current version " + version + " is the latest. No upgrades are available.";
504508
if (upgrades.length) {
505509
upgrades.sort();
506-
var next = upgrades.pop();
510+
var next = upgrades.shift();
507511
var baseUrl = "${baseUrl}".split("/"); baseUrl.pop(); baseUrl = baseUrl.join("/");
508512
var url = baseUrl+"/"+next+"/addons/upgrade.jps"
509513
var huc = new java.net.URL(url).openConnection();

0 commit comments

Comments
 (0)