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

feat: add docs for how to deploy the filesystem client #17

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 9 additions & 0 deletions .custom_wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,12 @@ PyPI
GPUs
integrations
autonomizing
filesystem
filesystems
Ceph
cephx
hostname
hostnames
fsid
CephFS
NFS
2 changes: 2 additions & 0 deletions custom_conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,5 @@
.. role:: center
:class: align-center
"""

linkcheck_anchors_ignore = ['heading--subordinate', 'heading--proxy']
84 changes: 84 additions & 0 deletions howto/getting-started/deploy-shared-filesystem.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
(deploy-shared-filesystem)=
# How to deploy a shared filesystem

This how-to guide shows you how to deploy a shared filesystem in a Charmed-HPC cluster.

## Prerequisites

- {ref}`deploy-workload-manager`.

## Deploy a shared filesystem provider

A Charmed-HPC cluster allows deploying external filesystems not handled by Juju using a
[proxy charm](https://juju.is/docs/sdk/charm-taxonomy#heading--proxy):

```````{tabs}

``````{group-tab} NFS

To deploy an NFS server, you will require:
- The server's hostname.
- The exported path.
- (optional) the port.

```shell
juju deploy nfs-server-proxy --config \
hostname=<server hostname> \
path=<exported path> \
port=<server port>

```

``````

``````{group-tab} CephFS

To deploy a CephFS server, you will require:
- The unique identifier of the cluster (commonly known as fsid).
- The name of the filesystem within the Ceph cluster.
- The exported path of the filesystem.
- The list of hostnames for MON nodes of the Ceph cluster.
- The username with permissions to access the filesystem.
- The cephx key for the username.

```shell
juju deploy cephfs-server-proxy --config \
--config fsid=<unique identifier of the cluster> \
--config sharepoint=<name of the filesystem>:/<exported path> \
--config monitor-hosts="<MON hostname 1> <MON hostname 2> <MON hostname 3>" \
--config auth-info=<username>:<cephx key for the username>
```

``````

```````


## Deploy the filesystem-client

To add the charm that takes care of mounting a shared filesystem to the cluster nodes,
deploy the `filesystem-client` charm:

```shell
juju deploy filesystem-client --channel latest/edge \
--config mountpoint='/scratch' \
--config noexec=true
```

The `mountpoint` configuration represents the path that the filesystem will be mounted onto.

The `filesystem-client` is a [subordinate charm](https://juju.is/docs/juju/relation#heading--subordinate)
that can be related to another charm using the `juju-info` endpoint:

```shell
juju integrate slurmd:juju-info filesystem-client:juju-info
```

## Relate the filesystem client with the filesystem provider

Every filesystem provider can be integrated with the filesystem client using the
`filesystem` endpoint:

```shell
juju integrate filesystem-client:filesystem <filesystem-provider>:filesystem
```
2 changes: 2 additions & 0 deletions howto/getting-started/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ See the how-to guides in this section for how to get started with Charmed HPC.
## How to deploy Charmed HPC

- {ref}`deploy-workload-manager`
- {ref}`deploy-shared-filesystem`

```{toctree}
:titlesonly:
:maxdepth: 1
:hidden:

Deploy workload manager <deploy-workload-manager>
Deploy a shared filesystem <deploy-shared-filesystem>
```