Skip to content
Snippets Groups Projects
Commit fc2885c2 authored by Romain MATIAS's avatar Romain MATIAS
Browse files

Merge branch 'cicd' into 'develop'

Cicd

See merge request !1
parents 3385d6fd 1f1d4459
No related branches found
No related tags found
1 merge request!1Cicd
Pipeline #43097 passed
#
# Gitlab CI/CD : Build archive and Docker images and deploy on Openshift
#
variables:
TRIGRAMME: test #arb @TODO : Change after when the right namespace is available
REPLICA_ENV: 1
################################################################################
# Anchors
################################################################################
# Build and push anchor
.build_and_push_docker_image: &build_and_push_docker_image
- docker build --pull --tag "$CI_REGISTRY_IMAGE/$IMAGE_NAME:latest" .
- docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:latest"
# Docker Authentification anchor
.docker_login: &docker_login
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
# Deployment preparation anchor
.prepare_deployment: &prepare_deployment
- export NO_PROXY=grandlyon.fr
- export KUBECONFIG=$KUBECONFIG_DEV
- echo Preparing Deployment on $NAMESPACE
- sed -i "s/__NAMESPACE_ENV__/$NAMESPACE_ENV/g" deployment/job-calqul.yml
# Applying openshift conf anchor
.apply_confs: &apply_confs
- oc delete jobs --selector job-name=calqul-$NAMESPACE_ENV
- oc create -f deployment/job-calqul.yml
################################################################################
# CI/CD Stages
################################################################################
stages:
- Build Calqul
- Deploy Calqul
# *********************************************************************************************
# * BUILD BUILD BUILD BUILD BUILD BUILD BUILD BUILD BUILD BUILD BUILD BUILD BUILD BUILD BUILD *
# *********************************************************************************************
Build Calqul:
stage: Build Calqul
variables:
DOCKER_TLS_CERTDIR: ""
NAMESPACE_ENV: "d01"
IMAGE_NAME: calqul-$NAMESPACE_ENV
rules:
- if: $CI_COMMIT_BRANCH == "develop"
- changes: # build image only if sources have changed.
- Dockerfile # Image definition has changed
services:
- docker:dind
script:
- *docker_login
- *build_and_push_docker_image
tags:
- build-push-to-registry
# *********************************************************************************************
# * DEPLOY DEPLOY DEPLOY DEPLOY DEPLOY DEPLOY DEPLOY DEPLOY DEPLOY DEPLOY DEPLOY DEPLOY DEPLO *
# *********************************************************************************************
Deploy Calqul:
stage: Deploy Calqul
rules:
- if: $CI_COMMIT_BRANCH == "develop"
variables:
NAMESPACE_ENV: 'd01'
NAMESPACE: "ns-$TRIGRAMME-$NAMESPACE_ENV"
before_script:
- *prepare_deployment
script:
- *apply_confs
tags:
#- ns-arb-d01 @TODO : Change after when the right namespace is available
- ns-test-d01
\ No newline at end of file
FROM python:3
WORKDIR /usr/src/app
COPY scripts/requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY ./scripts .
CMD [ "python", "./hello-world.py" ]
\ No newline at end of file
...@@ -131,4 +131,4 @@ Doc : ...@@ -131,4 +131,4 @@ Doc :
- https://docs.openshift.com/container-platform/4.11/nodes/jobs/nodes-nodes-jobs.html - https://docs.openshift.com/container-platform/4.11/nodes/jobs/nodes-nodes-jobs.html
### Suppression d'un job ### Suppression d'un job
- https://access.redhat.com/documentation/en-us/openshift_container_platform/3.4/html/developer_guide/dev-guide-scheduled-jobs - https://access.redhat.com/documentation/en-us/openshift_container_platform/3.4/html/developer_guide/dev-guide-scheduled-jobs
\ No newline at end of file
apiVersion: batch/v1
kind: Job
metadata:
name: calqul-__NAMESPACE_ENV__
spec:
activeDeadlineSeconds: 144000 # maximum duration the job can run => 40h
template:
metadata:
name: calqul-__NAMESPACE_ENV__
spec:
containers:
- name: calqul-__NAMESPACE_ENV__
image: registry.forge.grandlyon.com/erasme/script-recalcul-calque/calqul-__NAMESPACE_ENV__
restartPolicy: Never #OnFailure
\ No newline at end of file
# docker run -it --rm --name my-running-script -v /c/Users/ICG4702/Documents/developpements/arb/tests:/usr/src/myapp -w /usr/src/myapp python:3 python hello-world.py
import time
print('Hello, World from Docker on OpenShift !')
time.sleep(5)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment