Skip to content

Latest commit

 

History

History
575 lines (460 loc) · 25.6 KB

CHANGELOG.md

File metadata and controls

575 lines (460 loc) · 25.6 KB

Changelog

  • Pre-puller related bugfixes, see PR #502.

Releases

Releases are now named after famous Cricket players.

0.6 - Ellyse Perry - 2017-01-29

This release is primarily focused on better support for Autoscaling, Microsoft Azure support & better default security. There are also a number of bug fixes and configurability improvements!

Breaking changes

Pre-puller configuration

In prior versions (v0.5), if you wanted to disable the pre-puller, you would use:

prePuller:
   enabled: false

Now, to disable the pre-puller, you need to use:

prePuller:
   hook:
     enabled: false

See the pre-puller docs for more info!

Upgrading from 0.5

This release does not require any special steps to upgrade from v0.5. See the upgrade documentation for general upgrading steps.

If you are running v0.4 of the chart, you should upgrade to v0.5 first before upgrading to v0.6. You can find out what version you are using by running helm list.

Troubleshooting

If your helm upgrade fails due to the error no Ingress with the name "jupyterhub-internal" found, you may be experiencing a helm bug. To work around this, run kubectl --namespace=<YOUR-NAMESPACE> delete ingress jupyterhub-internal and re-run the helm upgrade command. Note that this will cause a short unavailability of your hub over HTTPS, which will resume normal availability once the deployment upgrade completes.

New Features

More secure by default

z2jh is more secure by default with 0.6. We now block access to cloud security metadata endpoints by default.

See the security documentation for more details. It has seen a number of improvements, and we recommend you read through it!

Autoscaling improvements

Some cloud providers support the kubernetes node autoscaler, which can add / remove nodes depending on how much your cluster is being used. In this release, we made a few changes to let z2jh interact better with the autoscaler!

  • Configure z2jh to 'pack' your users onto nodes, rather than 'spread' them across nodes.
  • A 'continuous' pre-puller that allows user images to be pulled on new nodes easily, leading to faster startup times for users on new nodes. ([link])
  • Hub and Proxy pod will not be disrupted by autoscaler, by using PodDisruptionBudgets. The Hub & Proxy will also stick together if possible, thus minimizing the number of nodes that can not be downsized by the autoscaler.

There is more work to be done for good autoscaling support, but this is a good start!

Better Azure support

Azure's new managed Kubernetes service (AKS) is much better supported by this version!

  • We have much better documentation on using z2jh with Azure!
  • We rewrote our pre-puller so it works on Azure (previously it did not)

Azure AKS is still in preview mode, so be aware of that before using it in any production workloads!

See the setting up Kubernetes on Microsoft AKS section for more information.

Better configurability

We now have better documentation and bug fixes for configurability!

  • extraConfig can be a dictionary instead of just a string. This helps when you have to split your config.yaml into multiple files for complex deployments
  • How user storage works by default is better documented
  • Reading config in extraConfig from extraConfigMap now actually works!
  • You can configure the URL that users are directed to after they log in. This allows defaulting users to JupyterLab
  • You can pre-pull multiple images now, for custom configuration that needs multiple images
  • Better instructions on pre-populating your user's filesystem using nbgitpuller

(excerpt from https://www.cricket.com.au/players/ellyse-perry/1aMxKNyEOUiJqhq7N5Tlwg)

Arguably the best athlete in Australia, Ellyse Perry’s profile continues to rise with the dual cricket and soccer international having played World Cups for both sports.

Perry became the youngest Australian ever to play senior international cricket when she made her debut in the second ODI of the Rose Bowl Series in Darwin in July 2007 before her 17th birthday.

She went on to make her domestic debut in the 2007-08 Women’s National Cricket League season, taking 2-29 from 10 overs in her first match.

Since her national debut, Perry has become a regular fixture for the Southern Stars, playing in the 2009 ICC Women’s World Cup and the ICC Women’s World Twenty20 in the same year.

Leading Australia’s bowling attack, Perry played a crucial role in the ICC Women’s World Twenty20 Final in the West Indies in 2010.

The match came down to the wire, with New Zealand requiring five runs off the last ball to claim the title. Under immense pressure, Perry bowled the final ball of the tournament, which New Zealand’s Sophie Devine struck straight off the bat.

The talented footballer stuck out her boot to deflect the ball to Lisa Sthalekar at mid-on, securing the trophy for Australia. Perry’s figures of 3-18 in the final saw her take home the Player of the Match award.

Perry featured prominently in Australia's three-peat of World T20 victories, selected for the Team of the Tournament in 2012 and 2014.

She was named ICC Female Cricketer of the Year in 2017.

Contributors

This release wouldn't have been possible without the wonderful contributors to the zero-to-jupyterhub, and KubeSpawner repos. We'd like to thank everyone who contributed in any form - Issues, commenting on issues, PRs and reviews since the last Zero to JupyterHub release.

In alphabetical order,

0.5 - Hamid Hassan - 2017-12-05

JupyterHub 0.8, HTTPS & scalability.

Upgrading from 0.4

See the upgrade documentation for upgrade steps.

New Features

JupyterHub 0.8

JupyterHub 0.8 is full of new features - see CHANGELOG for more details. Specific features made to benefit this chart are:

  1. No more 'too many redirects' errors at scale.
  2. Lots of performance improvements, we now know we can handle up to 4k active users
  3. Concurrent spawn limits (set via hub.concurrentSpawnLimit) can be used to limit the concurrent number of users who can try to launch on the hub at any given time. This can be tuned to avoid crashes when hundreds of users try to launch at the same time. It gives them a friendly error message + asks them to try later, rather than spinning forever.
  4. Active Server limit (set via hub.activeServerLimit) can be used to limit the total number of active users that can be using the hub at any given time. This allows admins to control the size of their clusters.
  5. Memory limits & guarantees (set via singleuser.memory) can now contain fractional units. So you can say 0.5G instead of having to use 512M.

And lots more!

Much easier HTTPS

It is our responsibility as software authors to make it very easy for admins to set up HTTPS for their users. v0.5 makes this much easier than v0.4. You can find the new instructions here and they are much simpler!

You can also now use your own HTTPS certificates & keys rather than using Let's Encrypt.

More authenticators supported

The following new authentication providers have been added:

  1. GitLab
  2. CILogon
  3. Globus

You can also set up a whitelist of users by adding to the list in auth.whitelist.users.

Easier customization of jupyterhub_config.py

You can always put extra snippets of jupyterhub_config.py configuration in hub.extraConfig. Now you can also add extra environment variables to the hub in hub.extraEnv and extra configmap items via hub.extraConfigMap. ConfigMap items can be arbitrary YAML, and you can read them via the get_config function in your hub.extraConfig. This makes it cleaner to customize the hub's config in ways that's not yet possible with config.yaml.

Hub Services support

You can also add external JupyterHub Services by adding them to hub.services. Note that you are still responsible for actually running the service somewhere (perhaps as a deployment object).

More customization options for user server environments

More options have been added under singleuser to help you customize the environment that the user is spawned in. You can change the uid / gid of the user with singleuser.uid and singleuser.fsGid, mount extra volumes with singleuser.storage.extraVolumes & singleuser.storage.extraVolumeMounts and provide extra environment variables with singleuser.extraEnv.

Hamid Hassan

Hamid Hassan is a fast bowler who currently plays for the Afghanistan National Cricket Team. With nicknames ranging from "Afghanistan's David Beckham" to "Rambo", he is considered by many to be Afghanistan's first Cricket Superhero. Currently known for fast (145km/h+) deliveries, cartwheeling celebrations, war painted face and having had to flee Afghanistan as a child to escape from war. He says he plays because "We are ambassadors for our country and we want to show the world that Afghanistan is not like people recognise it by terrorists and these things. We want them to know that we have a lot of talent as well"

Contributors

This release wouldn't have been possible without the wonderful contributors to the zero-to-jupyterhub, JupyterHub, KubeSpawner and OAuthenticator repos. We'd like to thank everyone who contributed in any form - Issues, commenting on issues, PRs and reviews since the last Zero to JupyterHub release.

In alphabetical order,

0.4 - Akram - 2017-06-23

Stability, HTTPS & breaking changes.

Installation and upgrades

We recommend that you delete prior versions of the package and install the latest version. If you are very familiar with Kubernetes, you can upgrade from an older version, but we still suggest deleting and recreating your installation.

Breaking changes

  • The name of a user pod and a dynamically created home directory PVC (PersistentVolumeClaim) no longer include the userid in them by default. If you are using dynamic PVCs for home directories (which is the default), you will need to manually rename these directories before upgrading. Otherwise, new PVCs will be created, and users might freak out when viewing the newly created directory and think that their home directory appears empty.

    See PR #56 on what needs to change.

  • A StorageClass is no longer created by default. This shouldn't affect most new installs, since most cloud provider installations have a default (as of Kubernetes 1.6). If you are using an older version of Kubernetes, the easiest thing to do is to upgrade to a newer version. If not, you can create a StorageClass manually and everything should continue to work.

  • token.proxy is removed. Use proxy.secretToken instead. If your config.yaml contains something that looks like the following:

    token:
        proxy: <some-secret>

    you should change that to:

    proxy:
        secretToken: <some-secret>

Added

  • Added GitHub Authentication support, thanks to Jason Kuruzovich.
  • Added Ingress support! If your cluster already has Ingress support (with automatic Let's Encrypt support, perhaps), you can easily use that now.
  • We now add a label to user pods / PVCs with their usernames.
  • Support using a static PVC for user home directories or for the hub database. This makes this release usable with clusters where you only have one NFS share that must be used for the whole hub.
  • PostgreSQL is now a supported hub database backend provider.
  • You can set annotations & labels on the proxy-public service now.

Changed

  • We now use the official configurable http proxy (CHP) as the proxy, rather than the unofficial nchp. This should be a no-op (or require no changes) for the most part. JupyterHub errors might display a nicer error page.
  • The version of KubeSpawner uses the official Kubernetes python client rather than pycurl. This helps with scalability a little.

Removed

  • The deprecated createNamespace parameter no longer works, alongside the deprecated name parameter. You probably weren't using these anyway - they were kept only for backwards compatibility with very early versions.

Contributors

This release made possible by the awesome work of the following contributors (in alphabetical order):

<3

Akram

Wasim Akram (وسیم اکرم) is considered by many to be the greatest pace bowler of all time and a founder of the fine art of reverse swing bowling.

0.3

0.3.1 - 2017-05-19

KubeSpawner updates. Release note

0.3 - 2017-05-15

Deployer UX fixes. Release note

0.2 - 2017-05-01

Minor cleanups and features. Release note

0.1 - 2017-04-10

Initial Public Release. Release note

Support

If you need support, reach out to us on gitter or open an issue.