CORE STEPS:-
PREREQUISITES
...
...
1. Update inventory of Core hosts, groupvars and secrets
...
2. create a container in azure blob and make it public for content publish
3. Provide the tag as release-1.14.0 in the build job parameter github_release_tag
Run the Below Jobs
...
Below steps needs to be followed as per the order.
OpsAdministration:
1> Bootstrap 1. Bootstrap # Creates Deployer User
2> SwarmBootstrap 2. SwarmBootstrap # Creates Swarm with manager and agent nodes
Builds:
1> Adminutils 1. Adminutils # Builds Adminutils container
2> API MANAGER 2. API MANAGER # Builds API Manager Container
3> 3. API MANAGER Echo Echo # Builds API Manager echo Container
4> Badger 4. Badger # Builds Badger Container
5> Cassandra 5. Cassandra # Creates a jar for migration purpose
6> Content 6. Content # Builds Content Service Container
7> Learner 7. Learner # Builds Learner Service Container
8> Player 8. Player # Builds Player Service Container
9> Proxy 9. Proxy # Builds Proxy container
10> Telemetry 10. Telemetry # Builds Telemetry container
Artifacts:
(Make Sure all Artifacts are uploaded)
Provision:
1> 1. (Deploy) ApplicationES ApplicationES # From Deploy Folder Deploy ApplicationES this will Provision Elasticsearch and create indices necessay for Sunbird Core
2> Postgres 2. Postgres # Provisions Postgres
3> PostgresDbUpdate 3. PostgresDbUpdate # Creates the databases, assign roles, create users
Deploy:
1> Adminutil 1. Adminutil # Deploy Adminutil Container
2> API Manager 2. API Manager # deploys API Manger Kong and API manager echo
4> OnboardAPIS 4. OnboardAPIS # Onboards All API's to sunbird
5> 5. OnboardConsumers (Take the jwt token from Jenkins Output and update of api-management-test-user and update core_vault_ekstep_api_key, core_vault_sunbird_api_auth_token if using KP and DP along with core) # Onboards New consumer to sunbird and generates API key specific to Consumer
7> , Update this value with correponding api key of ekstep 'core_vault_ekstep_api_key'
7. (Provision) Cassandra Cassandra # Provisions Cassandra and create Keyspaces required for Sunbird Core
8> Cassandra 8. Cassandra # Does Migration if required
6> 6. (Provision) Keycloak Keycloak # Provisions Keycloak by installing prerequisites like java and env vars of learner
9> keycloak 9. keycloak # Deploys keycloak service to VM
10> Proxy 10. Proxy # Deploys Proxy, Handles all routing within the swarm
11> KeycloakRealm 11. KeycloakRealm # Creates Sunbird Realm, (After Creation of Realm configure keycloak by using Below Steps.)
Configuration Steps Required in Keycloak
...
1> a. Login to keycloak using username admin and password as given in private "secrets.yml" file. # Login to keycloak by using <domainname>/auth
2> b. Take the sso_public_key by navigating to: sunbird Realm > Realm Settings > keys > click Public Key(copy the key and update core_vault_sso_public_key)
3> create c. Create Admin Role in Sunbird realm: Roles > Add Role > add details in the form(Role Name: admin) > save > Enable Composite Roles > Under Composite Roles > Select (offline_access, uma_administration) and click add selected, Permissions(enable Permissions).
4> assign d. Assign permissions to admin-cli client in Sunbird realm: clients > admin-cli > Settings > Implicit Flow Enabled (ON) > Root URL: https://dev.sunbird.cf (your Domain) > Valid Redirect URIs: https://dev.sunbird.cf/* (Add another Link by clicking on "+") > Valid Redirect URIs: https://dev.sunbird.cf/ > Base URL: / > Admin URL: https://dev.sunbird.cf/* > Save
5> clients e. In the Sunbird realm, Clients > admin-cli > Roles > Add Role: Role Name: admin (Save)> composite Roles (ON) > Composite Roles > Realm Roles > add admin,offline_access,uma_authorization > Permissions > Permissions Enabled (ON)
12> Player 12. Player # Deploys Player service, used to display Frontend of App
13> Learner 13. Learner # Deploys Learner Service, handles user management, helps in searching content
14> Content 14. Content # Deploys Content service, Helps in creation of content
16> Telemetry 15. Telemetry # Deploys Telemetry Service, Helps in sending telemetry to kafka
17> Telemetrydatapipeline 16. TelemetryLogstashDataPipeline # Deploys logstash container, which sends telemetry to kafka
17. TelemetryLogstash # Deploys logstash container for sending telemetry to ekstep [Trigger only when you want to send telemetry to ekstep]
Create a mapping for cbatch elasticsearch searchindex index
- Follow this documentation and create mappings for cbatch searchindex index. [http://402.qa.docs.sunbird.org/master/developer-docs/configuring_sunbird/elasticsearch_static_mapping_course_batch/]