Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2024.1.1 #2229

Merged
merged 123 commits into from
Jan 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
a402580
enabling viewing hidden files in jupyterlab file explorer (#1893)
kalpanachinnappan Aug 4, 2023
82ebab5
Extension Mechanism Implementation (#1833)
costrouc Aug 11, 2023
f46a63f
Fix import path in deployment tests & misc (#1908)
aktech Aug 14, 2023
4299969
pytest:ensure failure on warnings (#1907)
costrouc Aug 15, 2023
5db58b9
workaround for mixed string/posixpath error (#1915)
sblair-metrostar Aug 17, 2023
0a1c778
ENH: Remove aws cli, use boto3 (#1920)
fangchenli Aug 17, 2023
77b86a2
paginator for boto3 ec2 instance types (#1923)
sblair-metrostar Aug 18, 2023
42323d8
Update README.md -- fix typo. (#1925)
teoliphant Aug 21, 2023
735a0ca
Add more unit tests, add cleanup step for Digital Ocean integration t…
iameskild Aug 21, 2023
50487a3
Add cleanup step for AWS integration test, ensure diable_prompt is pa…
iameskild Aug 22, 2023
9e92a30
K8s 1.25 + More Improvements (#1856)
Adam-D-Lewis Aug 23, 2023
1a0e9d2
adding lifecycle ignore to eks node group (#1905)
sblair-metrostar Aug 23, 2023
9c4b401
nebari init unit tests (#1931)
sblair-metrostar Aug 23, 2023
53d1796
Bug fix - JH singleuser environment getting overwritten (#1933)
kenafoster Aug 23, 2023
77929a4
Allow users to specify the Azure RG to deploy into (#1927)
iameskild Aug 24, 2023
40cfb49
nebari validate unit tests (#1938)
sblair-metrostar Aug 28, 2023
0a0e988
adding openid connect provider to enable irsa feature (#1903)
sblair-metrostar Aug 30, 2023
f89e62e
nebari upgrade CLI tests (#1963)
sblair-metrostar Aug 30, 2023
b7e1b09
Allow users to specify Azure tags
iameskild Aug 30, 2023
300ab06
Add azure tags to terraform state stage
iameskild Aug 30, 2023
eebb188
Move tags
iameskild Aug 31, 2023
c21cd08
Remove tags from azurerm_storage_container
iameskild Aug 31, 2023
f4ab2ac
CI: Add test coverage (#1959)
fangchenli Aug 31, 2023
61ad3b4
Add network_profile, max_pods vars
iameskild Sep 1, 2023
0734fc8
Merge branch 'develop' into add_azure_tags
iameskild Sep 1, 2023
157aae9
nebari cli environment variable handling, support, keycloak, dev test…
sblair-metrostar Sep 4, 2023
017aa88
Merge branch 'develop' into add_azure_tags
iameskild Sep 4, 2023
0c4e246
Consolidate validate_tags function
iameskild Sep 4, 2023
a551589
Revert postfix change, see PR 1930
iameskild Sep 4, 2023
6bac0b0
Update azure cli validate test
iameskild Sep 4, 2023
23132ae
CI: remove empty notebook to fix pre-commit json check (#1976)
fangchenli Sep 4, 2023
9e05fdf
TYP: fix typing error in plugins (#1973)
fangchenli Sep 4, 2023
8b71702
TYP: fix return class type in hookimpl (#1975)
fangchenli Sep 4, 2023
f6d6a1b
Allow users to specify Azure tags (#1967)
iameskild Sep 7, 2023
5ae2c53
[pre-commit.ci] pre-commit autoupdate (#1979)
pre-commit-ci[bot] Sep 11, 2023
f5da3c2
Do not try and add argo envs when disabled (#1926)
iameskild Sep 11, 2023
107e413
Handle region with care, updates to test suite (#1930)
iameskild Sep 11, 2023
1e4ba1c
remove custom auth from config schema (#1994)
sblair-metrostar Sep 11, 2023
7a9126c
CLI: handle removed dns options in deploy command (#1992)
fangchenli Sep 11, 2023
3238856
Add API docs (#1634)
kcpevey Sep 12, 2023
2d0c985
Upgrade images for jupyterhub-ssh, kbatch (#1997)
iameskild Sep 12, 2023
23e1651
Add permissions to generate_cli_docs workflow (#2005)
iameskild Sep 13, 2023
d48b38e
standardize regex and messaging for names (#2003)
kenafoster Sep 14, 2023
aab5f3f
ENH: specify required fields when retrieving available gcp projects (…
fangchenli Sep 14, 2023
a427f87
Modify JupyterHub networkPolicy to match existing policy (#1991)
iameskild Sep 14, 2023
55a5323
Update package dependencies (#1986)
iameskild Sep 14, 2023
1a570d1
CI: Add AWS integration test workflow, clean up (#1977)
iameskild Sep 14, 2023
6132658
BUG: fix unboundlocalerror in integration test (#1999)
fangchenli Sep 14, 2023
c6d8178
Auth0/Github auth-provider config validation fix (#2009)
sblair-metrostar Sep 18, 2023
57be4dc
terraform upgrade to 1.5.7 (#1998)
sblair-metrostar Sep 19, 2023
d58ebb1
cli init repo auto provision fix (#2012)
sblair-metrostar Sep 19, 2023
6d01b04
Add gcp_cleanup, minor changes (#2010)
iameskild Sep 21, 2023
9179295
Fix #2024 (#2025)
dcmcand Sep 22, 2023
b8ce347
Upgrade conda-store to 2023.9.2 (#2028)
iameskild Sep 26, 2023
056b420
Add upgrade steps, instructions for 2023.9.1 (#2029)
iameskild Oct 2, 2023
db1fc51
CI: add gcp integration test (#2049)
fangchenli Oct 9, 2023
8e181bd
CLN: remove flake8 from dependencies (#2044)
fangchenli Oct 9, 2023
da396c2
[pre-commit.ci] pre-commit autoupdate (#2047)
pre-commit-ci[bot] Oct 10, 2023
94b0cdf
fix typo in guided init for Digital Ocean (#2059)
dcmcand Oct 11, 2023
dc7f4de
CI: add do integration (#2060)
fangchenli Oct 13, 2023
d9920c3
TYP: make all subfolders under kubernetes_services/template non-modul…
fangchenli Oct 13, 2023
1686693
TYP: fix most typing errors in provider (#2038)
fangchenli Oct 13, 2023
5474f90
Fix link to documentation on Nebari Deployment home page (#2063)
aktech Oct 13, 2023
7b4e8e0
TST: enable timeout config in playwright notebook test (#1996)
fangchenli Oct 13, 2023
270aad6
DEPS: sync supported python version (#2065)
fangchenli Oct 14, 2023
67e967f
Test support for Python 3.12 (#2046)
aktech Oct 16, 2023
4db8400
BUG: fix validation error related to `provider` #2054 (#2056)
fangchenli Oct 16, 2023
6846643
CI: improve unit test workflow in CI, revert #2046 (#2071)
fangchenli Oct 18, 2023
20bc7d4
TST: enable exact_match config in playwright notebook test (#2027)
fangchenli Oct 18, 2023
ee1b4c9
CI: move conda build test to seperate job (#2073)
fangchenli Oct 18, 2023
452de56
Revert conda-store to v0.4.14, #2028 (#2074)
iameskild Oct 19, 2023
c57d501
ENH/CI: add mypy config, and CI workflow (#2066)
fangchenli Oct 20, 2023
76769e0
Update upgrade for 2023.10.1 (#2080)
kenafoster Oct 20, 2023
376ffba
Update RELEASE notes, minor fixes (#2039)
iameskild Oct 21, 2023
b254cc8
BUG: fix incorrect config override #2086 (#2087)
fangchenli Oct 24, 2023
7459abe
ENH: add AWS IAM permissions_boundary option #2078 (#2082)
fangchenli Oct 26, 2023
1b851a2
CI: cleanup local integration workflow (#2079)
fangchenli Nov 4, 2023
8a0f2b7
[pre-commit.ci] pre-commit autoupdate (#2099)
pre-commit-ci[bot] Nov 7, 2023
59f700d
ENH: check missing GCP services (#2036)
fangchenli Nov 8, 2023
1f4891f
ENH: use packaging for version parsing, add unit tests (#2048)
fangchenli Nov 8, 2023
748bb6a
ENH: specify required field when retrieving available gcp regions (#2…
fangchenli Nov 8, 2023
7d582f1
Upgrade conda-store to 2023.10.1 (#2092)
iameskild Nov 10, 2023
6bdeb2a
Add upgrade command for 2023.11.1 (#2103)
iameskild Nov 13, 2023
49b4d17
CLN: cleanup typing and typing import in init (#2107)
fangchenli Nov 13, 2023
0e23ed4
Remove kbatch, prefect and clearml (#2101)
iameskild Nov 13, 2023
b9158e4
Fix integration tests, helm-validate script (#2102)
iameskild Nov 14, 2023
f28436a
Re-enable AWS tags support (#2096)
iameskild Nov 14, 2023
30f1cda
Update upgrade instructions for 2023.11.1 (#2112)
iameskild Nov 15, 2023
93a2b49
Update nebari-git env pins (#2113)
iameskild Nov 15, 2023
d4a5e26
Update release notes for 2023.11.1 (#2114)
iameskild Nov 15, 2023
efc2913
update constants.py with current version (#2115)
dcmcand Nov 15, 2023
b0c451d
[pre-commit.ci] pre-commit autoupdate (#2141)
pre-commit-ci[bot] Dec 5, 2023
2aecee9
add 2023.12.1 upgrade command (#2158)
dcmcand Dec 21, 2023
e351b6a
Add cdn as environment variable for bokeh resources. (#2161)
marcelovilla Dec 21, 2023
d7db557
Update busybox image tag version (#2167)
pt247 Dec 22, 2023
d612e9b
update release version (#2170)
dcmcand Dec 22, 2023
96f3334
[pre-commit.ci] pre-commit autoupdate (#2176)
pre-commit-ci[bot] Jan 5, 2024
5e64a36
Fix logic for dns lookup. (#2166)
pt247 Jan 8, 2024
c060e99
Integrate JupyterHub App Launcher into Nebari (#2185)
aktech Jan 8, 2024
507d1ae
Pass in permissions boundary to k8s module (#2153)
aktech Jan 9, 2024
d4fcdf2
Add jupyterlab-pioneer (#2127)
aktech Jan 9, 2024
37c7b8c
Disable checkForUpdates setting
viniciusdc Jan 10, 2024
0d02ab4
JHub Apps: Filter conda envs by user (#2187)
aktech Jan 10, 2024
e3e06a8
update upgrade command (#2198)
dcmcand Jan 10, 2024
29c64d6
Remove JupyterLab from services list (#2189)
aktech Jan 11, 2024
52f5927
Adding fields to ignore within keycloak_realm (#2200)
costrouc Jan 11, 2024
49ce43e
Add Nebari menu item configuration. (#2196)
marcelovilla Jan 11, 2024
c8283c2
Merge branch 'develop' into 2190-vini-remove-update-popups
marcelovilla Jan 11, 2024
7a3a0ef
Pass a boolean instead of a string
marcelovilla Jan 11, 2024
6ae41e8
Disable "Newer update available" popup as default setting (#2192)
marcelovilla Jan 11, 2024
f04c70d
Block usage of pip inside jupyterlab (#2191)
viniciusdc Jan 16, 2024
d206cfd
Return all environments instead of just those under the user's namesp…
marcelovilla Jan 17, 2024
e1e80e9
Adding a temporary writable directory for conda-store server /home/co…
costrouc Jan 18, 2024
57db83b
Add demo repositories mechanism to populate user's space (#2207)
viniciusdc Jan 18, 2024
991023d
update nebari_workflow_controller and conda_store tags to test rc (#2…
dcmcand Jan 18, 2024
1d270e3
2023.12.1 release notes (#2211)
dcmcand Jan 19, 2024
fd31e68
Make it so that jhub-apps default theme doesn't override (#2213)
costrouc Jan 19, 2024
cac52ef
Adding additional theme variables to jupyterhub theme config (#2215)
costrouc Jan 20, 2024
02d0b97
updates Current Release to 2024.1.1 (#2227)
dcmcand Jan 30, 2024
b7bb3da
update release notes (#2228)
dcmcand Jan 30, 2024
3feda43
Fix main merge conflict (#2230)
dcmcand Jan 30, 2024
25e19d0
fix merge conflicts
dcmcand Jan 30, 2024
3c7c315
Develop merge conflict (#2231)
dcmcand Jan 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,19 +51,19 @@ repos:

# python
- repo: https://github.com/psf/black
rev: 23.10.1
rev: 23.12.1
hooks:
- id: black
args: ["--line-length=88", "--exclude=/src/_nebari/template/"]

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.1.4
rev: v0.1.9
hooks:
- id: ruff
args: ["--fix"]

- repo: https://github.com/pycqa/isort
rev: 5.12.0
rev: 5.13.2
hooks:
- id: isort
name: isort
Expand All @@ -73,7 +73,7 @@ repos:

# terraform
- repo: https://github.com/antonbabenko/pre-commit-terraform
rev: v1.83.5
rev: v1.86.0
hooks:
- id: terraform_fmt
args:
Expand Down
69 changes: 69 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,75 @@ This file is copied to nebari-dev/nebari-docs using a GitHub Action. -->

## Upcoming Release

## Release 2024.1.1 - January 17, 2024

### Feature changes and enhancements

* Upgrade conda-store to latest version 2024.1.1
* Add Jhub-Apps
* Add Jupyterlab-pioneer
* Minor improvements and bug fixes

### Breaking Changes

> WARNING: jupyterlab-videochat, retrolab, jupyter-tensorboard, jupyterlab-conda-store and jupyter-nvdashboard are no longer supported in Nebari version and will be uninstalled."

### What's Changed

* [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/nebari-dev/nebari/pull/2176
* Fix logic for dns lookup. by @pt247 in https://github.com/nebari-dev/nebari/pull/2166
* Integrate JupyterHub App Launcher into Nebari by @aktech in https://github.com/nebari-dev/nebari/pull/2185
* Pass in permissions boundary to k8s module by @aktech in https://github.com/nebari-dev/nebari/pull/2153
* Add jupyterlab-pioneer by @aktech in https://github.com/nebari-dev/nebari/pull/2127
* JHub Apps: Filter conda envs by user by @aktech in https://github.com/nebari-dev/nebari/pull/2187
* update upgrade command by @dcmcand in https://github.com/nebari-dev/nebari/pull/2198
* Remove JupyterLab from services list by @aktech in https://github.com/nebari-dev/nebari/pull/2189
* Adding fields to ignore within keycloak_realm by @costrouc in https://github.com/nebari-dev/nebari/pull/2200
* Add Nebari menu item configuration. by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2196
* Disable "Newer update available" popup as default setting by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2192
* Block usage of pip inside jupyterlab by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2191
* Return all environments instead of just those under the user's namespace for jhub-apps by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2206
* Adding a temporary writable directory for conda-store server /home/conda by @costrouc in https://github.com/nebari-dev/nebari/pull/2209
* Add demo repositories mechanism to populate user's space by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2207
* update nebari_workflow_controller and conda_store tags to test rc by @dcmcand in https://github.com/nebari-dev/nebari/pull/2210
* 2023.12.1 release notes by @dcmcand in https://github.com/nebari-dev/nebari/pull/2211
* Make it so that jhub-apps default theme doesn't override by @costrouc in https://github.com/nebari-dev/nebari/pull/2213
* Adding additional theme variables to jupyterhub theme config by @costrouc in https://github.com/nebari-dev/nebari/pull/2215
* updates Current Release to 2024.1.1 by @dcmcand in https://github.com/nebari-dev/nebari/pull/2227


**Full Changelog**: https://github.com/nebari-dev/nebari/compare/2023.12.1...2024.1.1

## Release 2023.12.1 - December 15, 2023

### Feature changes and enhancements

* Upgrade conda-store to latest version 2023.10.1
* Minor improvements and bug fixes

### Breaking Changes

> WARNING: Prefect, ClearML and kbatch were removed in this release and upgrading to this version will result in all of them being uninstalled.

### What's Changed
* BUG: fix incorrect config override #2086 by @fangchenli in https://github.com/nebari-dev/nebari/pull/2087
* ENH: add AWS IAM permissions_boundary option #2078 by @fangchenli in https://github.com/nebari-dev/nebari/pull/2082
* CI: cleanup local integration workflow by @fangchenli in https://github.com/nebari-dev/nebari/pull/2079
* ENH: check missing GCP services by @fangchenli in https://github.com/nebari-dev/nebari/pull/2036
* ENH: use packaging for version parsing, add unit tests by @fangchenli in https://github.com/nebari-dev/nebari/pull/2048
* ENH: specify required field when retrieving available gcp regions by @fangchenli in https://github.com/nebari-dev/nebari/pull/2033
* Upgrade conda-store to 2023.10.1 by @iameskild in https://github.com/nebari-dev/nebari/pull/2092
* Add upgrade command for 2023.11.1 by @iameskild in https://github.com/nebari-dev/nebari/pull/2103
* CLN: cleanup typing and typing import in init by @fangchenli in https://github.com/nebari-dev/nebari/pull/2107
* Remove kbatch, prefect and clearml by @iameskild in https://github.com/nebari-dev/nebari/pull/2101
* Fix integration tests, helm-validate script by @iameskild in https://github.com/nebari-dev/nebari/pull/2102
* Re-enable AWS tags support by @iameskild in https://github.com/nebari-dev/nebari/pull/2096
* Update upgrade instructions for 2023.11.1 by @iameskild in https://github.com/nebari-dev/nebari/pull/2112
* Update nebari-git env pins by by @iameskild in https://github.com/nebari-dev/nebari/pull/2113
* Update release notes for 2023.11.1 by @iameskild in https://github.com/nebari-dev/nebari/pull/2114


**Full Changelog**: https://github.com/nebari-dev/nebari/compare/2023.11.1...2023.12.1

## Release 2023.11.1 - November 15, 2023

Expand Down
6 changes: 3 additions & 3 deletions src/_nebari/constants.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CURRENT_RELEASE = "2023.11.1"
CURRENT_RELEASE = "2024.1.1"

# NOTE: Terraform cannot be upgraded further due to Hashicorp licensing changes
# implemented in August 2023.
Expand All @@ -13,9 +13,9 @@

DEFAULT_NEBARI_DASK_VERSION = CURRENT_RELEASE
DEFAULT_NEBARI_IMAGE_TAG = CURRENT_RELEASE
DEFAULT_NEBARI_WORKFLOW_CONTROLLER_IMAGE_TAG = "2023.7.2"
DEFAULT_NEBARI_WORKFLOW_CONTROLLER_IMAGE_TAG = "2024.1.1"

DEFAULT_CONDA_STORE_IMAGE_TAG = "2023.10.1"
DEFAULT_CONDA_STORE_IMAGE_TAG = "2024.1.1"

LATEST_SUPPORTED_PYTHON_VERSION = "3.10"

Expand Down
1 change: 1 addition & 0 deletions src/_nebari/stages/infrastructure/template/aws/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -94,4 +94,5 @@ module "kubernetes" {

endpoint_private_access = var.eks_endpoint_private_access
public_access_cidrs = var.eks_public_access_cidrs
permissions_boundary = var.permissions_boundary
}
2 changes: 1 addition & 1 deletion src/_nebari/stages/infrastructure/template/local/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ resource "kind_cluster" "default" {

node {
role = "general"
image = "kindest/node:v1.21.10"
image = "kindest/node:v1.23.13"
}
}
}
Expand Down
8 changes: 4 additions & 4 deletions src/_nebari/stages/kubernetes_ingress/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,15 @@ def _attempt_dns_lookup(
):
for i in range(num_attempts):
try:
resolved_ip = socket.gethostbyname(domain_name)
if resolved_ip == ip:
_, _, resolved_ips = socket.gethostbyname_ex(domain_name)
if ip in resolved_ips:
print(
f"DNS configured domain={domain_name} matches ingress ip={ip}"
f"DNS configured domain={domain_name} matches ingress ips={ip}"
)
return True
else:
print(
f"Attempt {i+1} polling DNS domain={domain_name} does not match ip={ip} instead got {resolved_ip}"
f"Attempt {i+1} polling DNS domain={domain_name} does not match ip={ip} instead got {resolved_ips}"
)
except socket.gaierror:
print(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ extraInitContainers: |
chown 1000:1000 /data/keycloak-metrics-spi-2.5.3.jar &&
chmod 777 /data/keycloak-metrics-spi-2.5.3.jar
fi
image: busybox:1.31
image: busybox:1.36
name: initialize-spi-metrics-jar
securityContext:
runAsUser: 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,48 @@ resource "keycloak_realm" "main" {
web_authn_passwordless_policy {
}

lifecycle {
ignore_changes = [
# We want user to have control over attributes we are not managing
# If attribute is added above remove it from this list
# https://registry.terraform.io/providers/mrparkers/keycloak/latest/docs/resources/realm
attributes,
registration_allowed,
registration_email_as_username,
edit_username_allowed,
reset_password_allowed,
remember_me,
verify_email,
login_with_email_allowed,
login_theme,
account_theme,
admin_theme,
email_theme,
sso_session_idle_timeout,
sso_session_max_lifespan,
sso_session_idle_timeout_remember_me,
sso_session_max_lifespan_remember_me,
offline_session_idle_timeout,
offline_session_max_lifespan,
access_token_lifespan,
access_token_lifespan_for_implicit_flow,
access_code_lifespan,
access_code_lifespan_login,
access_code_lifespan_user_action,
action_token_generated_by_user_lifespan,
action_token_generated_by_admin_lifespan,
oauth2_device_code_lifespan,
oauth2_device_polling_interval,
smtp_server,
internationalization,
security_defenses,
password_policy,
otp_policy,
default_default_client_scopes,
default_optional_client_scopes,
]
}

}

resource "keycloak_group" "groups" {
Expand Down
45 changes: 45 additions & 0 deletions src/_nebari/stages/kubernetes_services/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,18 @@ class JupyterHubTheme(schema.Base):
welcome: str = """Welcome! Learn about Nebari's features and configurations in <a href="https://www.nebari.dev/docs">the documentation</a>. If you have any questions or feedback, reach the team on <a href="https://www.nebari.dev/docs/community#getting-support">Nebari's support forums</a>."""
logo: str = "https://raw.githubusercontent.com/nebari-dev/nebari-design/main/logo-mark/horizontal/Nebari-Logo-Horizontal-Lockup-White-text.svg"
primary_color: str = "#4f4173"
primary_color_dark: str = "#4f4173"
secondary_color: str = "#957da6"
secondary_color_dark: str = "#957da6"
accent_color: str = "#32C574"
accent_color_dark: str = "#32C574"
text_color: str = "#111111"
h1_color: str = "#652e8e"
h2_color: str = "#652e8e"
version: str = f"v{__version__}"
navbar_color: str = "#1c1d26"
navbar_text_color: str = "#f1f1f6"
navbar_hover_color: str = "#db96f3"
display_version: str = "True" # limitation of theme everything is a str


Expand Down Expand Up @@ -188,10 +194,23 @@ class ArgoWorkflows(schema.Base):
nebari_workflow_controller: NebariWorkflowController = NebariWorkflowController()


class JHubApps(schema.Base):
enabled: bool = False


class Monitoring(schema.Base):
enabled: bool = True


class JupyterLabPioneer(schema.Base):
enabled: bool = False
log_format: typing.Optional[str] = None


class Telemetry(schema.Base):
jupyterlab_pioneer: JupyterLabPioneer = JupyterLabPioneer()


class JupyterHub(schema.Base):
overrides: typing.Dict = {}

Expand All @@ -208,6 +227,7 @@ class IdleCuller(schema.Base):

class JupyterLab(schema.Base):
idle_culler: IdleCuller = IdleCuller()
initial_repositories: typing.List[typing.Dict[str, str]] = []


class InputSchema(schema.Base):
Expand Down Expand Up @@ -280,8 +300,10 @@ class InputSchema(schema.Base):
conda_store: CondaStore = CondaStore()
argo_workflows: ArgoWorkflows = ArgoWorkflows()
monitoring: Monitoring = Monitoring()
telemetry: Telemetry = Telemetry()
jupyterhub: JupyterHub = JupyterHub()
jupyterlab: JupyterLab = JupyterLab()
jhub_apps: JHubApps = JHubApps()


class OutputSchema(schema.Base):
Expand Down Expand Up @@ -329,6 +351,7 @@ class CondaStoreInputVars(schema.Base):
class JupyterhubInputVars(schema.Base):
jupyterhub_theme: Dict[str, Any] = Field(alias="jupyterhub-theme")
jupyterlab_image: ImageNameTag = Field(alias="jupyterlab-image")
initial_repositories: str = Field(alias="initial-repositories")
jupyterhub_overrides: List[str] = Field(alias="jupyterhub-overrides")
jupyterhub_stared_storage: str = Field(alias="jupyterhub-shared-storage")
jupyterhub_shared_endpoint: str = Field(None, alias="jupyterhub-shared-endpoint")
Expand All @@ -337,6 +360,7 @@ class JupyterhubInputVars(schema.Base):
jupyterhub_hub_extraEnv: str = Field(alias="jupyterhub-hub-extraEnv")
idle_culler_settings: Dict[str, Any] = Field(alias="idle-culler-settings")
argo_workflows_enabled: bool = Field(alias="argo-workflows-enabled")
jhub_apps_enabled: bool = Field(alias="jhub-apps-enabled")


class DaskGatewayInputVars(schema.Base):
Expand All @@ -348,6 +372,13 @@ class MonitoringInputVars(schema.Base):
monitoring_enabled: bool = Field(alias="monitoring-enabled")


class TelemetryInputVars(schema.Base):
jupyterlab_pioneer_enabled: bool = Field(alias="jupyterlab-pioneer-enabled")
jupyterlab_pioneer_log_format: typing.Optional[str] = Field(
alias="jupyterlab-pioneer-log-format"
)


class ArgoWorkflowsInputVars(schema.Base):
argo_workflows_enabled: bool = Field(alias="argo-workflows-enabled")
argo_workflows_overrides: List[str] = Field(alias="argo-workflows-overrides")
Expand Down Expand Up @@ -401,6 +432,12 @@ def input_vars(self, stage_outputs: Dict[str, Dict[str, Any]]):
"*/*": ["viewer"],
},
},
"jhub-apps": {
"primary_namespace": "",
"role_bindings": {
"*/*": ["viewer"],
},
},
}

# Compound any logout URLs from extensions so they are are logged out in succession
Expand Down Expand Up @@ -458,6 +495,8 @@ def input_vars(self, stage_outputs: Dict[str, Dict[str, Any]]):
),
idle_culler_settings=self.config.jupyterlab.idle_culler.dict(),
argo_workflows_enabled=self.config.argo_workflows.enabled,
jhub_apps_enabled=self.config.jhub_apps.enabled,
initial_repositories=str(self.config.jupyterlab.initial_repositories),
)

dask_gateway_vars = DaskGatewayInputVars(
Expand All @@ -471,6 +510,11 @@ def input_vars(self, stage_outputs: Dict[str, Dict[str, Any]]):
monitoring_enabled=self.config.monitoring.enabled,
)

telemetry_vars = TelemetryInputVars(
jupyterlab_pioneer_enabled=self.config.telemetry.jupyterlab_pioneer.enabled,
jupyterlab_pioneer_log_format=self.config.telemetry.jupyterlab_pioneer.log_format,
)

argo_workflows_vars = ArgoWorkflowsInputVars(
argo_workflows_enabled=self.config.argo_workflows.enabled,
argo_workflows_overrides=[json.dumps(self.config.argo_workflows.overrides)],
Expand All @@ -486,6 +530,7 @@ def input_vars(self, stage_outputs: Dict[str, Dict[str, Any]]):
**dask_gateway_vars.dict(by_alias=True),
**monitoring_vars.dict(by_alias=True),
**argo_workflows_vars.dict(by_alias=True),
**telemetry_vars.dict(by_alias=True),
}

def check(
Expand Down
10 changes: 10 additions & 0 deletions src/_nebari/stages/kubernetes_services/template/jupyterhub.tf
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@ variable "jupyterlab-profiles" {
description = "JupyterHub profiles to expose to user"
}

variable "initial-repositories" {
description = "Map of folder location and git repo url to clone"
type = string
}

variable "jupyterhub-hub-extraEnv" {
description = "Extracted overrides to merge with jupyterhub.hub.extraEnv"
type = string
Expand Down Expand Up @@ -99,6 +104,8 @@ module "jupyterhub" {
argo-workflows-enabled = var.argo-workflows-enabled
conda-store-argo-workflows-jupyter-scheduler-token = module.kubernetes-conda-store-server.service-tokens.argo-workflows-jupyter-scheduler
conda-store-service-name = module.kubernetes-conda-store-server.service_name
conda-store-jhub-apps-token = module.kubernetes-conda-store-server.service-tokens.jhub-apps
jhub-apps-enabled = var.jhub-apps-enabled

extra-mounts = {
"/etc/dask" = {
Expand Down Expand Up @@ -127,5 +134,8 @@ module "jupyterhub" {
jupyterhub-hub-extraEnv = var.jupyterhub-hub-extraEnv

idle-culler-settings = var.idle-culler-settings
initial-repositories = var.initial-repositories

jupyterlab-pioneer-enabled = var.jupyterlab-pioneer-enabled
jupyterlab-pioneer-log-format = var.jupyterlab-pioneer-log-format
}
Loading
Loading