Skip to content

Commit 423f8be

Browse files
committed
K8S-587 fix gitlab action
1 parent 06bbfa0 commit 423f8be

File tree

3 files changed

+44
-16
lines changed

3 files changed

+44
-16
lines changed

addons/gitlab/gitlab-integration-remove.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
#!/bin/bash
22

3+
if [ ! -f "/var/lib/kubelet/kubeadm-flags.env" ]; then
4+
5+
echo -e "Kubernetes worker configuration is invalid"
6+
exit 1
7+
fi
8+
39
if [ ! -f "/var/lib/worker/gitlab-integration.conf" ]; then
410

511
echo "$(date): Gitlab integration configuration is missing"
@@ -8,7 +14,15 @@ fi
814

915
source /var/lib/worker/gitlab-integration.conf
1016

11-
rm -rf "/etc/docker/certs.d/${GITLAB_REGISTRY}" &>/dev/null
17+
if grep -q 'containerd' /var/lib/kubelet/kubeadm-flags.env; then
18+
19+
rm -rf /etc/pki/ca-trust/source/anchors/gitlab-registry.crt &>/dev/null
20+
/bin/update-ca-trust
21+
service containerd restart
22+
23+
else
24+
rm -rf "/etc/docker/certs.d/${GITLAB_REGISTRY}" &>/dev/null
25+
fi
1226

1327
echo "$(date): Gitlab integration configuration removed"
1428

addons/gitlab/gitlab-integration.sh

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,35 @@
11
#!/bin/bash
22

3+
if [ ! -f "/var/lib/kubelet/kubeadm-flags.env" ]; then
4+
5+
echo -e "Kubernetes worker configuration is invalid"
6+
exit 1
7+
fi
8+
39
if [ ! -f "/var/lib/worker/gitlab-cacert.crt" ]; then
410

511
echo -e "Gitlab integration certificate doesn't exist"
6-
exit 1
12+
exit 2
713
fi
14+
815
if [ ! -f "/var/lib/worker/gitlab-integration.conf" ]; then
916

1017
echo -e "Gitlab integration configuration is missing"
11-
exit 2
18+
exit 3
1219
fi
1320

1421
source /var/lib/worker/gitlab-integration.conf
1522

16-
mkdir -p "/etc/docker/certs.d/${GITLAB_REGISTRY}" &>/dev/null
23+
if grep -q 'containerd' /var/lib/kubelet/kubeadm-flags.env; then
1724

18-
/usr/bin/cp -f /var/lib/worker/gitlab-cacert.crt "/etc/docker/certs.d/${GITLAB_REGISTRY}/ca.crt"
25+
/usr/bin/cp -f /var/lib/worker/gitlab-cacert.crt /etc/pki/ca-trust/source/anchors/gitlab-registry.crt
26+
/bin/update-ca-trust
27+
service containerd restart
28+
29+
else
30+
mkdir -p "/etc/docker/certs.d/${GITLAB_REGISTRY}" &>/dev/null
31+
/usr/bin/cp -f /var/lib/worker/gitlab-cacert.crt "/etc/docker/certs.d/${GITLAB_REGISTRY}/ca.crt"
32+
fi
1933

2034
echo -e "Gitlab integration configuration complete"
2135

manifest.jps

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ onAfterScaleOut:
124124
- set:
125125
nodes: ${event.response.nodes.join(id,)}
126126
ips: ${event.response.nodes.join(extIPs,)}
127-
- prepare-worker-integration
128127
- cmd [${this.nodes}]: init-instance.sh --type=worker --initial=true --base-url=$(echo '${baseUrl}' | base64 -w 0)
129128
- connect-workers: ${this.nodes}
130129
- apply-worker-config:
@@ -218,18 +217,20 @@ actions:
218217
user: root
219218
sync: false
220219

221-
prepare-worker-integration:
220+
apply-worker-integration:
222221
- cmd[${nodes.k8sm.master.id}]: tar zcfv - /var/lib/kubelet/worker-data 2>/dev/null | base64 -w 0
223-
- setGlobals:
222+
- set:
224223
worker_integration: ${response.out}
225-
226-
apply-worker-config:
227-
- cmd[${nodes.k8sm.master.id}]: screen -d -m /usr/local/sbin/worker-config -n ${this.nodes} -g ${this.group} -r ${env.region}
228224
- cmd[${this.nodes}]: |-
229225
mkdir /var/lib/worker &>/dev/null || rm -rf /var/lib/worker/*
230-
echo '${globals.worker_integration}' | base64 -d | tar zxv --strip-components=4 -C /var/lib/worker
226+
echo '${this.worker_integration}' | base64 -d | tar zxv --strip-components=4 -C /var/lib/worker
231227
screen -d -m /usr/bin/bash -c '/usr/local/sbin/worker-integration.sh &>/var/log/kubernetes/k8s-worker-integration.log'
232228

229+
apply-worker-config:
230+
- cmd[${nodes.k8sm.master.id}]: screen -d -m /usr/local/sbin/worker-config -n ${this.nodes} -g ${this.group} -r ${env.region}
231+
- apply-worker-integration:
232+
nodes: ${this.nodes}
233+
233234
init-main-master:
234235
- if (${nodes.mbl.length:0}):
235236
cmd[mbl]: |-
@@ -255,7 +256,6 @@ actions:
255256
- cmd[${nodes.k8sm.master.id}]: sed -n '/kubeadm join/,/^$/{/./p}' /var/log/kubeadm-init.log | sed ':a;N;$!ba;s/\\\n//g' | grep -v 'control-plane'
256257
- setGlobals:
257258
worker_join_cmd: ${response.out}
258-
- prepare-worker-integration
259259

260260
init-slave-masters:
261261
- script: |
@@ -901,7 +901,7 @@ addons:
901901
csrf_token=$(echo ${page_content} | perl -ne 'print "$1\n" if /new_cluster.*?authenticity_token"[[:blank:]]value="(.+?)"/' | sed -n 1p)
902902
echo "Add cluster CSRF token: ${csrf_token}"
903903
[ -n "${csrf_token}" ] || continue
904-
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')
904+
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&cluster[namespace_per_environment]=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')
905905
cluster_url=$(echo ${page_content} | perl -ne 'print "$1\n" if /You[[:blank:]]are[[:blank:]]being[[:blank:]]\<a[[:blank:]]href="(.+?)"\>redirected/' | sed -n 1p)
906906
echo "Kubernetes GitLab cluster: ${cluster_url}"
907907
[ -n "${cluster_url}" ] && break || continue
@@ -929,9 +929,9 @@ addons:
929929
echo 'GITLAB_REGISTRY="${this.gitlab_domain}:${this.gitlab_reg_port}"' > /var/lib/kubelet/worker-data/gitlab-integration.conf
930930
wget -nv ${baseUrl}/addons/gitlab/gitlab-integration.sh -O /var/lib/kubelet/worker-data/gitlab-integration.sh
931931
chmod +x /var/lib/kubelet/worker-data/gitlab-integration.sh
932-
- prepare-worker-integration
933932
- init-globals-workers
934-
- apply-worker-integration: ${globals.workers}
933+
- apply-worker-integration:
934+
nodes: ${globals.workers}
935935

936936
addon-gitlab-remove:
937937
- cmd[${nodes.k8sm.master.id}]: kubectl get ns gitlab-managed-apps &>/dev/null && echo "true" || echo "false"

0 commit comments

Comments
 (0)