question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. ItĀ collects links to all the places you might be looking at while hunting down a tough bug.

And, if youā€™re still stuck at the end, weā€™re happy to hop on a call to see how we can help out.

Docs Improvement | Set up BinderHub

See original GitHub issue

Hello team! šŸ‘‹

Here are some more questions and suggestions I had while setting up my test BinderHub deployment that I would like to feedback šŸ˜„These are specific to the Set up BinderHub page.


Step 3.1. Preparing to Install

My question here is very similar to a question I had in jupyterhub/zero-to-jupyterhub-k8s/issues/1165.

The binderhub folder created in this step is going to contain tokens, secrets and passwords. Where should it be kept such that an RSE team can work collaboratively on it, to maintain and customise the BinderHub, without compromising the security of the contents? Or if itā€™s only being maintained by one person, can we link to some info on security for these sorts of files?

Iā€™m planning a meeting next week where I hope to get some answers and best practices regarding the Turing deployment. Fingers crossed Iā€™ll be able to contribute some generalised guidance on this after that meeting.

Step 3.2.2. Create a secret.yaml file: If you are using DockerHub

Is encryption of the docker ID and password supported by BinderHub? If so, can we include how to do this? I feel kind of uncomfortable leaving a file with my password in it somewhere on my laptop šŸ˜¬This could also fall under the security aspect I mentioned in the last point ā˜ļø

Step 3.4. Install BinderHub

In the helm install command, --version is given as 0.1.0-... but I think the chart is well into 0.2.0-... now. Shall we update it or is it given as 0.1.0-... for a specific reason? See #804

Step 3.5. Connect BinderHub and JupyterHub

It might be worth noting here that the --version argument parsed to the helm upgrade command should be the same number-commit combo as in Step 3.4 for first-time deployment - but isnā€™t necessary if youā€™re updating JupyterHub/BinderHub to a newer, stable chart release? Also, I think thereā€™s a stray v in that argument thatā€™s not supposed to be there? See #804


I hope this is useful and thank you!! Hopefully, Iā€™ll learn some things around the security aspect over the next week or so that I can contribute in a PR. Iā€™m happy to clean up some of the smaller things Iā€™ve mentioned as well šŸ˜„

Issue Analytics

  • State:open
  • Created 5 years ago
  • Reactions:6
  • Comments:5 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
betatimcommented, Mar 8, 2019

On the security/encrypted files point: for mybinder.org we use https://github.com/AGWA/git-crypt to encrypt files ā€œtransparentlyā€. This means if you have the key and ā€œunlockā€ the vault the files are readable with your normal tools (vim or emacs or cat). However in a ā€œlockedā€ version of the repo you just get gibberish https://github.com/jupyterhub/mybinder.org-deploy/tree/master/secrets

Now you have a choice to lock and unlock your vault to not have secrets that are readable by everyone. I think there are other tools as well that could be used that are a bit more user friendly. One thing I struggled with in particular is distribution of the key via ssh-vault. It worked in the end but took me a few attempts. The full docs on how to obtain the secrets is https://mybinder-sre.readthedocs.io/en/latest/production_environment.html#secrets.

An alternative workflow for sharing the key that unlocks the git-crypt vault is http://keybase.io/ who have a nice user friendly desktop client and shared encrypted folders for a group. Iā€™ve used this for sharing secrets with less tech savvy people and it worked well. You can even store a whole git repository there, but you canā€™t use GitHub any more. If I was to start again today Iā€™d combine keybase for distribution of the key and git-crypt for in-repo encryption.

0reactions
sgibson91commented, Sep 21, 2021

In the wisdom I have learned since opening this issue (which I believe is my first open contribution!), I would say that to address the first 2 points I raised all that is required is some links in the docs to resources like Key Vaults for sharing secrets amongst distributed teams, and sops for encrypting files (as examples). Maybe some little note boxes like ā€œWanting to run a BinderHub in production and worried about X? Go here to learn more about this solution!ā€

Read more comments on GitHub >

github_iconTop Results From Across the Web

3. Set up BinderHub
Below we'll cover how to configure your Helm Chart, and how to create your BinderHub deployment. 3.1. Preparing to install#. To configure the...
Read more >
Contributing to BinderHub
Develop documentation. Develop user interface. A BinderHub webserver is running locally and JupyterHub is mocked, this setup doesn't involve Kubernetes.
Read more >
BinderHub ā€” BinderHub documentation
This guide assists you, an administrator, through the process of setting up your BinderHub deployment. Tip. For information about using a BinderHub, see...
Read more >
Customize and Maintain ā€” BinderHub documentation
Setup IP & domain Ā· cert-manager for automatic TLS certificate provisioning Ā· Ingress proxy using nginx Ā· Adjust BinderHub config to serve via...
Read more >
binderhub/CHANGES.md at main Ā· jupyterhub ... - GitHub
Enhancements made Ā· Docs Improvement | Setup BinderHub #804 (@sgibson91) Ā· updating instructions and adding badges #791 (@choldgraf) Ā· docs for private repo...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found