Skip to content

Commit 17dc48d

Browse files
committed
[v1.16.6] sync addons
1 parent fb029a9 commit 17dc48d

File tree

6 files changed

+71
-35
lines changed

6 files changed

+71
-35
lines changed

images/k8s-cert.png

4.73 KB
Loading

images/k8s-config.png

5.72 KB
Loading

images/k8s-gitlab.png

5.52 KB
Loading

images/k8s-upgrade.png

4.89 KB
Loading

manifest.jps

Lines changed: 70 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -435,9 +435,9 @@ addons:
435435
- id: conf-k8s-addon
436436
type: update
437437
baseUrl: https://raw.githubusercontent.com/jelastic-jps/kubernetes/v1.16.6
438-
name: Kubernetes Cluster Configuration
438+
name: Cluster Configuration
439439
description: Configure remote API access and install complementary tools
440-
logo: /images/k8s-logo.png
440+
logo: /images/k8s-config.png
441441
settings:
442442
fields:
443443
- type: displayfield
@@ -487,9 +487,9 @@ addons:
487487
- id: upgrade-k8s-addon
488488
type: update
489489
baseUrl: https://raw.githubusercontent.com/jelastic-jps/kubernetes/v1.16.6
490-
name: Kubernetes Cluster Upgrade
490+
name: Cluster Upgrade
491491
description: Upgrade Kubernetes cluster to a newer version
492-
logo: /images/k8s-logo.png
492+
logo: /images/k8s-upgrade.png
493493

494494
buttons:
495495
- caption: Start Cluster Upgrade
@@ -558,76 +558,99 @@ addons:
558558
- id: gitlab-k8s-addon
559559
type: update
560560
baseUrl: https://raw.githubusercontent.com/jelastic-jps/kubernetes/v1.16.6
561-
name: Kubernetes GitLab Integration
561+
name: GitLab Integration
562562
description: Add Kubernetes GitLab integrations
563-
logo: /images/k8s-logo.png
563+
logo: /images/k8s-gitlab.png
564564
settings:
565565
fields:
566566
- type: displayfield
567567
hideLabel: true
568-
markup: This addon provides Kubernetes and GitLab integration. Please select the Gitlab environment from the list, and specify Gitlab 'root' password.
568+
markup: This addon provides Kubernetes and GitLab integration. Please select the GitLab environment from the list:
569569
- type: displayfield
570570
hideLabel: true
571571
- type: envlist
572572
name: envlist
573+
valueField: shortdomain
573574
caption: GitLab environment
574-
- type: string
575-
caption: Root password
576-
name: gitlab_pass
577575

578576
buttons:
579577
- caption: Configure
580578
settings: gitlab
581579
action: addon-gitlab-config
582580
loadingText: Configuration...
583581
confirmText: Are you sure?
584-
successText: Gitlab environment successfully configured!
582+
successText: GitLab environment successfully configured!
583+
- caption: Remove Integration
584+
action: addon-gitlab-remove
585+
confirmText: Any existing Kubernetes and GitLab integration will be removed. Continue?
586+
successText: GitLab integration successfully removed!
585587

586588
actions:
587589
addon-gitlab-config:
588590
- log: '${settings.envlist}'
589591
- cmd[${nodes.k8sm.master.id}]: kubectl get configmaps -n gitlab-managed-apps gitlab-configuration &>/dev/null && echo "true" || echo "false"
590-
- setGlobals:
592+
- set:
591593
gitlab_installed: ${response.out}
592-
- if ('${globals.gitlab_installed}' == 'true'):
594+
- if ('${this.gitlab_installed}' == 'true'):
593595
return:
594596
type: info
595597
message: This cluster already has GitLab integration!
598+
- env.control.GetEnvInfo:
599+
envName: ${settings.envlist}
600+
- set:
601+
gitlab_domain: ${response.env.domain}
602+
- env.control.ExecCmdByGroup [cp]:
603+
envName: ${settings.envlist}
604+
commandList:
605+
- command: echo ${ROOT_PASSWORD}
606+
- set:
607+
gitlab_pass: ${response.out}
608+
- env.control.ExecCmdByGroup [cp]:
609+
envName: ${settings.envlist}
610+
commandList:
611+
- command: echo ${HTTPS_PORT}
612+
- set:
613+
gitlab_port: ${response.out}
614+
gitlab_http_endpoint: "https://${this.gitlab_domain}:${this.gitlab_port}"
615+
- if ('${this.gitlab_pass}' == '' || '${this.gitlab_port}' == ''):
616+
return:
617+
type: warning
618+
message: Cannot determine GitLab credentials!
596619
- cmd[${nodes.k8sm.master.id}]: kubectl apply -f ${baseUrl}/addons/gitlab-service-account.yaml
597620
- cmd[${nodes.k8sm.master.id}]: kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep gitlab-admin | awk '{print $1}') | grep '^token:' | awk '{print $2}'
598-
- setGlobals:
621+
- set:
599622
gitlab_token: ${response.out}
600623
- cmd[${nodes.k8sm.master.id}]: kubectl cluster-info | sed -r "s/\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]//g" | grep 'Kubernetes master' | awk '/http/ {print $NF}'
601-
- setGlobals:
624+
- set:
602625
gitlab_api_url: ${response.out}
603626
- cmd[${nodes.k8sm.master.id}]: kubectl get secret $(kubectl get secrets | grep default-token | cut -d " " -f 1) -o jsonpath="{['data']['ca\.crt']}" | base64 --decode
604-
- setGlobals:
627+
- set:
605628
gitlab_ca_cert: ${response.out}
606629
- cmd[${nodes.k8sm.master.id}]: |-
607630
# Login
608-
page_content=$(curl -sk -c gitlab-jar.txt 'https://${settings.envlist}:4848/users/sign_in')
631+
page_content=$(curl -sk -c gitlab-jar.txt '${this.gitlab_http_endpoint}/users/sign_in')
609632
csrf_token=$(echo ${page_content} | perl -ne 'print "$1\n" if /new_user.*?authenticity_token"[[:blank:]]value="(.+?)"/' | sed -n 1p)
610633
echo "Sign-in CSRF token: ${csrf_token}"
611634
[ -n "${csrf_token}" ] || exit 1
612-
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -d "user[login]=root&user[password]=${settings.gitlab_pass}" --data-urlencode "authenticity_token=${csrf_token}" 'https://${settings.envlist}:4848/users/sign_in'
635+
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -d "user[login]=root&user[password]=${this.gitlab_pass}" --data-urlencode "authenticity_token=${csrf_token}" '${this.gitlab_http_endpoint}/users/sign_in'
613636
- cmd[${nodes.k8sm.master.id}]: |-
614637
# Settings
615-
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt 'https://${settings.envlist}:4848/admin/application_settings/network')
638+
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt '${this.gitlab_http_endpoint}/admin/application_settings/network')
616639
csrf_token=$(echo ${page_content} | perl -ne 'print "$1\n" if /meta[[:blank:]]name="csrf-token"[[:blank:]]content="(.+?)"/' | sed -n 1p)
617640
echo "Application settings CSRF token: ${csrf_token}"
618641
[ -n "${csrf_token}" ] || exit 2
619-
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -d "_method=patch&application_setting[allow_local_requests_from_web_hooks_and_services]=1&application_setting[allow_local_requests_from_system_hooks]=1&application_setting[dns_rebinding_protection_enabled]=1" --data-urlencode "authenticity_token=${csrf_token}" 'https://${settings.envlist}:4848/admin/application_settings/network' || exit 2
620-
curl -sk -b gitlab-jar.txt -c gitlab-jar.txt -f 'https://${settings.envlist}:4848/admin/application_settings/network' &>/dev/null
642+
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -d "_method=patch&application_setting[allow_local_requests_from_web_hooks_and_services]=1&application_setting[allow_local_requests_from_system_hooks]=1&application_setting[dns_rebinding_protection_enabled]=1" --data-urlencode "authenticity_token=${csrf_token}" '${this.gitlab_http_endpoint}/admin/application_settings/network' || exit 2
643+
curl -sk -b gitlab-jar.txt -c gitlab-jar.txt -f '${this.gitlab_http_endpoint}/admin/application_settings/network' &>/dev/null
621644
- cmd[${nodes.k8sm.master.id}]: |-
622645
# Cluster
623646
for i in {1..5}; do
624647
sleep 10
625648
echo "Attempt ${i} of GitLab Kubernetes cluster creation"
626-
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt 'https://${settings.envlist}:4848/admin/clusters/new')
649+
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt '${this.gitlab_http_endpoint}/admin/clusters/new')
627650
csrf_token=$(echo ${page_content} | perl -ne 'print "$1\n" if /new_cluster.*?authenticity_token"[[:blank:]]value="(.+?)"/' | sed -n 1p)
628651
echo "Add cluster CSRF token: ${csrf_token}"
629652
[ -n "${csrf_token}" ] || continue
630-
page_content=$(curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -d "cluster[name]=Kubernetes&cluster[platform_kubernetes_attributes][authorization_type]=rbac&cluster[managed]=1" --data-urlencode "cluster[platform_kubernetes_attributes][api_url]=${globals.gitlab_api_url}" --data-urlencode "cluster[platform_kubernetes_attributes][ca_cert]=${globals.gitlab_ca_cert}" --data-urlencode "cluster[platform_kubernetes_attributes][token]=${globals.gitlab_token}" --data-urlencode "authenticity_token=${csrf_token}" 'https://${settings.envlist}:4848/admin/clusters/create_user')
653+
page_content=$(curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -d "cluster[name]=Kubernetes&cluster[platform_kubernetes_attributes][authorization_type]=rbac&cluster[managed]=1" --data-urlencode "cluster[platform_kubernetes_attributes][api_url]=${this.gitlab_api_url}" --data-urlencode "cluster[platform_kubernetes_attributes][ca_cert]=${this.gitlab_ca_cert}" --data-urlencode "cluster[platform_kubernetes_attributes][token]=${this.gitlab_token}" --data-urlencode "authenticity_token=${csrf_token}" '${this.gitlab_http_endpoint}/admin/clusters/create_user')
631654
cluster_url=$(echo ${page_content} | perl -ne 'print "$1\n" if /You[[:blank:]]are[[:blank:]]being[[:blank:]]\<a[[:blank:]]href="(.+?)"\>redirected/' | sed -n 1p)
632655
echo "Kubernetes GitLab cluster: ${cluster_url}"
633656
[ -n "${cluster_url}" ] && break || continue
@@ -637,49 +660,61 @@ addons:
637660
kubectl create ns gitlab-managed-apps
638661
kubectl create configmap gitlab-configuration --from-literal cluster_url="${cluster_url}" -n gitlab-managed-apps
639662
- cmd[${nodes.k8sm.master.id}]: kubectl get configmaps -n gitlab-managed-apps gitlab-configuration -o jsonpath='{.data.cluster_url}'
640-
- setGlobals:
663+
- set:
641664
gitlab_cluster_url: ${response.out}
642665
- cmd[${nodes.k8sm.master.id}]: |-
643666
# Helm
644667
sleep 5
645-
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt "${globals.gitlab_cluster_url}")
668+
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt "${this.gitlab_cluster_url}")
646669
csrf_token=$(echo ${page_content} | perl -ne 'print "$1\n" if /csrf-param.*?csrf-token"[[:blank:]]content="(.+?)"/' | sed -n 1p)
647670
echo "Helm CSRF token: ${csrf_token}"
648671
[ -n "${csrf_token}" ] || exit 5
649-
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -H "X-CSRF-Token: ${csrf_token}" "${globals.gitlab_cluster_url}/applications/helm" || exit 5
672+
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -H "X-CSRF-Token: ${csrf_token}" "${this.gitlab_cluster_url}/applications/helm" || exit 5
650673
wait-deployment.sh tiller-deploy gitlab-managed-apps 1 720
651674
- cmd[${nodes.k8sm.master.id}]: |-
652675
# Ingress
653-
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt "${globals.gitlab_cluster_url}")
676+
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt "${this.gitlab_cluster_url}")
654677
csrf_token=$(echo ${page_content} | perl -ne 'print "$1\n" if /csrf-param.*?csrf-token"[[:blank:]]content="(.+?)"/' | sed -n 1p)
655678
echo "Ingress CSRF token: ${csrf_token}"
656679
[ -n "${csrf_token}" ] || exit 5
657-
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -H "X-CSRF-Token: ${csrf_token}" "${globals.gitlab_cluster_url}/applications/ingress" || exit 5
680+
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -H "X-CSRF-Token: ${csrf_token}" "${this.gitlab_cluster_url}/applications/ingress" || exit 5
658681
wait-deployment.sh ingress-nginx-ingress-controller gitlab-managed-apps 1 720
659682
- cmd[${nodes.k8sm.master.id}]: |-
660683
# Cert manager
661-
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt "${globals.gitlab_cluster_url}")
684+
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt "${this.gitlab_cluster_url}")
662685
csrf_token=$(echo ${page_content} | perl -ne 'print "$1\n" if /csrf-param.*?csrf-token"[[:blank:]]content="(.+?)"/' | sed -n 1p)
663686
echo "Cert-manager CSRF token: ${csrf_token}"
664687
[ -n "${csrf_token}" ] || exit 5
665-
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -H "Content-Type: application/json" -H "X-CSRF-Token: ${csrf_token}" -d '{"email":"${user.email}"}' "${globals.gitlab_cluster_url}/applications/cert_manager" || exit 5
688+
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -H "Content-Type: application/json" -H "X-CSRF-Token: ${csrf_token}" -d '{"email":"${user.email}"}' "${this.gitlab_cluster_url}/applications/cert_manager" || exit 5
666689
wait-deployment.sh certmanager-webhook gitlab-managed-apps 1 720
667690
- cmd[${nodes.k8sm.master.id}]: |-
668691
# Runner
669-
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt "${globals.gitlab_cluster_url}")
692+
page_content=$(curl -sk -b gitlab-jar.txt -c gitlab-jar.txt "${this.gitlab_cluster_url}")
670693
csrf_token=$(echo ${page_content} | perl -ne 'print "$1\n" if /csrf-param.*?csrf-token"[[:blank:]]content="(.+?)"/' | sed -n 1p)
671694
echo "Runner CSRF token: ${csrf_token}"
672695
[ -n "${csrf_token}" ] || exit 5
673-
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -H "X-CSRF-Token: ${csrf_token}" "${globals.gitlab_cluster_url}/applications/runner" || exit 5
696+
curl -X POST -sk -b gitlab-jar.txt -c gitlab-jar.txt -f -H "X-CSRF-Token: ${csrf_token}" "${this.gitlab_cluster_url}/applications/runner" || exit 5
674697
wait-deployment.sh runner-gitlab-runner gitlab-managed-apps 1 720
675698

699+
addon-gitlab-remove:
700+
- cmd[${nodes.k8sm.master.id}]: kubectl get ns gitlab-managed-apps &>/dev/null && echo "true" || echo "false"
701+
- setGlobals:
702+
gitlab_installed: ${response.out}
703+
- if ('${globals.gitlab_installed}' == 'false'):
704+
return:
705+
type: info
706+
message: This cluster has no active GitLab integration!
707+
- cmd[${nodes.k8sm.master.id}]: |-
708+
kubectl delete ns gitlab-managed-apps
709+
kubectl delete -f ${baseUrl}/addons/gitlab-service-account.yaml
710+
676711
- id: certman-k8s-addon
677712
type: update
678713
requiredFeatures: extip
679714
baseUrl: https://raw.githubusercontent.com/jelastic-jps/kubernetes/v1.16.6
680-
name: Kubernetes Certificate Manager
715+
name: Certificate Manager
681716
description: Kubernetes SSL Certificate Manager
682-
logo: /images/k8s-logo.png
717+
logo: /images/k8s-cert.png
683718
settings:
684719
fields:
685720
- type: displayfield
@@ -724,6 +759,7 @@ addons:
724759
sed -i 's/example\.com/${settings.certificate_domain}/g' /tmp/helloworld-ingress.yaml
725760
kubectl apply -f /tmp/helloworld-ingress.yaml
726761

762+
727763
success: |
728764
${globals.default_success:}
729765
${globals.monitoring_success:}

scripts/beforeinstall.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var resp = {
1111
tag: tag,
1212
scalingMode: "stateless",
1313
nodeGroup: "k8sm",
14-
addons: ["conf-k8s-addon", "upgrade-k8s-addon", "gitlab-k8s-addon", "certman-k8s-addon"],
14+
addons: ["conf-k8s-addon", "upgrade-k8s-addon", "gitlab-k8s-addon"],
1515
displayName: "Master",
1616
extip: false,
1717
env: {

0 commit comments

Comments
 (0)