Qhub

Latest version: v0.4.5

Safety actively analyzes 683530 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

0.4.0

instances that are upgraded from previous version to `v0.4.0` will irrevocably break.

Until we have a fully functioning backup mechanism, anyone looking to upgrade is highly encouraged to backup their data, see the
[upgrade docs](https://docs.qhub.dev/en/latest/source/admin_guide/breaking-upgrade.html) and more specifically, the
[backup docs](https://docs.qhub.dev/en/latest/source/admin_guide/backup.html).

These design changes were considered important enough that the development team felt they were warranted. Below we try to highlight a few of the largest changes
and provide justification for them.

- Replace Terraforms resource targeting with staged Terraform deployments.
- *Justification*: using Terraform resource targeting was never an ideal way of handing off outputs from stage to the next and Terraform explicitly warns its users that it's only
intended to be used "for exceptional situations such as recovering from errors or mistakes".
- Fully remove `cookiecutter` as a templating mechanism.
- *Justification*: Although `cookiecutter` has its benefits, we were becoming overly reliant on it as a means of rendering various scripts needed for the deployment. Reading through
Terraform scripts with scattered `cookiecutter` statements was increasing troublesome and a bit intimidating. Our IDEs are also much happier about this change.
- Removing users and groups from the `qhub-config.yaml` and replacing user management with Keycloak.
- *Justification*: Up until now, any change to QHub deployment needed to be made in the `qhub-config.yaml` which had the benefit of centralizing any configuration. However it
also potentially limited the kinds of user management tasks while also causing the `qhub-config.yaml` to balloon in size. Another benefit of removing users and groups from the
`qhub-config.yaml` that deserves highlighting is that user management no longer requires a full redeployment.

Although breaking changes are never fun, we hope the reasons outlined above are encouraging signs that we are working on building a better, more stable, more flexible product. If you
experience any issues or have any questions about these changes, feel free to open an [issue on our Github repo](https://github.com/Quansight/qhub/issues).

Breaking changes

Explicit user facing changes:

- Upgrading to `v0.4.0` will require a filesystem backup given the scope and size of the current change set.
- Running `qhub upgrade` will produce an updated `qhub-config.yaml` and a JSON file of users that can then be imported into Keycloak.
- With the addition of Keycloak, QHub will no longer support `security.authentication.type = custom`.
- No more users and groups in the `qhub-config.yaml`.

Feature changes and enhancements

- Authentication is now managed by Keycloak.
- QHub Helm extension mechanism added.
- Allow JupyterHub overrides in the `qhub-config.yaml`.
- `qhub support` CLI option to save Kubernetes logs.
- Updates `conda-store` UI.

What's Changed

<details>

- Enabling Vale CI with GitHub Actions by HarshCasper in https://github.com/Quansight/qhub/pull/871
- Qhub upgrade by danlester in https://github.com/Quansight/qhub/pull/870
- Documentation cleanup by HarshCasper in https://github.com/Quansight/qhub/pull/873
- \[Docs\] Add Traefik wildcard docs by viniciusdc in https://github.com/Quansight/qhub/pull/876
- replace deprecated "minikube cache add" with "minikube image load" by Adam-D-Lewis in https://github.com/Quansight/qhub/pull/880
- Azure Python needs different env var names to Terraform by danlester in https://github.com/Quansight/qhub/pull/882
- Add notes about broken upgrades by tylerpotts in https://github.com/Quansight/qhub/pull/877
- Keycloak integration first pass by danlester in https://github.com/Quansight/qhub/pull/848
- K8s tests - keycloak adduser by danlester in https://github.com/Quansight/qhub/pull/890
- Documentation cleanup by HarshCasper in https://github.com/Quansight/qhub/pull/889
- Improvements to templates and readme by trallard in https://github.com/Quansight/qhub/pull/893
- Keycloak docs by danlester in https://github.com/Quansight/qhub/pull/901
- DOCS: Add a PR Template by HarshCasper in https://github.com/Quansight/qhub/pull/900
- Delete existing `.gitlab-ci.yml` when rendering by iameskild in https://github.com/Quansight/qhub/pull/887
- Qhub Extension (Ready for Review) by Adam-D-Lewis in https://github.com/Quansight/qhub/pull/886
- Updates to Readme by trallard in https://github.com/Quansight/qhub/pull/897
- Mirror docker images to ghcr and quay container registry by aktech in https://github.com/Quansight/qhub/pull/912
- Fix CI: skip failure on cleanup by aktech in https://github.com/Quansight/qhub/pull/910
- Create and solve envs using mamba by iameskild in https://github.com/Quansight/qhub/pull/915
- Pin terraform providers by Adam-D-Lewis in https://github.com/Quansight/qhub/pull/914
- qhub-config.yaml as a secret by danlester in https://github.com/Quansight/qhub/pull/905
- Setup/Add integration/deployment tests via pytest by aktech in https://github.com/Quansight/qhub/pull/922
- Disable/Remove the stale bot by viniciusdc in https://github.com/Quansight/qhub/pull/923
- Integrates Hadolint for Dockerfile linting by HarshCasper in https://github.com/Quansight/qhub/pull/917
- Reduce minimum nodes in user and dask node pools to 0 for Azure / GCP by tarundmsharma in https://github.com/Quansight/qhub/pull/723
- Allow jupyterhub.overrides in qhub-config.yaml by danlester in https://github.com/Quansight/qhub/pull/930
- qhub destroy using targets by danlester in https://github.com/Quansight/qhub/pull/948
- Take AWS region from AWS_DEFAULT_REGION into qhub-config.yaml on init… by danlester in https://github.com/Quansight/qhub/pull/950
- cookicutter template out of raw by danlester in https://github.com/Quansight/qhub/pull/951
- kubernetes-initialization depends_on kubernetes by danlester in https://github.com/Quansight/qhub/pull/952
- Add timeout to terraform import command by tylerpotts in https://github.com/Quansight/qhub/pull/949
- Timeout in process (for import) by danlester in https://github.com/Quansight/qhub/pull/955
- Remove user/groups from YAML by danlester in https://github.com/Quansight/qhub/pull/956
- qhub upgrade custom auth plus tests by danlester in https://github.com/Quansight/qhub/pull/946
- Add minimal support `centos` images by iameskild in https://github.com/Quansight/qhub/pull/943
- Keycloak Export by danlester in https://github.com/Quansight/qhub/pull/947
- qhub cli tool to save kubernetes logs - `qhub support` by tarundmsharma in https://github.com/Quansight/qhub/pull/818
- Add docs for deploying QHub to existing EKS cluster by iameskild in https://github.com/Quansight/qhub/pull/944
- Add jupyterhub-idle-culler to jupyterhub image by danlester in https://github.com/Quansight/qhub/pull/959
- Robust external container registry by danlester in https://github.com/Quansight/qhub/pull/945
- use qhub-jupyterhub-theme 0.3.3 to simplify JupyterHub config by danlester in https://github.com/Quansight/qhub/pull/966
- Get kubernetes version for all cloud providers + pytest refactor by iameskild in https://github.com/Quansight/qhub/pull/927
- Merge hub.extraEnv env vars by danlester in https://github.com/Quansight/qhub/pull/968
- DOCS: Removing errors from documentation by HarshCasper in https://github.com/Quansight/qhub/pull/941
- keycloak.realm_display_name by danlester in https://github.com/Quansight/qhub/pull/973
- minor updates to keycloak docs by tylerpotts in https://github.com/Quansight/qhub/pull/977
- CI changes for QHub by HarshCasper in https://github.com/Quansight/qhub/pull/989
- Update `upgrade` docs and general doc improvements by iameskild in https://github.com/Quansight/qhub/pull/990
- Remove `scope`, `oauth_callback_url` during upgrade step by iameskild in https://github.com/Quansight/qhub/pull/997
- Adding Conda-Store to QHub by costrouc in https://github.com/Quansight/qhub/pull/967
- Fix Jupyterlab docker build by viniciusdc in https://github.com/Quansight/qhub/pull/1001
- DOCS: Fix broken link in setup doc by HarshCasper in https://github.com/Quansight/qhub/pull/1006
- Fix Kubernetes local test deployment by viniciusdc in https://github.com/Quansight/qhub/pull/1002
- Initial commit for auth and stages workflow by costrouc in https://github.com/Quansight/qhub/pull/1003
- Fix formatting issues with black 1003 by viniciusdc in https://github.com/Quansight/qhub/pull/1020
- use pyproject.toml and setup.cfg for packaging by tonyfast in https://github.com/Quansight/qhub/pull/986
- Increase timeout/attempts for keycloak check by viniciusdc in https://github.com/Quansight/qhub/pull/1023
- Fix issue with traefik issuing certificates with let's encrypt acme by costrouc in https://github.com/Quansight/qhub/pull/1017
- Fixing cds dashboard conda environments being shown by costrouc in https://github.com/Quansight/qhub/pull/1025
- Fix input variable support for multiple types by viniciusdc in https://github.com/Quansight/qhub/pull/1029
- Fix Black/Flake8 problems by danlester in https://github.com/Quansight/qhub/pull/1039
- Add remote state condition for 01-terraform-state provisioning by viniciusdc in https://github.com/Quansight/qhub/pull/1042
- Round versions for upgrade and schema by danlester in https://github.com/Quansight/qhub/pull/1038
- Code Server is now installed via conda, and the Jupyterlab Extension is https://github.com/betatim/vscode-binder/ by costrouc in https://github.com/Quansight/qhub/pull/1044
- Removing cookiecutter from setup.cfg requirements by costrouc in https://github.com/Quansight/qhub/pull/1026
- Destroy terraform-state stage when condition match by viniciusdc in https://github.com/Quansight/qhub/pull/1051
- Fix up adding support for security.keycloak.realm_display_name key by costrouc in https://github.com/Quansight/qhub/pull/1054
- Move external_container_reg to earlier stage by danlester in https://github.com/Quansight/qhub/pull/1053
- Adding ability to specify overrides back into keycloak configuration by costrouc in https://github.com/Quansight/qhub/pull/1055
- Deprecating terraform_modules option since no longer used by costrouc in https://github.com/Quansight/qhub/pull/1057
- Adding security.shared_users_group option for default users group by costrouc in https://github.com/Quansight/qhub/pull/1056
- Fix up adding back jupyterhub overrides option by costrouc in https://github.com/Quansight/qhub/pull/1058
- prevent_deploy flag for safeguarding upgrades by danlester in https://github.com/Quansight/qhub/pull/1047
- CI: Add layer caching for Docker images by HarshCasper in https://github.com/Quansight/qhub/pull/1061
- Additions to TCP/DNS stage check, fix 1027 by iameskild in https://github.com/Quansight/qhub/pull/1063
- FIX: Remove concurrency groups by HarshCasper in https://github.com/Quansight/qhub/pull/1064
- Stage 08 extensions and realms/logout by danlester in https://github.com/Quansight/qhub/pull/1069
- Auto create/destroy azure resource group by viniciusdc in https://github.com/Quansight/qhub/pull/1071
- Add CICD schema and render workflows by iameskild in https://github.com/Quansight/qhub/pull/1068
- Ensure that the shared folder symlink only exists if user has shared folders by costrouc in https://github.com/Quansight/qhub/pull/1074
- Adds the ability on render to deleted targeted files or directories by costrouc in https://github.com/Quansight/qhub/pull/1073
- DOCS: QHub 101 by HarshCasper in https://github.com/Quansight/qhub/pull/1011
- remove jovyan user by tylerpotts in https://github.com/Quansight/qhub/pull/1089
- More finely scoped github actions and kubernetes_test build docker images by costrouc in https://github.com/Quansight/qhub/pull/1088
- Adding clearml overrides by costrouc in https://github.com/Quansight/qhub/pull/1059
- Reorganizing render, deploy, destroy to unify stages input_vars, tf_objects, checks, and state_imports by costrouc in https://github.com/Quansight/qhub/pull/1091
- Updates/fixes for rendering CICD workflows by iameskild in https://github.com/Quansight/qhub/pull/1086
- fix bug in state_01_terraform_state function call by tylerpotts in https://github.com/Quansight/qhub/pull/1094
- Use paths instead of paths-ignore so that test only run on changes to given paths by costrouc in https://github.com/Quansight/qhub/pull/1097
- \[ENH\] - Update issue templates by trallard in https://github.com/Quansight/qhub/pull/1083
- Generate independent objects for terraform-state resources by viniciusdc in https://github.com/Quansight/qhub/pull/1102
- Complete implementation of destroy which goes through each stage by costrouc in https://github.com/Quansight/qhub/pull/1103
- Change AWS Kubernetes provider authentication to use data.eks_cluster instead of exec by costrouc in https://github.com/Quansight/qhub/pull/1107
- Relax qhub destroy to attempt to continue destroying resources by costrouc in https://github.com/Quansight/qhub/pull/1109
- Breaking upgrade docs (0.4) by danlester in https://github.com/Quansight/qhub/pull/1087
- Simplify default images by tylerpotts in https://github.com/Quansight/qhub/pull/1114
- Change group structure by danlester in https://github.com/Quansight/qhub/pull/1112
- Adding status field to each destroy stage to print status by costrouc in https://github.com/Quansight/qhub/pull/1116
- Incorrect mapping of values to gcp node group instance types by costrouc in https://github.com/Quansight/qhub/pull/1117
- FIX: Remove Conda Store from default images by HarshCasper in https://github.com/Quansight/qhub/pull/1119
- Minor fix to `setup.cfg` by iameskild in https://github.com/Quansight/qhub/pull/1122
- \[DOC\]- Update contribution guidelines by trallard in https://github.com/Quansight/qhub/pull/1080
- Adding tests to visit additional endpoints by costrouc in https://github.com/Quansight/qhub/pull/1118
- Adding tests for juypterhub-ssh, jhub-client, and vs code by costrouc in https://github.com/Quansight/qhub/pull/1123
- Update Keycloak docs by iameskild in https://github.com/Quansight/qhub/pull/1093
- Upgrade conda-store v0.3.10 and simplify specification of image by HarshCasper in https://github.com/Quansight/qhub/pull/1130
- \[ImgBot\] Optimize images by imgbot in https://github.com/Quansight/qhub/pull/1140
- Adjust Idle culler settings and add internal culling by viniciusdc in https://github.com/Quansight/qhub/pull/1133
- \[BUG\] Removing jovyan home directory and issue with nss configuration by costrouc in https://github.com/Quansight/qhub/pull/1142
- \[DOC\] Add `troubleshooting` docs by iameskild in https://github.com/Quansight/qhub/pull/1139
- Update user login guides by viniciusdc in https://github.com/Quansight/qhub/pull/1144
- \[ImgBot\] Optimize images by imgbot in https://github.com/Quansight/qhub/pull/1146
- Workaround for kubernetes-client version issue by iameskild in https://github.com/Quansight/qhub/pull/1148
- Make the commit of the terraform rendering optional (replaces PR 995) by iameskild in https://github.com/Quansight/qhub/pull/1149
- Fix typos in user guide docs by ericdatakelly in https://github.com/Quansight/qhub/pull/1154
- Minor docs clean up for v0.4.0 release by iameskild in https://github.com/Quansight/qhub/pull/1155
- Read-the-docs and documentation updates by tonyfast in https://github.com/Quansight/qhub/pull/1153
- Add markdown formatter for doc wrapping by viniciusdc in https://github.com/Quansight/qhub/pull/1152
- remove deprecated param `count` from `.cirun.yml` by aktech in https://github.com/Quansight/qhub/pull/1164
- Use qhub-bot for keycloak deployment/check by iameskild in https://github.com/Quansight/qhub/pull/1167
- Only list active conda-envs for dask-gateway by iameskild in https://github.com/Quansight/qhub/pull/1162

</details>

New Contributors

- imgbot made their first contribution in https://github.com/Quansight/qhub/pull/1140
- ericdatakelly made their first contribution in https://github.com/Quansight/qhub/pull/1154

**Full Changelog**: https://github.com/Quansight/qhub/compare/v0.3.13...v0.4.0

0.3.15

* Profilegroups by danlester in [PR 1203](https://github.com/Quansight/qhub/pull/1203)
* Render `.gitignore`, black py files by iameskild in [PR 1206](https://github.com/Quansight/qhub/pull/1206)
* Update qhub-dask pinned version by iameskild in [PR 1224](https://github.com/Quansight/qhub/pull/1224)
* Fix env doc links and add corresponding tests by aktech in [PR 1216](https://github.com/Quansight/qhub/pull/1216)
* Update conda-store-environment variable `type` by iameskild in [PR 1213](https://github.com/Quansight/qhub/pull/1213)
* Update release notes - justification for changes in `v0.4.0` by iameskild in [PR 1178](https://github.com/Quansight/qhub/pull/1178)
* Support for pinning the IP address of the load balancer via terraform overrides by aktech in [PR 1235](https://github.com/Quansight/qhub/pull/1235)
* Bump moment from 2.29.1 to 2.29.2 in /tests_e2e by dependabot in [PR 1241](https://github.com/Quansight/qhub/pull/1241)
* Update cdsdashboards to 0.6.1, Voila to 0.3.5 by danlester in [PR 1240](https://github.com/Quansight/qhub/pull/1240)
* Bump minimist from 1.2.5 to 1.2.6 in /tests_e2e by dependabot in [PR 1208](https://github.com/Quansight/qhub/pull/1208)
* output check fix by Adam-D-Lewis in [PR 1244](https://github.com/Quansight/qhub/pull/1244)
* Update panel version to fix jinja2 recent issue by viniciusdc in [PR 1248](https://github.com/Quansight/qhub/pull/1248)
* Add support for terraform overrides in cloud and VPC deployment for Azure by aktech in [PR 1253](https://github.com/Quansight/qhub/pull/1253)
* Add test-release workflow by iameskild in [PR 1245](https://github.com/Quansight/qhub/pull/1245)
* Bump async from 3.2.0 to 3.2.3 in /tests_e2e by dependabot in [PR 1260](https://github.com/Quansight/qhub/pull/1260)
* [WIP] Add support for VPC deployment for GCP via terraform overrides by aktech in [PR 1259](https://github.com/Quansight/qhub/pull/1259)
* Update login instructions for training by iameskild in [PR 1261](https://github.com/Quansight/qhub/pull/1261)
* Add docs for general node upgrade by iameskild in [PR 1246](https://github.com/Quansight/qhub/pull/1246)
* [ImgBot] Optimize images by imgbot in [PR 1264](https://github.com/Quansight/qhub/pull/1264)
* Fix project name and domain at None by pierrotsmnrd in [PR 856](https://github.com/Quansight/qhub/pull/856)
* Adding name convention validator for QHub project name by viniciusdc in [PR 761](https://github.com/Quansight/qhub/pull/761)
* Minor doc updates by iameskild in [PR 1268](https://github.com/Quansight/qhub/pull/1268)
* Enable display of Qhub version by viniciusdc in [PR 1256](https://github.com/Quansight/qhub/pull/1256)
* Fix missing region from AWS provider by viniciusdc in [PR 1271](https://github.com/Quansight/qhub/pull/1271)
* Re-enable GPU profiles for GCP/AWS by viniciusdc in [PR 1219](https://github.com/Quansight/qhub/pull/1219)
* Release notes for `v0.4.1` by iameskild in [PR 1272](https://github.com/Quansight/qhub/pull/1272)

New Contributors
* dependabot made their first contribution in [PR 1241](https://github.com/Quansight/qhub/pull/1241)

[**Full Changelog**](https://github.com/Quansight/qhub/compare/v0.4.0...v0.4.1)

0.3.13

Breaking changes

- No known breaking changes

Feature changes and enhancements

- Allow users to specify external Container Registry ([741](https://github.com/Quansight/qhub/pull/741))
- Integrate Prometheus and Grafana into QHub ([733](https://github.com/Quansight/qhub/pull/733))
- Add Traefik Dashboard ([797](https://github.com/Quansight/qhub/pull/797))
- Make ForwardAuth optional for ClearML ([830](https://github.com/Quansight/qhub/pull/830))
- Include override configuration for Prefect Agent ([813](https://github.com/Quansight/qhub/pull/813))
- Improve authentication type checking ([834](https://github.com/Quansight/qhub/pull/834))
- Switch to pydata Sphinx theme ([805](https://github.com/Quansight/qhub/pull/805))

Bug fixes

- Add force-destroy command (only for AWS at the moment) ([694](https://github.com/Quansight/qhub/pull/694))
- Include namespace in conda-store PVC ([716](https://github.com/Quansight/qhub/pull/716))
- Secure ClearML behind ForwardAuth ([721](https://github.com/Quansight/qhub/pull/721))
- Fix connectivity issues with AWS EKS via Terraform ([734](https://github.com/Quansight/qhub/pull/734))
- Fix conda-store pod eviction and volume conflicts ([740](https://github.com/Quansight/qhub/pull/740))
- Update `remove_existing_renders` to only delete QHub related files/directories ([800](https://github.com/Quansight/qhub/pull/800))
- Reduce number of AWS subnets down to 4 to increase the number of available nodes by a factor of 4 ([839](https://github.com/Quansight/qhub/pull/839))

0.3.11

Breaking changes

Feature changes and enhancements

- better validation messages on github auto provisioning

Bug fixes

- removing default values from pydantic schema which caused invalid yaml files to unexpectedly pass validation
- make kubespawner_override.environment overridable (prior changes were overwritten)

0.3.10

Breaking changes

- reverting `qhub_user` default name to `jovyan`

Feature changes and enhancements

Bug fixes

0.3.9

Breaking changes

Feature changes and enhancements

Bug fixes

- terraform formatting in cookiecutter for enabling GPUs on GCP

Page 2 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.