Skip to content

Commit 42a94a0

Browse files
committed
refactor(bind9): git-ops to contain init cont
ref: #21
1 parent af6a9b4 commit 42a94a0

2 files changed

Lines changed: 116 additions & 46 deletions

File tree

manifests/bind9/base/Deployment.yaml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,10 @@ spec:
6767
name: data
6868
subPath: logs
6969

70-
- mountPath: /root
71-
name: home
72-
7370
priorityClassName: cluster-low
7471
tolerations: []
7572
volumes:
7673

7774
- name: data
7875
persistentVolumeClaim:
7976
claimName: bind
80-
81-
- name: home
82-
emptyDir:
83-
medium: Memory

manifests/bind9/components/git-ops/Deployment.yaml

Lines changed: 116 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -24,75 +24,146 @@ 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
31+
# ssh-keyscan "${SSH_REPOSITORY_HOST}" >> ~/.ssh/known_hosts;
4032
4133
while :; do
4234
4335
echo "Loop Start......";
4436
45-
if [ ! -d /git/source/.git ]; then
4637
47-
export REPO_NAME_FULL="${SSH_REPOSITORY_HOST}:${SSH_REPOSITORY_OWNER}/${SSH_REPOSITORY_NAME}.git"
38+
cd /git;
4839
49-
echo "Env var REPO_NAME_FULL=[${REPO_NAME_FULL}] setup";
40+
if ssh -T "git@$SSH_REPOSITORY_HOST" -i $KEY_FILE_PATH/deploy; then
5041
51-
if ssh -T "git@$SSH_REPOSITORY_HOST" -i $KEY_FILE_PATH/deploy; then
42+
echo "********************************************";
5243
53-
echo "Clonning repo";
44+
git status;
5445
55-
git clone -b master git@${REPO_NAME_FULL} /git/source;
46+
echo "********************************************";
47+
48+
echo "Checking for repo updates";
5649
57-
else
50+
git fetch -fpvt;
5851
59-
echo "Not Authenticated, check ssh key. RC=[${?}]";
52+
echo "Pulling any changes....";
6053
61-
fi
54+
git pull --rebase
6255
6356
else
6457
65-
cd /git/source;
58+
echo "Not Authenticated, check ssh key. RC=[${?}]";
6659
67-
if ssh -T "git@$SSH_REPOSITORY_HOST" -i $KEY_FILE_PATH/deploy; then
60+
fi
6861
69-
echo "********************************************";
7062
71-
git status;
7263
73-
echo "********************************************";
74-
75-
echo "Checking for repo updates";
64+
echo "Loop Finish.";
7665
77-
git fetch -fpvt;
66+
sleep 300
7867
79-
echo "Pulling any changes....";
68+
done;
8069
81-
git pull --rebase
70+
env:
71+
- name: SSH_PRIVATE_KEY
72+
valueFrom:
73+
secretKeyRef:
74+
name: bind-config
75+
key: SSH_PRIVATE_KEY
76+
- name: SSH_REPOSITORY_HOST
77+
valueFrom:
78+
secretKeyRef:
79+
name: bind-config
80+
key: SSH_REPOSITORY_HOST
81+
- name: SSH_REPOSITORY_OWNER
82+
valueFrom:
83+
secretKeyRef:
84+
name: bind-config
85+
key: SSH_REPOSITORY_OWNER
86+
- name: SSH_REPOSITORY_NAME
87+
valueFrom:
88+
secretKeyRef:
89+
name: bind-config
90+
key: SSH_REPOSITORY_NAME
91+
- name: SSH_REPOSITORY_REF
92+
valueFrom:
93+
secretKeyRef:
94+
name: bind-config
95+
key: SSH_REPOSITORY_REF
8296

83-
else
97+
resources:
98+
limits:
99+
cpu: 1
100+
memory: 500Mi
101+
requests:
102+
cpu: 50m
103+
memory: 150Mi
104+
volumeMounts:
105+
- name: data
106+
mountPath: /git
107+
subPath: git/
84108

85-
echo "Not Authenticated, check ssh key. RC=[${?}]";
109+
- name: data
110+
mountPath: /root
111+
subPath: home
86112

87-
fi
113+
- mountPath: /var/dns-log
114+
name: data
115+
subPath: logs
88116

89-
fi
117+
initContainers:
90118

91-
echo "Loop Finish.";
119+
- name: clone
120+
image: alpine:3.23.2
121+
command:
122+
- sh
123+
- -c
124+
- |
125+
echo "Installing pre-reqs.....";
92126
93-
sleep 300
127+
apk update;
128+
apk add git openssh-client-default;
94129
95-
done;
130+
export KEY_FILE_PATH=~/.ssh/${SSH_REPOSITORY_OWNER}/${SSH_REPOSITORY_NAME};
131+
132+
mkdir -p "${KEY_FILE_PATH}";
133+
134+
echo "Env var KEY_FILE_PATH=[${KEY_FILE_PATH}] setup";
135+
136+
cat > ${KEY_FILE_PATH}/deploy <<EOF
137+
$SSH_PRIVATE_KEY
138+
EOF
139+
140+
chmod 600 ${KEY_FILE_PATH}/deploy;
141+
142+
export GIT_SSH_COMMAND="ssh -i $KEY_FILE_PATH/deploy";
143+
144+
ssh-keyscan "${SSH_REPOSITORY_HOST}" >> ~/.ssh/known_hosts
145+
146+
if [ ! -d /git/.git ]; then
147+
148+
export REPO_NAME_FULL="${SSH_REPOSITORY_HOST}:${SSH_REPOSITORY_OWNER}/${SSH_REPOSITORY_NAME}.git"
149+
150+
echo "Env var REPO_NAME_FULL=[${REPO_NAME_FULL}] setup";
151+
152+
if ssh -T "git@$SSH_REPOSITORY_HOST" -i $KEY_FILE_PATH/deploy; then
153+
154+
echo "Clonning repo on branch=[${SSH_REPOSITORY_REF}]";
155+
156+
git clone -b "${SSH_REPOSITORY_REF}" git@${REPO_NAME_FULL} /git;
157+
158+
else
159+
160+
echo "Not Authenticated, check ssh key. RC=[${?}]";
161+
162+
exit 1;
163+
164+
fi
165+
166+
fi
96167
97168
env:
98169
- name: SSH_PRIVATE_KEY
@@ -115,6 +186,11 @@ spec:
115186
secretKeyRef:
116187
name: bind-config
117188
key: SSH_REPOSITORY_NAME
189+
- name: SSH_REPOSITORY_REF
190+
valueFrom:
191+
secretKeyRef:
192+
name: bind-config
193+
key: SSH_REPOSITORY_REF
118194

119195
resources:
120196
limits:
@@ -123,11 +199,12 @@ spec:
123199
requests:
124200
cpu: 50m
125201
memory: 150Mi
202+
126203
volumeMounts:
127204
- name: data
128205
mountPath: /git
129-
subPath: git/
206+
subPath: git
130207

131-
- mountPath: /var/dns-log
132-
name: data
133-
subPath: logs
208+
- name: data
209+
mountPath: /root
210+
subPath: home

0 commit comments

Comments
 (0)