diff --git a/README.md b/README.md index 30805c8..865181e 100644 --- a/README.md +++ b/README.md @@ -107,83 +107,87 @@ helm upgrade --install test --set proxy.secretToken=XXXXXXXXXX illumidesk/illumi > Note: Please follow reference guides in the values.yaml in order to properly configure the resource during a deployment -The following tables lists the configurable parameters of the chart and their default values. - -| Parameter | Description | Default | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| albIngress.host | Host name configured by ingress resource that uses alb | XXXXX.illumidesk.com | -| albIngress.ingress.annotations.alb.ingress.kubernetes.io/certificate-arn | certificate managaged by aws | arn:aws:acm:us-east-1:XXXXXXXXXXXX:certificate/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX | -| albIngress.ingress.annotations.alb.ingress.kubernetes.io/group.name | ingress group name to associate ingress files to alb-ingress-controller | "" | -| albIngress.ingress.annotations.alb.ingress.kubernetes.io/scheme | determines whether the load balancer is internal or internet facing | internet-facing | -| albIngress.ingress.annotations.alb.ingress.kubernetes.io/subnets | subnets that are part of your cluster vpc. At least 2 required | \[] (subnets for cluster vpc) | -| albIngress.ingress.annotations.alb.ingress.kubernetes.io/tags | ingress tags to tag ALB/Target Groups/Security group | {} | -| albIngress.ingress.annotations.alb.ingress.kubernetes.io/target-type | determines how to create target groups | IP | -| albIngress.ingress.annotations.kubernetes.io/ingress.class | determines which controller the ingress manifest uses | ALB | -| albIngressController.awsRegion | aws region where your cluster is located | us-east-1 | -| albIngressController.clusterName | EKS Cluster where aws resources should be created | illumidesk | -| albIngressController.clusterVPC | Cluster VPC ID alb ingress controller uses to create aws resources | vpc-XXX | -| albIngressController.enabled | allows creation of aws application load balancer | False | -| albIngressController.enableIRSA | allow passing of IAM role arn if you are not using eksctl | False | -| albIngressController.host | Host name configured by ingress resource that uses alb | XXXXX.illumidesk.com | -| albIngressController.kube2iam | pass kube2iam arn to securely pass AWS credentials into alb ingress controller pod | arn:aws:iam::XXXXXXXXXX:role:instance-profile/k8s-alb-controller | -| albIngressController.serviceAccount.annotations.eks.amazonaws.com/role-arn | assuming 'enableIRSA:true' pass the role arn for the alb ingress controller | arn:aws:iam::XXXXXXXXXX:role/eks-irsa-alb-ingress-controller | -| allowExternalDNS.domainFilter | AWS route 53 hosted zonezone | illumidesk.com | -| allowExternalDNS.enabled | makes Kubernetes resources discoverable via public DNS Servers | False | -| allowExternalDNS.enableIRSA | allow passing of IAM role arn if you are not using eksctl | False | -| allowExternalDNS.serviceAccount.annotations.eks.amazonaws.com/role-arn | Assuming 'enableIRSA:true' pass the role arn for the external dns | False | -| allowExternalDNS.txtOwnerID | Identifies externalDNS instance | illumidesk | -| allowLocal.enabled | Enable local file system (confirm your instance has /illumidesk-nb-exchange directory | False | -| allowNFS.enabled | Enables creation of NFS pv and pvc | False | -| allowNFS.path | Configure NFS base path | / | -| allowLocal.enabled | local for local testing or efs for aws | local | -| datadog.enabled | Enables datadog | False | -| datadog.datadog.apiKey | API Key | "" | -| datadog.datadog.clusterName | Name of EKS cluster | "" | -| datadog.datadog.clusterAgent.enable | Enable Cluster Agent | False | -| datadog.datadog.clusterAgent.token | API token for Cluster Agent | "" | -| datadog.datadog.clusterAgent.metricsProvider | Enable Metrics provider for cluster agent | False | -| datadog.datadog.clusterAgent.token | API token for Cluster Agent | "" | -| datadog.datadog.clusterName | Name of EKS cluster | "" | -| datadog.enabled | Enables datadog | False | -| graderSetupService.enabled | Enables Grader Setup Service | False | -| graderSetupService.graderSpawnerImage | Grader Image Name | illumidesk/illumidesk-grader:latest | -| graderSetupService.graderSpawnerCPU | CPU Allocated for each grader | 200m | -| graderSetupService.graderSpawnerMem | Memory Allocated for each grader | 400Mi | -| graderSetupService.graderSpawnerStorage | Storage Allocated for each grader | 500Mi | -| graderSetupService.graderSpawnerCpuGuarantee | CPU allocated for each grader | 200m | -| graderSetupService.graderSpawnerCpuLimit | Max CPU allocation for each grader | 400m | -| graderSetupService.graderSpawnerMemGuarantee | Memory allocated for each grader | 400Mi | -| graderSetupService.graderSpawnerMemLimit | Max memory allocated for each grader | 800Mi | -| graderSetupService.graderSpawnerStorage | Max storage allocation for each grader | 500Mi | -| graderSetupService.graderSetupImage | Grader Setup Service Image Name | illumidesk/grader-setup-app:latest | -| graderSetupService.postgresNBGraderPassword | Provide Postgres Password | None | -| graderSetupService.graderCpuGuarantee | Provide CPU allocation for Grader Setup Service | 200m | -| graderSetupService.graderCpuLimit | Provide Max CPU allocation for Grader Setup Service | 400m | -| graderSetupService.graderMemGuarantee | Provide Memory allocation for Grader Setup Service | 400Mi | -| graderSetupService.graderMemLimit | Provide Max Memory allocation allowed for Grader Setup Service | 800Mi | -| graderSetupService.StorageCapacity | Provide storage capacity the Grader Setup Service can use | 200Mi | -| graderSetupService.StorageRequests | Provide initial storage allocated for the Grader Setup Service | 1Gi | -| illumideskSettings.enabled | Enables the IllumiDesk settings ConfigMap | False | -| illumideskSettings.custom_auth_type | The custom authentication type. Should be one of DUMMY, LTI11, LTI13, or AUTH0. | "DUMMY" | -| illumideskSettings.jupyterhub_api_url | The internal facing endpoint for the JupyterHub API URL | http://svc.cluster.local:8081/hub/api | -| illumideskSettings.lti_consumer_key | LTI v1.1 consumer key | "" | -| illumideskSettings.lti13_client_id | LTI v1.3 client id | "" | -| illumideskSettings.lti13_endpoint | LTI v1.3 endpoint URL | "" | -| illumideskSettings.lti13_authorization_url | LTI v1.3 authorization URL | "" | -| illumideskSettings.lti13_token_url | LTI v1.3 token URL | postgres | -| illumideskSettings.oidc_authorize_url | OIDC authorization URL | False | -| illumideskSettings.oidc_token_url | OIDC token URL | False | -| illumideskSettings.oidc_userdata_url | OIDC userdata URL | False | -| illumideskSettings.oidc_client_id | OIDC client id | False | -| illumideskSettings.oidc_client_secret | OIDC client secret | False | -| illumideskSettings.oidc_callback_url | OIDC callback URL | False | -| illumideskSettings.postgresHost | Postgres host endpoint. If set, both the JupyterHub and nbgrader services will use this endpoint instead of the default Postgres endpoint from the internal Postgres deployment. | "" | -| illumideskSettings.postgres_nbgrader_user | Postgres nbgrader username | postgres | -| illumideskSettings.postgres_jupyterhub_user | Postgres JupyterHub username | postgres | -| postgresql.postgresqlUsername | Username for postgres | postgres | -| postgresql.postgresqlPostgresPassword | Postgresql admin password | "" | -| postgresql.postgresqlPassword | Postgresql password | "" | -| postgresql.postgresqlDatabase | Postgresql Database | \_+\_k | +> NOTE: The following envars must be set: + * `Jupyterhub.hub.extraEnvar.POSTGRES_NBGRADER_PASSWORD` + * `Jupyterhub.hub.extraEnvar.POSTGRES_JUPYTERHUB_PASSWORD` + * `Jupyterhub.hub.extraEnvar.JUPYTERHUB_API_TOKEN` + * `Jupyterhub.hub.extraEnvar.JUPYTERHUB_CRYPT_KEY` + +> NOTE: The following envars must be set depending on autentication type + * `Jupyterhub.hub.extraEnvar.LTI_SHARED_SECRET` + * `Jupyterhub.hub.extraEnvar.OIDC_CLIENT_SECRET` + + +| Parameter | Description | Default | +| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| albIngress.host | Host name configured by ingress resource that uses alb | XXXXX.illumidesk.com | +| albIngress.ingress.annotations.alb.ingress.kubernetes.io/certificate-arn | certificate managaged by aws | arn:aws:acm:us-east-1:XXXXXXXXXXXX:certificate/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX | +| albIngress.ingress.annotations.alb.ingress.kubernetes.io/group.name | ingress group name to associate ingress files to alb-ingress-controller | | +| albIngress.ingress.annotations.alb.ingress.kubernetes.io/scheme | determines whether the load balancer is internal or internet facing | internet-facing | +| albIngress.ingress.annotations.alb.ingress.kubernetes.io/subnets | subnets that are part of your cluster vpc. At least 2 required | [] (subnets for cluster vpc) | +| albIngress.ingress.annotations.alb.ingress.kubernetes.io/tags | ingress tags to tag ALB/Target Groups/Security group | {} | +| albIngress.ingress.annotations.alb.ingress.kubernetes.io/target-type | determines how to create target groups | IP | +| albIngress.ingress.annotations.kubernetes.io/ingress.class | determines which controller the ingress manifest uses | ALB | +| albIngressController.awsRegion | aws region where your cluster is located | us-east-1 | +| albIngressController.clusterName | EKS Cluster where aws resources should be created | illumidesk | +| albIngressController.clusterVPC | Cluster VPC ID alb ingress controller uses to create aws resources | vpc-XXX | +| albIngressController.enabled | allows creation of aws application load balancer | FALSE | +| albIngressController.enableIRSA | allow passing of IAM role arn if you are not using eksctl | FALSE | +| albIngressController.host | Host name configured by ingress resource that uses alb | XXXXX.illumidesk.com | +| albIngressController.kube2iam | pass kube2iam arn to securely pass AWS credentials into alb ingress controller pod | arn:aws:iam::XXXXXXXXXX:role:instance-profile/k8s-alb-controller | +| albIngressController.serviceAccount.annotations.eks.amazonaws.com/role-arn | assuming 'enableIRSA:true' pass the role arn for the alb ingress controller | arn:aws:iam::XXXXXXXXXX:role/eks-irsa-alb-ingress-controller | +| allowExternalDNS.domainFilter | AWS route 53 hosted zonezone | illumidesk.com | +| allowExternalDNS.enabled | makes Kubernetes resources discoverable via public DNS Servers | FALSE | +| allowExternalDNS.enableIRSA | allow passing of IAM role arn if you are not using eksctl | FALSE | +| allowExternalDNS.serviceAccount.annotations.eks.amazonaws.com/role-arn | Assuming 'enableIRSA:true' pass the role arn for the external dns | FALSE | +| allowExternalDNS.txtOwnerID | Identifies externalDNS instance | illumidesk | +| allowLocal.enabled | Enable local file system (confirm your instance has /illumidesk-nb-exchange-directory | FALSE | +| and /illumidesk-courses directory) | FALSE | arn:aws:iam::XXXXXXXXXX:role/eks-irsa-external-dns | +| allowNFS.enabled | Enables creation of NFS pv and pvc | FALSE | +| allowNFS.path | Configure NFS base path | / | +| allowLocal.enabled | local for local testing or efs for aws | local | +| postgresql.enabled | Enables creation of postgresql manifests | FALSE | +| postgresql.postgresqlUsername | Username for postgres | postgres | +| postgresql.postgresqlPostgresPassword | Postgresql admin password | | +| postgresql.postgresqlPassword | Postgresql password | | +| postgresql.postgresqlDatabase | Postgresql Database | illumidesk | +| postgresql.existingSecret | Existing Kubernetes Secret that exists in the namespace | illumidesk-secret | | +| postgresql.service.port | Database port | 5432 | +| datadog.enabled | Enables datadog | FALSE | +| datadog.datadog.apiKey | API Key | | +| datadog.datadog.clusterName | Name of EKS cluster | | +| datadog.datadog.clusterAgent.enable | Enable Cluster Agent | FALSE | +| datadog.datadog.clusterAgent.token | API token for Cluster Agent | | +| datadog.datadog.clusterAgent.metricsProvider | Enable Metrics provider for cluster agent | FALSE | +| datadog.datadog.clusterAgent.token | API token for Cluster Agent | | +| datadog.datadog.clusterName | Name of EKS cluster | | +| datadog.enabled | Enables datadog | FALSE | +| externalDatabase.enabled | Enables External Database | FALSE | +| externalDatabase.existingSecret | Existing Kubernetes Secret that exists in the namespace | illumidesk-secret | +| externalDatabase.host | Host name of the external database server | | +| externalDatabase.database | Database name | illumidesk | +| externalDatabase.port | Database port | 5432 | +| externalDatabase.databaseUser | Database user | postgres | +| externalDatabase.databasePassword | Database password | postgres123 | +| graderSetupService.enabled | Enables Grader Setup Service | FALSE | +| graderSetupService.graderSpawnerImage | Grader Image Name | illumidesk/illumidesk-grader:latest | +| graderSetupService.graderSpawnerCPU | CPU Allocated for each grader | 200m | +| graderSetupService.graderSpawnerMem | Memory Allocated for each grader | 400Mi | +| graderSetupService.graderSpawnerStorage | Storage Allocated for each grader | 500Mi | +| graderSetupService.graderSpawnerCpuGuarantee | CPU allocated for each grader | 200m | +| graderSetupService.graderSpawnerCpuLimit | Max CPU allocation for each grader | 400m | +| graderSetupService.graderSpawnerMemGuarantee | Memory allocated for each grader | 400Mi | +| graderSetupService.graderSpawnerMemLimit | Max memory allocated for each grader | 800Mi | +| graderSetupService.graderSpawnerStorage | Max storage allocation for each grader | 500Mi | +| graderSetupService.graderSetupImage | Grader Setup Service Image Name | illumidesk/grader-setup-app:latest | +| graderSetupService.postgresNBGraderPassword | Provide Postgres Password | None | +| graderSetupService.graderCpuGuarantee | Provide CPU allocation for Grader Setup Service | 200m | +| graderSetupService.graderCpuLimit | Provide Max CPU allocation for Grader Setup Service | 400m | +| graderSetupService.graderMemGuarantee | Provide Memory allocation for Grader Setup Service | 400Mi | +| graderSetupService.graderMemLimit | Provide Max Memory allocation allowed for Grader Setup Service | 800Mi | +| graderSetupService.StorageCapacity | Provide storage capacity the Grader Setup Service can use | 200Mi | +| graderSetupService.StorageRequests | Provide initial storage allocated for the Grader Setup Service | 1Gi | + ## Validate the Helm Chart - For nodeport you will need to use your one of your node ips and also the port you defined in your values file. diff --git a/charts/illumidesk/Chart.lock b/charts/illumidesk/Chart.lock index ab00603..bde8d06 100644 --- a/charts/illumidesk/Chart.lock +++ b/charts/illumidesk/Chart.lock @@ -9,4 +9,4 @@ dependencies: repository: https://helm.datadoghq.com version: 2.4.29 digest: sha256:8ff385253e4da471c090ed77f7febc47988d0dabe39cb23ce2c2d2ccc481de85 -generated: "2021-07-23T16:16:57.7629705-04:00" +generated: "2021-08-03T19:41:28.0238575-04:00" diff --git a/charts/illumidesk/Chart.yaml b/charts/illumidesk/Chart.yaml index facc45c..51745ec 100644 --- a/charts/illumidesk/Chart.yaml +++ b/charts/illumidesk/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: illumidesk -version: 5.4.2 +version: 5.5.0 appVersion: 1.2.0 description: An extention of the JupyterHub chart with additional IllumiDesk resources icon: https://configs.illumidesk.com/images/illumidesk-80.png diff --git a/charts/illumidesk/templates/_helpers.tpl b/charts/illumidesk/templates/_helpers.tpl index 6aba305..e509267 100644 --- a/charts/illumidesk/templates/_helpers.tpl +++ b/charts/illumidesk/templates/_helpers.tpl @@ -29,61 +29,3 @@ If release name contains chart name it will be used as a full name. {{- end }} {{- end }} -{{/* -Return the Database hostname -*/}} -{{- define "database.host" -}} -{{- if .Values.postgresql.enabled }} -{{- printf "%s-%s.%s.%s" .Release.Namespace "postgresql" .Release.Namespace "svc.cluster.local" -}} -{{- else if .Values.externaldb.enabled }} -{{- printf "%s" .Values.externaldb.host -}} -{{- end -}} -{{- end -}} - - -{{/* -Return the Database port -*/}} -{{- define "database.port" -}} -{{- if .Values.postgresql.enabled }} - {{- printf "5432" | quote -}} -{{- else -}} - {{- .Values.externalDatabase.port | quote -}} -{{- end -}} -{{- end -}} - -{{/* -Return the Database database name -*/}} -{{- define "database.name" -}} -{{- if .Values.postgresql.enabled }} - {{- printf "%s" .Values.postgresql.postgresqlDatabase -}} -{{- else -}} - {{- printf "%s" .Values.externalDatabase.database -}} -{{- end -}} -{{- end -}} - -{{/* -Return the Database user -*/}} -{{- define "database.databaseUser" -}} -{{- if .Values.postgresql.enabled }} - {{- printf "%s" .Values.postgresql.postgresqlUsername -}} -{{- else -}} - {{- printf "%s" .Values.externalDatabase.username -}} -{{- end -}} -{{- end -}} - -{{/* -Return the Database encrypted password -*/}} -{{- define "database.databaseEncryptedPassword" -}} -{{- if .Values.postgresql.enabled }} - {{- .Values.postgresql.postgresqlPassword | b64enc | quote -}} -{{- else -}} - {{- .Values.externalDatabase.password | b64enc | quote -}} -{{- end -}} -{{- end -}} - - - diff --git a/charts/illumidesk/templates/grader_setup_service.yaml b/charts/illumidesk/templates/grader_setup_service.yaml index 65fb97b..3c99136 100644 --- a/charts/illumidesk/templates/grader_setup_service.yaml +++ b/charts/illumidesk/templates/grader_setup_service.yaml @@ -135,7 +135,14 @@ spec: name: hub-illumidesk-cm key: POSTGRES_NBGRADER_USER - name: POSTGRES_NBGRADER_PASSWORD - value: {{ .Values.graderSetupService.postgresNBGraderPassword | default "illumidesk" }} + valueFrom: + secretKeyRef: + {{ if .Values.externalDatabase.enabled }} + name: {{ .Values.externalDatabase.existingSecret }} + {{ else if .Values.postgresql.enabled }} + name: {{ .Values.postgresql.existingSecret }} + {{ end }} + key: postgresql-password - name: ILLUMIDESK_MNT_ROOT value: '/illumidesk-courses' - name: PORT diff --git a/charts/illumidesk/templates/hub-config-map.yaml b/charts/illumidesk/templates/illumidesk-config-map.yaml similarity index 65% rename from charts/illumidesk/templates/hub-config-map.yaml rename to charts/illumidesk/templates/illumidesk-config-map.yaml index 0bf0d92..fd98a40 100644 --- a/charts/illumidesk/templates/hub-config-map.yaml +++ b/charts/illumidesk/templates/illumidesk-config-map.yaml @@ -10,7 +10,7 @@ data: ORGANIZATION_NAME: {{ .Release.Namespace }} OIDC_AUTHORIZE_URL: {{ .Values.illumideskSettings.oidcAuthorizeUrl | default "https://auth.illumidesk.com/authorize" | quote }} OIDC_TOKEN_URL: {{ .Values.illumideskSettings.oidcTokenUrl | default "https://auth.illumidesk.com/authorize" | quote }} - OIDC_USERDATA_URL: {{ .Values.illumideskSettings.oidcUserData | default "https://auth.illumidesk.com/userinfo" | quote }} + OIDC_USERDATA_URL: {{ .Values.illumideskSettings.oidcUserDataUrl | default "https://auth.illumidesk.com/userinfo" | quote }} OIDC_CLIENT_ID: {{ .Values.illumideskSettings.oidcClientId | default "127000000008" | quote }} OIDC_CLIENT_SECRET: {{ .Values.illumideskSettings.oidcClientSecret | default "127000008" | quote }} OIDC_CALLBACK_URL: {{ .Values.illumideskSettings.oidcCallbackUrl | default "http://localhost:8000/hub/oauth_callback" | quote }} @@ -19,16 +19,21 @@ data: LTI13_ENDPOINT: {{ .Values.illumideskSettings.lti13Endpoint | default "https://illumidesk.instructure.com/api/lti/security/jwks" | quote }} LTI13_AUTHORIZE_URL: {{ .Values.illumideskSettings.lti13AuthorizeUrl | default "https://illumidesk.instructure.com/api/lti/authorize_redirect" | quote }} LTI13_TOKEN_URL: {{ .Values.illumideskSettings.lti13TokenUrl | default "https://illumidesk.instructure.com/login/oauth2/token" | quote }} - POSTGRES_NBGRADER_USER: {{ .Values.illumideskSettings.postgresUser | default "postgres" | quote }} - POSTGRES_JUPYTERHUB_USER: {{ .Values.illumideskSettings.postgresUser | default "postgres" | quote }} -{{ if hasKey .Values.illumideskSettings "postgresHost" }} - POSTGRES_NBGRADER_HOST: {{ .Values.illumideskSettings.postgresHost | quote }} - POSTGRES_JUPYTERHUB_HOST: {{ .Values.illumideskSettings.postgresHost | quote }} -{{ else }} +{{ if .Values.externalDatabase.enabled }} + POSTGRES_NBGRADER_HOST: {{ .Values.externalDatabase.host | quote }} + POSTGRES_JUPYTERHUB_HOST: {{ .Values.externalDatabase.host | quote }} + POSTGRES_JUPYTERHUB_DB: {{ .Values.externalDatabase.database | quote }} + POSTGRES_JUPYTERHUB_PORT: {{ .Values.externalDatabase.port | quote }} + POSTGRES_NBGRADER_USER: {{ .Values.externalDatabase.databaseUser | quote }} + POSTGRES_JUPYTERHUB_USER: {{ .Values.externalDatabase.databaseUser | quote }} +{{ else if .Values.postgresql.enabled }} POSTGRES_NBGRADER_HOST: "{{.Release.Namespace }}-postgresql.{{ .Release.Namespace }}.svc.cluster.local" POSTGRES_JUPYTERHUB_HOST: "{{ .Release.Namespace }}-postgresql.{{ .Release.Namespace }}.svc.cluster.local" + POSTGRES_JUPYTERHUB_DB: {{ .Values.postgresql.postgresqlDatabase | quote }} + POSTGRES_JUPYTERHUB_PORT: {{ .Values.postgresql.service.port | quote }} + POSTGRES_NBGRADER_USER: {{ .Values.postgresql.postgresqlUsername | quote }} + POSTGRES_JUPYTERHUB_USER: {{ .Values.postgresql.postgresqlUsername | quote }} {{ end }} - POSTGRES_JUPYTERHUB_DB: {{ .Values.illumideskSettings.postgresDB | default "illumidesk" | quote }} - POSTGRES_JUPYTERHUB_PORT: {{ .Values.illumideskSettings.postgresPort | default "5432" | quote }} + {{ end }} \ No newline at end of file diff --git a/charts/illumidesk/templates/illumidesk-secret.yaml b/charts/illumidesk/templates/illumidesk-secret.yaml new file mode 100644 index 0000000..fae6e2b --- /dev/null +++ b/charts/illumidesk/templates/illumidesk-secret.yaml @@ -0,0 +1,15 @@ +{{ if .Values.illumideskSettings.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: illumidesk-secret + namespace: {{ .Release.Namespace }} +type: Opaque +stringData: +{{ if .Values.externalDatabase.enabled }} + postgresql-password: {{ .Values.externalDatabase.databasePassword }} +{{ else if .Values.postgresql.enabled }} + postgresql-password: {{ .Values.postgresql.postgresqlPassword }} +{{ end }} + +{{ end }} \ No newline at end of file diff --git a/charts/illumidesk/values.yaml b/charts/illumidesk/values.yaml index 7f4a57b..5c2961b 100644 --- a/charts/illumidesk/values.yaml +++ b/charts/illumidesk/values.yaml @@ -71,8 +71,6 @@ jupyterhub: configMapKeyRef: name: hub-illumidesk-cm # The ConfigMap this value comes from. key: JUPYTERHUB_API_URL - # Mount Root - ILLUMIDESK_MNT_ROOT: "/illumidesk-courses" # OIDC Authorize URL OIDC_AUTHORIZE_URL: valueFrom: @@ -109,7 +107,6 @@ jupyterhub: configMapKeyRef: name: hub-illumidesk-cm # The ConfigMap this value comes from. key: LTI_CONSUMER_KEY - LTI13_PRIVATE_KEY: "/srv/jupyterhub/rsa_private.key" LTI13_CLIENT_ID: valueFrom: configMapKeyRef: @@ -160,6 +157,9 @@ jupyterhub: configMapKeyRef: name: hub-illumidesk-cm # The ConfigMap this value comes from. key: POSTGRES_JUPYTERHUB_DB + LTI13_PRIVATE_KEY: "/srv/jupyterhub/rsa_private.key" + # Mount Root + ILLUMIDESK_MNT_ROOT: "/illumidesk-courses" extraConfig: # The logo that appears on the top right of the control panel and end-user notebooks with Jupyter Classic. logoConfig: | @@ -173,7 +173,6 @@ jupyterhub: from oauthenticator.generic import GenericOAuthenticator custom_auth_type = os.environ.get('CUSTOM_AUTH_TYPE') - c.JupyterHub.hub_connect_ip = 'hub' if custom_auth_type == 'LTI13': c.JupyterHub.authenticator_class = 'illumidesk.authenticators.authenticator.LTI13Authenticator' @@ -268,18 +267,12 @@ jupyterhub: import os import z2jh custom_auth_type = os.environ.get('CUSTOM_AUTH_TYPE') - if custom_auth_type != 'AUTH0': - c.JupyterHub.services.append({ - 'name': 'announcement', - 'admin': True, - 'url': 'http://0.0.0.0:8889', - 'command': ["python3", "/etc/jupyterhub-services/announcement.py", "--port", "8889", "--api-prefix", "/services/announcement"], - 'api_token': os.environ.get("JUPYTERHUB_API_TOKEN") }) - # load extra grader services launched from grader-setup service - services_resp = requests.get('http://grader-setup-service.{}.svc.cluster.local:8000/services'.format(os.environ.get('ORGANIZATION_NAME'))) - services_resp = services_resp.json() - c.JupyterHub.load_groups.update(services_resp['groups']) - c.JupyterHub.services.extend(services_resp['services']) + org_name = os.environ.get('ORGANIZATION_NAME') + # load extra grader services launched from grader-setup service + services_resp = requests.get('http://grader-setup-service.{}.svc.cluster.local:8000/services'.format(org_name)) + services_resp = services_resp.json() + c.JupyterHub.load_groups.update(services_resp['groups']) + c.JupyterHub.services.extend(services_resp['services']) # The JupyterHub docker image @@ -355,11 +348,32 @@ postgresql: # Provide Postgresql username postgresqlUsername: postgres # Provide Postgresql password if username is not defined, the default username will have this password - postgresqlPostgresPassword: 'postgres123' + postgresqlPostgresPassword: postgres123 # Provide Postgresql password - postgresqlPassword: 'postgres123' + postgresqlPassword: postgres123 # Provide in cluster database name - postgresqlDatabase: 'illumidesk' + postgresqlDatabase: illumidesk + # Default existing secret name for postgres passwords + existingSecret: 'illumidesk-secret' + # Database Server Port + service: + port: 5432 + +externalDatabase: + # Enables or disables configuration of external Database + enabled: false + # Default existing secret name for external database password passwords + existingSecret: 'illumidesk-secret' + # Host name for external database + host: '' + # Provide external database name + database: illumidesk + # Database Server Port + port: 5432 + # Database user + databaseUser: postgres + # Database password + databasePassword: postgres123 ## DatadogHQ Agent ## https://github.com/DataDog/helm-charts/tree/master/charts/datadog @@ -467,38 +481,38 @@ illumideskSettings: # Enables or disables the illumidesk settings options enabled: true # The custom authentication type. Should be one of DUMMY, LTI11, LTI13, or AUTH0. - custom_auth_type: "" - # Internal JupyterHub API URL - jupyterhub_api_url: "" + customAuthType: "DUMMY" # OIDC authorization URL - oidc_authorize_url: "" + oidcAuthorizeUrl: "" # OIDC token URL - oidc_token_url: "" + oidcTokenUrl: "" # OIDC userdata URL - oidc_userdata_url: "" + oidcUserData: "" # OIDC client id - oidc_client_id: "" + oidcClientId: "" # OIDC client secret - oidc_client_secret: "" + oidcClientSecret: "" # OIDC callback URL - oidc_callback_url: "" + oidcCallbackUrl: "" # LTI v1.1 consumer key - lti_consumer_key: "" + ltiConsumerKey: "" # LTI v1.3 client id - lti13_client_id: "" + lti13ClientId: "" # LTI v1.3 endpoint URL - lti13_endpoint: "" + lti13Endpoint: "" # LTI v1.3 authorization URL - lti13_authorization_url: "" + lti13AuthorizeUrl: "" # LTI v1.3 token URL - lti13_token_url: "" + lti13TokenUrl: "" # Postgres host endpoint. If set, both the nbgrader database and the JupyterHub database # will use this Postgres host. postgresHost: "" # Postgres nbgrader username - postgres_nbgrader_user: "" + postgresGraderUser: "postgres" # Postgres JupyterHub username - postgres_jupyterhub_user: "" + postgresHubUser: "postgres" + # external Database Server Host Name + externalHost: "" ## Grader setup service ## graderSetupService: diff --git a/docs/illumidesk-5.1.0.tgz b/docs/illumidesk-5.1.0.tgz new file mode 100644 index 0000000..47e9434 Binary files /dev/null and b/docs/illumidesk-5.1.0.tgz differ diff --git a/docs/illumidesk-5.5.0.tgz b/docs/illumidesk-5.5.0.tgz new file mode 100644 index 0000000..db2abc9 Binary files /dev/null and b/docs/illumidesk-5.5.0.tgz differ diff --git a/docs/index.yaml b/docs/index.yaml index 013170a..b5ebebd 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -3,7 +3,91 @@ entries: illumidesk: - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:42.0609408-04:00" + created: "2021-08-03T20:16:35.8621462-04:00" + dependencies: + - import-values: + - child: rbac + parent: rbac + name: jupyterhub + repository: https://jupyterhub.github.io/helm-chart/ + version: 1.1.1 + - condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.1.3 + - condition: datadog.enabled + name: datadog + repository: https://helm.datadoghq.com + version: 2.4.29 + description: An extention of the JupyterHub chart with additional IllumiDesk resources + digest: c61e724bdd4c81630d1af43e23f71dd8f949b8d9fdb01314737cdbc7743fb8a8 + icon: https://configs.illumidesk.com/images/illumidesk-80.png + maintainers: + - email: hello@illumidesk.com + name: IllumiDesk Team + name: illumidesk + urls: + - illumidesk-5.5.0.tgz + version: 5.5.0 + - apiVersion: v2 + appVersion: 1.2.0 + created: "2021-08-03T20:16:35.8521588-04:00" + dependencies: + - import-values: + - child: rbac + parent: rbac + name: jupyterhub + repository: https://jupyterhub.github.io/helm-chart/ + version: 1.1.1 + - condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.1.3 + - condition: datadog.enabled + name: datadog + repository: https://helm.datadoghq.com + version: 2.4.29 + description: An extention of the JupyterHub chart with additional IllumiDesk resources + digest: b2c9b753e420da7478b8a49b4ba52366f4c2f6fa49a1e48afbca1c3d5faf668c + icon: https://configs.illumidesk.com/images/illumidesk-80.png + maintainers: + - email: hello@illumidesk.com + name: IllumiDesk Team + name: illumidesk + urls: + - illumidesk-5.4.2.tgz + version: 5.4.2 + - apiVersion: v2 + appVersion: 1.2.0 + created: "2021-08-03T20:16:35.8415263-04:00" + dependencies: + - import-values: + - child: rbac + parent: rbac + name: jupyterhub + repository: https://jupyterhub.github.io/helm-chart/ + version: 1.1.1 + - condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.1.3 + - condition: datadog.enabled + name: datadog + repository: https://helm.datadoghq.com + version: 2.4.29 + description: An extention of the JupyterHub chart with additional IllumiDesk resources + digest: 50b879d696ced73ce1ff5e5295078b29678b6623d0122de000da8aa09c53810f + icon: https://configs.illumidesk.com/images/illumidesk-80.png + maintainers: + - email: hello@illumidesk.com + name: IllumiDesk Team + name: illumidesk + urls: + - illumidesk-5.4.1.tgz + version: 5.4.1 + - apiVersion: v2 + appVersion: 1.2.0 + created: "2021-08-03T20:16:35.8326624-04:00" dependencies: - import-values: - child: rbac @@ -31,7 +115,7 @@ entries: version: 5.4.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:42.0514057-04:00" + created: "2021-08-03T20:16:35.8217786-04:00" dependencies: - import-values: - child: rbac @@ -59,7 +143,7 @@ entries: version: 5.3.1 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:42.0410358-04:00" + created: "2021-08-03T20:16:35.8131293-04:00" dependencies: - import-values: - child: rbac @@ -87,7 +171,7 @@ entries: version: 5.3.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:42.0324015-04:00" + created: "2021-08-03T20:16:35.802099-04:00" dependencies: - import-values: - child: rbac @@ -115,7 +199,7 @@ entries: version: 5.2.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:42.0227354-04:00" + created: "2021-08-03T20:16:35.793109-04:00" dependencies: - import-values: - child: rbac @@ -143,7 +227,7 @@ entries: version: 5.1.2 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:42.0122163-04:00" + created: "2021-08-03T20:16:35.7821915-04:00" dependencies: - import-values: - child: rbac @@ -171,7 +255,35 @@ entries: version: 5.1.1 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:42.0034206-04:00" + created: "2021-08-03T20:16:35.7732336-04:00" + dependencies: + - import-values: + - child: rbac + parent: rbac + name: jupyterhub + repository: https://jupyterhub.github.io/helm-chart/ + version: 1.1.1 + - condition: postgresql.enabled + name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 10.1.3 + - condition: datadog.enabled + name: datadog + repository: https://helm.datadoghq.com + version: 2.4.29 + description: An extention of the JupyterHub chart with additional IllumiDesk resources + digest: 138c378f75f40dddea7b7bc6bd13364cc0358b2cad84f6f92f89f075d1258b2d + icon: https://configs.illumidesk.com/images/illumidesk-80.png + maintainers: + - email: hello@illumidesk.com + name: IllumiDesk Team + name: illumidesk + urls: + - illumidesk-5.1.0.tgz + version: 5.1.0 + - apiVersion: v2 + appVersion: 1.2.0 + created: "2021-08-03T20:16:35.7631061-04:00" dependencies: - import-values: - child: rbac @@ -199,7 +311,7 @@ entries: version: 5.0.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9928-04:00" + created: "2021-08-03T20:16:35.7522572-04:00" dependencies: - import-values: - child: rbac @@ -227,7 +339,7 @@ entries: version: 4.0.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9841466-04:00" + created: "2021-08-03T20:16:35.7426578-04:00" dependencies: - import-values: - child: rbac @@ -255,7 +367,7 @@ entries: version: 3.5.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9743648-04:00" + created: "2021-08-03T20:16:35.7339251-04:00" dependencies: - import-values: - child: rbac @@ -283,7 +395,7 @@ entries: version: 3.4.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9655402-04:00" + created: "2021-08-03T20:16:35.723592-04:00" dependencies: - import-values: - child: rbac @@ -311,7 +423,7 @@ entries: version: 3.3.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9575254-04:00" + created: "2021-08-03T20:16:35.7150409-04:00" dependencies: - import-values: - child: rbac @@ -339,7 +451,7 @@ entries: version: 3.2.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9484421-04:00" + created: "2021-08-03T20:16:35.7046353-04:00" dependencies: - import-values: - child: rbac @@ -367,7 +479,7 @@ entries: version: 3.1.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9393781-04:00" + created: "2021-08-03T20:16:35.6944351-04:00" dependencies: - import-values: - child: rbac @@ -395,7 +507,7 @@ entries: version: 3.0.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9303736-04:00" + created: "2021-08-03T20:16:35.6859065-04:00" dependencies: - import-values: - child: rbac @@ -423,7 +535,7 @@ entries: version: 2.3.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9215974-04:00" + created: "2021-08-03T20:16:35.6765609-04:00" dependencies: - import-values: - child: rbac @@ -451,7 +563,7 @@ entries: version: 2.2.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9130714-04:00" + created: "2021-08-03T20:16:35.6671287-04:00" dependencies: - import-values: - child: rbac @@ -479,7 +591,7 @@ entries: version: 2.1.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.9043499-04:00" + created: "2021-08-03T20:16:35.6575461-04:00" dependencies: - import-values: - child: rbac @@ -507,7 +619,7 @@ entries: version: 2.0.1 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.8952567-04:00" + created: "2021-08-03T20:16:35.6477145-04:00" dependencies: - import-values: - child: rbac @@ -535,7 +647,7 @@ entries: version: 2.0.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.8859355-04:00" + created: "2021-08-03T20:16:35.6384092-04:00" dependencies: - import-values: - child: rbac @@ -563,7 +675,7 @@ entries: version: 1.0.1 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.8763527-04:00" + created: "2021-08-03T20:16:35.629456-04:00" dependencies: - import-values: - child: rbac @@ -591,7 +703,7 @@ entries: version: 1.0.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.8669035-04:00" + created: "2021-08-03T20:16:35.6207846-04:00" dependencies: - import-values: - child: rbac @@ -619,7 +731,7 @@ entries: version: 0.6.0 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.8577984-04:00" + created: "2021-08-03T20:16:35.6126886-04:00" dependencies: - import-values: - child: rbac @@ -647,7 +759,7 @@ entries: version: 0.5.2 - apiVersion: v2 appVersion: 1.2.0 - created: "2021-07-28T15:23:41.8482368-04:00" + created: "2021-08-03T20:16:35.6037871-04:00" dependencies: - import-values: - child: rbac @@ -675,7 +787,7 @@ entries: version: 0.5.1 - apiVersion: v2 appVersion: 1.1.0 - created: "2021-07-28T15:23:41.8397263-04:00" + created: "2021-08-03T20:16:35.5934697-04:00" dependencies: - import-values: - child: rbac @@ -703,7 +815,7 @@ entries: version: 0.5.0 - apiVersion: v2 appVersion: 1.0.0 - created: "2021-07-28T15:23:41.8310472-04:00" + created: "2021-08-03T20:16:35.5839101-04:00" dependencies: - import-values: - child: rbac @@ -731,7 +843,7 @@ entries: version: 0.4.1 - apiVersion: v2 appVersion: 1.0.0 - created: "2021-07-28T15:23:41.8229178-04:00" + created: "2021-08-03T20:16:35.5739279-04:00" dependencies: - import-values: - child: rbac @@ -759,7 +871,7 @@ entries: version: 0.4.0 - apiVersion: v2 appVersion: 0.10.0 - created: "2021-07-28T15:23:41.8147589-04:00" + created: "2021-08-03T20:16:35.5647328-04:00" dependencies: - import-values: - child: rbac @@ -787,7 +899,7 @@ entries: version: 0.3.0 - apiVersion: v2 appVersion: 0.1.1 - created: "2021-07-28T15:23:41.8064622-04:00" + created: "2021-08-03T20:16:35.5559089-04:00" dependencies: - import-values: - child: rbac @@ -815,7 +927,7 @@ entries: version: 0.2.0 - apiVersion: v2 appVersion: 0.1.1 - created: "2021-07-28T15:23:41.7988031-04:00" + created: "2021-08-03T20:16:35.5477893-04:00" dependencies: - import-values: - child: rbac @@ -843,7 +955,7 @@ entries: version: 0.1.1 - apiVersion: v2 appVersion: 0.1.0 - created: "2021-07-28T15:23:41.7898781-04:00" + created: "2021-08-03T20:16:35.5384297-04:00" dependencies: - import-values: - child: rbac @@ -870,7 +982,7 @@ entries: - illumidesk-0.1.0.tgz version: 0.1.0 - apiVersion: v2 - created: "2021-07-28T15:23:41.7812799-04:00" + created: "2021-08-03T20:16:35.5293288-04:00" dependencies: - import-values: - child: rbac @@ -896,4 +1008,4 @@ entries: urls: - illumidesk-0.0.1.tgz version: 0.0.1 -generated: "2021-07-28T15:23:41.772493-04:00" +generated: "2021-08-03T20:16:35.5199351-04:00"