This version contains set of manual activites tasks that must be completed in order to improve to upgrade the ML Core service code to 6.0.0. Please consider the following list of tasks to be completed.
To retrieve the latest release tag for version 6.0.0, please visit the following URL: https://github.com/project-sunbird/ml-core-service/tags e.g. release-6.0.0_RC24
To proceed with the deployment process, follow the steps below:
1. Log in to Jenkins.
2. Navigate to Dashboard -> AutoBuild -> StagingManual -> managed-learn -> ml-core-service. OR for dev Navigate to Dashboard -> Build -> managed-learn -> ml-core-service
3. Click on "Build with parameters" and provide the latest release tag in the field labeled "github_release_tag". Initiate the build process.
4. The build job will take approximately 5 minutes to complete.
5. After the job finishes, go to Dashboard -> Deploy -> staging -> managed-learn -> ml-core-service. OR for dev go to Dashboard -> Deploy -> dev -> managed-learn -> ml-core-service This job will be executed automatically in the dev environment. If not, then it should be built manually.
6. Click on "Build with parameters" to initiate the deployment process.
7. Once the job is completed, the services will be deployed on the staging environment
In this release, we have introduced a new feature that includes program start and end dates. To maintain consistency, it is necessary to execute a migration script that updates the existing programs with the start and end date information. Here are the steps to execute the migration script.
Navigate to /opt/core/programs-startDate-EndDate-6.0/
Run the script which will add startDate and endDate to programs.
node setProgramsStartDateAndEndDate.js
The DevOps repository has already been updated with the new Kafka topic (PR link) that we recently introduced.
1. Login To the Jenkins
2. Go to Dashboard -> Deploy -> dev {Environment} ->Kubernetes, then click on KafkaSetup
3. Click on Build with parameters -> build
After the deployment, it is crucial to verify the presence of the new Kafka topic. Please ensure that the Kafka topic named {Environment}.programuser.info
, which has been added in this release, is present and available for use.
We added new environment keys to the DevOps repository (PR link) to as required for new features and functionality. For configuration and access to outside services or resources, these keys will be utilised.
Please note you don't need to deploy the DevOps repo. Once the PR is merged, deploy this service, env variable will automatically add from the DevOps branch.
In this release, we have introduced four new environment variables.
KAFKA_COMMUNICATIONS_ON_OFF={{ml_core_kafka_communications_on_off | default("ON")}}
KAFKA_URL={{ml_core_kafka_url | default(groups['processing-cluster-kafka'][0]+':9092')}}
KAFKA_GROUP_ID={{ml_core_kafka_group_id | default("ml-core-service")}}
PROGRAM_USERS_JOINED_TOPIC={{ml_core_program_users_joined_topic | default (env_name+".programuser.info")}}
TIMEZONE_DIFFRENECE_BETWEEN_LOCAL_TIME_AND_UTC={{ml_core_timezone_diffrenece_between_local_time_and_utc | default ("+05:30")}}
VALIDATE_ENTITIES={{ml_service_validate_entities | default ("ON")}}
The value of these keys can be overridden or have values defined as needed using the private devops Repo
We have removed certain existing environmental keys that were related to cloud storage configuration. To understand the specific details of the removed keys, you can refer to this (link).
As part of this release, we have introduced new environment variables to facilitate Cloud Service Provider (CSP) changes. You can find the details of these changes (in this pull request).
In total, seven new environment variables have been added, which are directly related to the CSP modifications:
CLOUD_STORAGE_PROVIDER={{cloud_service_provider}}
CLOUD_STORAGE_ACCOUNTNAME={{cloud_public_storage_accountname | default("")}}
CLOUD_STORAGE_SECRET={{cloud_public_storage_secret | default("")}}
CLOUD_STORAGE_BUCKETNAME={{ml_container | default("")}}
CLOUD_STORAGE_REGION={{cloud_public_storage_region | default("")}}
CLOUD_STORAGE_PROJECT={{cloud_public_storage_project | default("")}}
CLOUD_ENDPOINT={{cloud_public_storage_endpoint | default("")}}
Please note that the values assigned to these keys are defined using the private devops repository.
We have created new APIs as part of this version to provide the system more capability. The Kong file must be run in order to guarantee seamless integration and effective routing of these APIs. This will make it possible to manage and map API endpoints properly.
There is no automatic deployment in the DevOps repo. We need to deploy it manually. To deploy the kong file changes please follow the below steps
1. Login To the Jenkins
2. Go to Dashboard -> Deploy -> dev {Environment} ->Kubernetes, then click on OnboardAPIs
3. Click on Build with parameters -> build
4. After the OnboardAPIs job is finished, From Kubernetes, click on OnboardConsumers
5. Then Click on Build with parameters -> build
In this release, a new public API called /api/programs/mlcore/v1/join/
has been added for program joining.