Skip to content

Commit 6230119

Browse files
authored
Merge branch 'main' into develop-to-main
2 parents 327dc41 + 7e458b2 commit 6230119

27 files changed

+1578
-19
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ repos:
3636

3737
# Misc...
3838
- repo: https://github.com/pre-commit/pre-commit-hooks
39-
rev: v4.6.0
39+
rev: v5.0.0
4040
# ref: https://github.com/pre-commit/pre-commit-hooks#hooks-available
4141
hooks:
4242
# Autoformat: Makes sure files end in a newline and only a newline

docs/docs/explanations/advanced-provider-configuration.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,103 @@ amazon_web_services:
9898
permissions_boundary: arn:aws:iam::01234567890:policy/<permissions-boundary-policy-name>
9999
```
100100

101+
### EKS KMS ARN (Optional)
102+
103+
You can use AWS Key Management Service (KMS) to enhance security by encrypting Kubernetes secrets in
104+
Amazon Elastic Kubernetes Service (EKS). This approach adds an extra layer of protection for sensitive
105+
information, like passwords, credentials, and TLS keys, by applying user-managed encryption keys to Kubernetes
106+
secrets, supporting a [defense-in-depth strategy](https://aws.amazon.com/blogs/containers/using-eks-encryption-provider-support-for-defense-in-depth/).
107+
108+
Nebari supports setting an existing KMS key while deploying Nebari to implement encryption of secrets
109+
created in Nebari's EKS cluster. The KMS key must be a **Symmetric** key set to **encrypt and decrypt** data.
110+
111+
:::warning
112+
Enabling EKS cluster secrets encryption, by setting `amazon_web_services.eks_kms_arn`, is an
113+
_irreversible_ action and re-deploying Nebari to try to remove a previously set `eks_kms_arn` will fail.
114+
On the other hand, if you try to change the KMS key in use for cluster encryption, by re-deploying Nebari
115+
after setting a _different_ key ARN, the re-deploy should succeed but the KMS key used for encryption will
116+
not actually change in the cluster config and the original key will remain set. The integrity of a faulty
117+
deployment can be restored, following a failed re-deploy attempt to remove a previously set KMS key, by
118+
simply re-deploying Nebari while ensuring `eks_kms_arn` is set to the original KMS key ARN.
119+
:::
120+
121+
:::danger
122+
If the KMS key used for envelope encryption of secrets is ever deleted, then there is no way to recover
123+
the EKS cluster.
124+
:::
125+
126+
:::note
127+
After enabling cluster encryption on your cluster, you must encrypt all existing secrets with the
128+
new key by running the following command:
129+
`kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - kms-encryption-timestamp="time value"`
130+
Consult [Encrypt K8s secrets with AWS KMS on existing clusters](https://docs.aws.amazon.com/eks/latest/userguide/enable-kms.html) for more information.
131+
:::
132+
133+
Here is an example of how you would set KMS key ARN in `nebari-config.yaml`.
134+
135+
```yaml
136+
amazon_web_services:
137+
# the arn for the AWS Key Management Service key
138+
eks_kms_arn: "arn:aws:kms:us-west-2:01234567890:key/<aws-kms-key-id>"
139+
```
140+
141+
### Launch Templates (Optional)
142+
143+
Nebari supports configuring launch templates for your node groups, enabling you to customize settings like the AMI ID and pre-bootstrap commands. This is particularly useful if you need to use a custom AMI or perform specific actions before the node joins the cluster.
144+
145+
:::warning
146+
If you add a `launch_template` to an existing node group that was previously created without one, AWS will treat this as a change requiring the replacement of the entire node group. This action will trigger a reallocation of resources, effectively destroying the current node group and recreating it. This behavior is due to how AWS handles self-managed node groups versus those using launch templates with custom settings.
147+
:::
148+
149+
:::tip
150+
To avoid unexpected downtime or data loss, consider creating a new node group with the launch template settings and migrating your workloads accordingly. This approach allows you to implement the new configuration without disrupting your existing resources.
151+
:::
152+
153+
#### Configuring a Launch Template
154+
155+
To configure a launch template for a node group in your `nebari-config.yaml`, add the `launch_template` section under the desired node group:
156+
157+
```yaml
158+
amazon_web_services:
159+
region: us-west-2
160+
kubernetes_version: "1.18"
161+
node_groups:
162+
custom-node-group:
163+
instance: "m5.large"
164+
min_nodes: 1
165+
max_nodes: 5
166+
gpu: false # Set to true if using GPU instances
167+
launch_template:
168+
# Replace with your custom AMI ID
169+
ami_id: ami-0abcdef1234567890
170+
# Command to run before the node joins the cluster
171+
pre_bootstrap_command: |
172+
#!/bin/bash
173+
# This script is executed before the node is bootstrapped
174+
# You can use this script to install additional packages or configure the node
175+
# For example, to install the `htop` package, you can run:
176+
# sudo apt-get update
177+
# sudo apt-get install -y htop"
178+
```
179+
180+
**Parameters:**
181+
182+
- `ami_id` (Optional): The ID of the custom AMI to use for the nodes in this group; this assumes the AMI provided is an EKS-optimized AMI derivative. If specified, the `ami_type` is automatically set to `CUSTOM`.
183+
- `pre_bootstrap_command` (Optional): A command or script to execute on the node before
184+
it joins the Kubernetes cluster. This can be used for custom setup or configuration
185+
tasks. The format should be a single string in conformation with the shell syntax.
186+
This command is injected in the `user_data` field of the launch template. For more
187+
information, see [User Data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html).
188+
189+
> If you're using a `launch_template` with a custom `ami_id`, there's an issue with updating the `scaling.desired_size` via Nebari configuration (terraform). To scale up, you must recreate the node group or adjust the scaling settings directly in the AWS Console UI (recommended). We are aware of this inconsistency and plan to address it in a future update.
190+
191+
:::note
192+
If an `ami_id` is not provided, AWS will use the default Amazon Linux 2 AMI for the
193+
specified instance type. You can find the latest optimized AMI IDs for Amazon EKS in your
194+
cluster region by inspecting its respective SSM parameters. For more information, see
195+
[Retrieve recommended Amazon Linux AMI IDs](https://docs.aws.amazon.com/eks/latest/userguide/retrieve-ami-id.html).
196+
:::
197+
101198
</TabItem>
102199

103200
<TabItem value="azure" label="Azure">

docs/docs/how-tos/jhub-app-launcher.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,24 @@ JHub App Launcher is was integrated into Nebari in version
4040
and is not enabled by default.
4141
:::
4242
43+
## Overrides
44+
45+
This integration also supports overrides, as in configuring jhub-apps via `nebari-config.yml`.
46+
The syntax for the same is given below:
47+
48+
```yaml
49+
jhub_apps:
50+
enabled: true
51+
overrides:
52+
# Anything that can be customized via
53+
# c.JAppsConfig.<ATTRIBUTE>
54+
# See https://github.com/nebari-dev/jhub-apps/blob/5ed5c9d3d1eeb08a5710001fef1e63295d7cb48d/jhub_apps/config_utils.py#L5
55+
service_workers: 4
56+
blocked_frameworks:
57+
- jupyterlab
58+
- custom
59+
```
60+
4361
## Usage
4462

4563
Documentation on how to create apps is included in the

docs/docs/how-tos/nebari-gcp.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,11 @@ management.
6666

6767
If it's your first time creating a service account, please follow
6868
[these detailed instructions](https://cloud.google.com/iam/docs/creating-managing-service-accounts) to create a Google Service Account with the following roles attached:
69-
"roles/editor", "roles/resourcemanager.projectIamAdmin" and "roles/container.admin".
69+
70+
- [`roles/editor`](https://cloud.google.com/iam/docs/understanding-roles#editor)
71+
- [`roles/resourcemanager.projectIamAdmin`](https://cloud.google.com/iam/docs/understanding-roles#resourcemanager.projectIamAdmin)
72+
- [`roles/container.admin`](https://cloud.google.com/iam/docs/understanding-roles#container.admin)
73+
- [`roles/storage.admin`](https://cloud.google.com/iam/docs/understanding-roles#storage.admin)
7074

7175
For more information about roles and permissions, see the
7276
[Google Cloud Platform IAM documentation](https://cloud.google.com/iam/docs/choose-predefined-roles). Remember to check the active project before creating resources, especially if

docs/docs/how-tos/nebari-local.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,20 @@ security:
159159
tag: sha-b4a2d1e
160160
```
161161
162+
### Increase fs watches
163+
164+
Depending on your host system, you may need to increase the `fs.inotify.max_user_watches` and
165+
`fs.inotify.max_user_instances kernel parameters` if you see the error "too many open files" in the logs of
166+
a failing pod.
167+
168+
```bash
169+
sudo sysctl fs.inotify.max_user_watches=524288
170+
sudo sysctl fs.inotify.max_user_instances=512
171+
```
172+
173+
See the [kind troubleshooting
174+
docs](https://kind.sigs.k8s.io/docs/user/known-issues/#pod-errors-due-to-too-many-open-files) for more information.
175+
162176
## Deploying Nebari
163177

164178
With the `nebari-config.yaml` configuration file now created, Nebari can be deployed for the first time with:

docs/docs/references/RELEASE.md

Lines changed: 62 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,64 @@ This file is copied to nebari-dev/nebari-docs using a GitHub Action. -->
99

1010
---
1111

12-
### Release 2024.7.1 - August 8, 2024
12+
## Release 2024.9.1 - September 27, 2024
13+
14+
> WARNING: This release changes how group directories are mounted in JupyterLab pods: only groups with specific permissions will have their directories mounted. If you rely on custom group mounts, we strongly recommend running `nebari upgrade` before updating. This will prompt you to confirm how Nebari should handle your groups—either keep them mounted or allow unmounting. **No data will be lost**, and you can reverse this anytime.
15+
16+
### What's Changed
17+
18+
- Fix: KeyValueDict error when deploying to existing infrastructure by @oftheaxe in https://github.com/nebari-dev/nebari/pull/2560
19+
- Remove unused AWS terraform modules by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2623
20+
- Upgrade Hashicorp Vault action by @aktech in https://github.com/nebari-dev/nebari/pull/2616
21+
- Pass `oauth_no_confirm=True` to jhub-apps by @krassowski in https://github.com/nebari-dev/nebari/pull/2631
22+
- Use Rook Ceph for Jupyterhub and Conda Store drives by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2541
23+
- Fix typo in guided init by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2635
24+
- Action var tests off by @BrianCashProf in https://github.com/nebari-dev/nebari/pull/2632
25+
- add a "moved" block to account for refactored terraform code without deleting/recreating NFS disks by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2639
26+
- Use Helm Chart for JupyterHub 5.1.0 by @krassowski in https://github.com/nebari-dev/nebari/pull/2661
27+
- Add a how to test section to PR template by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2659
28+
- Support disallowed nebari config changes by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2660
29+
- Fix converted init command in guided init by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2666
30+
- Add initial uptime metrics by @dcmcand in https://github.com/nebari-dev/nebari/pull/2609
31+
- Refactor and extend Playwright tests by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2644
32+
- Remove Cypress remaining tests/files by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2672
33+
- refactor jupyterhub user token retrieval within pytest by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2645
34+
- add moved block to account for terraform changes on AWS only by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2673
35+
- Refactor shared group mounting using RBAC by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2593
36+
- Dashboard fix usage report by @kenafoster in https://github.com/nebari-dev/nebari/pull/2671
37+
- only capture stdout not stdout+stderr when capture_output=True by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2704
38+
- revert breaking change to azure deployment test by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2706
39+
- Refactor GitOps approach prompt flow in guided init by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2269
40+
- template the kustomization.yaml file by @dcmcand in https://github.com/nebari-dev/nebari/pull/2667
41+
- Fix auto-provisioned GitHub repo description after guided init by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2708
42+
- Add amazon_web_services configuration option to specify EKS cluster api server endpoint access setting by @joneszc in https://github.com/nebari-dev/nebari/pull/2618
43+
- Use Google Auth and Cloud Python APIs instead of `gcloud` CLI by @swastik959 in https://github.com/nebari-dev/nebari/pull/2083
44+
- fix broken links in README.md, SECURITY.md, and CONTRIBUTING.md by @blakerosenthal in https://github.com/nebari-dev/nebari/pull/2720
45+
- add test for changing dicts and lists by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2724
46+
- 2024.9.1 upgrade notes by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2726
47+
- Add Support for AWS Launch Template Configuration by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2668
48+
- Run terraform init before running terraform show by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2734
49+
- Release Process Checklist Updates by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2727
50+
- Test implicit aiohttp's TCP to HTTP connector change by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2741
51+
- remove comments by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2743
52+
- Deploy Rook Ceph Helm only when Ceph FS Needed by @kenafoster in https://github.com/nebari-dev/nebari/pull/2742
53+
- fix group mounting paths by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2738
54+
- Add compatibility prompt and notes for shared group mounting by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2739
55+
56+
### New Contributors
57+
58+
- @oftheaxe made their first contribution in https://github.com/nebari-dev/nebari/pull/2560
59+
- @joneszc made their first contribution in https://github.com/nebari-dev/nebari/pull/2618
60+
- @swastik959 made their first contribution in https://github.com/nebari-dev/nebari/pull/2083
61+
- @blakerosenthal made their first contribution in https://github.com/nebari-dev/nebari/pull/2720
62+
63+
**Full Changelog**: https://github.com/nebari-dev/nebari/compare/2024.7.1...2024.9.1
64+
65+
## Release 2024.7.1 - August 8, 2024
1366

1467
> NOTE: Support for Digital Ocean deployments using CLI commands and related Terraform modules is being deprecated. Although Digital Ocean will no longer be directly supported in future releases, you can still deploy to Digital Ocean infrastructure using the current `existing` deployment option.
1568
16-
## What's Changed
69+
### What's Changed
1770

1871
- Enable authentication by default in jupyter-server by @krassowski in https://github.com/nebari-dev/nebari/pull/2288
1972
- remove dns sleep by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2550
@@ -35,14 +88,14 @@ This file is copied to nebari-dev/nebari-docs using a GitHub Action. -->
3588
- Move codespell config to pyproject.toml only by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2611
3689
- Add `depends_on` for bucket encryption by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2615
3790

38-
## New Contributors
91+
### New Contributors
3992

4093
- @BrianCashProf made their first contribution in https://github.com/nebari-dev/nebari/pull/2569
4194
- @yarikoptic made their first contribution in https://github.com/nebari-dev/nebari/pull/2583
4295

4396
**Full Changelog**: https://github.com/nebari-dev/nebari/compare/2024.6.1...2024.7.1
4497

45-
### Release 2024.6.1 - June 26, 2024
98+
## Release 2024.6.1 - June 26, 2024
4699

47100
> NOTE: This release includes an upgrade to the `kube-prometheus-stack` Helm chart, resulting in a newer version of Grafana. When upgrading your Nebari cluster, you will be prompted to have Nebari update some CRDs and delete a DaemonSet on your behalf. If you prefer, you can also run the commands yourself, which will be shown to you. If you have any custom dashboards, you'll also need to back them up by [exporting them as JSON](https://grafana.com/docs/grafana/latest/dashboards/share-dashboards-panels/#export-a-dashboard-as-json), so you can [import them](https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/import-dashboards/#import-a-dashboard) after upgrading.
48101
@@ -83,9 +136,9 @@ This file is copied to nebari-dev/nebari-docs using a GitHub Action. -->
83136

84137
**Full Changelog**: https://github.com/nebari-dev/nebari/compare/2024.5.1...2024.6.1
85138

86-
### Release 2024.5.1 - May 13, 2024
139+
## Release 2024.5.1 - May 13, 2024
87140

88-
## What's Changed
141+
### What's Changed
89142

90143
- make userscheduler run on general node group by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2415
91144
- Upgrade to Pydantic V2 by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2348
@@ -323,7 +376,7 @@ command and follow the instructions
323376
- paginator for boto3 ec2 instance types by @sblair-metrostar in https://github.com/nebari-dev/nebari/pull/1923
324377
- Update README.md -- fix typo. by @teoliphant in https://github.com/nebari-dev/nebari/pull/1925
325378
- Add more unit tests, add cleanup step for Digital Ocean integration test by @iameskild in https://github.com/nebari-dev/nebari/pull/1910
326-
- Add cleanup step for AWS integration test, ensure diable_prompt is passed through by @iameskild in https://github.com/nebari-dev/nebari/pull/1921
379+
- Add cleanup step for AWS integration test, ensure disable_prompt is passed through by @iameskild in https://github.com/nebari-dev/nebari/pull/1921
327380
- K8s 1.25 + More Improvements by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/1856
328381
- adding lifecycle ignore to eks node group by @sblair-metrostar in https://github.com/nebari-dev/nebari/pull/1905
329382
- nebari init unit tests by @sblair-metrostar in https://github.com/nebari-dev/nebari/pull/1931
@@ -471,7 +524,7 @@ This is a hot-fix release that resolves an issue whereby users in the `analyst`
471524
- improve CLI tests by @pmeier in https://github.com/nebari-dev/nebari/pull/1710
472525
- Fix Existing dashboards by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/1723
473526
- Fix dashboards by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/1727
474-
- Typo in the conda_store key by @costrouc in https://github.com/nebari-dev/nebari/pull/1740
527+
- Typo in the conda-store - conda_store key by @costrouc in https://github.com/nebari-dev/nebari/pull/1740
475528
- use -V (upper case) for --version short form by @pmeier in https://github.com/nebari-dev/nebari/pull/1720
476529
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/nebari-dev/nebari/pull/1692
477530
- improve pytest configuration by @pmeier in https://github.com/nebari-dev/nebari/pull/1700
@@ -1312,7 +1365,7 @@ Explicit user facing changes:
13121365

13131366
- `qhub deploy -c qhub-config.yaml` no longer prompts unsupported argument for `load_config_file`.
13141367
- Minor changes on the Step-by-Step walkthrough on the docs.
1315-
- Revamp of README.md to make it concise and highlight QHub HPC.
1368+
- Revamp of README.md to make it concise and highlight Nebari Slurm.
13161369

13171370
### Breaking changes
13181371

0 commit comments

Comments
 (0)