From 744734d08ce8e0793c04548c55dc195e91e74e65 Mon Sep 17 00:00:00 2001 From: Nicolas Pernoud <npernoud@grandlyon.com> Date: Thu, 26 Jan 2023 10:33:43 +0100 Subject: [PATCH] feat: continuous deployment --- .gitlab-ci.yml | 13 +++++++- deployment.yml | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 deployment.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a5eec8a..33aa4ba 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ stages: - integration-continue + - deploiement-continu build-et-push-image: variables: @@ -12,4 +13,14 @@ build-et-push-image: - docker build --pull --label "created=$(date +'%Y-%m-%d')" -t "$CI_REGISTRY_IMAGE" . - docker push "$CI_REGISTRY_IMAGE" tags: - - build-push-to-registry \ No newline at end of file + - build-push-to-registry + +deploiement-sur-openshift: + stage: deploiement-continu + script: + - export NO_PROXY=grandlyon.fr + - export KUBECONFIG=$KUBECONFIG_DEV + - oc apply -f deployment.yml + - oc delete pod -l app=demo-openshift + tags: + - ns-demo-d01 \ No newline at end of file diff --git a/deployment.yml b/deployment.yml new file mode 100644 index 0000000..4731502 --- /dev/null +++ b/deployment.yml @@ -0,0 +1,80 @@ +--- +# Déploiement de l'application +kind: Deployment +apiVersion: apps/v1 +metadata: + name: demo-openshift-deploy + namespace: ns-demo-d01 + labels: + app: demo-openshift +spec: + replicas: 1 + selector: + matchLabels: + app: demo-openshift + template: + metadata: + labels: + app: demo-openshift + spec: + containers: + - name: demo-openshift-app + image: registry.forge.grandlyon.com/npernoud/demo-openshift:latest + imagePullPolicy: Always + ports: + - containerPort: 8080 + protocol: TCP + readinessProbe: + httpGet: + path: / + port: 8080 + timeoutSeconds: 1 + livenessProbe: + httpGet: + path: / + port: 8080 + ressources: + requests: + memory: "50Mi" + cpu: 100m + limits: + memory: "128Mi" + cpu: 500m + imagePullSecrets: + - name: forge-secret +--- +# Service : rends l'application visible par "elle même" au sein du cluster +apiVersion: v1 +kind: Service +metadata: + name: demo-openshift-service + namespace: ns-demo-d01 +spec: + selector: + app: demo-openshift + ports: + - name: 8080-tcp + protocol: TCP + port: 8080 + targetPort: 8080 +--- +# Route : rends l'application visible à l'extérieur du cluster +kind: Route +apiVersion: route.openshift.io/v1 +metadata: + name: demo-openshift-route + namespace: ns-demo-d01 + labels: + app: demo-openshift +spec: + host: demo-openshift.air.grandlyon.fr + to: + kind: Service + name: demo-openshift-service + weight: 100 + port: + targetPort: 8080-tcp + tls: + termination: edge + insecureEdgeTerminationPolicy: Redirect +--- \ No newline at end of file -- GitLab