- Mkdir and chown unconditionally and let it throw errors if it fails #56 (@GeorgianaElena)
- Setup a custom ownership uid:gid of the initial share #55 (@GeorgianaElena, @yuvipanda)
The following people contributed discussions, new ideas, code and documentation contributions, and review. See our definition of contributors.
(GitHub contributors page for this release)
@GeorgianaElena (activity) | @yuvipanda (activity)
- feat: don't invalidate quotas #54 (@agoose77)
- feat: pass through file paths #53 (@agoose77)
- feat: refactoring and improved logging #50 (@agoose77)
- feat: Improved logging and refactoring #49 (@agoose77, @sunu)
- Squash all users to one particular uid and gid #48 (@GeorgianaElena, @yuvipanda)
- Handle xfs_quota failing more gracefully #44 (@yuvipanda)
- Set uid and gid #42 (@GeorgianaElena)
- feat: increase filesystem reconciliation granularity #52 (@agoose77, @sunu)
- fix: clear existing quotas on startup #51 (@agoose77)
- Set PYTHONUNBUFFERED=1 for enforce-xfs-quotas #43 (@yuvipanda)
The following people contributed discussions, new ideas, code and documentation contributions, and review. See our definition of contributors.
(GitHub contributors page for this release)
@agoose77 (activity) | @GeorgianaElena (activity) | @sunu (activity) | @yuvipanda (activity)
- PV name must be unique #38 (@GeorgianaElena, @sunu)
- Setup a baseVersion in chartpress and update release instructions #39 (@GeorgianaElena)
The following people contributed discussions, new ideas, code and documentation contributions, and review. See our definition of contributors.
(GitHub contributors page for this release)
@GeorgianaElena (activity) | @sunu (activity)
- BREAKING: Switched to predictable resource naming following the z2jh pattern, borrowed from binderhub-service. Resources now append
-home-nfsto the fullname base. WhenfullnameOverrideis an empty string""(the default), resources are namedhome-nfs(e.g.,home-nfsservice). WhenfullnameOverrideis set to a custom value like"myjupyterhub", resources are namedmyjupyterhub-home-nfs(e.g.,myjupyterhub-home-nfsservice). This is a breaking change from the previous release-name based pattern. Fixes #30.
-
Automatically resize the filesystem if necessary #37 (@yuvipanda, @GeorgianaElena)
-
Added quota override functionality for specific folders. This allows setting custom quotas for individual folders, which is particularly useful for shared folders that may need different quota limits than regular user directories. The feature is configured via the
quota_overridesoption which maps folder names to custom quota values in GiB #36 (@sunu, @GeorgianaElena)quotaEnforcer: config: QuotaManager: quota_overrides: "_shared-public": 50 # Custom quota of 50 GiB for the shared public folder
-
Fix FileNotFoundError when export directory doesn't exist #35 (@sunu, @GeorgianaElena)
-
Added standard Helm labels (
app.kubernetes.io/name,app.kubernetes.io/instance,app.kubernetes.io/version,app.kubernetes.io/managed-by,helm.sh/chart) to all Kubernetes resources for better resource management and monitoring #34 (@sunu, @GeorgianaElena, @yuvipanda) -
Change how version is parsed, move from
set-outputto use$GITHUB_ENV, skip publish for certain commits #32 (@shaneknapp, @sunu) -
Add a changelog file to keep track of changes #27 (@sunu, @sgibson91)
-
Optional feature to allow connections from allowed IPs only; and improved documentation for installation and security #25 (@sunu, @GeorgianaElena, @yuvipanda)
-
Configuration and command-line arguments are now managed using traitlets, providing type validation and aligning with patterns used across the JupyterHub ecosystem. This introduces a breaking change in how Helm values are passed. Part of PR #22.
For example, the path, hard quota limits etc are now passed in
quotaEnforcer.config.QuotaManagerinstead of directly underquotaEnforcer. For example:quotaEnforcer: config: QuotaManager: paths: ["/export"] hard_quota: 10
-
As part of PR #22, the default persistent volume size label was updated from 10Gi to 1M to clarify that it's a placeholder and not the actual disk size. For existing deployments, if the size was previously unset, it must now be explicitly set to the current value (e.g.
10Gi) under thepersistentVolumesection like this:persistentVolume: size: 10Gi
This avoids Kubernetes errors due to the perceived size reduction from 10Gi to 1M.
- Added an option to disable quota enforcement. Part of PR #22.
- Added the option to exclude certain directories from quota enforcement as part of PR #19 and PR #20.
- Storage quota enforcement functionality is now packaged as a python package named
jupyterhub_home_nfs. Part of PR #17. - Added end-to-end tests for quota enforcement in PR #21
- Added
values.schema.jsonfor linting helm values. Part of PR #22 - Added pre-commit hooks to check linting and formatting in PR #23
- Added documentation on how to make a new release. Part of PR #22.
Please use git log to get the details of the changes in the older releases.