@@ -24,69 +24,44 @@ spec:
2424
2525 export KEY_FILE_PATH=~/.ssh/${SSH_REPOSITORY_OWNER}/${SSH_REPOSITORY_NAME};
2626
27- mkdir -p "${KEY_FILE_PATH}";
28-
29- echo "Env var KEY_FILE_PATH=[${KEY_FILE_PATH}] setup";
30-
31- cat > ${KEY_FILE_PATH}/deploy <<EOF
32- $SSH_PRIVATE_KEY
33- EOF
34-
3527 chmod 600 ${KEY_FILE_PATH}/deploy;
3628
3729 export GIT_SSH_COMMAND="ssh -i $KEY_FILE_PATH/deploy";
3830
39- ssh-keyscan "${SSH_REPOSITORY_HOST}" >> ~/.ssh/known_hosts
40-
4131 while :; do
4232
4333 echo "Loop Start......";
4434
45- if [ ! -d /git/source/.git ]; then
46-
47- export REPO_NAME_FULL="${SSH_REPOSITORY_HOST}:${SSH_REPOSITORY_OWNER}/${SSH_REPOSITORY_NAME}.git"
48-
49- echo "Env var REPO_NAME_FULL=[${REPO_NAME_FULL}] setup";
5035
51- if ssh -T "git@$SSH_REPOSITORY_HOST" -i $KEY_FILE_PATH/deploy; then
36+ cd /git;
5237
53- echo "Clonning repo";
38+ if ssh -T "git@$SSH_REPOSITORY_HOST" -i $KEY_FILE_PATH/deploy; then
5439
55- git clone -b master git@${REPO_NAME_FULL} /git/source ;
40+ echo "********************************************" ;
5641
57- else
42+ git status;
5843
59- echo "Not Authenticated, check ssh key. RC=[${?}]";
44+ echo "********************************************";
45+
46+ echo "Checking for repo updates";
6047
61- fi
48+ git fetch -fpvt;
6249
63- else
64-
65- cd /git/source;
66-
67- if ssh -T "git@$SSH_REPOSITORY_HOST" -i $KEY_FILE_PATH/deploy; then
50+ echo "Git reset....";
6851
69- echo "********************************************" ;
52+ git reset --hard ;
7053
71- git status ;
54+ echo "Pulling any changes...." ;
7255
73- echo "********************************************";
74-
75- echo "Checking for repo updates";
56+ git pull --rebase
7657
77- git fetch -fpvt;
78-
79- echo "Pulling any changes....";
80-
81- git pull --rebase
58+ else
8259
83- else
60+ echo "Not Authenticated, check ssh key. RC=[${?}]";
8461
85- echo "Not Authenticated, check ssh key. RC=[${?}]";
62+ fi
8663
87- fi
8864
89- fi
9065
9166 echo "Loop Finish.";
9267
@@ -115,6 +90,11 @@ spec:
11590 secretKeyRef :
11691 name : bind-config
11792 key : SSH_REPOSITORY_NAME
93+ - name : SSH_REPOSITORY_REF
94+ valueFrom :
95+ secretKeyRef :
96+ name : bind-config
97+ key : SSH_REPOSITORY_REF
11898
11999 resources :
120100 limits :
@@ -128,6 +108,108 @@ spec:
128108 mountPath : /git
129109 subPath : git/
130110
111+ - name : data
112+ mountPath : /root
113+ subPath : home
114+
131115 - mountPath : /var/dns-log
132116 name : data
133117 subPath : logs
118+
119+ initContainers :
120+
121+ - name : clone
122+ image : alpine:3.23.2
123+ command :
124+ - sh
125+ - -c
126+ - |
127+ if [ ! -d /git/.git ]; then
128+
129+
130+ echo "Installing pre-reqs.....";
131+
132+ apk update;
133+ apk add git openssh-client-default;
134+
135+ export KEY_FILE_PATH=~/.ssh/${SSH_REPOSITORY_OWNER}/${SSH_REPOSITORY_NAME};
136+
137+ mkdir -p "${KEY_FILE_PATH}";
138+
139+ echo "Env var KEY_FILE_PATH=[${KEY_FILE_PATH}] setup";
140+
141+ cat > ${KEY_FILE_PATH}/deploy <<EOF
142+ $SSH_PRIVATE_KEY
143+ EOF
144+
145+ chmod 600 ${KEY_FILE_PATH}/deploy;
146+
147+ export GIT_SSH_COMMAND="ssh -i $KEY_FILE_PATH/deploy";
148+
149+ ssh-keyscan "${SSH_REPOSITORY_HOST}" >> ~/.ssh/known_hosts
150+
151+
152+ export REPO_NAME_FULL="${SSH_REPOSITORY_HOST}:${SSH_REPOSITORY_OWNER}/${SSH_REPOSITORY_NAME}.git"
153+
154+ echo "Env var REPO_NAME_FULL=[${REPO_NAME_FULL}] setup";
155+
156+
157+ if ssh -T "git@$SSH_REPOSITORY_HOST" -i $KEY_FILE_PATH/deploy; then
158+
159+ echo "Clonning repo on branch=[${SSH_REPOSITORY_REF}]";
160+
161+ git clone -b "${SSH_REPOSITORY_REF}" git@${REPO_NAME_FULL} /git;
162+
163+ else
164+
165+ echo "Not Authenticated, check ssh key. RC=[${?}]";
166+
167+ exit 1;
168+
169+ fi
170+
171+ fi
172+
173+ env :
174+ - name : SSH_PRIVATE_KEY
175+ valueFrom :
176+ secretKeyRef :
177+ name : bind-config
178+ key : SSH_PRIVATE_KEY
179+ - name : SSH_REPOSITORY_HOST
180+ valueFrom :
181+ secretKeyRef :
182+ name : bind-config
183+ key : SSH_REPOSITORY_HOST
184+ - name : SSH_REPOSITORY_OWNER
185+ valueFrom :
186+ secretKeyRef :
187+ name : bind-config
188+ key : SSH_REPOSITORY_OWNER
189+ - name : SSH_REPOSITORY_NAME
190+ valueFrom :
191+ secretKeyRef :
192+ name : bind-config
193+ key : SSH_REPOSITORY_NAME
194+ - name : SSH_REPOSITORY_REF
195+ valueFrom :
196+ secretKeyRef :
197+ name : bind-config
198+ key : SSH_REPOSITORY_REF
199+
200+ resources :
201+ limits :
202+ cpu : 1
203+ memory : 500Mi
204+ requests :
205+ cpu : 50m
206+ memory : 150Mi
207+
208+ volumeMounts :
209+ - name : data
210+ mountPath : /git
211+ subPath : git
212+
213+ - name : data
214+ mountPath : /root
215+ subPath : home
0 commit comments