diff --git a/src/gitlab-ci.yml_generator.py b/src/gitlab-ci.yml_generator.py
index f254fcba6385f874fb1f78f6a855ba05bc6ef1d7..2fffbfaf19b7d4ede5bb2ea51df415c3e7fbbc47 100755
--- a/src/gitlab-ci.yml_generator.py
+++ b/src/gitlab-ci.yml_generator.py
@@ -116,7 +116,7 @@ test {microservice} pytest:
       reports:
         junit: src/$IMAGE_NAME/tests/report.xml
 
-# Deployment of the {microservice} service in Kubernetes Cluster
+# Deployment of the {microservice} service in development Kubernetes Cluster
 deploy {microservice} development:
   variables:
     IMAGE_NAME: '{microservice}' # name of the microservice
@@ -126,19 +126,57 @@ deploy {microservice} development:
     - build {microservice}
     - test {microservice} run
   script:
+    - 'sed -i "s/image: .*/image: $CI_REGISTRY\/$CI_PROJECT_NAMESPACE\/$CI_PROJECT_NAME\/$IMAGE_NAME:$IMAGE_TAG/" manifests/$IMAGE_NAME.yaml'
     - kubectl version
     - kubectl get all
     - kubectl apply -f "manifests/$IMAGE_NAME.yaml"
     - kubectl get all
+  # environment:
+  #   name: development
+  #   url: https://example.com
+  #   kubernetes:
+  #     namespace: development
   rules:
-    - changes:
-      - src/$IMAGE_NAME/*.{py,in,yml}
-      - src/$IMAGE_NAME/Dockerfile
-      - src/$IMAGE_NAME/tests/*.py
-      - src/$IMAGE_NAME/tests/Dockerfile
-      - manifests/$IMAGE_NAME.yaml
-      - .gitlab-ci.yml
+    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
+      when: manual
+      changes:
+        - src/$IMAGE_NAME/*.{{py,in,yml}}
+        - src/$IMAGE_NAME/Dockerfile
+        - src/$IMAGE_NAME/tests/*.py
+        - src/$IMAGE_NAME/tests/Dockerfile
+        - manifests/$IMAGE_NAME.yaml
+        - .gitlab-ci.yml
+
+# Deployment of the {microservice} service in production Kubernetes Cluster
+deploy {microservice} development:
+  variables:
+    IMAGE_NAME: '{microservice}' # name of the microservice
+    IMAGE_TAG: '{tag}' # tag of the container image (production, development, etc)
+  stage: deploy
+  needs:
+    - build {microservice}
+    - test {microservice} run
+  script:
+    - 'sed -i "s/image: .*/image: $CI_REGISTRY\/$CI_PROJECT_NAMESPACE\/$CI_PROJECT_NAME\/$IMAGE_NAME:$IMAGE_TAG/" manifests/$IMAGE_NAME.yaml'
+    - kubectl version
+    - kubectl get all
+    - kubectl apply -f "manifests/$IMAGE_NAME.yaml"
+    - kubectl get all
+  # environment:
+  #   name: production
+  #   url: https://example.com
+  #   kubernetes:
+  #     namespace: production
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
       when: manual
+      changes:
+        - src/$IMAGE_NAME/*.{{py,in,yml}}
+        - src/$IMAGE_NAME/Dockerfile
+        - src/$IMAGE_NAME/tests/*.py
+        - src/$IMAGE_NAME/tests/Dockerfile
+        - manifests/$IMAGE_NAME.yaml
+        - .gitlab-ci.yml
 """
 f.write(yml_template.format(microservice = args.microservice, tag=args.tag))
 print("File created in the following path: {file}".format(file=file))