Skip to content

Commit 1d0afe3

Browse files
committed
add rook ceph docs
1 parent 2656ab7 commit 1d0afe3

File tree

1 file changed

+70
-19
lines changed

1 file changed

+70
-19
lines changed

docs/docs/explanations/advanced-configuration.md

Lines changed: 70 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ In the "How to deploy Nebari" pages of our docs we covered how you can auto-gene
1313
After first initializing a project, you can find the configuration file, `nebari-config.yaml`, in your project directory.
1414
This file is a `YAML` file that exports sets of parameters used by Nebari to deploy and redeploy changes to your infrastructure.
1515

16-
1716
<details>
1817
<summary>Complete configuration example.</summary>
1918

@@ -238,20 +237,17 @@ conda_store:
238237
239238
The `nebari-config.yaml` file can be split into several sections.
240239

241-
The first section is the version of Nebari you wish to run.
242-
243-
240+
The first section is the version of Nebari you wish to run.
244241

245242
```yaml
246243
### Nebari version ###
247244
nebari_version: 2023.7.2
248245
```
249246

250247
:::note
251-
You will get a validation error if the version of `nebari` used from the command line is different from the one in the `nebari-config.yaml`.
248+
You will get a validation error if the version of `nebari` used from the command line is different from the one in the `nebari-config.yaml`.
252249
:::
253250

254-
255251
The next section relates to Nebari's inner mechanics for the initial deployment and is the most important section of the configuration file,
256252
because the following parameters are heavily propagated throughout all infrastructure components.
257253

@@ -283,11 +279,12 @@ domain: demo.nebari.dev
283279

284280
### Continuous integration and continuous deployment
285281

286-
Nebari uses [infrastructure-as-code](https://en.wikipedia.org/wiki/Infrastructure_as_code) to maintain a description of the deployed infrastructure in source control. By using a git repository with CI/CD configured, teams can more quickly modify their deployment, empowering developers and data scientists to request the changes and have them approved by an administrator.
282+
Nebari uses [infrastructure-as-code](https://en.wikipedia.org/wiki/Infrastructure_as_code) to maintain a description of the deployed infrastructure in source control. By using a git repository with CI/CD configured, teams can more quickly modify their deployment, empowering developers and data scientists to request the changes and have them approved by an administrator.
287283

288-
When a `ci_cd` section is configured within your `nebari-config.yaml`, the first `nebari deploy` command will create all related files that describe a [CI/CD](https://about.gitlab.com/topics/ci-cd/) process. These pipelines will then be responsible for redeploying Nebari as changes are made to a specified branch. (Alternatively, an administrator can use `nebari render` to generate the necessary files as if running a dry-run.) Currently, Nebari can generate CI/CD for [GitHub Actions](https://docs.github.com/en/actions) and [GitLab CI](https://docs.gitlab.com/ee/ci/).
284+
When a `ci_cd` section is configured within your `nebari-config.yaml`, the first `nebari deploy` command will create all related files that describe a [CI/CD](https://about.gitlab.com/topics/ci-cd/) process. These pipelines will then be responsible for redeploying Nebari as changes are made to a specified branch. (Alternatively, an administrator can use `nebari render` to generate the necessary files as if running a dry-run.) Currently, Nebari can generate CI/CD for [GitHub Actions](https://docs.github.com/en/actions) and [GitLab CI](https://docs.gitlab.com/ee/ci/).
289285

290286
Below is an example `ci_cd` section in a `nebari-config.yaml` file.
287+
291288
```yaml
292289
### Continuous integration ###
293290
ci_cd:
@@ -312,15 +309,14 @@ ci_cd:
312309

313310
The CI/CD workflow that is best for you will depend on your organization, but the following tenets will be appropriate for most situations.
314311

315-
* You will want to have an upstream Git repository configured - we recommend either GitHub or GitLab since we support generating CI/CD jobs for these products.
316-
* The branch that triggers deployment (typically `main`, but you can set other ones in Nebari config's `ci_cd.branch`) should be protected so that only sys admins can commit or approve pull (or merge) requests into it.
317-
* CI/CD variables must be set in your repository so the pipeline can access your cloud (see Note below)
318-
* Non-admin users who have write access to the repository's non-protected branches may create their own branch off of `main`, locally make changes to the `nebari-config.yaml` and other files, and then push that branch to the origin and propose they be deployed via a Pull Request.
319-
* 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.
320-
312+
- You will want to have an upstream Git repository configured - we recommend either GitHub or GitLab since we support generating CI/CD jobs for these products.
313+
- The branch that triggers deployment (typically `main`, but you can set other ones in Nebari config's `ci_cd.branch`) should be protected so that only sys admins can commit or approve pull (or merge) requests into it.
314+
- CI/CD variables must be set in your repository so the pipeline can access your cloud (see Note below)
315+
- Non-admin users who have write access to the repository's non-protected branches may create their own branch off of `main`, locally make changes to the `nebari-config.yaml` and other files, and then push that branch to the origin and propose they be deployed via a Pull Request.
316+
- 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.
321317

322318
:::note
323-
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/).
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/).
324320
:::
325321

326322
### Certificates
@@ -376,11 +372,10 @@ In general you should use the production server, as seen above.
376372
You can also generate the above configuration automatically by using the `--ssl-cert-email <your-email-address>` flag when you run `nebari init` to initialize your project.
377373
:::
378374

379-
380-
Let's Encrypt heavily rate limits their production endpoint. In order to avoid throttling, Nebari's traefik deployments will store retrieved certificates for the duration of their validity in a mounted PVC at a default location `/mnt/acme-certificates/acme.json`.
375+
Let's Encrypt heavily rate limits their production endpoint. In order to avoid throttling, Nebari's traefik deployments will store retrieved certificates for the duration of their validity in a mounted PVC at a default location `/mnt/acme-certificates/acme.json`.
381376

382377
:::note
383-
In order to refresh the certificate before it is invalidated, you will need to delete the `acme.json` file then restart the Traefik deployment by deleting the existing pod and letting a new one spin up. This may be necessary if you change the domain name of your Nebari deployment.
378+
In order to refresh the certificate before it is invalidated, you will need to delete the `acme.json` file then restart the Traefik deployment by deleting the existing pod and letting a new one spin up. This may be necessary if you change the domain name of your Nebari deployment.
384379
:::
385380

386381
</TabItem>
@@ -416,6 +411,62 @@ Defining a wildcard certificate decreases the amount of Common Name (CN) names y
416411
</TabItem>
417412
</Tabs>
418413

414+
### Shared Storage Configuration
415+
416+
Nebari includes shared file systems for the jupyterhub user storage, jupyterhub shared storage, and conda store shared storage. By default, NFS drives are used.
417+
418+
As of Nebari 2024.9.1, alpha support for [Ceph](https://docs.ceph.com/en/latest/) shared file systems as an alternative to NFS is available. The initial benefit of using Ceph is increased read/write performance compared to NFS, but further benefits are expected in future development. Ceph is a distributed storage system which has the potential to provide increased performance, high availability, data redundancy, storage consolidation, and scalability to Nebari.
419+
420+
:::danger
421+
Do not switch from one storage type to another on an existing Nebari deployment. Any files in the user home directory and conda environments will be lost if you do so! On GCP, all node groups in the cluster will be destroyed and recreated. Only change the storage type prior to the initial deployment.
422+
:::
423+
424+
Storage is configuredin the nebari config file under the storage section.
425+
426+
```yaml
427+
storage:
428+
type: nfs # efs (default on AWS), cephfs
429+
conda_store: 200Gi
430+
shared_filesystem: 200Gi
431+
```
432+
433+
If using the "cephfs" storage type. The block storage backing all ceph storage will be provisioned using a kubernetes storage class. The default storage class will be used unless specified. Premium storage can be used on some cloud providers to back ceph storage for improved performance. The storage class name can be specified in the yaml file. Be aware that premium storage is not accessible on all node types on some cloud providers.
434+
435+
<Tabs>
436+
<TabItem label="AWS" value="AWS" default="true">
437+
438+
Premium storage is not available on AWS.
439+
</TabItem>
440+
<TabItem label="Azure" value="Azure">
441+
442+
```yaml
443+
ceph:
444+
storage_class_name: managed-premium
445+
```
446+
447+
</TabItem>
448+
<TabItem label="GCP" value="GCP">
449+
450+
```yaml
451+
ceph:
452+
storage_class_name: premium-rwo
453+
```
454+
455+
</TabItem>
456+
<TabItem label="Existing" value="Existing">
457+
458+
```yaml
459+
ceph:
460+
storage_class_name: some-cluster-storage-class
461+
```
462+
463+
</TabItem>
464+
<TabItem label="Local" value="Local">
465+
466+
Ceph is not supported on local deployments.
467+
</TabItem>
468+
</Tabs>
469+
419470
## More configuration options
420471

421472
Learn to configure more aspects of your Nebari deployment with the following topic guides:
@@ -425,4 +476,4 @@ Learn to configure more aspects of your Nebari deployment with the following top
425476
- [JupyterLab and Dask profile configuration](./advanced-profiles-settings.md)
426477
- [Customize JuputerHub theme](./advanced-custom-settings.md)
427478
- [Environment configuration](./advanced-env-configuration.md)
428-
- [Custom settings and overrides](./advanced-custom-settings.md)
479+
- [Custom settings and overrides](./advanced-custom-settings.md)

0 commit comments

Comments
 (0)