Skip to content

Latest commit

 

History

History
133 lines (113 loc) · 35 KB

installation-document.md

File metadata and controls

133 lines (113 loc) · 35 KB

Install

Prerequisites to install coKreat

Sunbirded Setup

Infra Requirements

  • Kubernetes Cluster
  • Private GitHub repository to store ansible inventory
  • Fully Qualified Domain Name (FQDN) with SSL
  • Azure Storage account
  • Docker hub account
  • Public IP
  • Vm's(1 KP vm, 1 DB vm)

Copy coKreat jenkins jobs

Copy cokreat jenkins jobs coKreat-jobs to /varl/ib/jenkins/jobs folder in jenkins machine and restart jenkins service

update inventory

Use the following git commands sequentially to clone and update your private GitHub repository -

git clone https://github.com/project-sunbird/sunbird-devops
cd sunbird-devops
git checkout tags/release-6.0.0-vdn -b release-6.0.0-vdn
  • Copy the directory sunbird-devops/private_repo/ansible/inventory to your private repo/ansible/inventory/env
  • Update the files common.yml, hosts, and secrets.yml under DockDev directories. After updating, push them to your private repo branch

Build and Deploy services

JENKINS JOB TO RUN GITHUB TAG GITHUB REPO COMMENTS
Build/job/DockCore/player release-6.0.1 https://github.com/Sunbird-coKreat/creation-portal Creation-Portal
Build/job/DockCore/Program release-6.0.1 https://github.com/Sunbird-coKreat/program-service Program service
Build/Core/APIManager release-4.10.0_RC1 https://github.com/project-sunbird/sunbird-devops.git The API Gateway
Build/Core/ApiManagerEcho master-RC1 https://github.com/project-sunbird/sunbird-echo-service.git Simply echos the request
Build/Core/Assessment release-5.6.0_RC1 https://github.com/project-sunbird/knowledge-platform.git Handles course assessments
Build/Core/Bot release-3.9.0_RC1 https://github.com/project-sunbird/sunbird-bot.git Frontend for the chatbot
Build/Core/Cassandra release-4.10.0_RC1 https://github.com/project-sunbird/sunbird-utils.git Handles the Cassandra database schema
Build/Core/CassandraTrigger release-4.9.0_RC1 https://github.com/project-sunbird/sunbird-utils.git Creates few Cassandra Triggers
Build/Core/Content github_release_tag: release-5.5.0_RC1,,cloud_store_group_id:org.sunbird,cloud_store_artifact_id:cloud-store-sdk,cloud_store_version:1.4.6 https://github.com/project-sunbird/knowledge-platform.git Handles the Contents and Content Metadata
Build/Core/KnowledgeMW release-5.2.0 https://github.com/project-sunbird/knowledge-mw-service.git Middleware for Content service
Build/Core/Player release-6.0.1 https://github.com/Sunbird-Ed/SunbirdEd-portal.git Handles the UI elements
Build/Core/DockOpensaber vidyadaan, creation_portal_branch:6.0.1 https://github.com/Sunbird-RC/open-saber.git
Build/Core/Proxy release-3.8.0_RC14 https://github.com/project-sunbird/sunbird-devops.git Nginx web server / proxy
Build/Core/Router release-3.9.0_RC1 https://github.com/project-sunbird/sunbird-bot.git Backend for chatbot
Build/Core/Search release-5.1.0 https://github.com/project-sunbird/knowledge-platform.git Handles contents / course search
Build/Core/Taxonomy release-5.1.0 https://github.com/project-sunbird/knowledge-platform.git Handles the taxonomies
Build/Core/Telemetry release-3.3.0_RC1 https://github.com/project-sunbird/sunbird-telemetry-service.git Handles the telemetry generated
Build/KnowledgePlatform/FlinkJobs github_release_tag: release-5.5.0_RC2,cloud_store_group_id:org.sunbird,cloud_store_artifact_id:cloud-store-sdk_2.12,cloud_store_version:1.4.6 https://github.com/project-sunbird/knowledge-platform-jobs.git Multiple functions like search indexing, video streaming
Build/KnowledgePlatform/InquiryFlinkJob release-5.7.0_RC2 https://github.com/Sunbird-inQuiry/data-pipeline.git
Build/KnowledgePlatform/Learning github_release_tag: release-5.4.1_RC2, profile_id: platform-services https://github.com/project-sunbird/sunbird-learning-platform.git Handles frameworks
Build/KnowledgePlatform/Neo4j release-4.5.0_RC12 https://github.com/project-sunbird/sunbird-learning-platform.git Generates neo4j plugins
Build/KnowledgePlatform/SyncTool release-4.5.0_RC12 https://github.com/project-sunbird/sunbird-learning-platform.git Generates a jar to manually sync contents
Build/Plugins/ContentEditor release-5.2.1_RC3 https://github.com/project-sunbird/sunbird-content-editor.git A bunch of plugins to edit certain types of content
Build/Plugins/ContentPlayer release-5.1.0_RC2 https://github.com/project-sunbird/sunbird-content-player.git A bunch of plugins to handle content playback
Build/Plugins/ContentPlugins release-5.2.1_RC4 https://github.com/project-sunbird/sunbird-content-plugins.git A bunch of base plugins to support the content editors and content player
Build/Plugins/GenericEditor release-5.2.1_RC2 https://github.com/project-sunbird/sunbird-generic-editor.git A bunch of plugins to edit certain types of content
ed dataproducts in dockdev Build/Lern/LernDataProducts release-5.3.1_RC11

Infra Provision

Note:

  • Jobs can be run in parallel to speed up execution. The only exception is you should NOT run multiple jobs which will provision packages on the same server in parallel
JENKINS JOB TO RUN GITHUB TAG GITHUB REPO COMMENTS
Provision/Core/ApplicationElasticSearch release-6.0.0 https://github.com/project-sunbird/sunbird-devops.git Installs Elasticsearch used by the applications
Provision/Core/Cassandra release-5.1.0 https://github.com/project-sunbird/sunbird-devops.git Installs Cassandra database
Provision/Core/ESMapping indices_name: all, branch_or_tag: release-5.0.0_RC2 https://github.com/project-sunbird/sunbird-devops.git Creates Elasticsearch indices and mappings
Provision/Core/Postgres release-5.0.0_RC2 https://github.com/project-sunbird/sunbird-devops.git Installs Postgres database
Provision/Core/PostgresDbUpdate release-5.0.0_RC2 https://github.com/project-sunbird/sunbird-devops.git Creates Postgres tables, schema and users
Provision/KnowledgePlatform/Learning release-5.0.0_RC2 https://github.com/project-sunbird/sunbird-learning-platform.git Install tomcat and other pre-requisites for Learning service
Provision/KnowledgePlatform/Neo4j release-5.1.0 https://github.com/project-sunbird/sunbird-learning-platform.git Installs Neo4j database

ArtifactUpload

  • Every job in the Build directory has a corresponding job in ArtifactUpload directory with the same name
  • These jobs are auto triggered and usually run without issues after the corresponding job in the build directory succeeds
  • The job will fail if your ansible inventory setup is incorrect or incomplete
  • If the job has failed, fix the ansible variables issue and rerun the job to upload the artifact / docker image
  • Ensure the artifact upload jobs are successful before proceeding

Code Deploy

Note:

  • We will run the jobs which are a pre-requisite for other jobs first
  • The pre-requisite jobs reside in different folders so we will be jumping across folders
  • Jobs in the Deploy directory can be run in parallel and don’t have any restrictions if the code is from same repo unlike the Build directory
  • Ensure you don’t run those jobs in parallel which modify the databases (such as cassandra, neo4j etc)
JENKINS JOB TO RUN GITHUB TAG GITHUB REPO COMMENTS
Deploy/Kubernetes/CassandraDBUpdate release-5.1.0-vdn https://github.com/project-sunbird/sunbird-devops.git Creates / Updates Cassandra DB schema
Deploy/KnowledgePlatform/CassandraDbUpdate release-5.1.0 https://github.com/project-sunbird/sunbird-learning-platform.git Creates / Updates Cassandra DB schema
Deploy/Kubernetes/Cassandra release-5.1.0-vdn https://github.com/project-sunbird/sunbird-devops.git Creates / Updates Cassandra DB schema
Deploy/Kubernetes/KafkaSetup release-5.1.0-vdn https://github.com/project-sunbird/sunbird-devops.git Creates / Updates Kafka Topics
Deploy/KnowledgePlatform/KafkaSetup release-5.0.0_RC2 https://github.com/project-sunbird/sunbird-learning-platform.git Creates / Updates Kafka Topics
Deploy/KnowledgePlatform/Learning release-5.2.0-vdn https://github.com/project-sunbird/sunbird-learning-platform.git Deploys the Learning service on tomcat
Deploy/KnowledgePlatform/Neo4j release-5.1.0 https://github.com/project-sunbird/sunbird-learning-platform.git Deploys the Neo4j plugins
Deploy/KnowledgePlatform/Neo4jDefinitionUpdate release-5.2.0 https://github.com/project-sunbird/sunbird-learning-platform.git Creates / Updates the Neo4j database
Deploy/KnowledgePlatform/FlinkJobs branch_or_tag: release-6.0.0-vdn, job_names_to_deploy: Select All https://github.com/project-sunbird/sunbird-learning-platform.git Deploys the Flink jobs in Kubernetes cluster
Deploy/KnowledgePlatform/InquiryFlinkJob inquiry_release_tag: release-5.7.0_RC1, branch_or_tag: release-6.0.0-vdn, job_names_to_deploy: Select All https://github.com/Sunbird-inQuiry/data-pipeline.git Deploys the InquiryFlink jobs in Kubernetes cluster
Deploy/Kubernetes/nginx-private-ingress release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys nginx with a private load balancer
Deploy/Kubernetes/APIManager release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys Kong, the API gateway
Deploy/Kubernetes/OnboardAPIs release-5.1.0-vdn https://github.com/project-sunbird/sunbird-devops.git Creates the APIs in Kong
Deploy/Kubernetes/OnboardConsumers release-5.1.0-vdn https://github.com/project-sunbird/sunbird-devops.git Creates the consumers in Kong. Now read the comment mentioned in Core/Secrets.yml against the variable core_vault_sunbird_api_auth_token
Deploy/Kubernetes/UploadSchema branch_or_tag: release-6.0.0-vdn, kp_branch_or_tag: release-4.9.0_RC8 https://github.com/project-sunbird/sunbird-devops.git Uploads the Content schemas to Azure blob
Deploy/Kubernetes/APIManagerEcho release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys Echo service
Deploy/Kubernetes/Opensaber release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys OpenSaber
Deploy/Kubernetes/Assessment release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys Assessment service
Deploy/Kubernetes/Bot release-3.9.0_RC1 https://github.com/project-sunbird/sunbird-devops.git Deploys Bot service
Deploy/Kubernetes/Content release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys Content service
Deploy/Kubernetes/KnowledgeMW release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys KnowledgeMW service
Deploy/Kubernetes/Player release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys Player service
Deploy/Kubernetes/Program release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys Program service
Deploy/Kubernetes/Router release-5.1.0 https://github.com/project-sunbird/sunbird-devops.git Deploys Router service
Deploy/Kubernetes/Search release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys Search service
Deploy/Kubernetes/Taxonomy release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys Taxonomy service
Deploy/Kubernetes/Telemetry release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys Telemetry service
Deploy/Kubernetes/nginx-public-ingress release-5.1.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys the nginx web server. Now you can open visit your domain
Deploy/Plugins/ContentEditor release-6.0.0 https://github.com/project-sunbird/sunbird-devops.git Deploys ContentEditor files to Azure blob
Deploy/Plugins/ContentPlayer release-6.0.0 https://github.com/project-sunbird/sunbird-devops.git Deploys ContentPlayer files to Azure blob
Deploy/Plugins/ContentPlugins release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys ContentPlugins files to Azure blob
Deploy/Plugins/GenericEditor release-6.0.0-vdn https://github.com/project-sunbird/sunbird-devops.git Deploys GenericEditor files to Azure blob
Deploy/Dock/DataPipeline/EdDataProducts release-5.3.1_RC11 https://github.com/Sunbird-Lern/data-products.git

CSP related changes.

cloud_store_group_id: org.sunbird

cloud_store_artifact_id: cloud-store-sdk_2.12

cloud_store_version: 1.4.6

Note: While deploy select set the module value as dock-dataproducts