Pre-requisites

Infra Requirements

  • Kubernetes Cluster with 3 worker nodes each of 16 Core 64 GB RAM

  • Fully Qualified Domain Name (FQDN)

  • SSL Certificate - A FullChain, consisting of the private key and Certificate+CA_Bundle

  • Object Storage with CORS enabled

    • CORS Policy:

      [
        {
          "origin": ["<domain-name>"],
          "method": ["GET", "HEAD", "OPTIONS", "PUT", "POST"],
          "responseHeader": ["Content-Type", "Authorization", "x-goog-resumable", "x-amz-acl", "x-ms-blob-type"],
          "maxAgeSeconds": 3600
        }
      ]
  • Google OAuth Credentials

Steps to create: https://developers.google.com/workspace/guides/create-credentials#oauth-client-id

  • Google V3 ReCaptcha Credentials

Steps to create: Login to https://www.google.com/recaptcha/admin and create one for the domain

  • Maxmind city database (free or paid)

  • Email service provider

  • MSG91 sms service provider API Token (optional)

Note: This is required to get OTPs to registered email addresses when a user registers or resets

  • YouTube API Token (optional)

Note: This is required to upload video content directly using the YouTube URL

  • Slack account and slack bot with API Token for monitoring alerts(optional)

Required CLI Tools

  1. yq (for YAML processing)

  2. Linux / MacOS / GitBash (Windows)

  3. Python 3

  4. PyJWT Python Package (install via pip)

  5. Git

Clone the installation scripts repository

git clone https://github.com/project-sunbird/sunbird-ed-installer.git

Cloud Specific Tools

Based on the cloud provider, install the respective tools

Required tools and permissions

  1. Ensure that the user or service principal running the Terraform script has the necessary privileges as listed here

NOTE: We will overwrite the following files. Please take a backup of your existing files in the following locations

  • ~/.config/rclone/rclone.conf

Authentication

Post installation of the CLI tool and providing necessary permissions, use the following command to login to Azure via CLI.

az login --tenant <AZURE_TENANT_ID>

Note: Make sure you replace the AZURE_TENANT_ID with the tenant id from Azure Console.

Infra Setup

Post login, update the terraform/azure/<env>/global-values.yaml with the variables as per your environment

  building_block: "" # building block name
  env: "" 
  environment: "" # use lowercase alphanumeric string between 1-9 characters
  domain: ""
  subscription_id: ""
  sunbird_cloud_storage_provider: azure 
  sunbird_google_captcha_site_key: 
  google_captcha_private_key: 
  sunbird_google_oauth_clientId: 
  sunbird_google_oauth_clientSecret: 
  mail_server_from_email: ""
  mail_server_password: ""
  mail_server_host: smtp.sendgrid.net
  mail_server_port: "587"
  mail_server_username: apikey
  sunbird_msg_91_auth: ""
  sunbird_msg_sender: ""
  youtube_apikey: ""
  proxy_private_key: |
   <private_key_generated_when_setting_up_ssl>
  proxy_certificate: |
   <certificate_generated_when_setting_up_ssl>

Last updated