You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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`.
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).
Copy file name to clipboardExpand all lines: docs/docs/how-tos/nebari-gcp.md
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,7 +66,11 @@ management.
66
66
67
67
If it's your first time creating a service account, please follow
68
68
[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".
For more information about roles and permissions, see the
72
76
[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
Copy file name to clipboardExpand all lines: docs/docs/references/RELEASE.md
+62-9Lines changed: 62 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,11 +9,64 @@ This file is copied to nebari-dev/nebari-docs using a GitHub Action. -->
9
9
10
10
---
11
11
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
> 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.
15
68
16
-
## What's Changed
69
+
###What's Changed
17
70
18
71
- Enable authentication by default in jupyter-server by @krassowski in https://github.com/nebari-dev/nebari/pull/2288
19
72
- 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. -->
35
88
- Move codespell config to pyproject.toml only by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2611
36
89
- Add `depends_on` for bucket encryption by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2615
37
90
38
-
## New Contributors
91
+
###New Contributors
39
92
40
93
-@BrianCashProf made their first contribution in https://github.com/nebari-dev/nebari/pull/2569
41
94
-@yarikoptic made their first contribution in https://github.com/nebari-dev/nebari/pull/2583
> 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.
48
101
@@ -83,9 +136,9 @@ This file is copied to nebari-dev/nebari-docs using a GitHub Action. -->
0 commit comments