Changes in KubeSpawner

1.1

1.1.0 - 2021-07-21

Enhancements made

Bugs fixed

Maintenance and upkeep improvements

Documentation improvements

  • Fix the errors followed by the contributing steps #509 (@mggger)

Other merged PRs

  • [KubeIngressProxy] Set configuration before instantiating reflectors #515 (@droctothorpe)

1.0

1.0.0 - 2021-05-14

This release is the continuation of version 0.16.1 and could have been 0.17.0 in practice. We opted to release 1.0.0 as it enables us to communicate changes according to SemVer. Using SemVer versioning, a change in each of the three version numbers (major.minor.patch) represents a different kind of change.

Breaking changes

  • When using KubeSpawner 1.0.0 or later together with JupyterHub 1.4.1 or later, deleting a JupyterHub user or deleting (not just stopping) a named server will lead to removing the associated PVC resource. To opt out of this behavior set the delete_pvc configuration to False.

New features added

  • Allow configuration of kubernetes client’s options: ssl_ca_cert, host #494 (@kafonek)
  • add method to delete namespaced PVC in spawner base class #475 (@nsshah1288)

Enhancements made

Maintenance and upkeep improvements

Documentation improvements

Continuous integration

  • ci: test against recent k8s versions and misc workflow updates #506 (@consideRatio)

0.16

0.16.1 - 2021-03-01

Bugs fixed

Contributors to this release

@minrk

0.16.0 - 2021-02-26

Enhancements made

  • Add pod_security_context and container_security_context config #480 (@cyrilcros)
  • Allow mounting of service account token to be configurable (automount_service_account_token) #476 (@dtaniwaki)
  • Add user namespace support #458 (@athornton)
  • Support internal_ssl #409 (@minrk)

Bugs fixed

  • Fix failure to create a PVC being logged as failure to create a Pod #481 (@mriedem)
  • handle pod url changes in poll #408 (@minrk)

Maintenance and upkeep improvements

  • Refactor: remove a third way to name the same thing in make_pod’s parameters #483 (@consideRatio)
  • pre-commit: use prettier as autoformatter (markdown, yaml) #482 (@consideRatio)
  • fix some spurious additions in tests #474 (@minrk)
  • adopt black (via pre-commit) for code formatting #473 (@minrk)
  • remove duplicated secret_mount_path definition #472 (@minrk)

Other merged PRs

  • [KubeIngressProxy] Fixes following changes to k8s resource reflectors #484 (@remche)
  • [KubeIngressProxy] allow singleuser pods to use IPv6 addresses #403 (@stv0g)

0.15

0.15.0 - 2020-10-15

Enhancements made

  • Expand storage selector #463 (@dtaniwaki)
  • Add pod_connect_ip config regarding how kubespawner reach the pod #460 (@dtaniwaki)
  • [Feature] Add AllowPrivilegeEscalation to container’s securityContext #450 (@captnbp)

Bugs fixed

Maintenance and upkeep improvements

[0.14]

0.14.1 - 2020-10-23

Bugs fixed

  • KubeSpawner.image_pull_secrets malfunctions in 0.14.0 - this fixes it #451 (@johnhoman)

Maintenance and upkeep improvements

Contributors to this release

(GitHub contributors page for this release)

@consideRatio | @johnhoman | @rkdarst | @welcome | @yuvipanda

0.14.0 - 2020-10-05

Enhancements made

  • Allow image_pull_secrets config to be specified the k8s native way #442 (@consideRatio)

Bugs fixed

Maintenance and upkeep improvements

0.13

0.13.0 - 2020-09-20

Noteworthy for this release are: performance improvements, Kubernetes native environment variable specification, the possibility to run multiple JupyterHub’s in the same namespace.

Breaking changes

The following changes probably won’t break typical usage of KubeSpawner, but could for example break logic to customized the progress page JupyerHub displays while spawning a Kubernetes pod for the user.

  • The Kubernetes EventsReflector, which is providing the KubeSpawner instances with information about Kubernetes Events describing events for other resources, is now exposing events as python dictionaries rather than V1Event objects. V1Event is defined in the kubernetes-client/python library as a representation of a Kubernetes Event.
  • KubeSpawner’s .progress method implementation (https://github.com/jupyterhub/jupyterhub/pull/1771) which is generating a formatted message as well as a KubeSpawner specific raw_event entry now returns the raw_event as a Python dictionary with entries formatted in camelCase where the keys were formatted in snake_case.

New

  • Support EnvVar’s with ‘valueFrom’ as well as with ‘value’ #426 (@consideRatio)
  • Breaking change / performance: don’t make kubernetes-client deserialize k8s events into objects #424 (@rmoe)
  • Add component_label property to support multiple hub instances in the… #418 (@harsimranmaan)

Fixes

  • Breaking change / performance: don’t make kubernetes-client deserialize k8s events into objects #424 (@rmoe)

Maintenance

  • Log thread pool worker count on init #420 (@mriedem)
  • CI: test k8s 1.18 and require success, publish without test, bump minikube #417 (@consideRatio)

Contributors to this release

@abinet | @chancez | @consideRatio | @harsimranmaan | @meeseeksmachine | @mriedem | @rmoe | @shenghu | @welcome | @yuvipanda | @zlanyi

This list of contributors were generated by github-activity according to these criteria.

0.12

0.12.0 - 2020-07-17

Security

  • Security fix: CVE-2020-15110 / GHSA-v7m9-9497-p9gr. When named-servers are enabled, certain username patterns, depending on authenticator, could allow collisions. The default named-server template is changed to prevent collisions, meaning that upgrading will lose associations of named-servers with their PVCs if the default templates are used. Data should not be lost (old PVCs will be ignored, not deleted), but will need manual migration to new PVCs prior to deletion of old PVCs.

New features

  • Add slugs field for selecting profiles in API, instead of indices. #401 (@stv0g)
  • Expose __version__ in kubespawner module #383 (@consideRatio)
  • log a warning if unrecognized user_options are provided #389 (@minrk)

Fixes

Maintenance

0.11

[0.11.1] - 2019-11-29

0.11.1 consists of a small bugfix that made the progress reporting break.

Fixes

  • Fix spawn progress events now showing up due to failure to serialize #381 (@consideRatio)

Maintenance

[0.11.0] - 2019-11-28

0.11.0 features minor feature additions, compatebility measures, and fixes. KubeSpawner now require Python 3.5 and is no longer actively tested against Kubernetes clusters versioned 1.10 as before, but is now being tested against version 1.12-1.16 with the python kubernetes client library version 8-11 that is compatible with k8s 1.11-1.15.

New

Fixes

Compatibility

  • CI reworked, support modern k8s high resolution timestamps, event monitoring is made more reliable, kubernetes=>8 required, python>=3.6 required, inline docs added #368 (@consideRatio)
  • Fix for Kubernetes 1.16 regarding datetime comparison #362 (@consideRatio)
  • More idiomatic python syntax #356 (@AnotherCodeArtist)
  • Compatibility with kubernetes, jupyterhub prereleases #314 (@minrk)
  • compatibility with kubernetes 9.0 #294 (@minrk)
  • Pin kubernetes version to 8.0 #292 (@yuvipanda)

Maintenance

0.10

0.10.1 - 2018-12-11

0.10.1 is a tiny bugfix release, fixing regressions in 0.10.0.

  • Fix deprecation of KubeSpawner.hub_connect_ip, which caused errors in 0.10 when the deprecated config was used.

0.10.0 - 2018-12-05

0.10.0 is a small release, with minor changes and fixes.

  • Deprecate KubeSpawner.image_spec configuration in favor of standard KubeSpawner.image. image_spec continues to work with deprecation warnings
  • Stop pinning an exact kubernetes client version; instead, require kubernetes client >= 7. If desired, pinning should be done in images/installations
  • Expand username template variables in extra_containers
  • Set pod restart policy to OnFailure, so that notebook servers that terminate themselves cleanly do not restart automatically
  • Formally deprecate KubeSpawner.hub_connect_ip and KubeSpawner.hub_connect_ip in favor of JupyterHub.hub_connect_ip, available in jupyterhub >= 0.8

0.9

0.9.0 - 2018-09-03

KubeSpawner 0.9.0 is a big release of KubeSpawner.

Change highlights:

  • Require Kubernetes >= 1.6
  • Require JupyterHub >= 0.8
  • Require Python >= 3.5
  • Expose lots more Kubernetes options
  • Support configuration profiles via :attr:.KubeSpawner.profile_list
  • Support Kubernetes events for the progress API in JupyterHub 0.9.
  • Update Kubernetes Python client to 6.0 (supporting Kubernetes 1.10 APIs)
  • Numerous bugfixes