jupyterhub / binderhub

Run your code in the cloud, with technology so advanced, it feels like magic!
https://binderhub.readthedocs.io
BSD 3-Clause "New" or "Revised" License
2.54k stars 388 forks source link

Zero to BinderHub (Kubernetes) docs are extremely out of date. #1425

Open millerhooks opened 2 years ago

millerhooks commented 2 years ago

Bug description

The documentation for deploying Binderhub to Kubernetes is at least a year out of date compared to the current releases. It looks like the last version that would be compatible was October 2020. I am currently deploying Binderhub in a k8s multicloud situation and have solved a lot of the problems and documented them. I will also be solving them on AWS, AZ, and Bare Metal in the next few weeks. I would like to commit some documentation help.

Is this the right place to alter the documentation? Is this where the documentation for the website is generated from?

Expected behaviour

Documentation to install the tools that work.

Actual behaviour

Documentation that does not reflect any recent version of kubernetes.

How to reproduce

Go to the documentation and try to deploy it with the newest Binderhub release and use the docs.

Your personal set up

Ubuntu 20.04, GKE, Binderhub 0.2.0-n839.hf8a9d7a

I want to submit a PR that is useful. I looked at the "Zero to Jupyterhub" repo as well as The Turing Institutes' - Zero to Binderhub. I want to make sure I put my PR in the right place.Let me know where is best to submit or give me feedback here or on Twitter @MillerHooks.

Thanks!

millerhooks commented 2 years ago

here is an example of a config.yml for GKE that leverages their static-ip tools as well as their native managedcertificates for TLS that is much less cumbersome.


config:
  BinderHub:
    auth_enabled: true
    hub_url: "https://hub.binder.example.com"
    image_prefix: "<something>/binder-dev-"
    use_registry: true
    cors_allow_origin: '*'

service:
  type: NodePort

ingress:
  enabled: true
  hosts:
    - binder.example.com
  annotations:
    networking.gke.io/managed-certificates: binder-etl-tls
    kubernetes.io/ingress.global-static-ip-name: binderhub-ip
    kubernetes.io/ingress.class: "gce"
    ingressclass.kubernetes.io/is-default-class: "true"
  pathSuffix: '*'
  pathType: ImplementationSpecific
  tls: []

jupyterhub:
  baseUrl: /

  proxy:
    service:
      type: NodePort

  ingress:
    enabled: true
    hosts:
      - hub.binder.example.com
    annotations:
      networking.gke.io/managed-certificates: hub-binder-etl-tls
      kubernetes.io/ingress.global-static-ip-name: jupyterhub-ip
      kubernetes.io/ingress.class: "gce"
      ingressclass.kubernetes.io/is-default-class: "true"
    pathSuffix: '*'
    pathType: ImplementationSpecific
    tls: []

This still has some problems that are also prevalent in the LetsEncrypt cert-manager version in the existing docs (which is completely inaccurate regarding static-ip not to mention very cluttery) with the routing for the running server for each user.

Also in the docs this section means nothing to the helm charts in a year.

 ingress:
  annotation:
    ...
    https:                          <-------
      enabled: true           <-------------
      type: nginx                     < ------ This section in the ingress annotations appears to be deprecated
betatim commented 2 years ago

Yes this is the place for changes to the documentation. It is stored in https://github.com/jupyterhub/binderhub/tree/master/doc

It would be fantastic to have PRs that update the docs as they are old and out of date.

AnnaFranziska commented 2 years ago

@millerhooks I am trying to deploy Binderhub and keep running into problems. I am not sure if it's because of out the out of date docs, but I'd love to see a more up to date version.

My setup is a little different, but I think I made most of it work. But then I can't get the external IPs to set to what I would expect (metallb/ingress was what I tried). Instead I just started patching and end up with a 403 forbidden. Now I am not sure if patching is where I went wrong, or if it's a token problem. I am trying to deploy it on a VM with a single node.

meeseeksmachine commented 2 years ago

This issue has been mentioned on Jupyter Community Forum. There might be relevant details there:

https://discourse.jupyter.org/t/eks-binderhub-launching-server-fails-after-successful-build/7718/15