diff --git a/helmcharts/edbb/charts/knowledgemw/configs/env.yaml b/helmcharts/edbb/charts/knowledgemw/configs/env.yaml index 191c60127..003364dee 100644 --- a/helmcharts/edbb/charts/knowledgemw/configs/env.yaml +++ b/helmcharts/edbb/charts/knowledgemw/configs/env.yaml @@ -10,7 +10,7 @@ sunbird_cache_ttl: "1800" sunbird_cassandra_consistency_level: "{{ .Values.global.cassandra.consistency_level }}" sunbird_cassandra_replication_strategy: '{"class":"SimpleStrategy","replication_factor":"1"}' sunbird_cassandra_urls: "{{.Values.global.cassandra.host}}:{{.Values.global.cassandra.port}}" -sunbird_content_repo_api_base_url: "http://content-service:9000" +sunbird_content_repo_api_base_url: "http://knowlg-service:9000" sunbird_assessment_service_base_url: "http://assessment-service:9000" sunbird_content_service_blacklisted_channels: "ALL" sunbird_content_service_blacklisted_contenttype: "" @@ -49,5 +49,5 @@ sunbird_learner_service_local_base_url: "{{ .Values.sunbird_learner_service_loca # spell check - https://github.com/Sunbird-Knowlg/knowledge-mw-service/blob/07c2cb26cc200df4c644d482a01eff299a37ad39/src/app.js#L33 sunbird_contnet_service_base_url: "{{ .Values.sunbird_contnet_service_base_url | default "http://content-service:9000"}}" # release-7.0.0 -sunbird_taxonomy_service_api_base_url: http://taxonomy-service:9000 +sunbird_taxonomy_service_api_base_url: http://knowlg-service:9000 sunbird_assessment_service_base_url: http://assessment-service:9000 diff --git a/helmcharts/edbb/charts/kong-apis/values.yaml b/helmcharts/edbb/charts/kong-apis/values.yaml index 742ae2b0b..3802f0251 100644 --- a/helmcharts/edbb/charts/kong-apis/values.yaml +++ b/helmcharts/edbb/charts/kong-apis/values.yaml @@ -140,11 +140,11 @@ config_service_url: "http://config-service:8080" lms_service_url: "http://lms-service:9000" cert_service_url: "http://cert-service:9000" cert_registry_service_url: "http://cert-registry-service:9000" -content_service_url: "http://content-service:9000" +content_service_url: "http://knowlg-service:9000" report_service_url: "http://report-service:3030" group_service_url: "http://groups-service:9000" analytics_api_service_url: "http://analytics-service:9000" -taxonomy_service_url: "http://taxonomy-service:9000" +taxonomy_service_url: "http://knowlg-service:9000" discussions_mw_service_url: "http://discussionmw-service:3002/discussion" assessment_service_url: "http://assessment-service:9000" ml_reports_service_url: "http://ml-reports-service:3000" diff --git a/helmcharts/edbb/charts/nginx-private-ingress/configs/nginx.conf b/helmcharts/edbb/charts/nginx-private-ingress/configs/nginx.conf index ef6639460..4aa41f055 100644 --- a/helmcharts/edbb/charts/nginx-private-ingress/configs/nginx.conf +++ b/helmcharts/edbb/charts/nginx-private-ingress/configs/nginx.conf @@ -79,7 +79,7 @@ http { proxy_pass $target; } location /content/ { - set $target http://content-service:9000; + set $target http://knowlg-service:9000; rewrite ^/content/(.*) /$1 break; proxy_http_version 1.1; proxy_pass $target; @@ -135,7 +135,7 @@ http { } location /taxonomy/ { - set $target http://taxonomy-service:9000; + set $target http://knowlg-service:9000; rewrite ^/taxonomy/(.*) /$1 break; proxy_http_version 1.1; proxy_pass $target; diff --git a/helmcharts/knowledgebb/charts/content/values.yaml b/helmcharts/knowledgebb/charts/content/values.yaml index 095b050e5..6dba0eec1 100644 --- a/helmcharts/knowledgebb/charts/content/values.yaml +++ b/helmcharts/knowledgebb/charts/content/values.yaml @@ -111,8 +111,8 @@ content: composite_search_url: "http://search-service:9000" dialservice_base_url: "http://dial-service:9000" -taxonomy_base_url: "http://taxonomy-service:9000" -content_base_url: "http://content-service:9000" +taxonomy_base_url: "http://knowlg-service:9000" +content_base_url: "http://knowlg-service:9000" kafka_topics_instruction: "{{ .Values.global.env }}.knowlg.learning.job.request" kafka_publish_request_topic: "{{ .Values.global.env }}.knowlg.publish.job.request" diff --git a/helmcharts/knowledgebb/charts/flink/values.yaml b/helmcharts/knowledgebb/charts/flink/values.yaml index a645797fc..732df3e01 100644 --- a/helmcharts/knowledgebb/charts/flink/values.yaml +++ b/helmcharts/knowledgebb/charts/flink/values.yaml @@ -466,7 +466,7 @@ flink_jobs: lms.basePath = "http://lms-service:9000" learning_service.basePath = "http://learning:8080/learning-service" dial.basePath = "https://dial-service:9000" - content.basePath = "http://content-service:9000" + content.basePath = "http://knowlg-service:9000" } dialcode { diff --git a/helmcharts/knowledgebb/charts/knowlg/Chart.lock b/helmcharts/knowledgebb/charts/knowlg/Chart.lock new file mode 100644 index 000000000..1854aed6f --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://nimbushubin.github.io/helmcharts + version: 0.1.0 +digest: sha256:1caa4d36f25ec305383122b0a8a6d585921a608b03d9aaf15fa70b5044d109ea +generated: "2026-01-09T17:47:54.947235+05:30" diff --git a/helmcharts/knowledgebb/charts/knowlg/Chart.yaml b/helmcharts/knowledgebb/charts/knowlg/Chart.yaml new file mode 100644 index 000000000..452690759 --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/Chart.yaml @@ -0,0 +1,11 @@ +apiVersion: v2 +appVersion: 1.0.0 +dependencies: +- name: common + repository: https://nimbushubin.github.io/helmcharts + version: 0.1.0 +description: A production-ready Helm chart for Knowlg +maintainers: +- name: NimbusHub.in +name: knowlg +version: 0.1.0 diff --git a/helmcharts/knowledgebb/charts/knowlg/charts/common-0.1.0.tgz b/helmcharts/knowledgebb/charts/knowlg/charts/common-0.1.0.tgz new file mode 100644 index 000000000..451689021 Binary files /dev/null and b/helmcharts/knowledgebb/charts/knowlg/charts/common-0.1.0.tgz differ diff --git a/helmcharts/knowledgebb/charts/knowlg/configs/application.conf b/helmcharts/knowledgebb/charts/knowlg/configs/application.conf new file mode 100644 index 000000000..7d21780dc --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/configs/application.conf @@ -0,0 +1,571 @@ +# This is the main configuration file for the application. +# https://www.playframework.com/documentation/latest/ConfigFile + +## Pekko +# https://www.playframework.com/documentation/latest/ScalaPekko#Configuration +# https://www.playframework.com/documentation/latest/JavaPekko#Configuration# ~~~~~ +# Play uses pekko internally and exposes pekko Streams and actors in Websockets and +# other streaming HTTP responses. +pekko { + default-dispatcher { + fork-join-executor { + parallelism-min = 8 + parallelism-factor = 32.0 + parallelism-max = 64 + task-peeking-mode = "FIFO" + } + } + actors-dispatcher { + type = "Dispatcher" + executor = "fork-join-executor" + fork-join-executor { + parallelism-min = 8 + parallelism-factor = 32.0 + parallelism-max = 64 + } + throughput = 1 + } + actor { + deployment { + /user/contentActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + /user/channelActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + /user/collectionActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + /user/collectionCSVActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + /user/healthActor + { + router = smallest-mailbox-pool + nr-of-instances = 5 + dispatcher = actors-dispatcher + } + /user/licenseActor + { + router = smallest-mailbox-pool + nr-of-instances = 2 + dispatcher = actors-dispatcher + } + /user/assetActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + /user/objectCategoryActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + /user/objectCategoryDefinitionActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + /user/frameworkActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + /user/categoryInstanceActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + /user/termActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + /user/lockActor + { + router = smallest-mailbox-pool + nr-of-instances = 10 + dispatcher = actors-dispatcher + } + } + } +} + +## Secret key +# http://www.playframework.com/documentation/latest/ApplicationSecret +# ~~~~~ +# The secret key is used to sign Play's session cookie. +# This must be changed for production, but we don't recommend you change it in this file. +play.http.secret.key= "{{ .Values.global.play_http.secret_key }}" + +play.modules { + enabled += modules.KnowlgModule +} + +play.i18n { + langs = [ "en" ] +} + +play.http { + session { + } + flash { + } +} + +play.server.http.idleTimeout = 60s +play.http.parser.maxDiskBuffer = 100MB +parsers.anyContent.maxLength = 100MB + +## Netty Provider +# https://www.playframework.com/documentation/latest/SettingsNetty +# ~~~~~ +play.server.netty { + # Whether the Netty wire should be logged + log.wire = true + + # If you run Play on Linux, you can use Netty's native socket transport + # for higher performance with less garbage. + transport = "native" +} + +play.ws { + ssl { + } +} + +play.cache { +} + +play.filters { + enabled = [filters.AccessLogFilter] + cors { + } + headers { + } + hosts { + } +} + +play.http.parser.maxMemoryBuffer = 50MB +pekko.http.parsing.max-content-length = 50MB + +schema.base_path="{{ include "common.tplvalues.render" (dict "value" .Values.global.schema.base_path "context" $) }}" + +languageCode { + assamese : "as" + bengali : "bn" + english : "en" + gujarati : "gu" + hindi : "hi" + kannada : "ka" + marathi : "mr" + odia : "or" + tamil : "ta" + telugu : "te" +} + +platform.language.codes=["as","bn","en","gu","hi","hoc","jun","ka","mai","mr","unx","or","san","sat","ta","te","urd"] + +# Cassandra Configuration +cassandra { + lp { + connection: "{{ .Values.global.cassandra.host }}:{{ .Values.global.cassandra.port }}" + } + lpa { + connection: "{{ .Values.global.cassandra.host }}:{{ .Values.global.cassandra.port }}" + } +} + +collection { + keyspace: "{{ include "common.tplvalues.render" (dict "value" .Values.collection_keyspace "context" $) }}" + cache.enable: true + image.migration.enabled: true +} + +content { + keyspace: "{{ include "common.tplvalues.render" (dict "value" .Values.content_keyspace "context" $) }}" + cache { + ttl: 86400 + enable: true + } + hierarchy { + removed_props_for_leafNodes: ["collections", "children", "usedByContent", "item_sets", "methods", "libraries", "editorState"] + } + metadata.visibility.parent: ["textbookunit", "courseunit", "lessonplanunit", "event"] +} + +orchestrator.keyspace.name=question_store +orchestrator.keyspace.table=question_data + +# Redis Configuration +redis { + host:"{{ .Values.global.redis.host }}" + port:"{{ .Values.global.redis.port}}" + maxConnections:"{{ .Values.redisMaxConnections | default 128 }}" +} + +#Condition to enable publish locally +content.publish_task.enabled=true + +#directory location where store unzip file +dist.directory=/data/tmp/dist/ +output.zipfile=/data/tmp/story.zip +source.folder=/data/tmp/temp2/ +save.directory=/data/tmp/temp/ + +# Content 2 vec analytics URL +CONTENT_TO_VEC_URL="" + +# FOR CONTENT WORKFLOW PIPELINE (CWP) + +#--Content Workflow Pipeline Mode +OPERATION_MODE=TEST + +#--Maximum Content Package File Size Limit in Bytes (50 MB) +MAX_CONTENT_PACKAGE_FILE_SIZE_LIMIT=157286400 + +#--Maximum Asset File Size Limit in Bytes (50 MB) +MAX_ASSET_FILE_SIZE_LIMIT=157286400 + +#--No of Retry While File Download Fails +RETRY_ASSET_DOWNLOAD_COUNT=1 + +#Google-vision-API +google.vision.tagging.enabled = false + +#Orchestrator env properties +env="https://dev.ekstep.in/api/learning" + +#Current environment - need this property post cloud-store implementation +cloud_storage { + env: {{ .Values.global.env }} + content.folder: "{{ .Values.cloud_storage_content_folder }}" + asset.folder: "{{ .Values.cloud_storage_asset_folder }}" + artefact.folder: "{{ .Values.cloud_storage_artefact_folder }}" + bundle.folder: "{{ .Values.cloud_storage_bundle_folder }}" + media.folder: "{{ .Values.cloud_storage_media_folder }}" + ecar.folder: "{{ .Values.cloud_storage_ecar_folder }}" + upload.url.ttl: "{{ .Values.cloud_storage_upload_url_ttl }}" +} + +# Configuration +pekko.request_timeout: 30 +environment.id: 20000000 +graph { + dir: "/data/graphDB" + ids: ["domain"] + passport.key.base: "{{ .Values.global.graph_passport.key_base }}" +} +route.domain="bolt://{{ .Values.global.neo4j.host }}:{{ .Values.global.neo4j.port }}" +route.bolt.write.domain="bolt://{{ .Values.global.neo4j.host }}:{{ .Values.global.neo4j.port }}" +route.bolt.read.domain="bolt://{{ .Values.global.neo4j.host }}:{{ .Values.global.neo4j.port }}" +route.all="bolt://{{ .Values.global.neo4j.host }}:{{ .Values.global.neo4j.boltPort }}" +route.bolt.write.all="bolt://{{ .Values.global.neo4j.host }}:{{ .Values.global.neo4j.boltPort }}" +route.bolt.read.all="bolt://{{ .Values.global.neo4j.host }}:{{ .Values.global.neo4j.boltPort }}" + +shard.id: 1 + +platform { + auth.check.enabled: false + cache.ttl: 3600000 + language.codes: ["as","bn","en","gu","hi","hoc","jun","ka","mai","mr","unx","or","san","sat","ta","te","urd", "pj"] +} + +# Elasticsearch properties +search.es_conn_info="localhost:9200" +search.fields.query=["name^100","title^100","lemma^100","code^100","tags^100","domain","subject","description^10","keywords^25","ageGroup^10","filter^10","theme^10","genre^10","objects^25","contentType^100","language^200","teachingMode^25","skills^10","learningObjective^10","curriculum^100","gradeLevel^100","developer^100","attributions^10","owner^50","text","words","releaseNotes"] +search.fields.date=["lastUpdatedOn","createdOn","versionDate","lastSubmittedOn","lastPublishedOn"] +search.batch.size=500 +search.connection.timeout=30 +platform-api-url="http://localhost:8080/language-service" +MAX_ITERATION_COUNT_FOR_SAMZA_JOB=2 + +#Top N Config for Search Telemetry +telemetry_env: {{ .Values.content.telemetry_env }} + +installation.id: {{ .Values.global.installation.id }} + +channel { + default: "{{ .Values.global.channel.default }}" + fetch.suggested_frameworks: true +} + + +# Need to depreacte +composite { + search { + url : "{{ .Values.composite_search_url }}/v3/search" + } +} + +cloud_storage_type="{{ .Values.global.sunbird_cloud_storage_provider }}" +cloud_storage_key="{{ .Values.global.cloud_storage_access_key }}" +cloud_storage_secret="{{ .Values.global.cloud_storage_secret_key }}" +cloud_storage_container="{{ .Values.global.public_container_name }}" +cloud_storage_endpoint="" + +# Google Drive APIKEY +learning_content_drive_apiKey = "{{ .Values.drive_apiKey }}" + +#DIAL Code Reserve configuration +kafka.dial.request.topic="{{ include "common.tplvalues.render" (dict "value" .Values.kafka_dial_request_topic "context" $) }}" +dialcode.keyspace= {{ .Values.dialcode_keyspace }} +dialcode_image.keyspace={{ .Values.dialcode_keyspace }} +cloud_storage_dial_container={{ .Values.global.dial_state_container_public }} + +# DIAL Code Configuration +dialcode.max_count=1000 + +# System Configuration +system.config.keyspace.name="{{ .Values.dialcode_keyspace }}" +system.config.table="system_config" + +#Publisher Configuration +publisher.keyspace.name="{{ .Values.dialcode_keyspace }}" +publisher.keyspace.table="publisher" + +#DIAL Code Generator Configuration +dialcode.strip.chars="0" +dialcode.length=6.0 +dialcode.large.prime_number=1679979167 + +#DIAL Code ElasticSearch Configuration +dialcode.index=true +dialcode.object_type="DialCode" + +#Youtube Standard Licence Validation +learning.content.youtube.application.name="{{ .Values.youtube_application_name }}" +learning_content_youtube_apikey="{{ .Values.global.youtube_apikey }}" +youtube.license.regex.pattern=["\\?vi?=([^&]*)", "watch\\?.*v=([^&]*)", "(?:embed|vi?)/([^/?]*)","^([A-Za-z0-9\\-\\_]*)"] +learning.valid_license=["creativeCommon"] + +kafka { + urls : "{{ .Values.global.kafka.host }}:{{ .Values.global.kafka.port }}" + topic.send.enable : true + topics.instruction : "{{ include "common.tplvalues.render" (dict "value" .Values.kafka_topics_instruction "context" $) }}" + publish.request.topic : "{{ include "common.tplvalues.render" (dict "value" .Values.kafka_publish_request_topic "context" $) }}" +} + +# Need to depreacte +# DIAL Link Config +dial_service { + api { + base_url : "{{ .Values.dialservice_base_url }}" + auth_key : "" + search : "/dialcode/v3/search" + generate : "/dialcode/v3/generate" + } +} +# Need to depreacte +reserve_dialcode { + mimeType : ["application/vnd.ekstep.content-collection"] + max_count : 250 +} + +content.link_dialcode.validation=true +content.link_dialcode.max_limit=10 + +# Content Import API Config +import { + request_size_limit : 1000 + output_topic_name : "{{ include "common.tplvalues.render" (dict "value" .Values.import_output_topic_name "context" $) }}" + required_props : {{ .Values.import_required_props }} + remove_props : {{ .Values.import_remove_props }} +} + +# Need to depreacte +contentTypeToPrimaryCategory { + ClassroomTeachingVideo: "Explanation Content" + ConceptMap: "Learning Resource" + Course: ["Course", "Curriculum Course", "Professional Development Course"] + CuriosityQuestionSet: "Practice Question Set" + eTextBook: "eTextbook" + Event: "Event" + EventSet: "Event Set" + ExperientialResource: "Learning Resource" + ExplanationResource: "Explanation Content" + ExplanationVideo: "Explanation Content" + FocusSpot: "Teacher Resource" + LearningOutcomeDefinition: "Teacher Resource" + MarkingSchemeRubric: "Teacher Resource" + PedagogyFlow: "Teacher Resource" + PracticeQuestionSet: "Practice Question Set" + PracticeResource: "Practice Question Set" + SelfAssess: "Course Assessment" + TeachingMethod: "Teacher Resource" + TextBook: "Digital Textbook" + Collection: "Content Playlist" + ExplanationReadingMaterial: "Learning Resource" + LearningActivity: "Learning Resource" + LessonPlan: "Content Playlist" + LessonPlanResource: "Teacher Resource" + PreviousBoardExamPapers: "Learning Resource" + TVLesson: "Explanation Content" + OnboardingResource: "Learning Resource" + ReadingMaterial: "Learning Resource" + Template: "Template" + Asset: "Asset" + Plugin: "Plugin" + LessonPlanUnit: "Lesson Plan Unit" + CourseUnit: "Course Unit" + TextBookUnit: "Textbook Unit" + Asset: "Certificate Template" +} + +# Need to depreacte +resourceTypeToPrimaryCategory { + Learn: "Learning Resource" + Read: "Learning Resource" + Practice: "Learning Resource" + Teach: "Teacher Resource" + Test: "Learning Resource" + Experiment: "Learning Resource" + LessonPlan: "Teacher Resource" +} + +# Need to depreacte +mimeTypeToPrimaryCategory { + "application/vnd.ekstep.h5p-archive": ["Learning Resource"] + "application/vnd.ekstep.html-archive": ["Learning Resource"] + "application/vnd.android.package-archive": ["Learning Resource"] + "video/webm": ["Explanation Content"] + "video/x-youtube": ["Explanation Content"] + "video/mp4": ["Explanation Content"] + "application/pdf": ["Learning Resource", "Teacher Resource"] + "application/epub": ["Learning Resource", "Teacher Resource"] + "application/vnd.ekstep.ecml-archive": ["Learning Resource", "Teacher Resource"] + "text/x-url": ["Learnin Resource", "Teacher Resource"] +} + +objectcategorydefinition.keyspace="{{ include "common.tplvalues.render" (dict "value" .Values.global.objectcategorydefinition.keyspace "context" $) }}" + +#Default objectCategory mapping for channel +channel { + content{ + primarycategories=["Course Assessment", "eTextbook", "Explanation Content", "Learning Resource", "Practice Question Set", "Teacher Resource", "Exam Question"] + additionalcategories= ["Classroom Teaching Video", "Concept Map", "Curiosity Question Set", "Experiential Resource", "Explanation Video", "Focus Spot", "Learning Outcome Definition", "Lesson Plan", "Marking Scheme Rubric", "Pedagogy Flow", "Previous Board Exam Papers", "TV Lesson", "Textbook"] + } + collection { + primarycategories=["Content Playlist", "Course", "Digital Textbook", "Question paper"] + additionalcategories=["Textbook", "Lesson Plan"] + } + asset { + primarycategories=["Asset", "CertAsset", "Certificate Template"] + additionalcategories=[] + } +} +#config for primary categories mapping for collection units +collection.primarycategories.mapping.enabled=true +#config for objectType as content for collection units +objecttype.as.content.enabled=true + +# master Category Cache Properties +master.category.cache.ttl=86400 + +# Need to depreacte +#Collection CSV +sunbird_dialcode_search_api="{{ .Values.dialservice_base_url }}/dialcode/v3/list" +framework_read_api_url="{{ .Values.taxonomy_base_url }}/framework/v3/read" +sunbird_link_dial_code_api="{{ .Values.content_base_url }}/collection/v4/dialcode/link" + +# Need to depreacte +collection { + csv { + maxRows = 6500 + allowedContentTypes = ["TextBook","Collection","Course"] + maxFirstLevelUnits=30 + ttl = 86400 + maxUnitFieldLength=120 + maxDescFieldLength=1500 + contentTypeToUnitType = {"TextBook": "TextBookUnit", "Course": "CourseUnit", "Collection":"Collection"} + headers { + folderIdentifier = ["Folder Identifier"] + hierarchy = ["Level 1 Folder","Level 2 Folder","Level 3 Folder","Level 4 Folder"] + QR = ["QR Code Required?","QR Code"] + topics = ["Mapped Topics"] + collectionName = ["Collection Name"] + linkedContents = ["Linked Content 1","Linked Content 2","Linked Content 3","Linked Content 4","Linked Content 5","Linked Content 6","Linked Content 7","Linked Content 8","Linked Content 9","Linked Content 10","Linked Content 11","Linked Content 12","Linked Content 13","Linked Content 14","Linked Content 15","Linked Content 16","Linked Content 17","Linked Content 18","Linked Content 19","Linked Content 20","Linked Content 21","Linked Content 22","Linked Content 23","Linked Content 24","Linked Content 25","Linked Content 26","Linked Content 27","Linked Content 28","Linked Content 29","Linked Content 30"] + output = ["Collection Name","Folder Identifier","Level 1 Folder","Level 2 Folder","Level 3 Folder","Level 4 Folder","Description","Mapped Topics","Keywords","QR Code Required?","QR Code","Linked Content 1","Linked Content 2","Linked Content 3","Linked Content 4","Linked Content 5","Linked Content 6","Linked Content 7","Linked Content 8","Linked Content 9","Linked Content 10","Linked Content 11","Linked Content 12","Linked Content 13","Linked Content 14","Linked Content 15","Linked Content 16","Linked Content 17","Linked Content 18","Linked Content 19","Linked Content 20","Linked Content 21","Linked Content 22","Linked Content 23","Linked Content 24","Linked Content 25","Linked Content 26","Linked Content 27","Linked Content 28","Linked Content 29","Linked Content 30"] + sequence { + create = {"Level 1 Folder":0,"Level 2 Folder":1,"Level 3 Folder":2,"Level 4 Folder":3,"Description":4} + update = {"Collection Name":0,"Folder Identifier":1,"Level 1 Folder":2,"Level 2 Folder":3,"Level 3 Folder":4,"Level 4 Folder":5,"Description":6,"Mapped Topics":7,"Keywords":8,"QR Code Required?":9,"QR Code":10,"Linked Content 1":11,"Linked Content 2":12,"Linked Content 3":13,"Linked Content 4":14,"Linked Content 5":15,"Linked Content 6":16,"Linked Content 7":17,"Linked Content 8":18,"Linked Content 9":19,"Linked Content 10":20,"Linked Content 11":21,"Linked Content 12":22,"Linked Content 13":23,"Linked Content 14":24,"Linked Content 15":25,"Linked Content 16":26,"Linked Content 17":27,"Linked Content 18":28,"Linked Content 19":29,"Linked Content 20":30,"Linked Content 21":31,"Linked Content 22":32,"Linked Content 23":33,"Linked Content 24":34,"Linked Content 25":35,"Linked Content 26":36,"Linked Content 27":37,"Linked Content 28":38,"Linked Content 29":39,"Linked Content 30":40} + linkedContents = {"Linked Content 1":0,"Linked Content 2":1,"Linked Content 3":2,"Linked Content 4":3,"Linked Content 5":4,"Linked Content 6":5,"Linked Content 7":6,"Linked Content 8":7,"Linked Content 9":8,"Linked Content 10":9,"Linked Content 11":10,"Linked Content 12":11,"Linked Content 13":12,"Linked Content 14":13,"Linked Content 15":14,"Linked Content 16":15,"Linked Content 17":16,"Linked Content 18":17,"Linked Content 19":18,"Linked Content 20":19,"Linked Content 21":20,"Linked Content 22":21,"Linked Content 23":22,"Linked Content 24":23,"Linked Content 25":24,"Linked Content 26":25,"Linked Content 27":26,"Linked Content 28":27,"Linked Content 29":28,"Linked Content 30":29} + } + } + mandatory { + create = ["Level 1 Folder"] + update = ["Collection Name","Folder Identifier"] + } + } +} + +actor.timeoutMillisec = 30000 + +isIndexHtmlValidationRequired=true + +# Framework master category validation Supported values are Yes/No +framework.max_term_creation_limit=200 + +# Consistency Level for Multi Node Cassandra cluster +#cassandra.lp.consistency.level=local_one + +max.thumbnail.size.pixels=150 + +publish.collection.fullecar.disable=true + +stream.mime.type=video/mp4 +compositesearch.index.name="compositesearch" + +hierarchy.keyspace.name={{ include "common.tplvalues.render" (dict "value" .Values.collection_keyspace "context" $) }} +content.hierarchy.table=content_hierarchy + +lock.keyspace = "lock_db" +defaultLockExpiryTime = 3600 + +kafka.topic.system.command="{{ .Values.global.env }}.system.command" +kafka.topics.graph.event="{{ .Values.global.env }}.learning.graph.events" + +learning.reserve_dialcode.content_type=["TextBook"] + +plugin.media.base.url="{{ include "common.tplvalues.render" (dict "value" .Values.content.media_base_url "context" $) }}" + +cloudstorage { + metadata.replace_absolute_path=true + relative_path_prefix="{{ .Values.cloudstorage_relative_path_prefix_content }}" + metadata.list= {{ include "common.tplvalues.render" (dict "value" .Values.cloudstorage_metadata_list "context" $) }} + read_base_path="{{ include "common.tplvalues.render" (dict "value" .Values.cloudstorage_read_base_path "context" $) }}" + write_base_path= {{ include "common.tplvalues.render" (dict "value" .Values.cloudstorage_write_base_path "context" $) }} +} + +#GCP Specific Credentials +cloud_storage_client_id="" +cloud_storage_private_key_id="" +cloud_storage_project_id="" + +framework.keyspace="{{ include "common.tplvalues.render" (dict "value" .Values.framework.keyspace "context" $) }}" +framework.hierarchy.table="{{ .Values.framework.hierarchy_table }}" +framework.categories_cached="{{ .Values.framework.categories_cached }}" +framework.cache.ttl=86400 +framework.cache.read="true" + +# Set true to enable sending event to asset enrichment job +asset_enrichment.enable=false diff --git a/helmcharts/knowledgebb/charts/knowlg/configs/env.yaml b/helmcharts/knowledgebb/charts/knowlg/configs/env.yaml new file mode 100644 index 000000000..9e6e7f10f --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/configs/env.yaml @@ -0,0 +1,6 @@ +# You can add key value pair here, to create env values. +# for example, + +# ENV: dev +JAVA_OPTIONS: {{ .Values.javaenv.javaoptions }} +_JAVA_OPTIONS: {{ .Values.javaenv._javaoptions }} \ No newline at end of file diff --git a/helmcharts/knowledgebb/charts/knowlg/configs/logback.xml b/helmcharts/knowledgebb/charts/knowlg/configs/logback.xml new file mode 100644 index 000000000..335f6b6d2 --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/configs/logback.xml @@ -0,0 +1,31 @@ + + + + + + + + + + %d %msg%n + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/helmcharts/knowledgebb/charts/knowlg/templates/NOTES.txt b/helmcharts/knowledgebb/charts/knowlg/templates/NOTES.txt new file mode 100644 index 000000000..e69de29bb diff --git a/helmcharts/knowledgebb/charts/knowlg/templates/_helpers.tpl b/helmcharts/knowledgebb/charts/knowlg/templates/_helpers.tpl new file mode 100644 index 000000000..e69de29bb diff --git a/helmcharts/knowledgebb/charts/knowlg/templates/configmap.yaml b/helmcharts/knowledgebb/charts/knowlg/templates/configmap.yaml new file mode 100644 index 000000000..0e4b6775a --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/templates/configmap.yaml @@ -0,0 +1,81 @@ +{{- if .Values.configmap.enabled }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: +{{ include "common.labels.standard" (dict "customLabels" .Values.commonLabels "context" $) | nindent 4 }} + {{- if .Values.commonAnnotations }} + annotations: +{{ include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }} + {{- end }} +data: +{{- $currentScope := .}} +{{- range $path, $_ := .Files.Glob "configs/*" }} # Take only root level files (configs/*) for configmaps + {{- if ne $path "configs/env.yaml" }} # Skip env.yaml as configmap, as it's env file + {{ base $path | nindent 2 }}: |- + {{- with $currentScope }} + {{- $var := .Files.Get $path }} + {{- include "common.tplvalues.render" (dict "value" $var "context" $) | nindent 6 }} + {{- end }} + {{- end }} +{{- end }} +{{- end }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }}-env + labels: +{{ include "common.labels.standard" (dict "customLabels" .Values.commonLabels "context" $) | nindent 4 }} + {{- if .Values.commonAnnotations }} + annotations: +{{ include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }} + {{- end }} +data: + {{- $var := .Files.Get "configs/env.yaml" }} + {{- include "common.tplvalues.render" (dict "value" $var "context" $) | nindent 2 }} + +{{- if .Values.opa.enabled }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }}-opa + labels: +{{ include "common.labels.standard" (dict "customLabels" .Values.commonLabels "context" $) | nindent 4 }} + {{- if .Values.commonAnnotations }} + annotations: +{{ include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }} + {{- end }} +data: +{{- $currentScope := .}} +{{- range $path, $_ := .Files.Glob "configs/opa/**" }} + {{ base $path | nindent 2 }}: |- + {{- with $currentScope }} + {{- $var := .Files.Get $path }} + {{- include "common.tplvalues.render" (dict "value" $var "context" $) | nindent 6 }} + {{- end }} +{{- end }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.names.fullname" . }}-envoy + labels: +{{ include "common.labels.standard" (dict "customLabels" .Values.commonLabels "context" $) | nindent 4 }} + {{- if .Values.commonAnnotations }} + annotations: +{{ include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }} + {{- end }} +data: +{{- $currentScope := .}} +{{- range $path, $_ := .Files.Glob "configs/envoy/**" }} + {{ base $path | nindent 2 }}: |- + {{- with $currentScope }} + {{- $var := .Files.Get $path }} + {{- include "common.tplvalues.render" (dict "value" $var "context" $) | nindent 6 }} + {{- end }} +{{- end }} +{{- end }} diff --git a/helmcharts/knowledgebb/charts/knowlg/templates/deployment.yaml b/helmcharts/knowledgebb/charts/knowlg/templates/deployment.yaml new file mode 100644 index 000000000..89c5e4d89 --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/templates/deployment.yaml @@ -0,0 +1,73 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "common.names.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app.kubernetes.io/name: {{ include "common.names.name" . }} + template: + metadata: + labels: + app.kubernetes.io/name: {{ include "common.names.name" . }} + annotations: + checksum/config: {{ .Files.Glob "configs/*" | toYaml | sha256sum }} + spec: + serviceAccountName: {{ include "common.names.fullname" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + {{- with .Values.image.pullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.initContainers }} + initContainers: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + {{- if .Values.livenessProbe }} + livenessProbe: + {{- toYaml .Values.livenessProbe | nindent 12 }} + {{- end }} + {{- if .Values.readinessProbe }} + readinessProbe: + {{- toYaml .Values.readinessProbe | nindent 12 }} + {{- end }} + ports: + {{- range .Values.service.ports }} + - name: {{ .name }} + containerPort: {{ .targetPort }} + {{- end }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + envFrom: + - configMapRef: + name: {{ include "common.names.fullname" . }}-env + volumeMounts: + {{- if .Values.configmap.enabled }} + - name: config + mountPath: {{ .Values.configmap.mountPath }} + {{- end }} + {{- with .Values.sidecars }} + {{- toYaml . | nindent 8 }} + {{- end }} + volumes: + - name: env + configMap: + name: {{ include "common.names.fullname" . }}-env + {{- if .Values.configmap.enabled }} + - name: config + configMap: + name: {{ include "common.names.fullname" . }} + {{- end }} diff --git a/helmcharts/knowledgebb/charts/knowlg/templates/hpa.yaml b/helmcharts/knowledgebb/charts/knowlg/templates/hpa.yaml new file mode 100644 index 000000000..546acd92a --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/templates/hpa.yaml @@ -0,0 +1,20 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "common.names.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "common.names.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- toYaml .Values.autoscaling.metrics | nindent 4 }} +{{- end }} diff --git a/helmcharts/knowledgebb/charts/knowlg/templates/ingress.yaml b/helmcharts/knowledgebb/charts/knowlg/templates/ingress.yaml new file mode 100644 index 000000000..da8e1b8c5 --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/templates/ingress.yaml @@ -0,0 +1,24 @@ +{{- if .Values.ingress.enabled }} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ include "common.names.fullname" . }} + namespace: {{ .Release.Namespace }} + annotations: + {{- toYaml .Values.ingress.annotations | nindent 4 }} +spec: + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host }} + http: + paths: + {{- range .paths }} + - path: {{ . }} + backend: + service: + name: {{ include "common.names.fullname" $ }} + port: + name: http + {{- end }} + {{- end }} +{{- end }} diff --git a/helmcharts/knowledgebb/charts/knowlg/templates/service.yaml b/helmcharts/knowledgebb/charts/knowlg/templates/service.yaml new file mode 100644 index 000000000..db4c089b5 --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/templates/service.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "common.names.fullname" . }}-service + namespace: {{ .Release.Namespace }} + labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + type: {{ .Values.service.type }} + ports: + {{- range .Values.service.ports }} + - name: {{ .name }} + port: {{ .port }} + targetPort: {{ .targetPort }} + {{- end }} + selector: + app.kubernetes.io/name: {{ include "common.names.name" . }} diff --git a/helmcharts/knowledgebb/charts/knowlg/templates/serviceaccount.yaml b/helmcharts/knowledgebb/charts/knowlg/templates/serviceaccount.yaml new file mode 100644 index 000000000..8b684ba20 --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/templates/serviceaccount.yaml @@ -0,0 +1,7 @@ +{{- if .Values.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "common.names.fullname" . }} + namespace: {{ .Release.Namespace }} +{{- end }} diff --git a/helmcharts/knowledgebb/charts/knowlg/templates/servicemonitor.yaml b/helmcharts/knowledgebb/charts/knowlg/templates/servicemonitor.yaml new file mode 100644 index 000000000..17385ec39 --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/templates/servicemonitor.yaml @@ -0,0 +1,21 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "common.names.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + jobLabel: {{ .Values.serviceMonitor.jobLabel }} + selector: + matchLabels: + {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 6 }} + endpoints: + - port: http # the name of the port in your service, assuming the primary service port is named 'http' in this example. + interval: {{ .Values.serviceMonitor.interval }} + scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }} + honorLabels: {{ .Values.serviceMonitor.honorLabels }} +{{- end }} diff --git a/helmcharts/knowledgebb/charts/knowlg/values.yaml b/helmcharts/knowledgebb/charts/knowlg/values.yaml new file mode 100644 index 000000000..eed5c8e52 --- /dev/null +++ b/helmcharts/knowledgebb/charts/knowlg/values.yaml @@ -0,0 +1,151 @@ +nameOverride: "knowlg" +fullnameOverride: "knowlg" +replicaCount: 1 + +image: + repository: ghcr.io/sunbird-knowlg/knowledge-platform/knowlg-service + tag: "release-8.0.0_rc3_09d6e64" + pullPolicy: IfNotPresent + pullSecrets: [] + +podAnnotations: {} + +podSecurityContext: {} + # runAsNonRoot: true + # runAsUser: 1001 + # fsGroup: 1001 + +securityContext: {} + # readOnlyRootFilesystem: false + # capabilities: + # drop: + # - ALL + +service: + type: ClusterIP + protocol: TCP + ports: + - name: http-knowlg + port: 9000 + targetPort: 9000 + +ingress: {} + +resources: + requests: + cpu: 100m + memory: 100Mi + limits: + cpu: 1 + memory: 1024Mi + +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 80 + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: 80 + +livenessProbe: + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + successThreshold: 1 + httpGet: + path: /health + port: 9000 +readinessProbe: + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 6 + successThreshold: 1 + httpGet: + path: /health + port: 9000 + +nodeSelector: {} +tolerations: [] +affinity: {} + +configmap: + enabled: true + mountPath: /home/sunbird/knowlg-service-1.0-SNAPSHOT/config + +commonAnnotations: + reloader.stakater.com/auto: "true" + +serviceAccount: + create: true + +serviceMonitor: + enabled: false + interval: 30s + scrapeTimeout: 10s + labels: {} # additional labels e.g. release: prometheus + honorLabels: true + jobLabel: "app.kubernetes.io/name" + +framework: + keyspace: "{{ .Values.global.env }}_hierarchy_store" + hierarchy_table: framework_hierarchy + categories_cached: '["subject", "medium", "gradeLevel", "board"]' + +cloud_storage: + type: "azure" + +content: + h5p_library_path: "https://{{ .Values.global.object_storage_endpoint }}/{{ .Values.global.public_container_name }}installation/h5p-standalone-1.3.4.zip" + media_base_url: "https://{{ .Values.global.domain }}" + telemetry_env: staging + +composite_search_url: "http://search-service:9000" +dialservice_base_url: "http://dial-service:9000" +taxonomy_base_url: "http://knowlg-service:9000" +content_base_url: "http://knowlg-service:9000" + +kafka_topics_instruction: "{{ .Values.global.env }}.knowlg.learning.job.request" +kafka_publish_request_topic: "{{ .Values.global.env }}.knowlg.publish.job.request" +import_output_topic_name: "{{ .Values.global.env }}.knowlg.auto.creation.job.request" +import_required_props: '["name","code","mimeType","primaryCategory","artifactUrl","framework"]' +import_remove_props: '["downloadUrl","variants","previewUrl","streamingUrl","itemSets","level1Name","level1Concept","level2Name","level2Concept","level3Name","level3Concept","me_totalPlaySessionCount","me_totalTimeSpentInSec","me_totalSessionsCount","me_totalTimespent","me_totalInteractions","me_creationSessions","me_creationTimespent","me_averageInteractionsPerMin","me_averageSessionsPerDevice","me_totalDevices","me_averageTimespentPerSession","me_averageRating","me_totalDownloads","me_totalSideloads","me_totalRatings","me_totalComments","me_totalDialcode","me_totalDialcodeLinkedToContent","me_totalDialcodeAttached","me_hierarchyLevel","origin","originData","contentPolicyCheck","questions"]' +master_category_validation_enabled: "Yes" +youtube_application_name: "fetch-youtube-license" +youtube_apikey: "" +drive_apiKey: "" +collection_keyspace: "{{ .Values.global.env }}_hierarchy_store" +content_keyspace: "{{ .Values.global.env }}_content_store" +kafka_dial_request_topic: "{{ .Values.global.env }}.knowlg.qrimage.request" +dialcode_keyspace: dialcodes +dial_container: dial +cloud_storage_content_folder: "content" +cloud_storage_asset_folder: "assets" +cloud_storage_artefact_folder: "artifact" +cloud_storage_bundle_folder: "bundle" +cloud_storage_media_folder: "media" +cloud_storage_ecar_folder: "ecar_files" +cloud_storage_metadata_replace_absolute_path: true +cloud_storage_upload_url_ttl: "54000" +cloudstorage_relative_path_prefix_content: CONTENT_STORAGE_BASE_PATH +cloudstorage_metadata_list: '["appIcon", "artifactUrl", "posterImage", "previewUrl", "thumbnail", "assetsMap", "certTemplate", "itemSetPreviewUrl", "grayScaleAppIcon", "sourceURL", "variants", "downloadUrl", "streamingUrl", "toc_url", "data", "question", "solutions", "editorState", "media", "pdfUrl", "transcripts"]' +cloudstorage_write_base_path: '["https://{{ .Values.global.object_storage_endpoint }}"]' +cloudstorage_read_base_path: "https://{{ .Values.global.object_storage_endpoint }}" + +javaenv: + javaoptions: -Xms500m -Xmx500m + _javaoptions: -Dlog4j2.formatMsgNoLookups=true + +opa: + enabled: false diff --git a/helmcharts/learnbb/charts/flink/values.yaml b/helmcharts/learnbb/charts/flink/values.yaml index 250ad6a80..d3c144a50 100644 --- a/helmcharts/learnbb/charts/flink/values.yaml +++ b/helmcharts/learnbb/charts/flink/values.yaml @@ -159,9 +159,9 @@ cassandra_isMultiDCEnabled: false kp_schema_base_path: "https://{{ .Values.global.object_storage_endpoint }}./{{ .Values.global.public_container_name }}/schemas/local" lms_service_base_url: "http://lms-service:9000" kp_search_service_base_url: "http://search-service:9000" -content_read_api_host: "http://content-service:9000" +content_read_api_host: "http://knowlg-service:9000" content_read_api_endpoint: "content/v3/read/" -content_service_base_url: "http://content-service:9000" +content_service_base_url: "http://knowlg-service:9000" userorg_service_base_url: "http://userorg-service:9000" cert_reg_service_base_url: "http://certreg:9000/certreg" enc_service_base_url: "http://enc:9000/enc" diff --git a/helmcharts/learnbb/charts/lms/values.yaml b/helmcharts/learnbb/charts/lms/values.yaml index 755df55aa..b1fc3af10 100644 --- a/helmcharts/learnbb/charts/lms/values.yaml +++ b/helmcharts/learnbb/charts/lms/values.yaml @@ -146,7 +146,7 @@ sunbird_sso_password: admin sunbird_analytics_api_base_url: "http://analytics-service:9000" sunbird_search_service_api_base_url: "http://search-service:9000" learning_service_url: "http://learning:8080/learning-service" -content_service_url: "http://content-service:9000" +content_service_url: "http://knowlg-service:9000" content_read_url: "/content/v3/read/" mail_server_username: "" mail_server_password: ""