diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a61ea940284434f7d9a6c89b702105910673f3b1..4f73448916dd4274a49e468797593568fff6eca7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,7 +26,8 @@ deploy: - yum install -y gettext - kubectl delete secret registry-gitlab -n ${NAMESPACE} --ignore-not-found=true - kubectl create secret docker-registry -n ${NAMESPACE} registry-gitlab --docker-server=registry-gitlab.pasteur.fr --docker-username=${DEPLOY_USER} --docker-password=${DEPLOY_TOKEN} --docker-email=kubernetes@pasteur.fr - - envsubst < manifest.yaml - - envsubst < manifest.yaml | kubectl apply -f - + - envsubst < manifest.yaml | kubectl apply -n ${NAMESPACE} -f - + - kubectl delete job polls-migrations -n ${NAMESPACE} --ignore-not-found=true + - envsubst < job.yaml | kubectl apply -n ${NAMESPACE} -f - - kubectl patch deployment polls -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}" diff --git a/job.yaml b/job.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3cf5c31af4d2b83c837eb5f15382576b7173a943 --- /dev/null +++ b/job.yaml @@ -0,0 +1,38 @@ +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: polls-migrations +spec: + template: + spec: + containers: + - name: django + image: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME/polls:${CI_COMMIT_SHORT_SHA} + command: ['python', '/app/manage.py', 'migrate'] + env: + - name: DATABASE_HOST + value: postgresql + - name: DATABASE_NAME + valueFrom: + secretKeyRef: + name: postgresql-credentials + key: database + - name: DATABASE_USER + valueFrom: + secretKeyRef: + name: postgresql-credentials + key: username + - name: DATABASE_PASSWORD + valueFrom: + secretKeyRef: + name: postgresql-credentials + key: password + restartPolicy: Never + imagePullSecrets: + - name: registry-gitlab + volumes: + - name: postgresql-credentials + secret: + secretName: postgresql + backoffLimit: 5 diff --git a/manifest.yaml b/manifest.yaml index 2fb5ff22db2301b9999a454286f5317ced97594b..702d7f5d12e52467d56b148e37ec0b0a047a6822 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -181,41 +181,3 @@ spec: serviceName: polls servicePort: 8080 path: / ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: polls-migrations -spec: - template: - spec: - containers: - - name: django - image: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME/polls:${CI_COMMIT_SHORT_SHA} - command: ['python', '/app/manage.py', 'migrate'] - env: - - name: DATABASE_HOST - value: postgresql - - name: DATABASE_NAME - valueFrom: - secretKeyRef: - name: postgresql-credentials - key: database - - name: DATABASE_USER - valueFrom: - secretKeyRef: - name: postgresql-credentials - key: username - - name: DATABASE_PASSWORD - valueFrom: - secretKeyRef: - name: postgresql-credentials - key: password - restartPolicy: Never - imagePullSecrets: - - name: registry-gitlab - volumes: - - name: postgresql-credentials - secret: - secretName: postgresql - backoffLimit: 5