Skip to content

Commit 42484dd

Browse files
authored
Merge pull request #180 from wallarm/NODE-5655
NODE-5655 add docker auth to tests
2 parents e06056b + 61efda1 commit 42484dd

File tree

9 files changed

+58
-7
lines changed

9 files changed

+58
-7
lines changed

.github/workflows/ci.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ on:
55
branches: ['main']
66
types: ['opened', 'reopened', 'synchronize']
77
paths:
8+
- '.github/workflows/ci.yaml'
9+
- '.github/workflows/test.yaml'
810
- 'helm/**'
911
- 'files/**'
1012
- 'cmd/**'

.github/workflows/test.yaml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,10 @@ jobs:
153153
role: ${{ secrets.VAULT_ROLE }}
154154
method: kubernetes
155155
path: kubernetes-ci
156-
secrets: kv-gitlab-ci/data/github/sidecar api_token
156+
secrets: |
157+
kv-gitlab-ci/data/github/shared/dockerhub-creds user | DOCKERHUB_USER ;
158+
kv-gitlab-ci/data/github/shared/dockerhub-creds password | DOCKERHUB_PASSWORD ;
159+
kv-gitlab-ci/data/github/sidecar api_token ;
157160
158161
- name: Checkout
159162
uses: actions/checkout@v3
@@ -162,6 +165,7 @@ jobs:
162165

163166
- name: Create cluster
164167
run: |
168+
echo ${DOCKERHUB_PASSWORD} | docker login -u ${DOCKERHUB_USER} --password-stdin
165169
kind create cluster \
166170
--config ${GITHUB_WORKSPACE}/helm/test/kind/kind.yaml \
167171
--image kindest/node:v${{ matrix.kubeVersion }} \
@@ -184,6 +188,11 @@ jobs:
184188
- name: Install Helm chart
185189
run: |
186190
unset KUBERNETES_SERVICE_HOST
191+
echo "[test-env] creating secret docker-registry ..."
192+
kubectl create secret docker-registry dockerhub-secret \
193+
--docker-username="${DOCKERHUB_USER}" \
194+
--docker-password="${DOCKERHUB_PASSWORD}" \
195+
187196
helm install wallarm-sidecar ./helm -f helm/values.test.yaml \
188197
--set config.wallarm.api.token=${API_TOKEN} \
189198
--debug \
@@ -200,6 +209,11 @@ jobs:
200209
- name: Deploy pytest
201210
run: |
202211
unset KUBERNETES_SERVICE_HOST
212+
kubectl create namespace pytest
213+
kubectl -n pytest create secret docker-registry dockerhub-secret \
214+
--docker-username="${DOCKERHUB_USER}" \
215+
--docker-password="${DOCKERHUB_PASSWORD}" \
216+
203217
kubectl apply -f kind/docker/manifests/init/pytest.yaml
204218
while [[ -z $(kubectl -n pytest get pods -o name) ]]; do
205219
sleep 1
@@ -227,7 +241,10 @@ jobs:
227241
role: ${{ secrets.VAULT_ROLE }}
228242
method: kubernetes
229243
path: kubernetes-ci
230-
secrets: kv-gitlab-ci/data/github/sidecar api_token | WALLARM_API_TOKEN
244+
secrets: |
245+
kv-gitlab-ci/data/github/shared/dockerhub-creds user | DOCKERHUB_USER ;
246+
kv-gitlab-ci/data/github/shared/dockerhub-creds password | DOCKERHUB_PASSWORD ;
247+
kv-gitlab-ci/data/github/sidecar api_token | WALLARM_API_TOKEN ;
231248
232249
- name: Checkout
233250
uses: actions/checkout@v3
@@ -236,6 +253,7 @@ jobs:
236253

237254
- name: Create cluster
238255
run: |
256+
echo ${DOCKERHUB_PASSWORD} | docker login -u ${DOCKERHUB_USER} --password-stdin
239257
kind create cluster --image kindest/node:v1.28.7
240258
kubectl wait --for=condition=Ready pods --all --timeout=180s -n kube-system
241259
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
imagePullSecrets:
2+
- name: dockerhub-secret
13
config:
24
wallarm:
35
api:
46
existingSecret:
5-
enabled: true
7+
enabled: true
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
imagePullSecrets:
2+
- name: dockerhub-secret
13
postanalytics:
24
external:
35
enabled: true
4-
host: tarantool.domain.internal
6+
host: tarantool.domain.internal

helm/ci/deployment-values.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
imagePullSecrets:
2+
- name: dockerhub-secret

helm/test/run_chart_tests.sh

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,20 @@ CT_NAMESPACE="ct"
2323
SECRET_NAME="wallarm-api-token"
2424
SECRET_KEY="token"
2525

26+
27+
# This will prevent the secret for index.docker.io from being used if the DOCKERHUB_USER is not set.
28+
if [ "${DOCKERHUB_USER:-false}" = "false" ]; then
29+
DOCKERHUB_REGISTRY_SERVER="fake_docker_registry_server"
30+
fi
31+
32+
DOCKERHUB_SECRET_NAME="dockerhub-secret"
33+
DOCKERHUB_USER="${DOCKERHUB_USER:-fake_user}"
34+
DOCKERHUB_PASSWORD="${DOCKERHUB_PASSWORD:-fake_password}"
35+
2636
HELM_EXTRA_ARGS="--timeout 180s"
27-
HELM_EXTRA_SET_ARGS="--set config.wallarm.api.token=${WALLARM_API_TOKEN} ${HELM_ARGS:-}"
37+
HELM_EXTRA_SET_ARGS="--set config.wallarm.api.token=${WALLARM_API_TOKEN} \
38+
--set imagePullSecrets[0].name=${DOCKERHUB_SECRET_NAME} \
39+
${HELM_ARGS:-}"
2840

2941
# Handle the case when we run chart testing with '--upgrade' option
3042
if [[ "${CT_MODE:-}" == "upgrade" ]]; then
@@ -43,6 +55,14 @@ if ! kubectl -n ${CT_NAMESPACE} get secret "${SECRET_NAME}" &> /dev/null; then
4355
kubectl -n ${CT_NAMESPACE} create secret generic "${SECRET_NAME}" --from-literal="${SECRET_KEY}"="${WALLARM_API_TOKEN}"
4456
fi
4557

58+
if ! kubectl -n ${CT_NAMESPACE} get secret "${DOCKERHUB_SECRET_NAME}" &> /dev/null; then
59+
echo "Creating secret ${DOCKERHUB_SECRET_NAME}..."
60+
kubectl -n ${CT_NAMESPACE} create secret docker-registry "${DOCKERHUB_SECRET_NAME}" \
61+
--docker-username="${DOCKERHUB_USER}" \
62+
--docker-password="${DOCKERHUB_PASSWORD}" \
63+
64+
fi
65+
4666
cat <<EOF > ct.sh
4767
#!/bin/bash
4868
set -e

helm/values.test.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,6 @@ config:
88
fallback: "off"
99

1010
controller:
11-
replicaCount: 1
11+
replicaCount: 1
12+
imagePullSecrets:
13+
- name: dockerhub-secret

kind/docker/manifests/init/pytest.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ spec:
2121
labels:
2222
app.kubernetes.io/name: pytest
2323
spec:
24+
imagePullSecrets:
25+
- name: dockerhub-secret
2426
serviceAccountName: pytest
2527
containers:
2628
- name: pytest

test/smoke/run.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@ export INJECTION_STRATEGY="${INJECTION_STRATEGY:-single}"
2727

2828
K8S_VERSION=${K8S_VERSION:-1.28.7}
2929

30-
DOCKERHUB_REGISTRY_SERVER="https://index.docker.io/v1/"
3130

3231
# This will prevent the secret for index.docker.io from being used if the DOCKERHUB_USER is not set.
32+
DOCKERHUB_REGISTRY_SERVER="https://index.docker.io/v1/"
33+
3334
if [ "${DOCKERHUB_USER:-false}" = "false" ]; then
3435
DOCKERHUB_REGISTRY_SERVER="fake_docker_registry_server"
3536
fi

0 commit comments

Comments
 (0)