Skip to content

Commit 4145ab4

Browse files
committed
K8S-587 fix gitlab action
1 parent 2db4bc1 commit 4145ab4

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
@@ -88,7 +88,6 @@ onAfterScaleOut[cp]:
8888
- set:
8989
nodes: ${event.response.nodes.join(id,)}
9090
ips: ${event.response.nodes.join(extIPs,)}
91-
- prepare-worker-integration
9291
- cmd [${this.nodes}]: init-instance.sh --type=worker --initial=true --base-url=$(echo '${baseUrl}' | base64 -w 0)
9392
- connect-workers: ${this.nodes}
9493
- apply-worker-config: ${this.nodes}
@@ -166,17 +165,19 @@ actions:
166165
user: root
167166
sync: false
168167

169-
prepare-worker-integration:
168+
apply-worker-integration:
170169
- cmd[${nodes.k8sm.master.id}]: tar zcfv - /var/lib/kubelet/worker-data 2>/dev/null | base64 -w 0
171-
- setGlobals:
170+
- set:
172171
worker_integration: ${response.out}
172+
- cmd[${this.nodes}]: |-
173+
mkdir /var/lib/worker &>/dev/null || rm -rf /var/lib/worker/*
174+
echo '${this.worker_integration}' | base64 -d | tar zxv --strip-components=4 -C /var/lib/worker
175+
screen -d -m /usr/bin/bash -c '/usr/local/sbin/worker-integration.sh &>/var/log/kubernetes/k8s-worker-integration.log'
173176

174177
apply-worker-config:
175178
- cmd[${nodes.k8sm.master.id}]: screen -d -m /usr/local/sbin/worker-config -n ${this} -g cp -r ${env.region}
176-
- cmd[${this}]: |-
177-
mkdir /var/lib/worker &>/dev/null || rm -rf /var/lib/worker/*
178-
echo '${globals.worker_integration}' | base64 -d | tar zxv --strip-components=4 -C /var/lib/worker
179-
screen -d -m /usr/bin/bash -c '/usr/local/sbin/worker-integration.sh &>/var/log/kubernetes/k8s-worker-integration.log'
179+
- apply-worker-integration:
180+
nodes: ${this}
180181

181182
init-main-master:
182183
- if (${nodes.mbl.length:0}):
@@ -203,7 +204,6 @@ actions:
203204
- 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'
204205
- setGlobals:
205206
worker_join_cmd: ${response.out}
206-
- prepare-worker-integration
207207

208208
init-slave-masters:
209209
- script: |
@@ -821,7 +821,7 @@ addons:
821821
csrf_token=$(echo ${page_content} | perl -ne 'print "$1\n" if /new_cluster.*?authenticity_token"[[:blank:]]value="(.+?)"/' | sed -n 1p)
822822
echo "Add cluster CSRF token: ${csrf_token}"
823823
[ -n "${csrf_token}" ] || continue
824-
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')
824+
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')
825825
cluster_url=$(echo ${page_content} | perl -ne 'print "$1\n" if /You[[:blank:]]are[[:blank:]]being[[:blank:]]\<a[[:blank:]]href="(.+?)"\>redirected/' | sed -n 1p)
826826
echo "Kubernetes GitLab cluster: ${cluster_url}"
827827
[ -n "${cluster_url}" ] && break || continue
@@ -849,8 +849,8 @@ addons:
849849
echo 'GITLAB_REGISTRY="${this.gitlab_domain}:${this.gitlab_reg_port}"' > /var/lib/kubelet/worker-data/gitlab-integration.conf
850850
wget -nv ${baseUrl}/addons/gitlab/gitlab-integration.sh -O /var/lib/kubelet/worker-data/gitlab-integration.sh
851851
chmod +x /var/lib/kubelet/worker-data/gitlab-integration.sh
852-
- prepare-worker-integration
853-
- apply-worker-integration: cp
852+
- apply-worker-integration:
853+
nodes: cp
854854

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

0 commit comments

Comments
 (0)