From f6336f06d3b36b3f0362938b37aee111f3fcf4bf Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Thu, 27 Apr 2023 16:26:38 +0530 Subject: [PATCH 01/14] Add nginx-public chart --- helmchart/nginx-public-ingress-0.1.0.tgz | Bin 0 -> 72431 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 helmchart/nginx-public-ingress-0.1.0.tgz diff --git a/helmchart/nginx-public-ingress-0.1.0.tgz b/helmchart/nginx-public-ingress-0.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e6e0e0b0038a5da7a64ba6ad0b113029e18b1ccf GIT binary patch literal 72431 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 ZGyXIFGyXpr|0e(d|NpFL2m1g50st&2!5shq literal 0 HcmV?d00001 From 3d6aeff01860d02eb392c28518c53700e4673d94 Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Thu, 27 Apr 2023 20:48:37 +0530 Subject: [PATCH 02/14] Add nginx and portal helm charts --- helmchart/nginx-public-ingress/.helmignore | 22 + helmchart/nginx-public-ingress/Chart.yaml | 21 + .../nginx-public-ingress-0.1.0.tgz | Bin 0 -> 48569 bytes .../nginx-public-ingress-values.yaml | 162 +++ .../templates/_helpers.tpl | 63 + .../templates/configMap.yaml | 1011 +++++++++++++++++ .../templates/daemonset.yaml | 104 ++ .../templates/recordingRules.yaml | 50 + .../templates/secrets.yaml | 9 + .../templates/serviceMonitor.yml | 27 + helmchart/nginx-public-ingress/values.yaml | 196 ++++ helmchart/portal/Chart.yaml | 24 + helmchart/portal/charts/.helmignore | 23 + helmchart/portal/charts/common/.helmignore | 23 + helmchart/portal/charts/common/Chart.yaml | 24 + .../charts/common/templates/_helpers.tpl | 3 + .../charts/common/templates/_randomize.tpl | 3 + .../charts/common/templates/_readsecret.tpl | 40 + .../charts/common/templates/_valdations.tpl | 9 + helmchart/portal/charts/common/values.yaml | 1 + helmchart/portal/portal-sample-values.yaml | 23 + helmchart/portal/templates/_helpers.tpl | 62 + helmchart/portal/templates/configmap.yaml | 218 ++++ helmchart/portal/templates/deployment.yaml | 55 + helmchart/portal/templates/service.yaml | 14 + helmchart/portal/values.yaml | 211 ++++ helmchart/sunbird-ed-portal-0.1.0.tgz | Bin 0 -> 6740 bytes 27 files changed, 2398 insertions(+) create mode 100644 helmchart/nginx-public-ingress/.helmignore create mode 100644 helmchart/nginx-public-ingress/Chart.yaml create mode 100644 helmchart/nginx-public-ingress/nginx-public-ingress-0.1.0.tgz create mode 100644 helmchart/nginx-public-ingress/nginx-public-ingress-values.yaml create mode 100644 helmchart/nginx-public-ingress/templates/_helpers.tpl create mode 100644 helmchart/nginx-public-ingress/templates/configMap.yaml create mode 100644 helmchart/nginx-public-ingress/templates/daemonset.yaml create mode 100644 helmchart/nginx-public-ingress/templates/recordingRules.yaml create mode 100644 helmchart/nginx-public-ingress/templates/secrets.yaml create mode 100644 helmchart/nginx-public-ingress/templates/serviceMonitor.yml create mode 100644 helmchart/nginx-public-ingress/values.yaml create mode 100644 helmchart/portal/Chart.yaml create mode 100644 helmchart/portal/charts/.helmignore create mode 100644 helmchart/portal/charts/common/.helmignore create mode 100644 helmchart/portal/charts/common/Chart.yaml create mode 100644 helmchart/portal/charts/common/templates/_helpers.tpl create mode 100644 helmchart/portal/charts/common/templates/_randomize.tpl create mode 100644 helmchart/portal/charts/common/templates/_readsecret.tpl create mode 100644 helmchart/portal/charts/common/templates/_valdations.tpl create mode 100644 helmchart/portal/charts/common/values.yaml create mode 100644 helmchart/portal/portal-sample-values.yaml create mode 100644 helmchart/portal/templates/_helpers.tpl create mode 100644 helmchart/portal/templates/configmap.yaml create mode 100644 helmchart/portal/templates/deployment.yaml create mode 100644 helmchart/portal/templates/service.yaml create mode 100644 helmchart/portal/values.yaml create mode 100644 helmchart/sunbird-ed-portal-0.1.0.tgz diff --git a/helmchart/nginx-public-ingress/.helmignore b/helmchart/nginx-public-ingress/.helmignore new file mode 100644 index 0000000000..50af031725 --- /dev/null +++ b/helmchart/nginx-public-ingress/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/helmchart/nginx-public-ingress/Chart.yaml b/helmchart/nginx-public-ingress/Chart.yaml new file mode 100644 index 0000000000..ded713533b --- /dev/null +++ b/helmchart/nginx-public-ingress/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +name: nginx-public-ingress +description: A Helm chart for Kubernetes + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. +appVersion: 1.16.0 diff --git a/helmchart/nginx-public-ingress/nginx-public-ingress-0.1.0.tgz b/helmchart/nginx-public-ingress/nginx-public-ingress-0.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..799f299dd4cc82386b0a044dc7b248a4821e241d GIT binary patch literal 48569 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 literal 0 HcmV?d00001 diff --git a/helmchart/nginx-public-ingress/nginx-public-ingress-values.yaml b/helmchart/nginx-public-ingress/nginx-public-ingress-values.yaml new file mode 100644 index 0000000000..e6a9e0e16e --- /dev/null +++ b/helmchart/nginx-public-ingress/nginx-public-ingress-values.yaml @@ -0,0 +1,162 @@ +nginx_private_ingress_ip: "10.0.1.30" +domain: sunbirded1.dev.org +cloud_public_storage_accountname: sunbirddevpublic.blob.core.windows.net +cloud_public_storage_container: sunbird-content-dev + +service: + annotations: + service.beta.kubernetes.io/azure-load-balancer-external: "true" + type: LoadBalancer + nginx_public_ingress_ip: "20.204.234.254" + +core_vault_proxy_site_key: |+ + -----BEGIN PRIVATE KEY----- + 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 + 5+XuRvWAFxTQIbZp3aA1Cl6YgocZRg== + -----END PRIVATE KEY----- +core_vault_proxy_site_crt: |+ + -----BEGIN CERTIFICATE----- + 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 + Bkd8yR70 + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw + TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh + cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw + WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg + RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK + AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP + R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx + sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm + NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg + Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG + /kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC + AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB + Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA + FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw + AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw + Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB + gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W + PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl + ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz + CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm + lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4 + avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2 + yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O + yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids + hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+ + HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv + MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX + nLRbwHOoq7hHwg== + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/ + MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT + DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow + TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh + cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB + AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC + ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL + wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D + LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK + 4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5 + bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y + sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ + Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4 + FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc + SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql + PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND + TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw + SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1 + c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx + +tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB + ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu + b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E + U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu + MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC + 5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW + 9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG + WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O + he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC + Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5 + -----END CERTIFICATE----- diff --git a/helmchart/nginx-public-ingress/templates/_helpers.tpl b/helmchart/nginx-public-ingress/templates/_helpers.tpl new file mode 100644 index 0000000000..0af5bc238a --- /dev/null +++ b/helmchart/nginx-public-ingress/templates/_helpers.tpl @@ -0,0 +1,63 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "nginx-public-ingress.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "nginx-public-ingress.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "nginx-public-ingress.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common labels +*/}} +{{- define "nginx-public-ingress.labels" -}} +helm.sh/chart: {{ include "nginx-public-ingress.chart" . }} +{{ include "nginx-public-ingress.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end -}} + +{{/* +Selector labels +*/}} +{{- define "nginx-public-ingress.selectorLabels" -}} +app.kubernetes.io/name: {{ include "nginx-public-ingress.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "nginx-public-ingress.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "nginx-public-ingress.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} diff --git a/helmchart/nginx-public-ingress/templates/configMap.yaml b/helmchart/nginx-public-ingress/templates/configMap.yaml new file mode 100644 index 0000000000..2159007016 --- /dev/null +++ b/helmchart/nginx-public-ingress/templates/configMap.yaml @@ -0,0 +1,1011 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: proxy-default + namespace: {{ .Release.namespace }} +data: + compression.conf: | + # Compression + gzip on; + gzip_comp_level 5; + gzip_min_length 256; # 256Bytes + gzip_proxied any; + gzip_vary on; + # Content types for compression + gzip_types + application/atom+xml + application/javascript + application/json + application/ld+json + application/manifest+json + application/rss+xml + application/vnd.geo+json + application/vnd.ms-fontobject + application/x-font-ttf + application/x-web-app-manifest+json + application/xhtml+xml + application/xml + font/opentype + image/bmp + image/svg+xml + image/x-icon + text/cache-manifest + text/css + text/plain + ; + proxy-default.conf: | + server { + listen 80; + listen [::]:80; + server_name {{ .Values.domain }}; + # Limitting open connection per ip + limit_conn limitbyaddr 400; + return 301 https://{{ .Values.domain }}$request_uri; + } + server { + listen 443 ssl; + ssl_certificate /etc/secrets/tls.crt; + ssl_certificate_key /etc/secrets/tls.key; + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA HIGH !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"; + server_name *.{{ .Values.domain }} {{ .Values.domain }}; + # Limitting open connection per ip + limit_conn limitbyaddr 400; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-SSL on; + proxy_set_header X-Forwarded-Proto $scheme; + ignore_invalid_headers off; #pass through headers from Jenkins which are considered invalid by Nginx server. + resolver {{ .Values.nginx_private_ingress_ip }} valid=30s; + # Mobile Devices Refresh token Endpoints + location ~* ^/auth/v1/refresh/token { + rewrite ^/auth/(.*) /auth/$1 break; + proxy_set_header Connection ""; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://kong; + } + # Admin API Endpoints for sunbird realm fpr forgot password flow + location ~ /auth/admin/realms/sunbird/users/ { + rewrite ^/auth/(.*) /auth/$1 break; + proxy_set_header X-Request-ID $sb_request_id; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Connection ""; + proxy_http_version 1.1; + proxy_pass http://player; + } + # Sunbird realm player API endpoints + location ~ /auth/realms/sunbird/(get-required-action-link|login-actions/(action-token|authenticate|required-action)|protocol/openid-connect/(auth|certs|logout|token|userinfo)|.well-known/openid-configuration) { + rewrite ^/auth/(.*) /auth/$1 break; + proxy_set_header X-Request-ID $sb_request_id; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Connection ""; + proxy_http_version 1.1; + proxy_pass http://player; + } + # Static Assets for player endpoints with caching + location ~ /auth/(resources/(.+\.(png|svg|ico|js|eot|ttf|woff|woff2|css))|welcome-content/(.+\.(png|svg|ico|js|eot|ttf|woff|woff2|css))) { + # Enabling caching + proxy_cache_key $proxy_host$request_uri; + proxy_cache small_cache; + add_header X-Proxy-Cache $upstream_cache_status; + add_header X-Proxy-Cache-Date $upstream_http_date; + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + proxy_cache_revalidate on; + proxy_cache_background_update on; + proxy_cache_lock on; + proxy_cache_valid 200 5m; + rewrite ^/auth/(.*) /auth/$1 break; + proxy_set_header Connection ""; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + proxy_pass http://player; + } + # This is Caching mechanism for POST requests location search + location ~ /learner/data/v1/location/search { + # Enabling compression + include /etc/nginx/defaults.d/compression.conf; + # Enabling caching + # caching include Accept-Encoding header also, to provide gziped or plain content as per request + proxy_cache_key "$http_accept_encoding|$request_uri|$request_body"; + proxy_cache medium_cache; + add_header X-Proxy-Cache $upstream_cache_status; + add_header X-Proxy-Cache-Date $upstream_http_date; + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + proxy_cache_methods GET HEAD POST; + proxy_cache_revalidate on; + proxy_cache_background_update on; + proxy_cache_lock on; + proxy_cache_valid 200 5m; + proxy_set_header Connection ""; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://player; + } + # Caching for content consumption + location ~ /api/(content/v1/read|course/v1/hierarchy|course/v1/batch/read) { + # Enabling compression + include /etc/nginx/defaults.d/compression.conf; + # Enabling caching + # caching include Accept-Encoding header also, to provide gziped or plain content as per request + proxy_cache_key "$http_accept_encoding|$request_uri|$request_body"; + proxy_cache large_cache; + add_header X-Proxy-Cache $upstream_cache_status; + add_header X-Proxy-Cache-Date $upstream_http_date; + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + proxy_cache_methods GET HEAD POST; + proxy_cache_revalidate on; + proxy_cache_background_update on; + proxy_cache_lock on; + proxy_cache_valid 200 4m; + # Increasing the proxy buffer size + proxy_buffer_size 16k; + proxy_busy_buffers_size 16k; + rewrite ^/api/(.*) /$1 break; + proxy_set_header Connection ""; + proxy_set_header Host $host; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + proxy_pass http://kong; + } + # This is Caching mechanism for Content search + location ~ /api/content/v1/search { + # Enabling compression + include /etc/nginx/defaults.d/compression.conf; + # Enabling caching + # caching include Accept-Encoding header also, to provide gziped or plain content as per request + proxy_cache_key "$http_accept_encoding|$request_uri|$request_body"; + proxy_cache large_cache; + add_header X-Proxy-Cache $upstream_cache_status; + add_header X-Proxy-Cache-Date $upstream_http_date; + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + proxy_cache_methods GET HEAD POST; + proxy_cache_revalidate on; + proxy_cache_background_update on; + proxy_cache_lock on; + proxy_cache_valid 200 4m; + # Increasing the proxy buffer size + proxy_buffer_size 16k; + proxy_busy_buffers_size 16k; + rewrite ^/api/(.*) /$1 break; + proxy_set_header Connection ""; + proxy_set_header Host $host; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + proxy_pass http://kong; + } + # This is Caching mechanism for POST requests + location ~ /api/data/v1/form/read { + # Enabling compression + include /etc/nginx/defaults.d/compression.conf; + # Enabling caching + # caching include Accept-Encoding header also, to provide gziped or plain content as per request + proxy_cache_key "$http_accept_encoding|$request_uri|$request_body"; + proxy_cache small_cache; + add_header X-Proxy-Cache $upstream_cache_status; + add_header X-Proxy-Cache-Date $upstream_http_date; + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + proxy_cache_methods GET HEAD POST; + proxy_cache_revalidate on; + proxy_cache_background_update on; + proxy_cache_lock on; + proxy_cache_valid 200 5m; + rewrite ^/api/(.*) /$1 break; + proxy_set_header Connection ""; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://kong; + } + location ~ /api/(framework/v1/read|data/v1/system/settings/get|org/v1/search|org/v2/search|data/v1/location/search) { + # Enabling compression + include /etc/nginx/defaults.d/compression.conf; + # Enabling caching + # caching include Accept-Encoding header also, to provide gziped or plain content as per request + proxy_cache_key "$http_accept_encoding|$request_uri|$request_body"; + proxy_cache medium_cache; + add_header X-Proxy-Cache $upstream_cache_status; + add_header X-Proxy-Cache-Date $upstream_http_date; + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + proxy_cache_methods GET HEAD POST; + proxy_cache_revalidate on; + proxy_cache_background_update on; + proxy_cache_lock on; + proxy_cache_valid 200 5m; + rewrite ^/api/(.*) /$1 break; + proxy_set_header Connection ""; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_buffer_size 16k; + proxy_busy_buffers_size 16k; + proxy_pass http://kong; + } + location /api/ { + if ($request_method = OPTIONS ) { + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods "GET, OPTIONS, PATCH, POST"; + add_header Access-Control-Allow-Headers "Access-Control-Allow-Origin, Authorization, Content-Type, user-id, Content-Encoding"; + add_header Content-Length 0; + add_header Content-Type text/plain; + return 200; + } + if ( $arg_eHVyhwSdt ) { + set $custom_header "Bearer $arg_eHVyhwSdt"; + } + if ( $http_authorization ) { + set $custom_header "$http_authorization"; + } + include /etc/nginx/defaults.d/compression.conf; + proxy_set_header Authorization $custom_header; + rewrite ^/api/(.*) /$1 break; + proxy_set_header Connection ""; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://kong; + } + # Oauth2 config + location /oauth2/ { + set $target http://oauth2-proxy.logging.svc.cluster.local; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Auth-Request-Redirect $request_uri; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $target; + } + location = /oauth2/auth { + set $target http://oauth2-proxy.logging.svc.cluster.local; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + # nginx auth_request includes headers but not body + proxy_set_header Content-Length ""; + proxy_pass_request_body off; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $target; + } + location /graylog/ { + auth_request /oauth2/auth; + error_page 401 = /oauth2/sign_in; + # Setting target url + auth_request_set $target http://graylog.logging.svc.cluster.local; + # pass information via X-User and X-Email headers to backend, + # requires running with --set-xauthrequest flag + auth_request_set $user $upstream_http_x_auth_request_user; + auth_request_set $email $upstream_http_x_auth_request_email; + proxy_set_header X-User $user; + proxy_set_header X-Email $email; + # if you enabled --cookie-refresh, this is needed for it to work with auth_request + auth_request_set $auth_cookie $upstream_http_set_cookie; + add_header Set-Cookie $auth_cookie; + proxy_set_header X-Request-ID $sb_request_id; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Server $host; + proxy_set_header X-Scheme $scheme; + proxy_set_header Graylog-User viewer; + proxy_set_header X-Graylog-Server-URL https://{{ .Values.domain }}/graylog/; + rewrite ^/graylog/(.*)$ /$1 break; + proxy_pass $target; + } + location /dashboard { + return 301 /graylog/; + } + location /oauth3 { + set $target http://oauth2-proxy.monitoring.svc.cluster.local; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Auth-Request-Redirect $request_uri; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $target; + } + location = /oauth3/auth { + set $target http://oauth2-proxy.monitoring.svc.cluster.local; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header Content-Length ""; + proxy_pass_request_body off; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $target; + } + location /grafana/ { + auth_request /oauth3/auth; + error_page 401 = /oauth3/sign_in; + auth_request_set $target http://prometheus-operator-grafana.monitoring.svc.cluster.local; + include /etc/nginx/defaults.d/compression.conf; + proxy_set_header Connection ""; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + set $target http://prometheus-operator-grafana.monitoring.svc.cluster.local; + rewrite ^/grafana/(.*) /$1 break; + proxy_pass $target; + } + location /encryption/ { + set $target http://encryption.dev.svc.cluster.local; + rewrite ^/encryption/(.*) /$1 break; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_connect_timeout 1; + proxy_send_timeout 30; + proxy_read_timeout 40; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-For $http_x_forwarded_for; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $target; + } + location /discussions/ { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Host $http_host; + proxy_set_header X-NginX-Proxy true; + proxy_redirect off; + # Socket.IO Support + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + set $target http://nodebb-service.dev.svc.cluster.local:4567; + #rewrite ^/discussions/(.*) /$1 break; + proxy_pass $target; + } + location ~* ^/assets/public/(.*) { + # Enabling cache for Response code 200 + expires 1M; + add_header Pragma public; + add_header Cache-Control "public"; + # Enabling compression + gzip on; + gzip_min_length 100000; + gzip_proxied expired no-cache no-store private auth; + gzip_types application/javascript application/x-javascript text/javascript; + if ($request_method = OPTIONS ) { + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods "GET, OPTIONS, PATCH, POST"; + add_header Access-Control-Allow-Headers "Access-Control-Allow-Origin, Authorization, Content-Type, user-id"; + # add_header Access-Control-Allow-Credentials "true"; + add_header Content-Length 0; + add_header Content-Type text/plain; + return 200; + } + set $bucket "https://{{ .Values.cloud_public_storage_accountname }}/{{ .Values.cloud_public_storage_container }}"; + set $url_full '$1'; + proxy_http_version 1.1; + proxy_set_header Host "{{ .Values.cloud_public_storage_accountname }}"; + proxy_set_header Authorization ''; + proxy_hide_header Access-Control-Allow-Origin; + proxy_hide_header Access-Control-Allow-Methods; + proxy_hide_header x-amz-id-2; + proxy_hide_header x-amz-request-id; + proxy_hide_header Set-Cookie; + proxy_ignore_headers "Set-Cookie"; + proxy_buffering off; + proxy_intercept_errors on; + add_header Access-Control-Allow-Origin "*"; + add_header Access-Control-Allow-Methods GET; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $bucket/$url_full; + } + location ~* ^/content/preview/(.*) { + # Enabling compression + gzip on; + gzip_min_length 100000; + gzip_proxied expired no-cache no-store private auth; + gzip_types application/javascript application/x-javascript text/css text/javascript; + if ($request_method = OPTIONS ) { + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods "GET, OPTIONS, PATCH, POST"; + add_header Access-Control-Allow-Headers "Access-Control-Allow-Origin, Authorization, Content-Type, user-id"; + # add_header Access-Control-Allow-Credentials "true"; + add_header Content-Length 0; + add_header Content-Type text/plain; + return 200; + } + set $bucket "https://{{ .Values.cloud_public_storage_accountname }}/{{ .Values.cloud_public_storage_container }}"; + set $url_full '$1'; + proxy_http_version 1.1; + proxy_set_header Host "{{ .Values.cloud_public_storage_accountname }}"; + proxy_set_header Authorization ''; + proxy_hide_header Access-Control-Allow-Origin; + proxy_hide_header Access-Control-Allow-Methods; + proxy_hide_header x-amz-id-2; + proxy_hide_header x-amz-request-id; + proxy_hide_header Set-Cookie; + proxy_ignore_headers "Set-Cookie"; + proxy_buffering off; + proxy_intercept_errors on; + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods GET; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $bucket/v3/preview/$url_full; + } + location ~ /content-editor/telemetry|collection-editor/telemetry { + rewrite ^/(.*) /$1 break; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Connection ""; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://player; + } + location ~* ^/content-editor/(.*) { + # Enabling compression + gzip on; + gzip_min_length 100000; + gzip_proxied expired no-cache no-store private auth; + gzip_types application/javascript application/x-javascript text/css text/javascript; + if ($request_method = OPTIONS ) { + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods "GET, OPTIONS, PATCH, POST"; + add_header Access-Control-Allow-Headers "Access-Control-Allow-Origin, Authorization, Content-Type, user-id"; + # add_header Access-Control-Allow-Credentials "true"; + add_header Content-Length 0; + add_header Content-Type text/plain; + return 200; + } + set $bucket "https://{{ .Values.cloud_public_storage_accountname }}/{{ .Values.cloud_public_storage_container }}"; + set $url_full '$1'; + proxy_http_version 1.1; + proxy_set_header Host "{{ .Values.cloud_public_storage_accountname }}"; + proxy_set_header Authorization ''; + proxy_hide_header Access-Control-Allow-Origin; + proxy_hide_header Access-Control-Allow-Methods; + proxy_hide_header x-amz-id-2; + proxy_hide_header x-amz-request-id; + proxy_hide_header Set-Cookie; + proxy_ignore_headers "Set-Cookie"; + proxy_buffering off; + proxy_intercept_errors on; + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods GET; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $bucket/content-editor/$url_full; + } + location ~* ^/discussion-ui/(.*) { + # Enabling compression + gzip on; + gzip_min_length 100000; + gzip_proxied expired no-cache no-store private auth; + gzip_types application/javascript application/x-javascript text/css text/javascript; + set $bucket "https://{{ .Values.cloud_public_storage_accountname }}/{{ .Values.cloud_public_storage_container }}"; + set $url_full '$1'; + proxy_http_version 1.1; + proxy_set_header Host "{{ .Values.cloud_public_storage_accountname }}"; + proxy_set_header Authorization ''; + proxy_hide_header Access-Control-Allow-Origin; + proxy_hide_header Access-Control-Allow-Methods; + proxy_hide_header x-amz-id-2; + proxy_hide_header x-amz-request-id; + proxy_hide_header Set-Cookie; + proxy_ignore_headers "Set-Cookie"; + proxy_buffering off; + proxy_intercept_errors on; + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods GET; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $bucket/discussion-ui/$url_full; + } + location ~* ^/collection-editor/(.*) { + # Enabling compression + gzip on; + gzip_min_length 100000; + gzip_proxied expired no-cache no-store private auth; + gzip_types application/javascript application/x-javascript text/css text/javascript; + if ($request_method = OPTIONS ) { + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods "GET, OPTIONS, PATCH, POST"; + add_header Access-Control-Allow-Headers "Access-Control-Allow-Origin, Authorization, Content-Type, user-id"; + # add_header Access-Control-Allow-Credentials "true"; + add_header Content-Length 0; + add_header Content-Type text/plain; + return 200; + } + set $bucket "https://{{ .Values.cloud_public_storage_accountname }}/{{ .Values.cloud_public_storage_container }}"; + set $url_full '$1'; + proxy_http_version 1.1; + proxy_set_header Host "{{ .Values.cloud_public_storage_accountname }}"; + proxy_set_header Authorization ''; + proxy_hide_header Access-Control-Allow-Origin; + proxy_hide_header Access-Control-Allow-Methods; + proxy_hide_header x-amz-id-2; + proxy_hide_header x-amz-request-id; + proxy_hide_header Set-Cookie; + proxy_ignore_headers "Set-Cookie"; + proxy_buffering off; + proxy_intercept_errors on; + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods GET; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $bucket/collection-editor/$url_full; + } + location ~* ^/generic-editor/(.*) { + # Enabling compression + gzip on; + gzip_min_length 100000; + gzip_proxied expired no-cache no-store private auth; + gzip_types application/javascript application/x-javascript text/css text/javascript; + if ($request_method = OPTIONS ) { + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods "GET, OPTIONS, PATCH, POST"; + add_header Access-Control-Allow-Headers "Access-Control-Allow-Origin, Authorization, Content-Type, user-id"; + # add_header Access-Control-Allow-Credentials "true"; + add_header Content-Length 0; + add_header Content-Type text/plain; + return 200; + } + set $bucket "https://{{ .Values.cloud_public_storage_accountname }}/{{ .Values.cloud_public_storage_container }}"; + set $url_full '$1'; + proxy_http_version 1.1; + proxy_set_header Host "{{ .Values.cloud_public_storage_accountname }}"; + proxy_set_header Authorization ''; + proxy_hide_header Access-Control-Allow-Origin; + proxy_hide_header Access-Control-Allow-Methods; + proxy_hide_header x-amz-id-2; + proxy_hide_header x-amz-request-id; + proxy_hide_header Set-Cookie; + proxy_ignore_headers "Set-Cookie"; + proxy_buffering off; + proxy_intercept_errors on; + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods GET; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $bucket/generic-editor/$url_full; + } + location ~* ^/content-plugins/(.*) { + # Enabling cache for Response code 200 + expires 1M; + add_header Pragma public; + add_header Cache-Control "public"; + # Enabling compression + gzip on; + gzip_min_length 100000; + gzip_proxied expired no-cache no-store private auth; + gzip_types application/javascript application/x-javascript text/css text/javascript; + if ($request_method = OPTIONS ) { + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods "GET, OPTIONS, PATCH, POST"; + add_header Access-Control-Allow-Headers "Access-Control-Allow-Origin, Authorization, Content-Type, user-id"; + # add_header Access-Control-Allow-Credentials "true"; + add_header Content-Length 0; + add_header Content-Type text/plain; + return 200; + } + set $bucket "https://{{ .Values.cloud_public_storage_accountname }}/{{ .Values.cloud_public_storage_container }}"; + set $url_full '$1'; + proxy_http_version 1.1; + proxy_set_header Host "{{ .Values.cloud_public_storage_accountname }}"; + proxy_set_header Authorization ''; + proxy_hide_header Access-Control-Allow-Origin; + proxy_hide_header Access-Control-Allow-Methods; + proxy_hide_header x-amz-id-2; + proxy_hide_header x-amz-request-id; + proxy_hide_header Set-Cookie; + proxy_ignore_headers "Set-Cookie"; + proxy_buffering off; + proxy_intercept_errors on; + add_header Access-Control-Allow-Origin "*"; + add_header Access-Control-Allow-Methods GET; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass $bucket/content-plugins/$url_full; + } + location /thirdparty { + # Enabling cache for Response code 200 + expires 1M; + add_header Pragma public; + add_header Cache-Control "public"; + # Enabling compression + gzip on; + gzip_min_length 100000; + gzip_proxied expired no-cache no-store private auth; + gzip_types application/javascript application/x-javascript text/css text/javascript; + rewrite ^/(.*) /$1 break; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Connection ""; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://player; + } + location ~* ^/desktop/(.*) { + # Enabling cache for Response code 200 + expires 1M; + add_header Pragma public; + add_header Cache-Control "public"; + # Enabling compression + gzip on; + gzip_min_length 100000; + gzip_proxied expired no-cache no-store private auth; + gzip_types application/javascript application/x-javascript text/css text/javascript; + if ($request_method = OPTIONS ) { + add_header Access-Control-Allow-Origin "*" ; + add_header Access-Control-Allow-Methods "GET, OPTIONS, PATCH, POST"; + add_header Access-Control-Allow-Headers "Access-Control-Allow-Origin, Authorization, Content-Type, user-id"; + # add_header Access-Control-Allow-Credentials "true"; + add_header Content-Length 0; + add_header Content-Type text/plain; + return 200; + } + set $offline_bucket "https://{{ .Values.cloud_public_storage_accountname }}/{{ .Values.cloud_public_storage_container }}/dev-offlineinstaller"; + set $url_full '$1'; + proxy_http_version 1.1; + proxy_set_header Host "{{ .Values.cloud_public_storage_accountname }}"; + proxy_set_header Authorization ''; + proxy_hide_header Access-Control-Allow-Origin; + proxy_hide_header Access-Control-Allow-Methods; + proxy_hide_header x-amz-id-2; + proxy_hide_header x-amz-request-id; + proxy_hide_header Set-Cookie; + proxy_ignore_headers "Set-Cookie"; + proxy_buffering off; + proxy_intercept_errors on; + add_header Access-Control-Allow-Origin "*"; + add_header Access-Control-Allow-Methods GET; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass https://$offline_bucket/$url_full; + } + # compression for svg certs download + location /api/certreg/v2/certs/download { + rewrite ^/api/(.*) /$1 break; + include /etc/nginx/defaults.d/compression.conf; + proxy_set_header Connection ""; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://kong; + } + location /learner/certreg/v2/certs/download { + # Compression + gzip on; + gzip_comp_level 5; + gzip_min_length 50000; # 50KB + gzip_proxied any; + gzip_vary on; + # Content types for compression + gzip_types + application/atom+xml + application/javascript + application/json + application/ld+json + application/manifest+json + application/rss+xml + application/vnd.geo+json + application/vnd.ms-fontobject + application/x-font-ttf + application/x-web-app-manifest+json + application/xhtml+xml + application/xml + font/opentype + image/bmp + image/svg+xml + image/x-icon + text/cache-manifest + text/css + text/plain + add_header test hello; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Connection ""; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://player; + } + location / { + rewrite ^/(.*) /$1 break; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Connection ""; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://player; + } + location /v3/device/register { + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://kong; + proxy_set_header Connection ""; + rewrite ^/v3/device/register/(.*) /v3/device/register/$1 break; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + } + location /action/data/v3/metrics { + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://kong; + proxy_set_header Connection ""; + rewrite ^/action/data/v3/metrics/(.*) /data/v3/metrics/$1 break; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + } + location ~ /resourcebundles/v1/read|/learner/data/v1/(role/read|system/settings/get)|/v1/tenant/info { + # Enabling compression + include /etc/nginx/defaults.d/compression.conf; + # Enabling caching + # caching include Accept-Encoding header also, to provide gziped or plain content as per request + proxy_cache_key "$http_accept_encoding|$request_uri|$request_body"; + proxy_cache medium_cache; + add_header X-Proxy-Cache $upstream_cache_status; + add_header X-Proxy-Cache-Date $upstream_http_date; + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + proxy_cache_revalidate on; + proxy_cache_background_update on; + proxy_cache_lock on; + proxy_cache_valid 200 5m; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://player; + } + location /api/channel/v1/read { + # Enabling compression + include /etc/nginx/defaults.d/compression.conf; + # Enabling caching + # caching include Accept-Encoding header also, to provide gziped or plain content as per request + proxy_cache_key "$http_accept_encoding|$request_uri|$request_body"; + proxy_cache medium_cache; + add_header X-Proxy-Cache $upstream_cache_status; + add_header X-Proxy-Cache-Date $upstream_http_date; + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + proxy_cache_revalidate on; + proxy_cache_background_update on; + proxy_cache_lock on; + proxy_cache_valid 200 5m; + rewrite ^/api/channel/v1/read/(.*) /channel/v1/read/$1 break; + proxy_set_header Connection ""; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://kong; + } + location ~ ^/chatapi/ { + set $target http://router-service.dev.svc.cluster.local:8000; + rewrite ^/chatapi/(.*) /$1 break; + proxy_pass $target; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Connection ""; + proxy_http_version 1.1; + } + location /oauth2callback { + return 200 'OK'; + add_header Content-Type text/plain; + } + location /dial/ { + if ($dial_upstream_host = kong) { + rewrite ^/dial/(.*) /api/dialcode/v2/read/$1; + } + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Scheme $scheme; + proxy_connect_timeout 5; + proxy_send_timeout 60; + proxy_read_timeout 70; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Connection ""; + proxy_http_version 1.1; + proxy_set_header X-Request-ID $sb_request_id; + proxy_pass http://$dial_upstream_host; + } + } +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: nginx-conf + namespace: {{ .Release.namespace }} +data: + nginx.conf: | + user nginx; + worker_processes auto; + error_log /var/log/nginx/error.log warn; + pid /var/run/nginx.pid; + events { + worker_connections 10000; + } + http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + resolver {{ .Values.kube_dns_ip }} valid=30s; + lua_load_resty_core off; + log_format main '$remote_addr - $remote_user [$time_local] ' + '"$request" $status $request_length $body_bytes_sent' + ' $request_time $upstream_response_time $pipe' + ' "$http_referer" "$http_user_agent" "$sb_request_id"' + ' "$http_x_device_id" "$http_x_channel_id" "$http_x_app_id"' + ' "$http_x_app_ver" "$http_x_session_id" '; + access_log /var/log/nginx/access.log main; + # Shared dictionary to store metrics + lua_shared_dict prometheus_metrics 100M; + lua_package_path "/etc/nginx/lua_modules/?.lua"; + # Defining request_id + # If the client send request_id it should be preffered over the default one + map $http_x_request_id $sb_request_id { + default $http_x_request_id; + '' $request_id; + } + # Defining upstream cache status for nginx metrics + map $upstream_cache_status $cache_status { + default $upstream_cache_status; + '' "NONE"; + } + map $http_accept $dial_upstream_host { + default player; + application/ld+json kong; + } + # Defining metrics + init_worker_by_lua_block { + prometheus = require("prometheus").init("prometheus_metrics") + metric_requests = prometheus:counter( + "nginx_http_requests_total", "Number of HTTP requests", {"host", "status", "request_method", "cache_status"}) + metric_latency = prometheus:histogram( + "nginx_http_request_duration_seconds", "HTTP request latency", {"host"}) + metric_connections = prometheus:gauge( + "nginx_http_connections", "Number of HTTP connections", {"state"}) + } + log_by_lua_block { + metric_requests:inc(1, {ngx.var.server_name, ngx.var.status, ngx.var.request_method, ngx.var.cache_status }) + metric_latency:observe(tonumber(ngx.var.request_time), {ngx.var.server_name}) + } + header_filter_by_lua_block { + ngx.header["server"] = nil + } + sendfile on; + #tcp_nopush on; + client_max_body_size 60M; + keepalive_timeout 65s; + keepalive_requests 200; + # Nginx connection limit per ip + limit_conn_zone $binary_remote_addr zone=limitbyaddr:10m; + limit_conn_status 429; + upstream kong { + server kong:8000; + keepalive 1000; + } + upstream player { + server player:8080; + keepalive 1000; + } + # uncomment after player is deployed + #upstream player { + # server player:3000; + # keepalive 1000; + #} + include /etc/nginx/defaults.d/*.conf; + include /etc/nginx/conf.d/*.conf; + ################# + # Caching Block # + ################# + # + # Keywords + # + # proxy_cache_path: path to store the cache content + # level: how many directories we need, 1:2 means 1 parent directory, and another child directory before the cache content. + # keys_zone: name of the cache and size of the keys store in RAM; 1‑MB zone can store data for about 8,000 keys + # max_size: size of the cache content in disk + # inactive: specifies how long an item can remain in the cache without being accessed. This doesn't value expiry time of cache. So keep it more than the expiry. + # use_temp_path: do we have to write the cache to a temp path first? This will reduce the performance. + # + # caching for images and files + proxy_cache_path /tmp/large_cache levels=1:2 keys_zone=large_cache:3m max_size=100m inactive=10m use_temp_path=off; + proxy_cache_path /tmp/medium_cache levels=1:2 keys_zone=medium_cache:2m max_size=50m inactive=10m use_temp_path=off; + proxy_cache_path /tmp/small_cache levels=1:2 keys_zone=small_cache:1m max_size=10m inactive=10m use_temp_path=off; + + server { + listen 9145; + location /metrics { + content_by_lua_block { + metric_connections:set(ngx.var.connections_reading, {"reading"}) + metric_connections:set(ngx.var.connections_waiting, {"waiting"}) + metric_connections:set(ngx.var.connections_writing, {"writing"}) + prometheus:collect() + } + } + } + } diff --git a/helmchart/nginx-public-ingress/templates/daemonset.yaml b/helmchart/nginx-public-ingress/templates/daemonset.yaml new file mode 100644 index 0000000000..e660fbf635 --- /dev/null +++ b/helmchart/nginx-public-ingress/templates/daemonset.yaml @@ -0,0 +1,104 @@ +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: nginx-public-ingress + namespace: {{ .Release.namespace }} +spec: + selector: + matchLabels: + app: nginx-public-ingress + updateStrategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 25% + template: + metadata: + annotations: + nginxRolloutID: {{ randAlphaNum 5 | quote }} # Restart nginx after every deployment + fluentbit.io/parser: nginx2 + labels: + app: nginx-public-ingress + spec: + # Running nginx with custom config +{{- if .Values.imagepullsecrets }} + imagePullSecrets: + - name: {{ .Values.imagepullsecrets }} +{{- end }} + volumes: + - name: tls + secret: + secretName: ingress-cert + - name: proxy-config + configMap: + name: proxy-default + - name: nginx-config + configMap: + name: nginx-conf +# {{- if .Values.apple_universal_links }} +# - name: apple-site-association +# configMap: +# name: apple-universal-links +# {{- end }} + containers: + - name: nginx-public + image: "{{ .Values.dockerhub }}/{{ .Values.repository }}:{{ .Values.image_tag }}" + resources: +{{ toYaml .Values.resources | indent 10 }} + volumeMounts: + - name: tls + mountPath: /etc/secrets + readOnly: true + - name: proxy-config + mountPath: /etc/nginx/defaults.d + - name: nginx-config + mountPath: /etc/nginx/nginx.conf + subPath: nginx.conf +# {{- if .Values.apple_universal_links }} +# - name: apple-site-association +# mountPath: /var/www/html +# {{- end }} + + ports: + - containerPort: 80 + name: http + - containerPort: 443 + name: https + - containerPort: 9145 + name: http-metrics +--- +apiVersion: v1 +kind: Service +metadata: + name: nginx-public-ingress-metrics + namespace: {{ .Release.namespace }} + labels: +{{- include "nginx-public-ingress.labels" . | nindent 4 }} +spec: + selector: + app: nginx-public-ingress + ports: + - name: http + port: 9145 + targetPort: 9145 + protocol: TCP +--- +apiVersion: v1 +kind: Service +metadata: + name: nginx-public-ingress + namespace: {{ .Release.namespace }} +{{- if .Values.service.annotations }} + annotations: +{{ toYaml .Values.service.annotations | indent 4 }} +{{- end }} +spec: + externalTrafficPolicy: Local + selector: + app: nginx-public-ingress + type: {{ .Values.service.type }} +{{- if and .Values.service.nginx_public_ingress_ip (ne .Values.service.type "NodePort") }} + loadBalancerIP: {{ .Values.service.nginx_public_ingress_ip }} +{{- end }} + ports: +{{ toYaml .Values.service.ports | indent 4 }} diff --git a/helmchart/nginx-public-ingress/templates/recordingRules.yaml b/helmchart/nginx-public-ingress/templates/recordingRules.yaml new file mode 100644 index 0000000000..1701d08332 --- /dev/null +++ b/helmchart/nginx-public-ingress/templates/recordingRules.yaml @@ -0,0 +1,50 @@ +{{- if .Values.serviceMonitor.enabled }} +{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.serviceMonitor.enabled ) }} +apiVersion: monitoring.coreos.com/v1 +kind: PrometheusRule +metadata: + name: {{ include "nginx-public-ingress.fullname" . }}-recording.rule + namespace: {{ default .Values.namespace .Release.Namespace }} + labels: + {{- include "nginx-public-ingress.labels" . | nindent 4 }} + {{- toYaml .Values.serviceMonitor.labels | nindent 4 }} +spec: + groups: + - name: nginx-recording.rules + rules: + - expr: sum(irate(nginx_http_requests_total[1m])) by (cache_status, host, env, status) + record: job:nginx_http_requests_total:irate:sum:1m + - expr: sum(irate(nginx_http_requests_total[5m])) by (cache_status, host, env, status) + record: job:nginx_http_requests_total:irate:sum:5m + - expr: sum(irate(nginx_http_requests_total[15m])) by (cache_status, host, env, status) + record: job:nginx_http_requests_total:irate:sum:15m + - record: job:nginx_http_success_percentage:increase:sum:5m + expr: |- + ( + sum(increase(nginx_http_requests_total{status!~"4..|5.."}[5m])) by (status) + / + ignoring(status) group_left sum(increase(nginx_http_requests_total[5m])) + ) * 100 + - record: job:nginx_http_success_percentage:increase:sum:15m + expr: |- + ( + sum(increase(nginx_http_requests_total{status!~"4..|5.."}[15m])) by (status) + / + ignoring(status) group_left sum(increase(nginx_http_requests_total[15m])) + ) * 100 + - record: job:nginx_http_failure_percentage:increase:sum:5m + expr: |- + ( + sum(increase(nginx_http_requests_total{status!~"2..|3.."}[5m])) by (status) + / + ignoring(status) group_left sum(increase(nginx_http_requests_total[5m])) + ) * 100 + - record: job:nginx_http_failure_percentage:increase:sum:15m + expr: |- + ( + sum(increase(nginx_http_requests_total{status!~"2..|3.."}[15m])) by (status) + / + ignoring(status) group_left sum(increase(nginx_http_requests_total[15m])) + ) * 100 +{{- end }} +{{- end }} diff --git a/helmchart/nginx-public-ingress/templates/secrets.yaml b/helmchart/nginx-public-ingress/templates/secrets.yaml new file mode 100644 index 0000000000..13cb456ad1 --- /dev/null +++ b/helmchart/nginx-public-ingress/templates/secrets.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Secret +metadata: + name: ingress-cert + namespace: {{ .Release.namespace }} +type: kubernetes.io/tls +data: + tls.crt: {{ .Values.core_vault_proxy_site_crt | b64enc }} + tls.key: {{ .Values.core_vault_proxy_site_key | b64enc }} diff --git a/helmchart/nginx-public-ingress/templates/serviceMonitor.yml b/helmchart/nginx-public-ingress/templates/serviceMonitor.yml new file mode 100644 index 0000000000..ea8ea50cf7 --- /dev/null +++ b/helmchart/nginx-public-ingress/templates/serviceMonitor.yml @@ -0,0 +1,27 @@ +{{- if .Values.serviceMonitor.enabled }} +{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.serviceMonitor.enabled ) }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "nginx-public-ingress.fullname" . }} + namespace: {{ default .Values.namespace .Release.Namespace }} + labels: + {{- include "nginx-public-ingress.labels" . | nindent 4 }} + {{- toYaml .Values.serviceMonitor.labels | nindent 4 }} +spec: + endpoints: + - honorLabels: true + interval: 15s + path: /metrics + port: http + scheme: http + scrapeTimeout: 10s + jobLabel: nginx-public-ingress + namespaceSelector: + matchNames: + - {{ default .Values.namespace .Release.Namespace }} + selector: + matchLabels: + {{- include "nginx-public-ingress.labels" . | nindent 6 }} +{{- end }} +{{- end }} diff --git a/helmchart/nginx-public-ingress/values.yaml b/helmchart/nginx-public-ingress/values.yaml new file mode 100644 index 0000000000..6bdb96b0ed --- /dev/null +++ b/helmchart/nginx-public-ingress/values.yaml @@ -0,0 +1,196 @@ +#jinja2:lstrip_blocks: True + +nginx_private_ingress_ip: "10.0.1.22" +domain: sunbirded1.dev.org +cloud_public_storage_accountname: sunbirddevpublic.blob.core.windows.net +cloud_public_storage_container: sunbird-content-dev +kube_dns_ip: "10.233.0.1" +core_vault_proxy_site_key: |+ + -----BEGIN PRIVATE KEY----- + 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 + 5+XuRvWAFxTQIbZp3aA1Cl6YgocZRg== + -----END PRIVATE KEY----- +core_vault_proxy_site_crt: |+ + -----BEGIN CERTIFICATE----- + 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 + Bkd8yR70 + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw + TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh + cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw + WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg + RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK + AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP + R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx + sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm + NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg + Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG + /kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC + AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB + Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA + FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw + AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw + Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB + gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W + PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl + ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz + CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm + lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4 + avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2 + yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O + yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids + hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+ + HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv + MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX + nLRbwHOoq7hHwg== + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/ + MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT + DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow + TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh + cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB + AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC + ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL + wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D + LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK + 4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5 + bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y + sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ + Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4 + FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc + SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql + PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND + TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw + SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1 + c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx + +tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB + ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu + b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E + U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu + MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC + 5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW + 9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG + WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O + he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC + Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5 + -----END CERTIFICATE----- + + +merge_domain_status: false +merge_domain: merger.sunbirded1.dev.org +service: + annotations: + service.beta.kubernetes.io/azure-load-balancer-external: "true" + type: LoadBalancer + + ports: + - port: 80 + name: http + targetPort: 80 + nodePort: 31380 + - port: 443 + name: https + targetPort: 443 + nodePort: 31390 + +imagepullsecrets: "" +dockerhub: docker.io + +resources: + requests: + cpu: '100m' + memory: '100Mi' + limits: + cpu: 1 + memory: '1024Mi' + +repository: tsprasath91/proxy +image_tag: release-5.1.0 + +serviceMonitor: + enabled: false + labels: # labels with which the prometheus choose the serviceMonitor + app: prometheus-operator + release: prometheus-operator diff --git a/helmchart/portal/Chart.yaml b/helmchart/portal/Chart.yaml new file mode 100644 index 0000000000..399a8eb2da --- /dev/null +++ b/helmchart/portal/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +name: sunbird-ed-portal +description: A Helm chart for Sunbird Ed Portal service + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "5.0.0" diff --git a/helmchart/portal/charts/.helmignore b/helmchart/portal/charts/.helmignore new file mode 100644 index 0000000000..691fa13d6a --- /dev/null +++ b/helmchart/portal/charts/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ \ No newline at end of file diff --git a/helmchart/portal/charts/common/.helmignore b/helmchart/portal/charts/common/.helmignore new file mode 100644 index 0000000000..691fa13d6a --- /dev/null +++ b/helmchart/portal/charts/common/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ \ No newline at end of file diff --git a/helmchart/portal/charts/common/Chart.yaml b/helmchart/portal/charts/common/Chart.yaml new file mode 100644 index 0000000000..06cdb80cf2 --- /dev/null +++ b/helmchart/portal/charts/common/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +name: common +description: A helm chart for common templates + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: library + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "5.2.0" \ No newline at end of file diff --git a/helmchart/portal/charts/common/templates/_helpers.tpl b/helmchart/portal/charts/common/templates/_helpers.tpl new file mode 100644 index 0000000000..bd9f5b73f9 --- /dev/null +++ b/helmchart/portal/charts/common/templates/_helpers.tpl @@ -0,0 +1,3 @@ +{{- define "common.read.configmap.name" -}} +{{- printf "%s-config" .Chart.Name -}} +{{- end -}} \ No newline at end of file diff --git a/helmchart/portal/charts/common/templates/_randomize.tpl b/helmchart/portal/charts/common/templates/_randomize.tpl new file mode 100644 index 0000000000..197527323c --- /dev/null +++ b/helmchart/portal/charts/common/templates/_randomize.tpl @@ -0,0 +1,3 @@ +{{- define "common.randomize" }} + {{- randAlphaNum . | trim }} +{{- end }} \ No newline at end of file diff --git a/helmchart/portal/charts/common/templates/_readsecret.tpl b/helmchart/portal/charts/common/templates/_readsecret.tpl new file mode 100644 index 0000000000..f11264f7aa --- /dev/null +++ b/helmchart/portal/charts/common/templates/_readsecret.tpl @@ -0,0 +1,40 @@ +{{- define "common.read.secret" -}} +{{- $secret := (lookup "v1" "Secret" .Namespace .Name).data -}} +{{- if $secret -}} + {{- if hasKey $secret .Key -}} + {{- index $secret .Key | b64dec -}} + {{- else -}} + {{- if .LocalDevelopment -}} + {{- printf "Ignoring API server errors to allow templating" -}} + {{- else -}} + {{- printf "ERROR | %s | The secret \"%s\" does not contain the key \"%s\" in namespace \"%s\"" .ChartName .Name .Key .Namespace | fail -}} + {{- end -}} + {{- end -}} +{{ else -}} + {{- if .LocalDevelopment -}} + {{- printf "Ignoring API server errors to allow templating" -}} + {{- else -}} + {{- printf "ERROR | %s | The secret \"%s\" does not exist in the namespace \"%s\"" .ChartName .Name .Namespace | fail -}} + {{- end -}} +{{- end -}} +{{- end -}} + +{{- define "common.secret.exists" -}} +{{ $secret := (lookup "v1" "Secret" .Namespace .Name).data}} +{{- if $secret -}} + {{- if hasKey $secret .Key -}} + {{- true -}} + {{- else -}} + {{- false -}} + {{- end -}} +{{- end -}} +{{- end -}} + +{{- define "common.secret.as.map" -}} +{{ $secret := (lookup "v1" "Secret" .Namespace .Name).data}} +{{- if $secret -}} + {{- $secret -}} +{{- else -}} + {{- false -}} +{{- end -}} +{{- end -}} \ No newline at end of file diff --git a/helmchart/portal/charts/common/templates/_valdations.tpl b/helmchart/portal/charts/common/templates/_valdations.tpl new file mode 100644 index 0000000000..c13304ed12 --- /dev/null +++ b/helmchart/portal/charts/common/templates/_valdations.tpl @@ -0,0 +1,9 @@ +{{- define "common.valid.csps" -}} +{{- $validcsps := "azure or aws or gcloud" -}} +{{- printf "%s" $validcsps -}} +{{- end -}} + +{{- define "common.csp.validation" -}} +{{- $csplist := list "azure" "aws" "gcloud" -}} +{{- has . $csplist -}} +{{- end -}} \ No newline at end of file diff --git a/helmchart/portal/charts/common/values.yaml b/helmchart/portal/charts/common/values.yaml new file mode 100644 index 0000000000..c35424a597 --- /dev/null +++ b/helmchart/portal/charts/common/values.yaml @@ -0,0 +1 @@ +## Common helm templates \ No newline at end of file diff --git a/helmchart/portal/portal-sample-values.yaml b/helmchart/portal/portal-sample-values.yaml new file mode 100644 index 0000000000..de5c63c236 --- /dev/null +++ b/helmchart/portal/portal-sample-values.yaml @@ -0,0 +1,23 @@ +## This section has mandatory variables +## You must provide a value for these +## If you don't provide a value for these variables, the chart installation will not proceed + +cloud_public_storage_accountname: testing +cloud_public_storage_secret: BASE64_SECRET_KEY +sunbird_azure_account_key: BASE64_SECRET_KEY +sunbird_azure_account_name: testing +sunbird_azure_report_container_name: report +sunbird_azure_storage_account_name: https://PUBLIC_STORAGE_URL.blob.core.windows.net/ +cloud_private_storage_accountname: testing +cloud_private_storage_secret: BASE64_SECRET_KEY +cloud_service_provider: azure +sunbird_anonymous_default_token: KONG_TOKEN +sunbird_anonymous_register_token: KONG_TOKEN +sunbird_api_auth_token: KONG_TOKEN +sunbird_logged_default_token: KONG_TOKEN +sunbird_loggedin_register_token: KONG_TOKEN + +## This section has optional variables +## It is strongly recommended to provide a value for these +## If you don't provide a value for these variables, they will default to empty values +## If these variables are empty, some features on the application might not work as expected diff --git a/helmchart/portal/templates/_helpers.tpl b/helmchart/portal/templates/_helpers.tpl new file mode 100644 index 0000000000..3e091d110f --- /dev/null +++ b/helmchart/portal/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "sb-ed-portal-service.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "sb-ed-portal-service.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "sb-ed-portal-service.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "sb-ed-portal-service.labels" -}} +helm.sh/chart: {{ include "sb-ed-portal-service.chart" . }} +{{ include "sb-ed-portal-service.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "sb-ed-portal-service.selectorLabels" -}} +app.kubernetes.io/name: {{ include "sb-ed-portal-service.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "sb-ed-portal-service.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "sb-ed-portal-service.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/helmchart/portal/templates/configmap.yaml b/helmchart/portal/templates/configmap.yaml new file mode 100644 index 0000000000..4c32841a52 --- /dev/null +++ b/helmchart/portal/templates/configmap.yaml @@ -0,0 +1,218 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Chart.Name }}-config + namespace: {{ .Release.Namespace }} +data: + {{/* This section has variables whose value is read from another object */}} + + {{/* This section has variables which in turn contain one or more mandatory variables */}} + cloud_service_provider: {{ if eq (include "common.csp.validation" .Values.cloud_service_provider) "true" }} + {{- .Values.cloud_service_provider }} + {{- else -}} + {{- printf "ERROR | %s | Please provide a valid value for \"cloud_service_provider\". Accepted values are \"%s\"" .Chart.Name (include "common.valid.csps" .) | fail }} + {{- end }} + + AZURE_STORAGE_ACCOUNT: {{ if .Values.cloud_public_storage_accountname }} + {{- .Values.cloud_public_storage_accountname }} + {{- else -}} + {{- printf "ERROR | %s | Please provide a value for \"cloud_public_storage_accountname\"" .Chart.Name | fail }} + {{- end }} + + AZURE_STORAGE_KEY: {{ if .Values.cloud_public_storage_secret }} + {{- .Values.cloud_public_storage_secret }} + {{- else -}} + {{- printf "ERROR | %s | Please provide a value for \"cloud_public_storage_secret\"" .Chart.Name | fail }} + {{- end }} + + cloud_private_storage_accountname: {{ if .Values.cloud_private_storage_accountname }} + {{- .Values.cloud_private_storage_accountname }} + {{- else -}} + {{- printf "ERROR | %s | Please provide a value for \"cloud_private_storage_accountname\"" .Chart.Name | fail }} + {{- end }} + + {{/* uncomment for GCP + cloud_private_storage_project: {{ if .Values.cloud_private_storage_project }} + {{- .Values.cloud_private_storage_project }} + {{- else -}} + {{- printf "ERROR | %s | Please provide a value for \"cloud_private_storage_project\"" .Chart.Name | fail }} + {{- end }} + + cloud_private_storage_region: {{ if .Values.cloud_private_storage_region }} + {{- .Values.cloud_private_storage_region }} + {{- else -}} + {{- printf "ERROR | %s | Please provide a value for \"cloud_private_storage_region\"" .Chart.Name | fail }} + {{- end }} + + sunbird_gcloud_bucket_name: {{ .Values.sunbird_gcloud_bucket_name }} + sunbird_gcloud_client_email: {{ .Values.sunbird_gcloud_client_email }} + sunbird_gcloud_labels: {{ .Values.sunbird_gcloud_labels }} + sunbird_gcloud_private_key: {{ .Values.sunbird_gcloud_private_key }} + sunbird_gcloud_projectId: {{ .Values.sunbird_gcloud_projectId }} + sunbird_gcloud_reports: {{ .Values.sunbird_gcloud_reports }} + */}} + + {{/* uncomment AWS + # sunbird_aws_access_key: {{ .Values.sunbird_aws_access_key }} + # sunbird_aws_bucket_name: {{ .Values.sunbird_aws_bucket_name }} + # sunbird_aws_labels: {{ .Values.sunbird_aws_labels }} + # sunbird_aws_region: {{ .Values.sunbird_aws_region }} + # sunbird_aws_reports: {{ .Values.sunbird_aws_reports }} + # sunbird_aws_secret_key: {{ .Values.sunbird_aws_secret_key }} + */}} + cloud_private_storage_secret: {{ if .Values.cloud_private_storage_secret }} + {{- .Values.cloud_private_storage_secret }} + {{- else -}} + {{- printf "ERROR | %s | Please provide a value for \"cloud_private_storage_secret\"" .Chart.Name | fail }} + {{- end }} + + cloud_storage_desktopCrash_bucketname: {{ if .Values.cloud_storage_desktopCrash_bucketname }} + {{- .Values.cloud_storage_desktopCrash_bucketname }} + {{- else -}} + {{- printf "ERROR | %s | Please provide a value for \"cloud_storage_desktopCrash_bucketname\"" .Chart.Name | fail }} + {{- end }} + + cloud_storage_privatereports_bucketname: {{ if .Values.cloud_storage_privatereports_bucketname }} + {{- .Values.cloud_storage_privatereports_bucketname }} + {{- else -}} + {{- printf "ERROR | %s | Please provide a value for \"cloud_storage_privatereports_bucketname\"" .Chart.Name | fail }} + {{- end }} + + cloud_storage_resourceBundle_bucketname: {{ if .Values.cloud_storage_resourceBundle_bucketname }} + {{- .Values.cloud_storage_resourceBundle_bucketname }} + {{- else -}} + {{- printf "ERROR | %s | Please provide a value for \"cloud_storage_resourceBundle_bucketname\"" .Chart.Name | fail }} + {{- end }} + + config_refresh_interval: {{ .Values.config_refresh_interval | quote }} + config_service_enabled: {{ .Values.config_service_enabled | quote}} + crypto_encryption_key: {{ .Values.crypto_encryption_key }} + crypto_encryption_key_external: {{ .Values.crypto_encryption_key_external | quote }} + desktop_app_storage_url: {{ .Values.desktop_app_storage_url }} + discussions_middleware: {{ .Values.discussions_middleware }} + ekstep_env: {{ .Values.ekstep_env }} + google_captcha_private_key: {{ .Values.google_captcha_private_key | quote }} + ml_survey_url: {{ .Values.ml_survey_url }} + portal_redirect_error_callback_domain: {{ .Values.portal_redirect_error_callback_domain }} + portal_redis_connection_string: {{ .Values.portal_redis_connection_string }} + reportsListVersion: {{ .Values.reportsListVersion }} + sunbird_android_app_url: {{ .Values.sunbird_android_app_url | quote }} + sunbird_android_keycloak_client_id: {{ .Values.sunbird_android_keycloak_client_id }} + sunbird_anonymous_default_token: {{ .Values.sunbird_anonymous_default_token }} + sunbird_anonymous_device_register_api: {{ .Values.sunbird_anonymous_device_register_api }} + sunbird_anonymous_register_token: {{ .Values.sunbird_anonymous_register_token }} + sunbird_anonymous_session_ttl: {{ .Values.sunbird_anonymous_session_ttl | quote }} + sunbird_api_auth_token: {{ .Values.sunbird_api_auth_token }} + sunbird_api_request_timeout: {{ .Values.sunbird_api_request_timeout | quote }} + sunbird_autocreate_trampoline_user: {{ .Values.sunbird_autocreate_trampoline_user | quote }} + sunbird_azure_account_key: {{ .Values.sunbird_azure_account_key }} + sunbird_azure_account_name: {{ .Values.sunbird_azure_account_name }} + sunbird_azure_report_container_name: {{ .Values.sunbird_azure_report_container_name }} + sunbird_azure_storage_account_name: {{ .Values.sunbird_azure_storage_account_name }} + sunbird_base_proto: {{ .Values.sunbird_base_proto }} + sunbird_bot_configured: {{ .Values.sunbird_bot_configured | quote }} + sunbird_bot_service_URL: {{ .Values.sunbird_bot_service_URL }} + sunbird_build_number: {{ .Values.sunbird_build_number | quote }} + sunbird_cassandra_consistency_level: {{ .Values.sunbird_cassandra_consistency_level }} + sunbird_cassandra_replication_strategy: {{ .Values.sunbird_cassandra_replication_strategy | quote }} + sunbird_cassandra_urls: {{ .Values.sunbird_cassandra_urls}} + sunbird_cloud_storage_provider: {{ .Values.cloud_service_provider }} + sunbird_cloud_storage_urls: {{ .Values.sunbird_cloud_storage_urls }} + sunbird_collection_children_limit: {{ .Values.sunbird_collection_children_limit | quote }} + sunbird_collectionEditorURL: {{ .Values.sunbird_collectionEditorURL }} + sunbird_config_service_url: {{ .Values.sunbird_config_service_url | quote }} + sunbird_content_player_url: {{ .Values.sunbird_content_player_url }} + sunbird_content_proxy_url: {{ .Values.sunbird_content_proxy_url }} + sunbird_contentEditorURL: {{ .Values.sunbird_contentEditorURL }} + sunbird_data_product_service: {{ .Values.sunbird_data_product_service }} + sunbird_dataservice_url: {{ .Values.sunbird_dataservice_url }} + sunbird_default_channel: {{ .Values.sunbird_default_channel }} + sunbird_default_device_token: {{ .Values.sunbird_default_device_token | quote }} + sunbird_default_file_size: {{ .Values.sunbird_default_file_size | quote }} + sunbird_desktop_keycloak_client_id: {{ .Values.sunbird_desktop_keycloak_client_id }} + sunbird_device_api: {{ .Values.sunbird_device_api }} + sunbird_device_register_api: {{ .Values.sunbird_device_register_api }} + sunbird_echo_api_url: {{ .Values.sunbird_echo_api_url }} + sunbird_enable_api_whitelist: {{ .Values.sunbird_enable_api_whitelist | quote }} + sunbird_enable_permission_check: {{ .Values.sunbird_enable_permission_check | quote }} + sunbird_enable_signup: {{ .Values.sunbird_enable_signup | quote }} + sunbird_enable_sso: {{ .Values.sunbird_enable_sso | quote }} + sunbird_environment: {{ .Values.sunbird_environment }} + sunbird_ext_plugin_url: {{ .Values.sunbird_ext_plugin_url }} + sunbird_external_content_whitelisted_domains: {{ .Values.sunbird_external_content_whitelisted_domains | quote }} + sunbird_genericEditorURL: {{ .Values.sunbird_genericEditorURL }} + sunbird_google_android_keycloak_client_id: {{ .Values.sunbird_google_android_keycloak_client_id }} + sunbird_google_android_keycloak_secret: {{ .Values.sunbird_google_android_keycloak_secret }} + sunbird_google_captcha_site_key: {{ .Values.sunbird_google_captcha_site_key | quote }} + sunbird_google_desktop_keycloak_client_id: {{ .Values.sunbird_google_desktop_keycloak_client_id }} + sunbird_google_desktop_keycloak_secret: {{ .Values.sunbird_google_desktop_keycloak_secret }} + sunbird_google_keycloak_client_id: {{ .Values.sunbird_google_keycloak_client_id }} + sunbird_google_keycloak_secret: {{ .Values.sunbird_google_keycloak_secret }} + sunbird_google_oauth_clientId: {{ .Values.sunbird_google_oauth_clientId }} + sunbird_google_oauth_clientSecret: {{ .Values.sunbird_google_oauth_clientSecret }} + sunbird_google_oauth_ios_clientId: {{ .Values.sunbird_google_oauth_ios_clientId }} + sunbird_google_oauth_ios_clientSecret: {{ .Values.sunbird_google_oauth_ios_clientSecret }} + sunbird_health_check_enable: {{ .Values.sunbird_health_check_enable | quote }} + sunbird_help_link_visibility: {{ .Values.sunbird_help_link_visibility | quote}} + sunbird_instance: {{ .Values.sunbird_instance }} + sunbird_keycloak_public_key: {{ .Values.sunbird_keycloak_public_key }} + sunbird_kong_device_register: {{ .Values.sunbird_kong_device_register | quote }} + sunbird_kong_device_register_anonymous: {{ .Values.sunbird_kong_device_register_anonymous | quote}} + sunbird_kong_refresh_token_api: {{ .Values.sunbird_kong_refresh_token_api }} + sunbird_learner_player_url: {{ .Values.sunbird_learner_player_url }} + sunbird_logged_default_token: {{ .Values.sunbird_logged_default_token }} + sunbird_loggedin_device_register_api: {{ .Values.sunbird_loggedin_device_register_api }} + sunbird_loggedin_register_token: {{ .Values.sunbird_loggedin_register_token }} + sunbird_p1_reCaptcha_enabled: {{ .Values.sunbird_p1_reCaptcha_enabled | quote }} + sunbird_p2_reCaptcha_enabled: {{ .Values.sunbird_p2_reCaptcha_enabled | quote}} + sunbird_p3_reCaptcha_enabled: {{ .Values.sunbird_p3_reCaptcha_enabled | quote }} + sunbird_phraseApp_token: {{ .Values.sunbird_phraseApp_token | quote }} + sunbird_port: {{ .Values.sunbird_port | quote }} + sunbird_portal_auth_server_client: {{ .Values.sunbird_portal_auth_server_client }} + sunbird_portal_auth_server_url: {{ .Values.sunbird_portal_auth_server_url }} + sunbird_portal_base_url: {{ .Values.sunbird_portal_base_url }} + sunbird_portal_cdn_blob_url: {{ .Values.sunbird_portal_cdn_blob_url }} + sunbird_portal_cdn_url: {{ .Values.sunbird_portal_cdn_url | quote }} + sunbird_portal_log_level: {{ .Values.sunbird_portal_log_level }} + sunbird_portal_merge_auth_server_url: {{ .Values.sunbird_portal_merge_auth_server_url }} + sunbird_portal_offline_app_download_url: {{ .Values.sunbird_portal_offline_app_download_url }} + sunbird_portal_offline_app_release_date: {{ .Values.sunbird_portal_offline_app_release_date }} + sunbird_portal_offline_app_version: {{ .Values.sunbird_portal_offline_app_version }} + sunbird_portal_offline_supported_languages: {{ .Values.sunbird_portal_offline_supported_languages }} + sunbird_portal_offline_tenant: {{ .Values.sunbird_portal_offline_tenant }} + sunbird_portal_player_cdn_enabled: {{ .Values.sunbird_portal_player_cdn_enabled | quote }} + sunbird_portal_preview_cdn_url: {{ .Values.sunbird_portal_preview_cdn_url | quote }} + sunbird_portal_realm: {{ .Values.sunbird_portal_realm }} + sunbird_portal_session_secret: {{ .Values.sunbird_portal_session_secret }} + sunbird_portal_slugForProminentFilter: {{ .Values.sunbird_portal_slugForProminentFilter | quote }} + sunbird_portal_title_name: {{ .Values.sunbird_portal_title_name }} + sunbird_portal_uci_blob_url: {{ .Values.sunbird_portal_uci_blob_url }} + sunbird_portal_uci_bot_phone_number: {{ .Values.sunbird_portal_uci_bot_phone_number | quote }} + sunbird_portal_updateLoginTimeEnabled: {{ .Values.sunbird_portal_updateLoginTimeEnabled | quote }} + sunbird_portal_user_upload_ref_link: {{ .Values.sunbird_portal_user_upload_ref_link }} + sunbird_portal_video_max_size: {{ .Values.sunbird_portal_video_max_size | quote }} + sunbird_processing_kafka_host: {{ .Values.sunbird_processing_kafka_host }} + sunbird_questionset_children_limit: {{ .Values.sunbird_questionset_children_limit | quote}} + sunbird_redis_password: {{ .Values.sunbird_redis_password }} + sunbird_redis_port: {{ .Values.sunbird_redis_port | quote }} + sunbird_redis_type: {{ .Values.sunbird_redis_type }} + sunbird_redis_urls: {{ .Values.sunbird_redis_urls }} + sunbird_report_service_url: {{ .Values.sunbird_report_service_url }} + sunbird_response_cache_ttl: {{ .Values.sunbird_response_cache_ttl | quote }} + sunbird_session_store_type: {{ .Values.sunbird_session_store_type }} + sunbird_session_ttl: {{ .Values.sunbird_session_ttl | quote }} + sunbird_sso_kafka_topic: {{ .Values.sunbird_sso_kafka_topic }} + sunbird_super_admin_slug: {{ .Values.sunbird_super_admin_slug }} + sunbird_telemetry_packet_size: {{ .Values.sunbird_telemetry_packet_size | quote }} + sunbird_telemetry_service_local_url: {{ .Values.sunbird_telemetry_service_local_url }} + sunbird_tenant_cdn_url: {{ .Values.sunbird_tenant_cdn_url | quote }} + sunbird_trampoline_android_keycloak_client_id: {{ .Values.sunbird_trampoline_android_keycloak_client_id }} + sunbird_trampoline_android_keycloak_secret: {{ .Values.sunbird_trampoline_android_keycloak_secret }} + sunbird_trampoline_client_id: {{ .Values.sunbird_trampoline_client_id }} + sunbird_trampoline_desktop_keycloak_client_id: {{ .Values.sunbird_trampoline_desktop_keycloak_client_id }} + sunbird_trampoline_desktop_keycloak_secret: {{ .Values.sunbird_trampoline_desktop_keycloak_secret }} + sunbird_trampoline_secret: {{ .Values.sunbird_trampoline_secret }} + vdnURL: {{ .Values.vdnURL | quote }} + + diff --git a/helmchart/portal/templates/deployment.yaml b/helmchart/portal/templates/deployment.yaml new file mode 100644 index 0000000000..cdd1e0c5c6 --- /dev/null +++ b/helmchart/portal/templates/deployment.yaml @@ -0,0 +1,55 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Chart.Name }} + namespace: {{ .Release.Namespace }} + annotations: + reloader.stakater.com/auto: "true" +spec: + replicas: {{ .Values.replicaCount }} + strategy: + rollingUpdate: + maxSurge: {{ .Values.strategy.maxSurge }} + maxUnavailable: {{ .Values.strategy.maxUnavailable }} + type: RollingUpdate + selector: + matchLabels: + app: {{ .Chart.Name }} + template: + metadata: + labels: + app: {{ .Chart.Name }} + spec: +{{- if .Values.imagePullSecrets }} + imagePullSecrets: + - name: {{ .Values.imagePullSecrets }} +{{- end }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: Always + env: + - name: JAVA_OPTIONS + value: {{ .Values.javaOptions }} + - name: _JAVA_OPTIONS + value: -Dlog4j2.formatMsgNoLookups=true + envFrom: + - configMapRef: + name: {{ .Chart.Name }}-config + resources: +{{ toYaml .Values.resources | indent 10 }} + ports: + - containerPort: {{ .Values.port }} + livenessProbe: +{{ toYaml .Values.livenessProbe | indent 10 }} + readinessProbe: +{{ toYaml .Values.readinessProbe | indent 10 }} + volumeMounts: + - mountPath: /home/sunbird/app_dist/keys + name: {{ .Values.external_configmaps.access_public_keys.name }} + volumes: + - name: {{ .Values.external_configmaps.access_public_keys.name }} + secret: + secretName: {{ .Values.external_configmaps.access_public_keys.name }} + diff --git a/helmchart/portal/templates/service.yaml b/helmchart/portal/templates/service.yaml new file mode 100644 index 0000000000..9503c8f1bd --- /dev/null +++ b/helmchart/portal/templates/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Chart.Name }}-service + namespace: {{ .Release.Namespace }} + labels: + app: {{ .Chart.Name }} +spec: + ports: + - name: http-{{ .Chart.Name }} + protocol: TCP + port: {{ .Values.targetPort }} + selector: + app: {{ .Chart.Name }} \ No newline at end of file diff --git a/helmchart/portal/values.yaml b/helmchart/portal/values.yaml new file mode 100644 index 0000000000..124ed09f3b --- /dev/null +++ b/helmchart/portal/values.yaml @@ -0,0 +1,211 @@ +## This section has mandatory variables +## You must provide a value for these +## If you don't provide a value for these variables, the chart installation will not proceed + +AZURE_STORAGE_ACCOUNT: "" +AZURE_STORAGE_KEY: "" +sunbird_azure_account_key: "" +sunbird_azure_account_name: "" +sunbird_azure_report_container_name: "" +sunbird_azure_storage_account_name: "" +cloud_private_storage_accountname: "" +cloud_private_storage_secret: "" +cloud_service_provider: "" +cloud_storage_desktopCrash_bucketname: "" +cloud_storage_privatereports_bucketname: "" +cloud_storage_resourceBundle_bucketname: "" +sunbird_android_keycloak_client_id: "" +sunbird_anonymous_default_token: "" +sunbird_anonymous_register_token: "" +sunbird_api_auth_token: "" +sunbird_logged_default_token: "" + +## This section has optional variables +## It is strongly recommended to provide a value for these +## If you don't provide a value for these variables, they will default to empty values +## If these variables are empty, some features on the application might not work as expected + +google_captcha_private_key: "" +sunbird_google_captcha_site_key: "" + +## This section has variables with default values +## These are standard defaults that work well +## You can override these if you have a use case for it + +cloud_storage_desktopCrash_bucketname: desktopappcrashlogs +cloud_storage_privatereports_bucketname: reports +cloud_storage_resourceBundle_bucketname: label +sunbird_azure_report_container_name: reports +sunbird_anonymous_device_register_api: http://kong:8000/api-manager/v2/consumer/portal_anonymous/credential/register +sunbird_anonymous_session_ttl: "1800000" +config_refresh_interval: "10" +config_service_enabled: "False" +crypto_encryption_key: 030702bc8696b8ee2aa71b9f13e4251e +crypto_encryption_key_external: "" +desktop_app_storage_url: https://dev.blob.core.windows.net/staging-offlineinstaller +discussions_middleware: http://discussionsmw-service:3002 +ekstep_env: qa +ml_survey_url: https://survey.preprod.ntp.net.in/staging +portal_redirect_error_callback_domain: https://testing.sunbirded.org +portal_redis_connection_string: redis://:@redis-master.lern.svc.cluster.local:6379/3 +reportsListVersion: v2 +sunbird_android_app_url: "" +sunbird_api_request_timeout: "60000" +sunbird_autocreate_trampoline_user: "false" +sunbird_base_proto: https +sunbird_bot_configured: "true" +sunbird_bot_service_URL: /chatapi/bot +sunbird_build_number: "" +sunbird_cassandra_consistency_level: quorum +sunbird_cassandra_replication_strategy: '{"class":"NetworkTopologyStrategy","datacenter1":2}' +sunbird_cassandra_urls: cassandra.lern.svc.cluster.local:9042 +sunbird_cloud_storage_urls: https://dev.blob.core.windows.net/dev-content +sunbird_collection_children_limit: "1200" +sunbird_collectionEditorURL: collection-editor/index.html +sunbird_config_service_url: "" +sunbird_content_player_url: http://kong:8000/ +sunbird_content_proxy_url: http://knowledge-mw-service:5000 +sunbird_contentEditorURL: content-editor/index.html +sunbird_data_product_service: http://kong:8000/ +sunbird_dataservice_url: https://testing.sunbirded.org/api/ +sunbird_default_channel: ntp +sunbird_default_device_token: "" +sunbird_default_file_size: "150" +sunbird_desktop_keycloak_client_id: desktop +sunbird_device_api: http://kong:8000/ +sunbird_device_register_api: https://testing.sunbired.org/v3/device/register/ +sunbird_echo_api_url: http://kong:8000/echo/ +sunbird_enable_api_whitelist: "true" +sunbird_enable_permission_check: "1" +sunbird_enable_signup: "True" +sunbird_enable_sso: "true" +sunbird_environment: staging +sunbird_ext_plugin_url: http://player:3000/plugin/ +sunbird_external_content_whitelisted_domains: "" +sunbird_genericEditorURL: generic-editor/index.html +sunbird_google_oauth_clientId: google_oauth_clientId +sunbird_google_oauth_clientSecret: google_oauth_clientSecret +sunbird_google_oauth_ios_clientId: google_oauth_ios_clientId +sunbird_google_oauth_ios_clientSecret: google_oauth_ios_clientSecret +sunbird_health_check_enable: "false" +sunbird_help_link_visibility: "True" +sunbird_instance: sunbird +sunbird_kong_device_register: "true" +sunbird_kong_device_register_anonymous: "true" +sunbird_kong_refresh_token_api: http://kong:8000/auth/v1/refresh/token +sunbird_learner_player_url: http://kong:8000/ +sunbird_loggedin_device_register_api: http://kong:8000/api-manager/v2/consumer/portal_loggedin/credential/register +sunbird_p1_reCaptcha_enabled: "true" +sunbird_p2_reCaptcha_enabled: "true" +sunbird_p3_reCaptcha_enabled: "true" +sunbird_phraseApp_token: "" +sunbird_port: "3000" +sunbird_portal_auth_server_client: portal +sunbird_portal_auth_server_url: https://testing.sunbirded.org/auth +sunbird_portal_base_url: https://testing.sunbirded.org +sunbird_portal_cdn_blob_url: https://dev.blob.core.windows.net/uci/ +sunbird_portal_cdn_url: "" +sunbird_portal_log_level: debug +sunbird_portal_merge_auth_server_url: https://merge.testing.sunbirded.org/auth +sunbird_portal_offline_app_download_url: https://play.google.com/store/apps/details?id=in.gov.diksha.app +sunbird_portal_offline_app_release_date: 17/3/2020 +sunbird_portal_offline_app_version: 1.2.0 +sunbird_portal_offline_supported_languages: English, Assamese, Bengali, Gujarati, + Hindi, Kannada, Malayalam, Marathi, Oriya, Punjabi, Tamil, Telugu, Urdu +sunbird_portal_offline_tenant: tn +sunbird_portal_player_cdn_enabled: "true" +sunbird_portal_preview_cdn_url: "" +sunbird_portal_realm: sunbird +sunbird_portal_session_secret: portal_session_secret +sunbird_portal_slugForProminentFilter: "" +sunbird_portal_title_name: Sunbird +sunbird_portal_uci_blob_url: https://gpublic.blob.core.windows.net/uci +sunbird_portal_uci_bot_phone_number: "000000" +sunbird_portal_updateLoginTimeEnabled: "false" +sunbird_portal_user_upload_ref_link: https://testing.sunbirded.org/help/administrator/register-user/index.html +sunbird_portal_video_max_size: "150" +sunbird_processing_kafka_host: kafka.lern.svc.cluster.local:9092 +sunbird_questionset_children_limit: "500" +sunbird_redis_password: none +sunbird_redis_port: "6379" +sunbird_redis_type: standalone +sunbird_redis_urls: redis +sunbird_report_service_url: http://kong:8000/data/v1/report-service +sunbird_response_cache_ttl: "180" +sunbird_session_store_type: redis +sunbird_session_ttl: "86400000" +sunbird_sso_kafka_topic: sunbirdstaging.lms.sso.events +sunbird_super_admin_slug: tn +sunbird_telemetry_packet_size: "200" +sunbird_telemetry_service_local_url: http://kong:8000/data/ +sunbird_tenant_cdn_url: "" +vdnURL: "" +sunbird_google_android_keycloak_client_id: google-auth-android +sunbird_google_android_keycloak_secret: google_android_keycloak_secret +sunbird_google_desktop_keycloak_client_id: google-auth-desktop +sunbird_google_desktop_keycloak_secret: google_desktop_keycloak_secret +sunbird_google_keycloak_client_id: google-auth +sunbird_google_keycloak_secret: google_keycloak_secret +sunbird_trampoline_android_keycloak_client_id: trampoline-android +sunbird_trampoline_android_keycloak_secret: rampoline_android_keycloak_secret +sunbird_trampoline_client_id: trampoline +sunbird_trampoline_desktop_keycloak_client_id: trampoline-desktop +sunbird_trampoline_desktop_keycloak_secret: trampoline_desktop_keycloak_secret +sunbird_trampoline_secret: trampoline_secret +sunbird_keycloak_public_key: keycloak_public_key +sunbird_android_keycloak_client_id: android + +## Helper variables which are used to construct other variables +external_configmaps: + access_public_keys: + name: user-access-keys-public + +## Set this value to true when developing the chart +local_chart_development: true + + +## This section has other kubernetes variables +## These are standard defaults that work well +## You can override these if you have a use case for it +image: + registry: sunbirded.azurecr.io + repository: player + tag: release-5.2.0_RC13_1 + +replicaCount: 1 +strategy: + maxSurge: 25% + maxUnavailable: 25% + +imagePullSecrets: "" + +resources: + requests: + cpu: 100m + memory: 100Mi + limits: + cpu: 1 + memory: 1G + +port: 3000 + +targetPort: 3000 + +livenessProbe: + failureThreshold: 2 + httpGet: + path: /service/health + port: 3000 + initialDelaySeconds: 15 + periodSeconds: 15 + timeoutSeconds: 5 + +readinessProbe: + failureThreshold: 2 + httpGet: + path: /service/health + port: 3000 + initialDelaySeconds: 15 + periodSeconds: 15 + timeoutSeconds: 5 + diff --git a/helmchart/sunbird-ed-portal-0.1.0.tgz b/helmchart/sunbird-ed-portal-0.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f57c3241d74d8097673b02917fcf0b653e1ae0b6 GIT binary patch literal 6740 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 Date: Fri, 28 Apr 2023 10:28:21 +0530 Subject: [PATCH 03/14] Update nginx helm chart --- helmchart/nginx-public-ingress-0.1.0.tgz | Bin 72431 -> 72417 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/helmchart/nginx-public-ingress-0.1.0.tgz b/helmchart/nginx-public-ingress-0.1.0.tgz index e6e0e0b0038a5da7a64ba6ad0b113029e18b1ccf..44cdd6715375d67a1f1c6233878a5de0ed2d7b80 100644 GIT binary patch delta 32397 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

JJ@q6_io)O&yF2g=M5`s*ZKz8_G?uF&MR%U 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 Q00030|Kw3nK>z{*0G+0XRsaA1 delta 32464 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 Date: Fri, 28 Apr 2023 10:49:14 +0530 Subject: [PATCH 04/14] Update portal chart --- helmchart/portal/templates/service.yaml | 4 ++-- helmchart/portal/values.yaml | 2 +- helmchart/sunbird-ed-portal-0.1.0.tgz | Bin 6740 -> 6716 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/helmchart/portal/templates/service.yaml b/helmchart/portal/templates/service.yaml index 9503c8f1bd..a69138737e 100644 --- a/helmchart/portal/templates/service.yaml +++ b/helmchart/portal/templates/service.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: Service metadata: - name: {{ .Chart.Name }}-service + name: player namespace: {{ .Release.Namespace }} labels: app: {{ .Chart.Name }} @@ -11,4 +11,4 @@ spec: protocol: TCP port: {{ .Values.targetPort }} selector: - app: {{ .Chart.Name }} \ No newline at end of file + app: {{ .Chart.Name }} diff --git a/helmchart/portal/values.yaml b/helmchart/portal/values.yaml index 124ed09f3b..1e8ac1210b 100644 --- a/helmchart/portal/values.yaml +++ b/helmchart/portal/values.yaml @@ -46,7 +46,7 @@ desktop_app_storage_url: https://dev.blob.core.windows.net/staging-offlineinstal discussions_middleware: http://discussionsmw-service:3002 ekstep_env: qa ml_survey_url: https://survey.preprod.ntp.net.in/staging -portal_redirect_error_callback_domain: https://testing.sunbirded.org +portal_redirect_error_callback_domain: https://easeinstall.sunbirded.org portal_redis_connection_string: redis://:@redis-master.lern.svc.cluster.local:6379/3 reportsListVersion: v2 sunbird_android_app_url: "" diff --git a/helmchart/sunbird-ed-portal-0.1.0.tgz b/helmchart/sunbird-ed-portal-0.1.0.tgz index f57c3241d74d8097673b02917fcf0b653e1ae0b6..7c76c64f50c0f1bfdffd00778b74fe7f35fe55c4 100644 GIT binary patch delta 6714 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 From d7ebbabf37fab90e6142f883ddbaecb18d7b408c Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Fri, 28 Apr 2023 11:18:05 +0530 Subject: [PATCH 05/14] Update helm charts --- .../nginx-public-ingress/templates/configMap.yaml | 13 ++++++------- helmchart/nginx-public-ingress/values.yaml | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/helmchart/nginx-public-ingress/templates/configMap.yaml b/helmchart/nginx-public-ingress/templates/configMap.yaml index 2159007016..24eb47fee9 100644 --- a/helmchart/nginx-public-ingress/templates/configMap.yaml +++ b/helmchart/nginx-public-ingress/templates/configMap.yaml @@ -56,7 +56,7 @@ data: proxy_set_header X-Forwarded-SSL on; proxy_set_header X-Forwarded-Proto $scheme; ignore_invalid_headers off; #pass through headers from Jenkins which are considered invalid by Nginx server. - resolver {{ .Values.nginx_private_ingress_ip }} valid=30s; + resolver {{ (lookup "v1" "Service" "kube-system" "kube-dns").spec.clusterIP }}; valid=30s; # Mobile Devices Refresh token Endpoints location ~* ^/auth/v1/refresh/token { rewrite ^/auth/(.*) /auth/$1 break; @@ -969,14 +969,13 @@ data: keepalive 1000; } upstream player { - server player:8080; + server keycloak:8080; + keepalive 1000; + } + upstream player { + server player:3000; keepalive 1000; } - # uncomment after player is deployed - #upstream player { - # server player:3000; - # keepalive 1000; - #} include /etc/nginx/defaults.d/*.conf; include /etc/nginx/conf.d/*.conf; ################# diff --git a/helmchart/nginx-public-ingress/values.yaml b/helmchart/nginx-public-ingress/values.yaml index 6bdb96b0ed..f440729726 100644 --- a/helmchart/nginx-public-ingress/values.yaml +++ b/helmchart/nginx-public-ingress/values.yaml @@ -1,7 +1,7 @@ #jinja2:lstrip_blocks: True nginx_private_ingress_ip: "10.0.1.22" -domain: sunbirded1.dev.org +domain: easyinstall.sunbirded.org cloud_public_storage_accountname: sunbirddevpublic.blob.core.windows.net cloud_public_storage_container: sunbird-content-dev kube_dns_ip: "10.233.0.1" From 8f3b39925291247bd6dc6627a31e0ee03e86c0e7 Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Fri, 28 Apr 2023 11:18:43 +0530 Subject: [PATCH 06/14] Update nginx helm chart --- helmchart/nginx-public-ingress-0.1.0.tgz | Bin 72417 -> 72437 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/helmchart/nginx-public-ingress-0.1.0.tgz b/helmchart/nginx-public-ingress-0.1.0.tgz index 44cdd6715375d67a1f1c6233878a5de0ed2d7b80..4216fbcdd00f508d7d54be800c75a79e709a17e8 100644 GIT binary patch delta 31170 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

xPPEV?Z@3IiKQ2KEV(kA9G^kP1OSo!BNWXh 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 delta 31135 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 Cwj00z From 720bfff8724241bac3c9fba0209d30c42ddc9a06 Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Fri, 28 Apr 2023 11:49:22 +0530 Subject: [PATCH 07/14] Update nginx chart --- helmchart/nginx-public-ingress/templates/configMap.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/helmchart/nginx-public-ingress/templates/configMap.yaml b/helmchart/nginx-public-ingress/templates/configMap.yaml index 24eb47fee9..30fa5a9086 100644 --- a/helmchart/nginx-public-ingress/templates/configMap.yaml +++ b/helmchart/nginx-public-ingress/templates/configMap.yaml @@ -84,7 +84,7 @@ data: proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Connection ""; proxy_http_version 1.1; - proxy_pass http://player; + proxy_pass http://keycloak; } # Sunbird realm player API endpoints location ~ /auth/realms/sunbird/(get-required-action-link|login-actions/(action-token|authenticate|required-action)|protocol/openid-connect/(auth|certs|logout|token|userinfo)|.well-known/openid-configuration) { @@ -97,7 +97,7 @@ data: proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Connection ""; proxy_http_version 1.1; - proxy_pass http://player; + proxy_pass http://keycloak; } # Static Assets for player endpoints with caching location ~ /auth/(resources/(.+\.(png|svg|ico|js|eot|ttf|woff|woff2|css))|welcome-content/(.+\.(png|svg|ico|js|eot|ttf|woff|woff2|css))) { @@ -121,7 +121,7 @@ data: proxy_send_timeout 60; proxy_read_timeout 70; proxy_http_version 1.1; - proxy_pass http://player; + proxy_pass http://keycloak; } # This is Caching mechanism for POST requests location search location ~ /learner/data/v1/location/search { @@ -968,7 +968,7 @@ data: server kong:8000; keepalive 1000; } - upstream player { + upstream keycloak { server keycloak:8080; keepalive 1000; } From ce9c63d82e8bdc519fb4b64ffa22b3feb4fd4f6d Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Fri, 28 Apr 2023 12:20:46 +0530 Subject: [PATCH 08/14] Fix resolver --- helmchart/nginx-public-ingress/templates/configMap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helmchart/nginx-public-ingress/templates/configMap.yaml b/helmchart/nginx-public-ingress/templates/configMap.yaml index 30fa5a9086..d6d57f2c91 100644 --- a/helmchart/nginx-public-ingress/templates/configMap.yaml +++ b/helmchart/nginx-public-ingress/templates/configMap.yaml @@ -56,7 +56,7 @@ data: proxy_set_header X-Forwarded-SSL on; proxy_set_header X-Forwarded-Proto $scheme; ignore_invalid_headers off; #pass through headers from Jenkins which are considered invalid by Nginx server. - resolver {{ (lookup "v1" "Service" "kube-system" "kube-dns").spec.clusterIP }}; valid=30s; + resolver {{ (lookup "v1" "Service" "kube-system" "kube-dns").spec.clusterIP }} valid=30s; # Mobile Devices Refresh token Endpoints location ~* ^/auth/v1/refresh/token { rewrite ^/auth/(.*) /auth/$1 break; From aabcd15bf713ddf56a9cc46982c440402df2b458 Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Tue, 2 May 2023 10:51:09 +0530 Subject: [PATCH 09/14] Update portal helm chart --- helmchart/player-0.1.0.tgz | Bin 0 -> 6729 bytes helmchart/portal/Chart.yaml | 2 +- helmchart/portal/portal-sample-values.yaml | 8 ++++---- helmchart/portal/templates/configmap.yaml | 12 +++++------ helmchart/portal/values.yaml | 22 ++++++++++----------- 5 files changed, 21 insertions(+), 23 deletions(-) create mode 100644 helmchart/player-0.1.0.tgz diff --git a/helmchart/player-0.1.0.tgz b/helmchart/player-0.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9018ac47e8c2f6a389fd3f71b31c45703423edef GIT binary patch literal 6729 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 literal 0 HcmV?d00001 diff --git a/helmchart/portal/Chart.yaml b/helmchart/portal/Chart.yaml index 399a8eb2da..ea3f9a464b 100644 --- a/helmchart/portal/Chart.yaml +++ b/helmchart/portal/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -name: sunbird-ed-portal +name: player description: A Helm chart for Sunbird Ed Portal service # A chart can be either an 'application' or a 'library' chart. diff --git a/helmchart/portal/portal-sample-values.yaml b/helmchart/portal/portal-sample-values.yaml index de5c63c236..a3fc8382da 100644 --- a/helmchart/portal/portal-sample-values.yaml +++ b/helmchart/portal/portal-sample-values.yaml @@ -1,15 +1,15 @@ ## This section has mandatory variables ## You must provide a value for these ## If you don't provide a value for these variables, the chart installation will not proceed - +domain: https://easeinstall.sunbirded.org cloud_public_storage_accountname: testing -cloud_public_storage_secret: BASE64_SECRET_KEY -sunbird_azure_account_key: BASE64_SECRET_KEY +cloud_public_storage_secret: YXNkZmRhc2ZkYXNmZGFzZmRhc2ZkYXNmZHNhZg== +sunbird_azure_account_key: YXNkZmRhc2ZkYXNmZGFzZmRhc2ZkYXNmZHNhZg== sunbird_azure_account_name: testing sunbird_azure_report_container_name: report sunbird_azure_storage_account_name: https://PUBLIC_STORAGE_URL.blob.core.windows.net/ cloud_private_storage_accountname: testing -cloud_private_storage_secret: BASE64_SECRET_KEY +cloud_private_storage_secret: YXNkZmRhc2ZkYXNmZGFzZmRhc2ZkYXNmZHNhZg== cloud_service_provider: azure sunbird_anonymous_default_token: KONG_TOKEN sunbird_anonymous_register_token: KONG_TOKEN diff --git a/helmchart/portal/templates/configmap.yaml b/helmchart/portal/templates/configmap.yaml index 4c32841a52..5a91b33eb7 100644 --- a/helmchart/portal/templates/configmap.yaml +++ b/helmchart/portal/templates/configmap.yaml @@ -94,7 +94,7 @@ data: ekstep_env: {{ .Values.ekstep_env }} google_captcha_private_key: {{ .Values.google_captcha_private_key | quote }} ml_survey_url: {{ .Values.ml_survey_url }} - portal_redirect_error_callback_domain: {{ .Values.portal_redirect_error_callback_domain }} + portal_redirect_error_callback_domain: {{ .Values.domain }} portal_redis_connection_string: {{ .Values.portal_redis_connection_string }} reportsListVersion: {{ .Values.reportsListVersion }} sunbird_android_app_url: {{ .Values.sunbird_android_app_url | quote }} @@ -126,13 +126,13 @@ data: sunbird_content_proxy_url: {{ .Values.sunbird_content_proxy_url }} sunbird_contentEditorURL: {{ .Values.sunbird_contentEditorURL }} sunbird_data_product_service: {{ .Values.sunbird_data_product_service }} - sunbird_dataservice_url: {{ .Values.sunbird_dataservice_url }} + sunbird_dataservice_url: {{ .Values.domain }}/api/ sunbird_default_channel: {{ .Values.sunbird_default_channel }} sunbird_default_device_token: {{ .Values.sunbird_default_device_token | quote }} sunbird_default_file_size: {{ .Values.sunbird_default_file_size | quote }} sunbird_desktop_keycloak_client_id: {{ .Values.sunbird_desktop_keycloak_client_id }} sunbird_device_api: {{ .Values.sunbird_device_api }} - sunbird_device_register_api: {{ .Values.sunbird_device_register_api }} + sunbird_device_register_api: {{ .Values.domain }}/v3/device/register/ sunbird_echo_api_url: {{ .Values.sunbird_echo_api_url }} sunbird_enable_api_whitelist: {{ .Values.sunbird_enable_api_whitelist | quote }} sunbird_enable_permission_check: {{ .Values.sunbird_enable_permission_check | quote }} @@ -170,8 +170,8 @@ data: sunbird_phraseApp_token: {{ .Values.sunbird_phraseApp_token | quote }} sunbird_port: {{ .Values.sunbird_port | quote }} sunbird_portal_auth_server_client: {{ .Values.sunbird_portal_auth_server_client }} - sunbird_portal_auth_server_url: {{ .Values.sunbird_portal_auth_server_url }} - sunbird_portal_base_url: {{ .Values.sunbird_portal_base_url }} + sunbird_portal_auth_server_url: {{ .Values.domain }}/auth + sunbird_portal_base_url: {{ .Values.domain }} sunbird_portal_cdn_blob_url: {{ .Values.sunbird_portal_cdn_blob_url }} sunbird_portal_cdn_url: {{ .Values.sunbird_portal_cdn_url | quote }} sunbird_portal_log_level: {{ .Values.sunbird_portal_log_level }} @@ -190,7 +190,7 @@ data: sunbird_portal_uci_blob_url: {{ .Values.sunbird_portal_uci_blob_url }} sunbird_portal_uci_bot_phone_number: {{ .Values.sunbird_portal_uci_bot_phone_number | quote }} sunbird_portal_updateLoginTimeEnabled: {{ .Values.sunbird_portal_updateLoginTimeEnabled | quote }} - sunbird_portal_user_upload_ref_link: {{ .Values.sunbird_portal_user_upload_ref_link }} + sunbird_portal_user_upload_ref_link: {{ .Values.domain }}/help/administrator/register-user/index.html sunbird_portal_video_max_size: {{ .Values.sunbird_portal_video_max_size | quote }} sunbird_processing_kafka_host: {{ .Values.sunbird_processing_kafka_host }} sunbird_questionset_children_limit: {{ .Values.sunbird_questionset_children_limit | quote}} diff --git a/helmchart/portal/values.yaml b/helmchart/portal/values.yaml index 1e8ac1210b..193eb4ac09 100644 --- a/helmchart/portal/values.yaml +++ b/helmchart/portal/values.yaml @@ -1,24 +1,16 @@ ## This section has mandatory variables ## You must provide a value for these ## If you don't provide a value for these variables, the chart installation will not proceed - +domain: "" AZURE_STORAGE_ACCOUNT: "" AZURE_STORAGE_KEY: "" sunbird_azure_account_key: "" sunbird_azure_account_name: "" -sunbird_azure_report_container_name: "" sunbird_azure_storage_account_name: "" cloud_private_storage_accountname: "" cloud_private_storage_secret: "" cloud_service_provider: "" -cloud_storage_desktopCrash_bucketname: "" -cloud_storage_privatereports_bucketname: "" -cloud_storage_resourceBundle_bucketname: "" -sunbird_android_keycloak_client_id: "" -sunbird_anonymous_default_token: "" -sunbird_anonymous_register_token: "" -sunbird_api_auth_token: "" -sunbird_logged_default_token: "" + ## This section has optional variables ## It is strongly recommended to provide a value for these @@ -32,10 +24,16 @@ sunbird_google_captcha_site_key: "" ## These are standard defaults that work well ## You can override these if you have a use case for it +sunbird_android_keycloak_client_id: "" cloud_storage_desktopCrash_bucketname: desktopappcrashlogs cloud_storage_privatereports_bucketname: reports cloud_storage_resourceBundle_bucketname: label sunbird_azure_report_container_name: reports +sunbird_anonymous_default_token: KONG_TOKEN +sunbird_anonymous_register_token: KONG_TOKEN +sunbird_api_auth_token: KONG_TOKEN +sunbird_logged_default_token: KONG_TOKEN +sunbird_loggedin_register_token: KONG_TOKEN sunbird_anonymous_device_register_api: http://kong:8000/api-manager/v2/consumer/portal_anonymous/credential/register sunbird_anonymous_session_ttl: "1800000" config_refresh_interval: "10" @@ -46,7 +44,7 @@ desktop_app_storage_url: https://dev.blob.core.windows.net/staging-offlineinstal discussions_middleware: http://discussionsmw-service:3002 ekstep_env: qa ml_survey_url: https://survey.preprod.ntp.net.in/staging -portal_redirect_error_callback_domain: https://easeinstall.sunbirded.org +portal_redirect_error_callback_domain: https://testing.sunbirded.org portal_redis_connection_string: redis://:@redis-master.lern.svc.cluster.local:6379/3 reportsListVersion: v2 sunbird_android_app_url: "" @@ -145,7 +143,7 @@ sunbird_google_android_keycloak_secret: google_android_keycloak_secret sunbird_google_desktop_keycloak_client_id: google-auth-desktop sunbird_google_desktop_keycloak_secret: google_desktop_keycloak_secret sunbird_google_keycloak_client_id: google-auth -sunbird_google_keycloak_secret: google_keycloak_secret +sunbird_google_keycloak_secret: sunbird_google_keycloak_secret sunbird_trampoline_android_keycloak_client_id: trampoline-android sunbird_trampoline_android_keycloak_secret: rampoline_android_keycloak_secret sunbird_trampoline_client_id: trampoline From f6619059472ac08bb57ab959e85d950727993739 Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Tue, 2 May 2023 11:15:50 +0530 Subject: [PATCH 10/14] Update charts --- oneclickinstaller/charts.csv | 6 ++---- oneclickinstaller/ed-charts.csv | 11 ++++++++--- oneclickinstaller/install-ed.sh | 2 +- oneclickinstaller/install-inquiry.sh | 2 +- oneclickinstaller/install-knowlg.sh | 2 +- oneclickinstaller/install-lern.sh | 2 +- oneclickinstaller/install-obsrv.sh | 2 +- oneclickinstaller/knowlg-charts.csv | 9 +++++++++ oneclickinstaller/knowlg-sample-values.yml | 11 ++++++----- oneclickinstaller/obsrv-charts.csv | 1 + oneclickinstaller/obsrv-sample-values.yml | 6 +++--- 11 files changed, 34 insertions(+), 20 deletions(-) diff --git a/oneclickinstaller/charts.csv b/oneclickinstaller/charts.csv index 6e048f9ba5..18af7fac21 100644 --- a/oneclickinstaller/charts.csv +++ b/oneclickinstaller/charts.csv @@ -1,7 +1,5 @@ cassandra,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/cassandra-10.1.0.tgz -elasticsearch,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/elasticsearch-19.5.14.tgz -kafka,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/kafka-21.3.1.tgz -postgresql,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/postgresql-12.2.2.tgz +elasticsearch,https://github.com/santhosh-tg/sunbird-helmchart-common/blob/helmchart/elasticsearch-19.5.14.tgz?raw=true redis,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/redis-17.8.3.tgz common-opa-policies,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/common_opa_policies-0.1.0.tgz registry-opa-policies,https://raw.githubusercontent.com/saiakhil46/certificate-registry/helmchart/helm/registry_opa_policies-0.1.0.tgz @@ -26,4 +24,4 @@ merge-user-courses,https://raw.githubusercontent.com/saiakhil46/data-pipeline/he notification-job,https://raw.githubusercontent.com/saiakhil46/data-pipeline/helmchart/helm/lern-flink-jobs-0.1.0.tgz relation-cache-updater,https://raw.githubusercontent.com/saiakhil46/data-pipeline/helmchart/helm/lern-flink-jobs-0.1.0.tgz user-cache-updater-v2,https://raw.githubusercontent.com/saiakhil46/data-pipeline/helmchart/helm/lern-flink-jobs-0.1.0.tgz -elasticsearch-init,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/elasticsearch-init-0.1.0.tgz +elasticsearch-init,https://github.com/santhosh-tg/sunbird-helmchart-common/blob/helmchart/elasticsearch-init-0.1.0.tgz?raw=true diff --git a/oneclickinstaller/ed-charts.csv b/oneclickinstaller/ed-charts.csv index 33feaac4b7..8f1f1f7f81 100644 --- a/oneclickinstaller/ed-charts.csv +++ b/oneclickinstaller/ed-charts.csv @@ -1,3 +1,8 @@ -apimanager,https://github.com/tsprasath/ed-chart/blob/main/apimanager/apimanager-0.1.0.tgz?raw=true -apimanagerecho,https://github.com/tsprasath/ed-chart/blob/main/apimanagerecho/apimanagerecho-0.1.0.tgz?raw=true -nginx-private-ingress,https://github.com/tsprasath/ed-chart/blob/main/nginx-private-ingress/nginx-private-ingress-0.1.0.tgz?raw=true +apimanager,https://github.com/project-sunbird/sunbird-devops/blob/oneclickinstaller/helmchart/apimanager/apimanager-0.1.0.tgz?raw=true +apimanagerecho,https://github.com/project-sunbird/sunbird-devops/blob/oneclickinstaller/helmchart/apimanagerecho/apimanagerecho-0.1.0.tgz?raw=true +keycloak,https://github.com/project-sunbird/sunbird-devops/blob/oneclickinstaller/helmchart/keycloak/keycloak-0.1.0.tgz?raw=true +nginx-private-ingress,https://github.com/project-sunbird/sunbird-devops/blob/oneclickinstaller/helmchart/nginx-private-ingress/nginx-private-ingress-0.1.0.tgz?raw=true +player,https://github.com/santhosh-tg/sunbird-devops/blob/oneclickinstaller/helmchart/player-0.1.0.tgz?raw=true +onboardapi,https://github.com/project-sunbird/sunbird-devops/blob/oneclickinstaller/helmchart/onboardapi/onboardapi-0.1.0.tgz?raw=true +onboardconsumer,https://github.com/project-sunbird/sunbird-devops/blob/oneclickinstaller/helmchart/onboardconsumer/onboardconsumer-0.1.0.tgz?raw=true +nginx-public-ingress,https://github.com/santhosh-tg/sunbird-devops/blob/oneclickinstaller/helmchart/nginx-public-ingress-0.1.0.tgz?raw=true diff --git a/oneclickinstaller/install-ed.sh b/oneclickinstaller/install-ed.sh index 65ba7d2c9d..05b7141584 100755 --- a/oneclickinstaller/install-ed.sh +++ b/oneclickinstaller/install-ed.sh @@ -1,7 +1,7 @@ #!/bin/bash # set -x # Set the namespace for the Helm charts -namespace="dry-run" +namespace="dev" kubeconfig_file=$1 # Check if kubectl is installed diff --git a/oneclickinstaller/install-inquiry.sh b/oneclickinstaller/install-inquiry.sh index 6de7a0e189..1053514306 100755 --- a/oneclickinstaller/install-inquiry.sh +++ b/oneclickinstaller/install-inquiry.sh @@ -1,7 +1,7 @@ #!/bin/bash # set -x # Set the namespace for the Helm charts -namespace="dry-run" +namespace="dev" kubeconfig_file=$1 # Check if kubectl is installed diff --git a/oneclickinstaller/install-knowlg.sh b/oneclickinstaller/install-knowlg.sh index 5cdf407d9f..41f3295288 100755 --- a/oneclickinstaller/install-knowlg.sh +++ b/oneclickinstaller/install-knowlg.sh @@ -1,7 +1,7 @@ #!/bin/bash # set -x # Set the namespace for the Helm charts -namespace="dry-run" +namespace="dev" kubeconfig_file=$1 # Check if kubectl is installed diff --git a/oneclickinstaller/install-lern.sh b/oneclickinstaller/install-lern.sh index a980ec102b..8dbc9a4e52 100755 --- a/oneclickinstaller/install-lern.sh +++ b/oneclickinstaller/install-lern.sh @@ -1,7 +1,7 @@ #!/bin/bash #set -x # Set the namespace for the Helm charts -namespace="dry-run" +namespace="dev" kubeconfig_file=$1 # Check if kubectl is installed diff --git a/oneclickinstaller/install-obsrv.sh b/oneclickinstaller/install-obsrv.sh index 205fbfcf19..1af8e9325b 100755 --- a/oneclickinstaller/install-obsrv.sh +++ b/oneclickinstaller/install-obsrv.sh @@ -1,7 +1,7 @@ #!/bin/bash # set -x # Set the namespace for the Helm charts -namespace="dry-run" +namespace="dev" kubeconfig_file=$1 # Check if kubectl is installed diff --git a/oneclickinstaller/knowlg-charts.csv b/oneclickinstaller/knowlg-charts.csv index d4b7d23ad6..0c90205314 100644 --- a/oneclickinstaller/knowlg-charts.csv +++ b/oneclickinstaller/knowlg-charts.csv @@ -3,3 +3,12 @@ taxonomy,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/ learning,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/learning-0.1.0.tgz?raw=true search,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/search-0.1.0.tgz?raw=true dial,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/dial-0.1.0.tgz?raw=true +search-indexer,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/flink-0.1.0.tgz?raw=true +audit-event-generator,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/flink-0.1.0.tgz?raw=true +asset-enrichment,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/flink-0.1.0.tgz?raw=true +post-publish-processor,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/flink-0.1.0.tgz?raw=true +dialcode-context-updater,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/flink-0.1.0.tgz?raw=true +qrcode-image-generator,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/flink-0.1.0.tgz?raw=true +video-stream-generator,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/flink-0.1.0.tgz?raw=true +audit-history-indexer,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/flink-0.1.0.tgz?raw=true +content-publish,https://github.com/santhosh-tg/knowledge-platform/blob/knowlg-oneclick/knowlg-automation/helm_charts/flink-0.1.0.tgz?raw=true diff --git a/oneclickinstaller/knowlg-sample-values.yml b/oneclickinstaller/knowlg-sample-values.yml index 5f7283889f..956725b858 100644 --- a/oneclickinstaller/knowlg-sample-values.yml +++ b/oneclickinstaller/knowlg-sample-values.yml @@ -1,7 +1,8 @@ -cassandra_connection: cassandra.dry-run.svc.cluster.local:9042 -redis_connection: redis-master.dry-run.svc.cluster.local +cassandra_connection: cassandra.dev.svc.cluster.local:9042 +redis_connection: redis-master.dev.svc.cluster.local neo4j_domain_connection: neo4j.inquiry.svc.cluster.local:7687 neo4j_all_connection: neo4j.inquiry.svc.cluster.local:8687 -kafka_connection: kafka.dry-run.svc.cluster.local:9092 -es_connection: elasticsearch.dry-run.svc.cluster.local -api_namespace: dry-run +kafka_connection: kafka.dev.svc.cluster.local:9092 +es_connection: elasticsearch.dev.svc.cluster.local:9200 +api_namespace: dev +namespace: dev diff --git a/oneclickinstaller/obsrv-charts.csv b/oneclickinstaller/obsrv-charts.csv index d772aaf353..31b2ccaac5 100644 --- a/oneclickinstaller/obsrv-charts.csv +++ b/oneclickinstaller/obsrv-charts.csv @@ -2,3 +2,4 @@ druid-operator,https://github.com/santhosh-tg/obsrv-automation/blob/helmchart/dr druid-cluster,https://github.com/santhosh-tg/obsrv-automation/blob/helmchart/druid-cluster-0.1.0.tgz?raw=true druid-validator,https://github.com/santhosh-tg/obsrv-automation/blob/helmchart/flink-0.1.0.tgz?raw=true superset,https://github.com/santhosh-tg/obsrv-automation/blob/helmchart/superset-0.3.5.tgz?raw=true +analytics,https://github.com/santhosh-tg/obsrv-automation/blob/helmchart/analytics-0.1.0.tgz?raw=true diff --git a/oneclickinstaller/obsrv-sample-values.yml b/oneclickinstaller/obsrv-sample-values.yml index e6a2c1e965..f920e101e5 100644 --- a/oneclickinstaller/obsrv-sample-values.yml +++ b/oneclickinstaller/obsrv-sample-values.yml @@ -1,7 +1,7 @@ -namespace: dry-run +namespace: dev druid_env: dev -druid_namespace: dry-run -druid_metadata_storage_connector_connectURI: "jdbc:postgresql://postgresql.dry-run.svc.cluster.local:5432/druid" +druid_namespace: dev +druid_metadata_storage_connector_connectURI: "jdbc:postgresql://postgresql.dev.svc.cluster.local:5432/druid" druid_metadata_storage_connector_user: postgres druid_metadata_storage_connector_password: postgres storageClass: local-path From b463afbb8af14e8b137a52c65b62cbadcbdbe360 Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Tue, 2 May 2023 11:59:35 +0530 Subject: [PATCH 11/14] Update nginx chart --- helmchart/nginx-public-ingress-0.1.0.tgz | Bin 72437 -> 58297 bytes .../nginx-public-ingress-values.yaml | 162 ----------------- helmchart/nginx-public-ingress/values.yaml | 164 +----------------- 3 files changed, 7 insertions(+), 319 deletions(-) delete mode 100644 helmchart/nginx-public-ingress/nginx-public-ingress-values.yaml diff --git a/helmchart/nginx-public-ingress-0.1.0.tgz b/helmchart/nginx-public-ingress-0.1.0.tgz index 4216fbcdd00f508d7d54be800c75a79e709a17e8..0fef7db754f76748bb2a00118b5603310d75e1e0 100644 GIT binary patch delta 42189 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�Rs*)cu+BEi=K8>D-CF|LJ#gLyoU4yuEcUt1 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 diff --git a/helmchart/nginx-public-ingress/nginx-public-ingress-values.yaml b/helmchart/nginx-public-ingress/nginx-public-ingress-values.yaml deleted file mode 100644 index e6a9e0e16e..0000000000 --- a/helmchart/nginx-public-ingress/nginx-public-ingress-values.yaml +++ /dev/null @@ -1,162 +0,0 @@ -nginx_private_ingress_ip: "10.0.1.30" -domain: sunbirded1.dev.org -cloud_public_storage_accountname: sunbirddevpublic.blob.core.windows.net -cloud_public_storage_container: sunbird-content-dev - -service: - annotations: - service.beta.kubernetes.io/azure-load-balancer-external: "true" - type: LoadBalancer - nginx_public_ingress_ip: "20.204.234.254" - -core_vault_proxy_site_key: |+ - -----BEGIN PRIVATE KEY----- - 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 - 5+XuRvWAFxTQIbZp3aA1Cl6YgocZRg== - -----END PRIVATE KEY----- -core_vault_proxy_site_crt: |+ - -----BEGIN CERTIFICATE----- - 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 - Bkd8yR70 - -----END CERTIFICATE----- - -----BEGIN CERTIFICATE----- - MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw - TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh - cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw - WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg - RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK - AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP - R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx - sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm - NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg - Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG - /kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC - AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB - Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA - FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw - AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw - Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB - gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W - PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl - ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz - CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm - lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4 - avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2 - yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O - yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids - hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+ - HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv - MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX - nLRbwHOoq7hHwg== - -----END CERTIFICATE----- - -----BEGIN CERTIFICATE----- - MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/ - MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT - DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow - TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh - cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB - AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC - ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL - wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D - LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK - 4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5 - bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y - sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ - Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4 - FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc - SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql - PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND - TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw - SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1 - c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx - +tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB - ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu - b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E - U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu - MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC - 5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW - 9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG - WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O - he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC - Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5 - -----END CERTIFICATE----- diff --git a/helmchart/nginx-public-ingress/values.yaml b/helmchart/nginx-public-ingress/values.yaml index f440729726..6a3076193b 100644 --- a/helmchart/nginx-public-ingress/values.yaml +++ b/helmchart/nginx-public-ingress/values.yaml @@ -1,163 +1,13 @@ #jinja2:lstrip_blocks: True -nginx_private_ingress_ip: "10.0.1.22" +nginx_private_ingress_ip: "10.0.1.100" domain: easyinstall.sunbirded.org -cloud_public_storage_accountname: sunbirddevpublic.blob.core.windows.net -cloud_public_storage_container: sunbird-content-dev -kube_dns_ip: "10.233.0.1" -core_vault_proxy_site_key: |+ - -----BEGIN PRIVATE KEY----- - MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCvElFqSylbnMG+ - RisiRulCOMjvxwOyAbiXIcyh35aYasXJ/OaSaw6dVKBhcq32d/x1KOdtens+Kgla - FPX4fQws7bmoqZbUh4l+ulbFsP9yR1Gw8xjvX8hDVyJ32hb7g/B2bWlvfTS7WZ5u - Yao8pYXJh92FwLpVHokVx04W7pbXSdq2HGx+h74uWTvbSDCuw0F8PfSR+/86C7AF - zzYU+zU0rHZXyrlQm4a4wDsXSqLvcaAB/83dEtZbsGzb+9egt/+26sG7/MnJypOW - NFX4B/9MHci215+A6M4suig33xUlovRfJgStco6amFgN/O80zxMMkMtA2/osV57/ - u+nNZe8F7c6X/TUHF7FTtCQ78Xsl/ckrjz43s7LCIHLLUSMMlOGPXlCFh1zdWh+R - Y59o4mmaZjHjOr0kzdZnswQ+yvG7sfP2f9JT7Kdig1e1qBiWcT3YD/rN7HzHC0nM - 52OSgZ6Ra/GkXVuVC8QVJSFA4BNap71+EhpPySK3Ake5yTKuirTzajntssTzQR0B - aytAyzjwAPQRUIz0vwHsYoZ6o+yfoABgkbReQddKLXeTPWxTNjO2vEUupTX/sboM - xmTGl2Iin+IJgv8ogqZe7LqkooBGZvqAh0A6NiOdrtFpEW5qx5Ene3zvI4E3PdJF - MYQZjM6GI6g97YtdVeI6WDauX5UjKQIDAQABAoICAB0eyeYJTH7NizhwCXqxGtmG - An5HtyijuqWA3L3MKAuALxgS9fNC1XJ8AhVTcvY9LQP74srGBbvoWBfgxq0nd5/9 - htU0KD9/r/IhYo+Nil/i1wa82NfwMapp0vTmlM4POy8nsdL2m4/SL1Ui76MY0TEd - ZU57KUNBSgISXb3Yv8Rdp4CFJ9LAF3U0KI2n61kWZ00YLRcfOGvaR9QfjFpfEpGJ - YkHmGX7776PJbcrJAmMbnkbW2tI78OXdaa4JrOsxz9oIIGN5f8MN7BCe8fHIusFZ - bupi4Uga8ThlWo04kRbqjQVKmJqVJH04e+UPvmYlT4DWkMhgDrPTe0IEarZcjy5B - tEad8UHQgNMuWcEZ5g9OeRX3KdQ2Pez5ka+K+U2cLyt5pD/Mfwvdc68bGzXo3XPJ - BMxvp2yth0NyPX4O5zI2xPV0idm5AmjwYTXY86JNkX3SVW7Y+n3eh0HFVKNB8ylu - c1bRCYLjpQWfleAc/Pc2sNKUhwe7zw2dera+lHkPMqhnu4UiUROtHpJvu3EbumKE - 6gob2Vs2b93SuVdyQPtIWu9L/qGsL3d+mcGdLeJFwqfPQKMK9mSrmQSz3Xzpo0ag - /M7yiB2piZHrczJ7RFy9nAeuRxpUjdlAUMaG5pLtimXFqykz7S3fLlhbI3xGYll/ - x22NNmim1kpkJX0gcpORAoIBAQDiJEauOgPQowIdceObDR6vUlvWcHeBtgckaks+ - C4JPCHk5KeUciES7bd0uUmezF7QUH0xfOCdrSN8lXfXqgq/PywgY/UbF6ydQsvZz - VfhjY4pO629YLyfYTr9g0gbqGxbfybSe2nxqgm9q1VlGPwQfLCHAr22QW4Vg1tld - z3aO9FAYA724Bkuss76v9wm3KiMdMsKebOLk+k7O6EFD8kCHym3tiQ95Ud6vi8iZ - 7JzF6TDO8OnWnw3itcP+7ATCytMxJW+VCGF4pQNfz6vzLveR6+ZwtNDVrJdQ/vl+ - fHzHvtAXbMOCuHO+DghViWn9bB2b2DkkBiAhblUiiscILHplAoIBAQDGL9cvp9yC - ztM9e229YVeiDuhTzbHqT4G3+/sLlKZNKB5Sb0aqyAAOOwybcvpfaCW3cI/ZPquv - WOH4CK0M7h21ayyxex/rGye2Ao97ja2kjhCzGsFF88x/3VakLCCPovY/TEiZXkVj - DJctQ0sJJGP5dHgFYpx0ULTq6jaxb3xgdXmIpkezxVkFVx4u0af8X9CL0UytxRFE - +XLSXRlIG67KqUNJi7e86rDWu2LFI88O7YNGiOPBtcmssLiK7N4gNJOx0gs1crLN - z2Vv0X4oT6/2jPyGr6giZG4XgpH2Wc3GxWrzmXYeFhn7hcfrsZ35PGnvwT1MX+0S - SOQAb5cTB7d1AoIBAQCr+IY/jCLGkI/VMHyztqB1Fx57zn8zBugbizG49yubSohV - LkTrE72hAwVGaqgti4MIIl0DtEJV1c7MLc4LDmMAlBeOWV1uuUrmlZHRV7lSa6oM - JgJAf2u/lPL4f/9+HCei+1L90oz2ukZcae4/+z/5LKhmTYH2W4Lsh7Y5HsG8KJKY - EJA/15nItc/3JNggkEyvsaBKtec91hQESJ8JOrpUCV7bWnWH/vhnatecJlF6N8FE - PfS1n7MBitSHkZh1QaSlJSDbpsno4yPTwquyfS8LqudNIlQFigBwOdYlmCmUBMle - Zvmu+PIbv7QayCrv6z4A+8dIW9gnVC4t3HdLAff5AoIBAFqxs/DcCX5W9bZSEKM0 - s6y207zeCcgnQD6Y8oaXLQ9sB4xD3fvzcIsSnK9ai5cziucKfNm240xoCWi/V6nu - IexOsnI53R5zG9YgD9dDu63tUVkVKlM/wVrWSHrysqfotHW9DBAbYvdz4I7XF7SE - Ubfrg607NkvITzKdog/K7AkcWVSee3uaGSXneymDyjMlCcOiMUvoPgHpgZEhB5vH - B1M46FD0vk2WvPxXXljHDU9Qg924cTnJXhRH/vucb/4e8WPTsktwRMEIYuwr22bJ - KMZUOI/OPMwYV4UsvG0XJaML3ujBVptoE9XVn+qNKrTO38/XB5023L+cWbKVXnZX - 9q0CggEAJr5BeU2DFieh9SEsrnmreSpXh78J4aKzaEnSoT4bzv1uD/e/oYSUCpgD - rEmY8G3Ly+yUeFA76m03LkNbwuhMKqUhQ4s93hobQ5ckm9KYMSx6BV4S6iWMqIH0 - PXpXY8rrMPJP3EdoPx7s2HD37F43vnSc0q4+asu/GqqpFqk/Q6r6pobannGVwwdD - XOhFmUckfiNJq23qAwv5VYDb16klfrWCB4bVQv/MrsnZ3KeVC0owRH76uDLR67Lt - KbkeL8WGgOka0W/pPjJ3DYiCrKsOlmrJdROhfATRJ4mg78s64H7WY7apu79x/NKu - 5+XuRvWAFxTQIbZp3aA1Cl6YgocZRg== - -----END PRIVATE KEY----- -core_vault_proxy_site_crt: |+ - -----BEGIN CERTIFICATE----- - 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 - Bkd8yR70 - -----END CERTIFICATE----- - -----BEGIN CERTIFICATE----- - MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw - TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh - cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw - WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg - RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK - AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP - R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx - sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm - NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg - Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG - /kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC - AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB - Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA - FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw - AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw - Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB - gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W - PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl - ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz - CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm - lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4 - avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2 - yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O - yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids - hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+ - HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv - MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX - nLRbwHOoq7hHwg== - -----END CERTIFICATE----- - -----BEGIN CERTIFICATE----- - MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/ - MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT - DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow - TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh - cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB - AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC - ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL - wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D - LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK - 4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5 - bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y - sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ - Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4 - FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc - SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql - PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND - TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw - SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1 - c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx - +tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB - ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu - b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E - U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu - MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC - 5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW - 9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG - WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O - he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC - Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5 - -----END CERTIFICATE----- - - +cloud_public_storage_accountname: "" +cloud_public_storage_container: "" +# nginx private and public cert +core_vault_proxy_site_key: "" +core_vault_proxy_site_crt: "" + merge_domain_status: false merge_domain: merger.sunbirded1.dev.org service: From ff7aa8f092f17d072c2113cdbe679390dc26e9c4 Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Tue, 2 May 2023 12:06:47 +0530 Subject: [PATCH 12/14] Update sample values --- helmchart/portal/portal-sample-values.yaml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/helmchart/portal/portal-sample-values.yaml b/helmchart/portal/portal-sample-values.yaml index a3fc8382da..fb18fcb7b3 100644 --- a/helmchart/portal/portal-sample-values.yaml +++ b/helmchart/portal/portal-sample-values.yaml @@ -11,11 +11,7 @@ sunbird_azure_storage_account_name: https://PUBLIC_STORAGE_URL.blob.core.windows cloud_private_storage_accountname: testing cloud_private_storage_secret: YXNkZmRhc2ZkYXNmZGFzZmRhc2ZkYXNmZHNhZg== cloud_service_provider: azure -sunbird_anonymous_default_token: KONG_TOKEN -sunbird_anonymous_register_token: KONG_TOKEN -sunbird_api_auth_token: KONG_TOKEN -sunbird_logged_default_token: KONG_TOKEN -sunbird_loggedin_register_token: KONG_TOKEN + ## This section has optional variables ## It is strongly recommended to provide a value for these From d1c3650cfb74ff384e8edbb0666318e0b407f656 Mon Sep 17 00:00:00 2001 From: santhosh-tg Date: Tue, 2 May 2023 12:15:38 +0530 Subject: [PATCH 13/14] Update lern charts --- oneclickinstaller/charts.csv | 2 ++ 1 file changed, 2 insertions(+) diff --git a/oneclickinstaller/charts.csv b/oneclickinstaller/charts.csv index 18af7fac21..90a998d67f 100644 --- a/oneclickinstaller/charts.csv +++ b/oneclickinstaller/charts.csv @@ -1,5 +1,7 @@ cassandra,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/cassandra-10.1.0.tgz elasticsearch,https://github.com/santhosh-tg/sunbird-helmchart-common/blob/helmchart/elasticsearch-19.5.14.tgz?raw=true +kafka,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/kafka-21.3.1.tgz +postgresql,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/postgresql-12.2.2.tgz redis,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/redis-17.8.3.tgz common-opa-policies,https://raw.githubusercontent.com/saiakhil46/sunbird-helmchart-common/main/common_opa_policies-0.1.0.tgz registry-opa-policies,https://raw.githubusercontent.com/saiakhil46/certificate-registry/helmchart/helm/registry_opa_policies-0.1.0.tgz From 880c53e3bbb6f9a5a88d01e1c54162ede4099e68 Mon Sep 17 00:00:00 2001 From: Prasath Sivasubramaniyan Date: Thu, 4 May 2023 14:55:35 +0530 Subject: [PATCH 14/14] Fixed reoslver --- helmchart/nginx-public-ingress/templates/configMap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helmchart/nginx-public-ingress/templates/configMap.yaml b/helmchart/nginx-public-ingress/templates/configMap.yaml index d6d57f2c91..008a18117b 100644 --- a/helmchart/nginx-public-ingress/templates/configMap.yaml +++ b/helmchart/nginx-public-ingress/templates/configMap.yaml @@ -912,7 +912,7 @@ data: http { include /etc/nginx/mime.types; default_type application/octet-stream; - resolver {{ .Values.kube_dns_ip }} valid=30s; + resolver {{ (lookup "v1" "Service" "kube-system" "kube-dns").spec.clusterIP }} valid=30s; lua_load_resty_core off; log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $request_length $body_bytes_sent'