diff --git a/ansible/roles/stack-sunbird/defaults/main.yml b/ansible/roles/stack-sunbird/defaults/main.yml index e11734200936f80d932c29d8deafa142c44e8e7a..ad204483f4623fcd8239bd69df0d54711c71f988 100644 --- a/ansible/roles/stack-sunbird/defaults/main.yml +++ b/ansible/roles/stack-sunbird/defaults/main.yml @@ -25,6 +25,11 @@ config_limit_memory: 1024M config_limit_cpu: 1 config_reservation_cpu: 1 +# Notification Service vars +notification_replicas: 1 +notification_limit_memory: 500MB +notification_limit_cpu: 1 + # This variable is not to access learner service but to call the api # learner-service:9000/org/v1/search sunbird_learner_service_base_url: http://api-manager_kong:8000/ @@ -80,8 +85,8 @@ user_org_limit_cpu: 1 user_org_reservation_cpu: 1 cert_replicas: 1 -cert_reservation_memory: 750MB -cert_limit_memory: 800MB +cert_reservation_memory: 500MB +cert_limit_memory: 550MB cert_limit_cpu: 1 cert_reservation_cpu: 1 diff --git a/ansible/roles/stack-sunbird/tasks/cert_service.yml b/ansible/roles/stack-sunbird/tasks/cert_service.yml index 849e040e3aa0f68c9afda58d4053dc275824a11c..8bdfc6149f9185f5b480f300442a12302fecf630 100644 --- a/ansible/roles/stack-sunbird/tasks/cert_service.yml +++ b/ansible/roles/stack-sunbird/tasks/cert_service.yml @@ -1,7 +1,7 @@ --- -- name: Remove user org service +- name: Remove cert service shell: "docker service rm cert-service" ignore_errors: yes -- name: Deploy user org service - shell: "docker service create --with-registry-auth --replicas {{ cert_replicas }} -p 9011:9000 --name cert-service --hostname cert-service --reserve-memory {{ cert_reservation_memory }} --limit-memory {{ cert_limit_memory }} --limit-cpu {{ cert_limit_cpu }} --reserve-cpu {{ cert_reservation_cpu }} --network application_default --env-file /home/deployer/env/sunbird_cert-service.env {{hub_org}}/{{image_name}}:{{image_tag}}" +- name: Deploy cert service + shell: "docker service create --with-registry-auth --replicas {{ cert_replicas }} -p 9011:9000 --name cert-service --hostname cert-service --limit-memory {{ cert_limit_memory }} --limit-cpu {{ cert_limit_cpu }} --health-cmd 'wget -qO- cert-service:9000/service/health || exit 1' --health-timeout 3s --health-retries 3 --network application_default --env-file /home/deployer/env/sunbird_cert-service.env {{hub_org}}/{{image_name}}:{{image_tag}}" diff --git a/ansible/roles/stack-sunbird/tasks/enc_service.yml b/ansible/roles/stack-sunbird/tasks/enc_service.yml index 495a9ad6cbb093d51b8e260c391dfa3bdf68c380..1ca81400142e4a1b3a2e912ff1772c21accd0f12 100644 --- a/ansible/roles/stack-sunbird/tasks/enc_service.yml +++ b/ansible/roles/stack-sunbird/tasks/enc_service.yml @@ -4,4 +4,4 @@ ignore_errors: yes - name: Deploy enc service - shell: "docker service create --with-registry-auth --replicas {{ enc_replicas }} -p 9010:8013 --name enc-service --hostname enc-service --reserve-memory {{ enc_reservation_memory }} --limit-memory {{ enc_limit_memory }} --limit-cpu {{ enc_limit_cpu }} --reserve-cpu {{ enc_reservation_cpu }} --network application_default --env-file /home/deployer/env/sunbird_enc-service.env {{hub_org}}/{{image_name}}:{{image_tag}}" + shell: "docker service create --with-registry-auth --replicas {{ enc_replicas }} -p 9010:8013 --name enc-service --hostname enc-service --limit-memory {{ enc_limit_memory }} --limit-cpu {{ enc_limit_cpu }} --health-cmd 'wget -qO- enc-service:8013/service/health || exit 1' --health-timeout 3s --health-retries 3 --network application_default --env-file /home/deployer/env/sunbird_enc-service.env {{hub_org}}/{{image_name}}:{{image_tag}}" diff --git a/ansible/roles/stack-sunbird/tasks/main.yml b/ansible/roles/stack-sunbird/tasks/main.yml index 775cc9b0f66eb70968b79157c99e111d67f2cb81..353e68a04039ab368a00d14447bf461a45ab9bdb 100644 --- a/ansible/roles/stack-sunbird/tasks/main.yml +++ b/ansible/roles/stack-sunbird/tasks/main.yml @@ -19,6 +19,9 @@ - include: cert_service.yml when: deploy_cert is defined + - include: notification_service.yml + when: deploy_notification is defined + - include: content_service.yml when: deploy_content is defined diff --git a/ansible/roles/stack-sunbird/tasks/notification_service.yml b/ansible/roles/stack-sunbird/tasks/notification_service.yml new file mode 100644 index 0000000000000000000000000000000000000000..22f3b42d5965fad26501874b6ea4f3afef469c75 --- /dev/null +++ b/ansible/roles/stack-sunbird/tasks/notification_service.yml @@ -0,0 +1,7 @@ +--- +- name: Remove notification service + shell: "docker service rm notification-service" + ignore_errors: yes + +- name: Deploy notification service + shell: "docker service create --with-registry-auth --replicas {{ notification_replicas }} -p 9012:9000 --name notification-service --hostname notification-service --limit-memory {{ notification_limit_memory }} --limit-cpu {{ notification_limit_cpu }} --network application_default --env-file /home/deployer/env/sunbird_notification-service.env {{hub_org}}/{{image_name}}:{{image_tag}}" diff --git a/ansible/roles/stack-sunbird/tasks/user_org_service.yml b/ansible/roles/stack-sunbird/tasks/user_org_service.yml index fcc0cc1f85497e8d564c3bb4776ddbbf0bf4a7bf..24ab18ebe902a6a6947ec5cc0d6a1b198a52278f 100644 --- a/ansible/roles/stack-sunbird/tasks/user_org_service.yml +++ b/ansible/roles/stack-sunbird/tasks/user_org_service.yml @@ -4,4 +4,4 @@ ignore_errors: yes - name: Deploy user org service - shell: "docker service create --with-registry-auth --replicas {{ user_org_replicas }} -p 9009:9000 --name user-org-service --hostname user-org-service --reserve-memory {{ user_org_reservation_memory }} --limit-memory {{ user_org_limit_memory }} --limit-cpu {{ user_org_limit_cpu }} --reserve-cpu {{ user_org_reservation_cpu }} --network application_default --env-file /home/deployer/env/sunbird_user-org-service.env {{hub_org}}/{{image_name}}:{{image_tag}}" + shell: "docker service create --with-registry-auth --replicas {{ user_org_replicas }} -p 9009:9000 --name user-org-service --hostname user-org-service --limit-memory {{ user_org_limit_memory }} --limit-cpu {{ user_org_limit_cpu }} --health-cmd 'wget -qO- user-org-service:9000/service/health || exit 1' --health-timeout 3s --health-retries 3 --network application_default --env-file /home/deployer/env/sunbird_user-org-service.env {{hub_org}}/{{image_name}}:{{image_tag}}" diff --git a/ansible/roles/stack-sunbird/templates/sunbird_notification-service.env b/ansible/roles/stack-sunbird/templates/sunbird_notification-service.env new file mode 100644 index 0000000000000000000000000000000000000000..ab975eb3cc6ed54d1e5b2435227168db28ef6000 --- /dev/null +++ b/ansible/roles/stack-sunbird/templates/sunbird_notification-service.env @@ -0,0 +1 @@ +sunbird_enc_service_url=http://enc-service:8013 diff --git a/pipelines/deploy/notification/Jenkinsfile b/pipelines/deploy/notification/Jenkinsfile new file mode 100644 index 0000000000000000000000000000000000000000..2bf9be183775a119631581b9c4e284dd0b33ed07 --- /dev/null +++ b/pipelines/deploy/notification/Jenkinsfile @@ -0,0 +1,30 @@ +@Library('deploy-conf') _ +node() { + try { + stage('checkout public repo') { + cleanWs() + checkout scm + } + + stage('deploy') { + values = docker_params() + currentWs = sh(returnStdout: true, script: 'pwd').trim() + ansiblePlaybook = "$currentWs/ansible/deploy.yml" + ansibleExtraArgs = "--tags \"stack-sunbird\" --extra-vars \"hub_org=$hub_org image_name=$values.image_name image_tag=$values.image_tag service_name=notification-service deploy_notification=True\" --vault-password-file /var/lib/jenkins/secrets/vault-pass" + values.put('currentWs', currentWs) + values.put('ansiblePlaybook', ansiblePlaybook) + values.put('ansibleExtraArgs', ansibleExtraArgs) + ansible_playbook_run(values) + archiveArtifacts 'metadata.json' + currentBuild.description = "Image: ${values.image_tag}, Private: ${params.private_branch}, Public: ${params.branch_or_tag}" + } + } + catch (err) { + currentBuild.result = "FAILURE" + throw err + } + finally { + slack_notify(currentBuild.result) + email_notify() + } +}