diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3c2465f23553312e222e84fa796ec6c05409b9ca..a509cf1e72e52c9aedfbed267e09e7ed8618542b 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 0000000000000000000000000000000000000000..d4c81ef171ea2867415f8c49090c60b39df265cd
--- /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 0000000000000000000000000000000000000000..f9a6defa4e1b5626a6a5a3300a7231ccb23c186f
--- /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