QCDIS / NaaVRE

BSD 3-Clause "New" or "Revised" License
3 stars 2 forks source link

jupyterhub is not loading jupyterlab #594

Closed skoulouzis closed 1 year ago

skoulouzis commented 1 year ago
Traceback (most recent call last):

In the loading page, we get:

500: Internal Server Error

In the log files:


      File "/venv/lib/python3.11/site-packages/tornado/web.py", line 1767, in _execute
        result = method(*self.path_args, **self.path_kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/venv/lib/python3.11/site-packages/tornado/web.py", line 3252, in wrapper
        url = self.get_login_url()
              ^^^^^^^^^^^^^^^^^^^^
      File "/venv/lib/python3.11/site-packages/jupyterhub/singleuser/extension.py", line 137, in get_login_url
        state = self.hub_auth.set_state_cookie(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/venv/lib/python3.11/site-packages/jupyterhub/services/auth.py", line 898, in set_state_cookie
        handler.set_secure_cookie(cookie_name, b64_state, **kwargs)
      File "/venv/lib/python3.11/site-packages/tornado/web.py", line 756, in set_signed_cookie
        self.set_cookie(
    TypeError: RequestHandler.set_cookie() got an unexpected keyword argument 'SameSite'
[E 2023-05-0 ServerApp] Could not open static file ''
skoulouzis commented 1 year ago

There is a bug report: https://github.com/jupyterhub/jupyterhub/issues/3117

skoulouzis commented 1 year ago

The bug report was not for the same issue. We commented out the 'tornado_settings':

                  hub:
                    initContainers:
                      - name: git-clone-templates
                        image: alpine/git
                        args:
                          - clone
                          - --single-branch
                          - --branch=lifeWatch
                          - --depth=1
                          - --
                          - https://github.com/QCDIS/k8s-jhub.git
                          - /etc/jupyterhub/custom
                        securityContext:
                          runAsUser: 0
                        volumeMounts:
                          - name: hub-templates
                            mountPath: /etc/jupyterhub/custom
                      - name: replace-login-path
                        image: busybox:1.28
                        command: ["sh", "-c", "sed -i 's#/VRE_PATH/hub/oauth_login?next=#/n-a-a-vre/hub/oauth_login?next=#' /etc/jupyterhub/custom/templates/login.html"]
                        securityContext:
                          runAsUser: 0
                        volumeMounts:
                          - name: hub-templates
                            mountPath: /etc/jupyterhub/custom
                    extraVolumes:
                      - name: hub-templates
                        emptyDir: { }
                    extraVolumeMounts:
                      - name: hub-templates
                        mountPath: /etc/jupyterhub/custom
                    extraConfig:
                      templates: |
                        c.JupyterHub.template_paths = ['/etc/jupyterhub/custom/templates']
                    concurrentSpawnLimit: 20
                    consecutiveFailureLimit: 20
                    activeServerLimit: 20
                    namedServerLimitPerUser: 1
                    shutdownOnLogout: true
                    extraEnv:
                      OAUTH2_TLS_VERIFY: 'false'
                    baseUrl: /n-a-a-vre
                    config:
                      GenericOAuthenticator:
                        client_id: n-a-a-vre
                        client_secret: XXXX
                        oauth_callback_url: https://HOST:32443/n-a-a-vre/hub/oauth_callback
                        authorize_url: https://HOST:32443/auth/realms/vre/protocol/openid-connect/auth
                        token_url: https://HOST:32443/auth/realms/vre/protocol/openid-connect/token
                        userdata_url: https://HOST:32443/auth/realms/vre/protocol/openid-connect/userinfo
                        login_service: keycloak
                        username_key: preferred_username
                        userdata_params:
                          state: state
                      JupyterHub:
                        authenticator_class: generic-oauth
#                        tornado_settings:
#                          headers:
#                            Content-Security-Policy: "frame-ancestors 'self' *"
#                          cookie_options:
#                            SameSite: "None"
#                            Secure: "True"
                        tls_verify: false
                  ingress:
                    enabled: true
                    hosts:
                      - HOST
                    annotations:
                      kubernetes.io/ingress.class: "nginx"
                      nginx.ingress.kubernetes.io/add-base-url: "true"
                      kubernetes.io/tls-acme: "true"
                      nginx.ingress.kubernetes.io/proxy-body-size: "600m"
                      nginx.org/client-max-body-size: "600m"
                    tls:
                      - hosts:
                        - HOST
                        secretName: HOST-tls
                  proxy:
                    service:
                      type: ClusterIP
                  singleuser:
                    cmd: ['/usr/local/bin/start-jupyter-venv.sh']
                    extraFiles:
                      jupyter_notebook_config.json:
                        mountPath: /etc/jupyter/jupyter_notebook_config.json
                        data:
                          ServerApp:
                            iopub_data_rate_limit: 1.0e10
                            iopub_msg_rate_limitFloat: 3000
                    memory:
                        limit: 3G
                        guarantee: 2G
                    storage:
                        capacity: 0.1Gi
                    cpu:
                      limit: 1.0
                      guarantee: 1.0
                    lifecycleHooks:
                      postStart:
                        exec:
                          command: ["sh", "-c", "/tmp/init_script.sh"]
                    defaultUrl: "/lab"
                    extraEnv:
                      JUPYTERHUB_SINGLEUSER_APP: "jupyter_server.serverapp.ServerApp"
                      MODULE_MAPPING_URL:
                      NAAVRE_API_TOKEN:
                      SEARCH_API_ENDPOINT:
                      SEARCH_API_TOKEN:
                      VLAB_SLUG:
                      API_ENDPOINT:
                      MULTIPLY_CONF_URL:
                      CELL_GITHUB:
                      CELL_GITHUB_TOKEN:
                      REGISTRY_URL:
                      PROJ_LIB: /venv/share/proj
                    profileList:
                    - display_name: "vol2bird VL"
                      description: "vol2bird VL"
                      kubespawner_override:
                        image: qcdis/n-a-a-vre-vol2bird:v1.10-beta
                        pullPolicy: Always
                    - display_name: "multiply VL"
                      description: "multiply VL"
                      kubespawner_override:
                        image: qcdis/n-a-a-vre-multiply:v1.10-beta
                        pullPolicy: Always
                    - display_name: "qcdis/n-a-a-vre:t1"
                      description: "qcdis/n-a-a-vre:t1"
                      kubespawner_override:
                        image: qcdis/n-a-a-vre:t1