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
Copy file name to clipboardExpand all lines: docs/community/maintainers/release-process.md
+4-13Lines changed: 4 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,24 +47,15 @@ For example, the first Nebari CalVer release was `2022.10.1`. If a hotfix releas
47
47
48
48
We use the following guidelines to manage `git` branches by assigning certain roles to particular branches.
49
49
50
-
-[`develop`](https://github.com/nebari-dev/nebari/tree/develop) - Represents the active development branch and is the _default_ branch on the GitHub repository.
50
+
-[`main`](https://github.com/nebari-dev/nebari/tree/main) - Represents the active development branch and is the _default_ branch on the GitHub repository.
51
51
52
-
-[`main`](https://github.com/nebari-dev/nebari/tree/main) - Represents a production-ready state of the code-base, with an appropriate tag to match the most recent release.
52
+
## Release Tags
53
53
54
-
-`release/YYYY-MM-releaseNumber` - Represents the branch for the upcoming release and only briefly exist while actively preparing for the release.
54
+
-`YYYY-MM-releaseNumber` - Represents the tag for a particular release.
55
55
56
56
### Process
57
57
58
-
Although this process is captured in the [release checklist template](https://github.com/nebari-dev/nebari/issues/new?assignees=&labels=type%3A+release+%F0%9F%8F%B7&template=release-checklist.md&title=%5BRELEASE%5D+%3Cversion%3E), it's worth making clear how branches are managed.
59
-
60
-
- Active development occurs against the `develop` branch.
61
-
- When it's time for a release, the Release Captain will create the release branch `release/YYYY-MM-releaseNumber` and prepare the branch for the release. At times, this might mean cherry-picking commits that are needed for this release and at other times, this might mean merging `develop` into this release branch.
62
-
- As soon as this release branch is ready, the Release Captain can open a pull request against `main`. From here, all of the changes that are included in the release should be visible in the "Files changed" section of the pull request.
63
-
- Once CI passes, all manual tests are successful and the team is happy with the changes, the Release Captain can complete the release checklist and cut the release.
64
-
65
-
#### Hotfixes
66
-
67
-
In the event that a patch or hotfix release is needed, release process is the same as outlined above. The only difference is that the commits that are merged into the hotfix release branch will need to be cherry-picked from the `develop` branch.
58
+
The release process is captured in the [release checklist template](https://github.com/nebari-dev/nebari/blob/main/.github/ISSUE_TEMPLATE/release-checklist.md). In the event that a patch or hotfix release is needed, release process is the same as outlined above.
Copy file name to clipboardExpand all lines: docs/docs/explanations/advanced-configuration.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -265,7 +265,6 @@ domain: demo.nebari.dev
265
265
266
266
`provider`: Determines the cloud provider used to deploy infrastructure related resources on Nebari. Possible values are:
267
267
268
-
- `do`for DigitalOcean
269
268
- `aws`for Amazon Web Services
270
269
- `gcp`for Google Could Provider
271
270
- `azure`for Microsoft Azure
@@ -316,7 +315,7 @@ The CI/CD workflow that is best for you will depend on your organization, but th
316
315
- Advanced Nebari users may also want to add a step in their deployment flow that includes a `nebari render` so that the administrator may preview the resulting diffs to IaC and/or CI/CD files before `nebari deploy` is executed.
317
316
318
317
:::note
319
-
In order for your CI/CD pipeline to be able to deploy changes into your Nebari cloud hosting provider, you must set the appropriate authentication environment variables for your GitLab or GitHub CI/CD execution environment. See the Authentication section for deploing to [AWS](https://www.nebari.dev/docs/how-tos/nebari-aws/#authentication), [Azure](https://www.nebari.dev/docs/how-tos/nebari-azure#authentication), [GCP](https://www.nebari.dev/docs/how-tos/nebari-gcp/#authentication), or [Digital Ocean](https://www.nebari.dev/docs/how-tos/nebari-do/#authentication) for Nebari's required variables. Guidance on how to set these for your repository/project can be found in the documentation for [GitHub Actions](https://docs.github.com/en/actions/learn-github-actions/variables) and [GitLab CI/CD](https://docs.gitlab.com/ee/ci/variables/).
318
+
In order for your CI/CD pipeline to be able to deploy changes into your Nebari cloud hosting provider, you must set the appropriate authentication environment variables for your GitLab or GitHub CI/CD execution environment. See the Authentication section for deploing to [AWS](https://www.nebari.dev/docs/how-tos/nebari-aws/#authentication), [Azure](https://www.nebari.dev/docs/how-tos/nebari-azure#authentication), or [GCP](https://www.nebari.dev/docs/how-tos/nebari-gcp/#authentication) for Nebari's required variables. Guidance on how to set these for your repository/project can be found in the documentation for [GitHub Actions](https://docs.github.com/en/actions/learn-github-actions/variables) and [GitLab CI/CD](https://docs.gitlab.com/ee/ci/variables/).
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).
196
+
:::
197
+
101
198
</TabItem>
102
199
103
200
<TabItemvalue="azure"label="Azure">
@@ -129,37 +226,6 @@ azure:
129
226
130
227
</TabItem>
131
228
132
-
<TabItem value="do" label="DigitalOcean">
133
-
134
-
DigitalOcean has a restriction with autoscaling in that the minimum nodes allowed (`min_nodes` = 1) is one but is by far the least expensive provider even accounting for `spot/pre-emptible` instances.
135
-
In addition, Digital Ocean doesn't have accelerator/gpu support.
136
-
137
-
Digital Ocean is a good choice for trying out Nebari, but we recommend selecting a different provider for your production Nebari deployment.
138
-
139
-
To see available instance types refer to [Digital Ocean Instance Types](https://www.digitalocean.com/docs/droplets/).
140
-
Additionally the Digital Ocean cli `doctl` has [support for listing droplets](https://www.digitalocean.com/docs/apis-clis/doctl/reference/compute/droplet/list/).
Originally designed for Nebari deployments on a "local" minikube cluster, this feature has now expanded to allow users to deploy Nebari to any existing kubernetes cluster.
@@ -221,7 +287,6 @@ local:
221
287
:::note
222
288
Many of the cloud providers regularly update their internal **Kubernetes versions** so if you wish to specify a particular version, please check the following resources.
223
289
This is _completely optional_ as Nebari will, by default, select the most recent version available for your preferred cloud provider:
Copy file name to clipboardExpand all lines: docs/docs/faq.md
+2-6Lines changed: 2 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,8 +48,8 @@ If you'd like to retain the latest version of an environment and only remove spe
48
48
## How do I use preemptible and spot instances on Nebari?
49
49
50
50
A preemptible or spot VM is an instance that you can create and run at a much lower price than normal instances. Azure
51
-
and Google Cloud platform use the term preemptible, while AWS uses the term spot, and Digital Ocean doesn't support
52
-
these types of instances. However, the cloud provider might stop these instances if it requires access to those
51
+
and Google Cloud platform use the term preemptible, while AWS uses the term spot.
52
+
However, the cloud provider might stop these instances if it requires access to those
53
53
resources for other tasks. Preemptible instances are excess Cloud Provider's capacity, so their availability varies with
54
54
usage.
55
55
@@ -84,10 +84,6 @@ Spot instances aren't supported at this moment.
84
84
85
85
Preemptible instances aren't supported at this moment.
86
86
87
-
##### Digital Ocean
88
-
89
-
Digital Ocean doesn't support these type of instances.
90
-
91
87
## Why doesn't my code recognize the GPU(s) on Nebari?
92
88
93
89
First be sure you chose a [GPU-enabled server when you selected a profile][selecting a profile]. Next, if you're using PyTorch, see [Using GPUs on Nebari][using gpus]. If it's still not working for you, be sure your environment includes a GPU-specific version of either PyTorch or TensorFlow, i.e. `pytorch-gpu` or `tensorflow-gpu`. Also note that `tensorflow>=2` includes both CPU and GPU capabilities, but if the GPU is still not recognized by the library, try removing `tensorflow` from your environment and adding `tensorflow-gpu` instead.
[DigitalOcean](https://docs.digitalocean.com/products/kubernetes/) is a cloud hosting provider that offers cloud computing services and Infrastructure as a Service (IaaS) known for its pricing and scalability.
46
40
47
-
For detailed instructions on how to deploy Nebari on **Digital Ocean** visit the [How to deploy Nebari on Digital Ocean][nebari-do] section.
48
-
49
-
</TabItem>
50
41
<TabItemvalue="aws"label="Amazon AWS">
51
42
52
43
<divclass="text--center">
@@ -75,7 +66,6 @@ For detailed instructions on how to deploy Nebari on **Azure** visit the [How to
Copy file name to clipboardExpand all lines: docs/docs/get-started/deploy.mdx
+1-3Lines changed: 1 addition & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,7 @@ If you are not sure which option to choose, a cloud installation is likely your
29
29
:::note
30
30
The cloud installation is based on Kubernetes, but knowledge of Kubernetes is **NOT** required nor is in-depth knowledge about the specific provider required either.
31
31
32
-
Currently, Nebari supports [Amazon AWS][nebari-aws], [DigitalOcean][nebari-do], [Google GCP][nebari-gcp], and [Azure][nebari-azure].
32
+
Currently, Nebari supports [Amazon AWS][nebari-aws], [Google GCP][nebari-gcp], and [Azure][nebari-azure].
33
33
:::
34
34
35
35
</TabItem>
@@ -73,14 +73,12 @@ For instructions on installing and deploying Nebari on a particular cloud provid
0 commit comments