Loading .gitlab-ci.yml +3 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,9 @@ stages: - test - deploy variables: VERSION: '1.0' # version of the TeraFlow release # include the individual .gitlab-ci.yml of each micro-service include: - local: '/src/monitoring/.gitlab-ci.yml' Loading README.md 0 → 100644 +1 −0 Original line number Diff line number Diff line controller @ acc18d04 Original line number Diff line number Diff line Subproject commit acc18d04c16466d7895a93eb258f363e3ef20740 src/monitoring/.gitlab-ci.yml +127 −41 Original line number Diff line number Diff line Loading @@ -2,16 +2,37 @@ build monitoring: variables: IMAGE_NAME: 'monitoring' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: build before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile ./src/ - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - |- if [[ $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH ]]; then docker build -t "$IMAGE_NAME:$CI_DEFAULT_BRANCH" -t "$IMAGE_NAME:$VERSION" -f ./src/$IMAGE_NAME/Dockerfile ./src/ docker tag "$IMAGE_NAME:$CI_DEFAULT_BRANCH" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_DEFAULT_BRANCH" docker tag "$IMAGE_NAME:$VERSION" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$VERSION" docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_DEFAULT_BRANCH" docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$VERSION" elif [[ $CI_PIPELINE_SOURCE == "merge_request_event" ]]; then docker build -t "$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" -f ./src/$IMAGE_NAME/Dockerfile ./src/ docker tag "$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" elif [[ $CI_PIPELINE_SOURCE == "push" ]]; then docker build -t "$IMAGE_NAME:$CI_COMMIT_BRANCH" -f ./src/$IMAGE_NAME/Dockerfile ./src/ docker tag "$IMAGE_NAME:$CI_COMMIT_BRANCH" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_BRANCH" docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_BRANCH" fi rules: - changes: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' 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 == "push"' changes: - src/$IMAGE_NAME/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py Loading @@ -23,16 +44,32 @@ build monitoring: test monitoring pull: variables: IMAGE_NAME: 'monitoring' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: test needs: - build monitoring before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - |- if [[ $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH ]]; then docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_DEFAULT_BRANCH" docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$VERSION" elif [[ $CI_PIPELINE_SOURCE == "merge_request_event" ]]; then docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" elif [[ $CI_PIPELINE_SOURCE == "push" ]]; then docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_BRANCH" fi rules: - changes: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' 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 == "push"' changes: - src/$IMAGE_NAME/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py Loading @@ -44,19 +81,34 @@ test monitoring pull: test monitoring run: variables: IMAGE_NAME: 'monitoring' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: test needs: - build monitoring before_script: - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi script: - docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$IMAGE_TAG" - |- if [[ $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH ]]; then docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$CI_DEFAULT_BRANCH" elif [[ $CI_PIPELINE_SOURCE == "merge_request_event" ]]; then docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" elif [[ $CI_PIPELINE_SOURCE == "push" ]]; then docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$CI_COMMIT_BRANCH" fi - docker ps after_script: - docker stop monitoring - docker stop $IMAGE_NAME rules: - changes: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' 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 == "push"' changes: - src/$IMAGE_NAME/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py Loading @@ -69,13 +121,12 @@ test monitoring pytest: variables: IMAGE_NAME: 'monitoring' # name of the microservice IMAGE_NAME_TEST: 'monitoring-test' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: test needs: - build monitoring script: - docker build -t "$IMAGE_NAME_TEST:$IMAGE_TAG" -f ./src/$IMAGE_NAME/tests/Dockerfile ./src/ - docker run -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" $IMAGE_NAME_TEST:$IMAGE_TAG - docker build -t "$IMAGE_NAME_TEST" -f ./src/$IMAGE_NAME/tests/Dockerfile ./src/ - docker run -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" $IMAGE_NAME_TEST rules: - changes: - src/$IMAGE_NAME/*.{py,in,yml} Loading @@ -89,7 +140,7 @@ test monitoring pytest: reports: junit: src/$IMAGE_NAME/tests/report.xml # Deployment of the monitoring service in Kubernetes Cluster # Deployment of the monitoring service in development Kubernetes Cluster deploy monitoring development: variables: IMAGE_NAME: 'monitoring' # name of the microservice Loading @@ -103,14 +154,49 @@ deploy monitoring development: - 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: - 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 when: manual # Deployment of the monitoring service in production Kubernetes Cluster deploy monitoring production: variables: IMAGE_NAME: 'monitoring' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: deploy needs: - build monitoring - test monitoring run script: - 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 Loading
.gitlab-ci.yml +3 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,9 @@ stages: - test - deploy variables: VERSION: '1.0' # version of the TeraFlow release # include the individual .gitlab-ci.yml of each micro-service include: - local: '/src/monitoring/.gitlab-ci.yml' Loading
controller @ acc18d04 Original line number Diff line number Diff line Subproject commit acc18d04c16466d7895a93eb258f363e3ef20740
src/monitoring/.gitlab-ci.yml +127 −41 Original line number Diff line number Diff line Loading @@ -2,16 +2,37 @@ build monitoring: variables: IMAGE_NAME: 'monitoring' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: build before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile ./src/ - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - |- if [[ $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH ]]; then docker build -t "$IMAGE_NAME:$CI_DEFAULT_BRANCH" -t "$IMAGE_NAME:$VERSION" -f ./src/$IMAGE_NAME/Dockerfile ./src/ docker tag "$IMAGE_NAME:$CI_DEFAULT_BRANCH" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_DEFAULT_BRANCH" docker tag "$IMAGE_NAME:$VERSION" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$VERSION" docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_DEFAULT_BRANCH" docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$VERSION" elif [[ $CI_PIPELINE_SOURCE == "merge_request_event" ]]; then docker build -t "$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" -f ./src/$IMAGE_NAME/Dockerfile ./src/ docker tag "$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" elif [[ $CI_PIPELINE_SOURCE == "push" ]]; then docker build -t "$IMAGE_NAME:$CI_COMMIT_BRANCH" -f ./src/$IMAGE_NAME/Dockerfile ./src/ docker tag "$IMAGE_NAME:$CI_COMMIT_BRANCH" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_BRANCH" docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_BRANCH" fi rules: - changes: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' 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 == "push"' changes: - src/$IMAGE_NAME/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py Loading @@ -23,16 +44,32 @@ build monitoring: test monitoring pull: variables: IMAGE_NAME: 'monitoring' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: test needs: - build monitoring before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - |- if [[ $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH ]]; then docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_DEFAULT_BRANCH" docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$VERSION" elif [[ $CI_PIPELINE_SOURCE == "merge_request_event" ]]; then docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" elif [[ $CI_PIPELINE_SOURCE == "push" ]]; then docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_BRANCH" fi rules: - changes: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' 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 == "push"' changes: - src/$IMAGE_NAME/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py Loading @@ -44,19 +81,34 @@ test monitoring pull: test monitoring run: variables: IMAGE_NAME: 'monitoring' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: test needs: - build monitoring before_script: - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi script: - docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$IMAGE_TAG" - |- if [[ $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH ]]; then docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$CI_DEFAULT_BRANCH" elif [[ $CI_PIPELINE_SOURCE == "merge_request_event" ]]; then docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" elif [[ $CI_PIPELINE_SOURCE == "push" ]]; then docker run -d -p 7070:7070 --name $IMAGE_NAME --network=teraflowbridge --rm "$IMAGE_NAME:$CI_COMMIT_BRANCH" fi - docker ps after_script: - docker stop monitoring - docker stop $IMAGE_NAME rules: - changes: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' 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 == "push"' changes: - src/$IMAGE_NAME/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py Loading @@ -69,13 +121,12 @@ test monitoring pytest: variables: IMAGE_NAME: 'monitoring' # name of the microservice IMAGE_NAME_TEST: 'monitoring-test' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: test needs: - build monitoring script: - docker build -t "$IMAGE_NAME_TEST:$IMAGE_TAG" -f ./src/$IMAGE_NAME/tests/Dockerfile ./src/ - docker run -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" $IMAGE_NAME_TEST:$IMAGE_TAG - docker build -t "$IMAGE_NAME_TEST" -f ./src/$IMAGE_NAME/tests/Dockerfile ./src/ - docker run -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" $IMAGE_NAME_TEST rules: - changes: - src/$IMAGE_NAME/*.{py,in,yml} Loading @@ -89,7 +140,7 @@ test monitoring pytest: reports: junit: src/$IMAGE_NAME/tests/report.xml # Deployment of the monitoring service in Kubernetes Cluster # Deployment of the monitoring service in development Kubernetes Cluster deploy monitoring development: variables: IMAGE_NAME: 'monitoring' # name of the microservice Loading @@ -103,14 +154,49 @@ deploy monitoring development: - 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: - 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 when: manual # Deployment of the monitoring service in production Kubernetes Cluster deploy monitoring production: variables: IMAGE_NAME: 'monitoring' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: deploy needs: - build monitoring - test monitoring run script: - 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