From 7d5ed56dea893d3b3aff5c1b6cbf2f751a87de78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Pailharey?= <rpailharey@grandlyon.com> Date: Tue, 11 Apr 2023 16:00:02 +0200 Subject: [PATCH] cicd: automated client deployment --- .gitlab-ci.yml | 37 +++++++++++++++++++ .../ecolyo-agent-client-deployment.yml | 27 ++++++++++++++ k8s/services/ecolyo-agent-client-service.yml | 12 ++++++ 3 files changed, 76 insertions(+) create mode 100644 k8s/deployments/ecolyo-agent-client-deployment.yml create mode 100644 k8s/services/ecolyo-agent-client-service.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3c2465f2..a509cf1e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,6 +12,7 @@ variables: stages: - quality - build + - deploy build-test: stage: build @@ -63,3 +64,39 @@ sonarqube: -Dsonar.login=${SONAR_TOKEN} -Dsonar.cpd.exclusions=tests/**,src/**/*.spec.ts* -Dsonar.qualitygate.wait=true + +deploy_rec: + stage: deploy + before_script: + - NAMESPACE=ns-ecolyo-bo-r01-syn + - sed -i "s/{{IMAGE_TAG}}/dev/" ./k8s/deployments/ecolyo-agent-client-deployment.yml + - export KUBECONFIG=$KUBE_CONFIG_REC + script: + - find k8s/ -name '*.yml' -exec sed -i "s/{{NS}}/$NAMESPACE/g" {} \; + + - oc create secret -n $NAMESPACE docker-registry llle-project --docker-server=$CI_REGISTRY --docker-username=llle-project --docker-password=$TOKEN_PULL_IMAGE --dry-run=client -o yaml | oc apply -f - + + - oc apply -f k8s/deployments + - oc apply -f k8s/services + tags: + - ns-ecolyo-bo-r01-syn + only: + - dev + +deploy_prod: + stage: deploy + before_script: + - NAMESPACE=ns-ecolyo-bo-p01-syn + - sed -i "s/{{IMAGE_TAG}}/master/" ./k8s/deployments/ecolyo-agent-client-deployment.yml + - export KUBECONFIG=$KUBE_CONFIG_PROD + script: + - find k8s/ -name '*.yml' -exec sed -i "s/{{NS}}/$NAMESPACE/g" {} \; + + - oc create secret -n $NAMESPACE docker-registry llle-project --docker-server=$CI_REGISTRY --docker-username=llle-project --docker-password=$TOKEN_PULL_IMAGE --dry-run=client -o yaml | oc apply -f - + + - oc apply -f k8s/deployments + - oc apply -f k8s/services + tags: + - ns-ecolyo-bo-p01-syn + only: + - master diff --git a/k8s/deployments/ecolyo-agent-client-deployment.yml b/k8s/deployments/ecolyo-agent-client-deployment.yml new file mode 100644 index 00000000..d4c81ef1 --- /dev/null +++ b/k8s/deployments/ecolyo-agent-client-deployment.yml @@ -0,0 +1,27 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: ecolyo-agent-client + namespace: {{NS}} +spec: + replicas: 1 + selector: + matchLabels: + app: ecolyo-agent-client + template: + metadata: + labels: + app: ecolyo-agent-client + spec: + containers: + - name: ecolyo-agent-client + image: registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/backoffice-client:{{IMAGE_TAG}} + imagePullPolicy: Always + ports: + - containerPort: 8080 + protocol: TCP + nodeSelector: + node-role.kubernetes.io/worker: '' + imagePullSecrets: + - name: llle-project diff --git a/k8s/services/ecolyo-agent-client-service.yml b/k8s/services/ecolyo-agent-client-service.yml new file mode 100644 index 00000000..f9a6defa --- /dev/null +++ b/k8s/services/ecolyo-agent-client-service.yml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: ecolyo-agent-client-service + namespace: {{NS}} +spec: + selector: + app: ecolyo-agent-client + ports: + - protocol: TCP + port: 80 + targetPort: 8080 -- GitLab