Loading manifests/computeservice.yaml 0 → 100644 +66 −0 Original line number Diff line number Diff line apiVersion: apps/v1 kind: Deployment metadata: name: computeservice spec: selector: matchLabels: app: computeservice template: metadata: labels: app: computeservice spec: terminationGracePeriodSeconds: 5 containers: - name: server image: registry.gitlab.com/teraflow-h2020/controller/compute:latest imagePullPolicy: Always ports: - containerPort: 9090 env: - name: LOG_LEVEL value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:9090"] livenessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:9090"] resources: requests: cpu: 250m memory: 512Mi limits: cpu: 700m memory: 1024Mi --- apiVersion: v1 kind: Service metadata: name: computeservice spec: type: ClusterIP selector: app: computeservice ports: - name: grpc port: 9090 targetPort: 9090 --- apiVersion: v1 kind: Service metadata: name: computeservice-public labels: app: computeservice spec: type: NodePort selector: app: computeservice ports: - name: grpc protocol: TCP port: 9090 targetPort: 9090 --- proto/compute.proto +0 −8 Original line number Diff line number Diff line //Example of topology syntax = "proto3"; package compute; Loading @@ -14,10 +13,3 @@ service ComputeService { rpc get_all_active_connectivity_services ( context.Empty ) returns ( service.ServiceIdList ) {} rpc clear_all_connectivity_services ( context.Empty ) returns ( context.Empty ) {} } report_coverage_compute.sh 0 → 100755 +3 −0 Original line number Diff line number Diff line #!/bin/bash ./report_coverage_all.sh | grep --color -E -i "^compute/.*$|$" run_local_tests.sh +3 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,9 @@ coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ service/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ compute/tests/test_unitary.py # Run integration tests and analyze coverage of code at same time export DB_ENGINE='redis' export REDIS_SERVICE_HOST='10.1.7.194' Loading src/compute/.gitlab-ci.yml 0 → 100644 +60 −0 Original line number Diff line number Diff line # Build, tag, and push the Docker images to the GitLab Docker registry build compute: variables: IMAGE_NAME: 'compute' # name of the microservice IMAGE_NAME_TEST: 'compute-test' # 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" rules: - changes: - src/$IMAGE_NAME/** - .gitlab-ci.yml # Pull, execute, and run unitary tests for the Docker image from the GitLab registry unit_test compute: variables: IMAGE_NAME: 'compute' # name of the microservice IMAGE_NAME_TEST: 'compute-test' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: unit_test needs: - build compute before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker run -d -p 9090:9090 --name $IMAGE_NAME --network=teraflowbridge "$IMAGE_NAME:$IMAGE_TAG" - docker ps -a - sleep 5 - docker ps -a - docker logs $IMAGE_NAME - docker exec -i $IMAGE_NAME bash -c "pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_unitary.py" after_script: - docker stop $IMAGE_NAME - docker rm $IMAGE_NAME rules: - changes: - src/$IMAGE_NAME/** - .gitlab-ci.yml # Deployment of the service in Kubernetes Cluster deploy compute: stage: deploy needs: - build compute - unit_test compute - dependencies all - integ_test execute script: - kubectl version - kubectl get all - kubectl apply -f "manifests/computeservice.yaml" - kubectl delete pods --selector app=computeservice - kubectl get all Loading
manifests/computeservice.yaml 0 → 100644 +66 −0 Original line number Diff line number Diff line apiVersion: apps/v1 kind: Deployment metadata: name: computeservice spec: selector: matchLabels: app: computeservice template: metadata: labels: app: computeservice spec: terminationGracePeriodSeconds: 5 containers: - name: server image: registry.gitlab.com/teraflow-h2020/controller/compute:latest imagePullPolicy: Always ports: - containerPort: 9090 env: - name: LOG_LEVEL value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:9090"] livenessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:9090"] resources: requests: cpu: 250m memory: 512Mi limits: cpu: 700m memory: 1024Mi --- apiVersion: v1 kind: Service metadata: name: computeservice spec: type: ClusterIP selector: app: computeservice ports: - name: grpc port: 9090 targetPort: 9090 --- apiVersion: v1 kind: Service metadata: name: computeservice-public labels: app: computeservice spec: type: NodePort selector: app: computeservice ports: - name: grpc protocol: TCP port: 9090 targetPort: 9090 ---
proto/compute.proto +0 −8 Original line number Diff line number Diff line //Example of topology syntax = "proto3"; package compute; Loading @@ -14,10 +13,3 @@ service ComputeService { rpc get_all_active_connectivity_services ( context.Empty ) returns ( service.ServiceIdList ) {} rpc clear_all_connectivity_services ( context.Empty ) returns ( context.Empty ) {} }
report_coverage_compute.sh 0 → 100755 +3 −0 Original line number Diff line number Diff line #!/bin/bash ./report_coverage_all.sh | grep --color -E -i "^compute/.*$|$"
run_local_tests.sh +3 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,9 @@ coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ service/tests/test_unitary.py coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ compute/tests/test_unitary.py # Run integration tests and analyze coverage of code at same time export DB_ENGINE='redis' export REDIS_SERVICE_HOST='10.1.7.194' Loading
src/compute/.gitlab-ci.yml 0 → 100644 +60 −0 Original line number Diff line number Diff line # Build, tag, and push the Docker images to the GitLab Docker registry build compute: variables: IMAGE_NAME: 'compute' # name of the microservice IMAGE_NAME_TEST: 'compute-test' # 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" rules: - changes: - src/$IMAGE_NAME/** - .gitlab-ci.yml # Pull, execute, and run unitary tests for the Docker image from the GitLab registry unit_test compute: variables: IMAGE_NAME: 'compute' # name of the microservice IMAGE_NAME_TEST: 'compute-test' # name of the microservice IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) stage: unit_test needs: - build compute before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker run -d -p 9090:9090 --name $IMAGE_NAME --network=teraflowbridge "$IMAGE_NAME:$IMAGE_TAG" - docker ps -a - sleep 5 - docker ps -a - docker logs $IMAGE_NAME - docker exec -i $IMAGE_NAME bash -c "pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_unitary.py" after_script: - docker stop $IMAGE_NAME - docker rm $IMAGE_NAME rules: - changes: - src/$IMAGE_NAME/** - .gitlab-ci.yml # Deployment of the service in Kubernetes Cluster deploy compute: stage: deploy needs: - build compute - unit_test compute - dependencies all - integ_test execute script: - kubectl version - kubectl get all - kubectl apply -f "manifests/computeservice.yaml" - kubectl delete pods --selector app=computeservice - kubectl get all