@@ -15,7 +15,7 @@ targetRegions:
1515 type: vz7
1616
1717settings:
18- fields:
18+ fields:
1919 - name: deploy
2020 type: radio-fieldset
2121 values:
@@ -53,6 +53,18 @@ settings:
5353 name: api
5454 caption: Enable Remote API Access
5555 value: false
56+
57+ - type: list
58+ name: version
59+ inputType: hidden
60+ caption: Kubernetes Version
61+ values:
62+ v1.14.0: v1.14.0
63+ v1.14.1: v1.14.1
64+ v1.14.2: v1.14.2
65+ v1.14.3: v1.14.3
66+ v1.15.0: v1.15.0
67+ default: v1.15.0
5668
5769ssl: true
5870
@@ -62,15 +74,16 @@ onBeforeInstall: |
6274 latest = "latest";
6375 for (var i = 0; i < tags.length; i++) if (tags[i].name > latest) latest = tags[i].name;
6476 var k8smCount = '${settings.topo}' == '0-dev' ? 1 : 3,
65- workerCount = k8smCount > 1 ? 2 : 1;
77+ workerCount = k8smCount > 1 ? 2 : 1,
78+ tag = "${settings.version}";
6679 var resp = {
6780 result: 0,
6881 ssl: !!jelastic.billing.account.GetQuotas('environment.jelasticssl.enabled').array[0].value,
6982 nodes: [{
7083 count: k8smCount,
7184 cloudlets: 32,
7285 nodeType: "kubernetes",
73- tag: "v1.15.0" ,
86+ tag: tag ,
7487 scalingMode: "stateless",
7588 nodeGroup: "k8sm",
7689 displayName: "Master",
@@ -92,7 +105,7 @@ onBeforeInstall: |
92105 count: workerCount,
93106 nodeGroup: "cp",
94107 nodeType: "kubernetes",
95- tag: "v1.15.0" ,
108+ tag: tag ,
96109 scalingMode: "stateless",
97110 displayName: "Workers",
98111 cloudlets: 32,
@@ -130,7 +143,7 @@ onBeforeInstall: |
130143 var path = "/data";
131144 resp.nodes.push({
132145 count: 1,
133- image : "jelastic/ storage",
146+ nodeType : "storage",
134147 cloudlets: 8,
135148 displayName: "Storage",
136149 nodeGroup: "storage",
@@ -329,19 +342,18 @@ actions:
329342 envName: ${env.envName}
330343 nodeGroup: k8sm
331344 jps:
332- id: update -k8s-addon
345+ id: upgrade -k8s-addon
333346 type: update
334347 baseUrl: ${baseUrl}
335348 name: Kubernetes Cluster Configuration
336- description: Press "Remote API" to enable or disable remote access or "Update " to initiate update procedure.
349+ description: Press "Remote API" to enable or disable remote access or "Upgrade " to initiate upgrade procedure.
337350 logo: /images/k8s-logo.png
338351 settings:
339352 fields:
340353 - type: displayfield
341- caption: Please update this text
342- name: dfremoteapi
354+ caption: Useful info
343355 hideLabel: true
344- markup: Add a clear description
356+ markup: Access and manage the cluster remotely via API
345357 - type: checkbox
346358 name: remote
347359 caption: Enable Remote API Access
@@ -353,13 +365,13 @@ actions:
353365 loadingText: Updating...
354366 confirmText: Are you sure?
355367 successText: Remote API Access was successfully updated!
356- - caption: Update
357- action: update
368+ - caption: Upgrade
369+ action: upgrade
358370 loadingText: Updating...
359- confirmText: Do you want to update Kubernetes Cluster?
360- successText: Kubernetes Cluster has been successfully updated !
371+ confirmText: Do you want to upgrade Kubernetes Cluster?
372+ successText: Kubernetes Cluster has been successfully upgraded !
361373 actions:
362- update :
374+ upgrade :
363375 script: |
364376 var envName = "${env.envName}", nodeId = "${nodes.k8sm.master.id}";
365377 var resp = jelastic.env.control.GetNodeInfo(envName, session, nodeId);
@@ -369,17 +381,17 @@ actions:
369381 resp = jelastic.env.control.GetContainerNodeTags(envName, session, nodeId);
370382 if (resp.result != 0) return resp;
371383 var tags = resp.object;
372- var updates = [];
373- for (var i = 0; i < tags.length; i++) if (tags[i] > version) updates .push(tags[i]);
374- var message = "Current version " + version + " is the latest. No updates are available.";
375- if (updates .length) {
376- updates .sort();
377- return {result:0, onAfterReturn:{execUpdate :{current:version, next:updates .shift(), avail:updates .join(", ")}}};
384+ var upgrades = [];
385+ for (var i = 0; i < tags.length; i++) if (tags[i] > version) upgrades .push(tags[i]);
386+ var message = "Current version " + version + " is the latest. No upgrades are available.";
387+ if (upgrades .length) {
388+ upgrades .sort();
389+ return {result:0, onAfterReturn:{execUpgrade :{current:version, next:upgrades .shift(), avail:upgrades .join(", ")}}};
378390 } else {
379391 return {result:"info", message:message};
380392 }
381393
382- update -masters:
394+ upgrade -masters:
383395 - env.control.RedeployContainers:
384396 nodeId: ${this.id}
385397 tag: ${this.version}
@@ -394,7 +406,7 @@ actions:
394406 /usr/bin/kubeadm upgrade node experimental-control-plane ${this.version} || exit 2
395407 service kubelet restart
396408
397- update -workers:
409+ upgrade -workers:
398410 - cmd[${nodes.k8sm.master.id}]: |-
399411 /usr/bin/kubectl drain ${this.hostname} --ignore-daemonsets --delete-local-data || exit 3
400412 - env.control.RedeployContainers:
@@ -408,25 +420,25 @@ actions:
408420 /usr/bin/kubectl uncordon ${this.hostname} || exit 5
409421 while true; do kubectl get pods --field-selector=status.phase=Pending -n kube-system | grep -q Pending || break ; done
410422
411- execUpdate :
412- - update -masters:
423+ execUpgrade :
424+ - upgrade -masters:
413425 id: ${nodes.k8sm.master.id}
414426 master: true
415427 version: ${this.next}
416428 - forEach(nodes.k8sm):
417429 if (!${@i.ismaster}):
418- update -masters:
430+ upgrade -masters:
419431 id: ${@i.id}
420432 master: false
421433 version: ${this.next}
422434 - forEach(nodes.cp):
423- update -workers:
435+ upgrade -workers:
424436 id: ${@i.id}
425437 hostname: node${@i.id}-${env.domain}
426438 version: ${this.next}
427439 - script: |
428- var message = "Kubernetes Cluster has been successfuly updated ! **Current version:** ${this.next}. \n\nNo other updates are available.";
429- if ("${this.avail}") message += "\n\n**Next version:** ${this.avail}. \nPress \"Update \" button to start the update process.";
440+ var message = "Kubernetes Cluster has been successfuly upgraded ! **Current version:** ${this.next}. \n\nNo other upgrades are available.";
441+ if ("${this.avail}") message += "\n\n**Next version:** ${this.avail}. \nPress \"Upgrade \" button to start the upgrade process.";
430442 return {result:"info", message:message};
431443
432444 remoteApi:
0 commit comments