Skip to content

Commit

Permalink
Merge branch 'main' into gm-37-edge-volumes-tutorial
Browse files Browse the repository at this point in the history
  • Loading branch information
barankaraaslan authored Sep 11, 2024
2 parents da968bf + 4869c05 commit 7152097
Showing 1 changed file with 24 additions and 16 deletions.
40 changes: 24 additions & 16 deletions pages/edge/learn/volumes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ In the current initial implementation, volumes are restricted to a single
[Edge region](/edge/learn/regions).

Volumes also at the moment only provide *read-write-many* semantics.
Due the automatic auto-scaling for apps, this means that volumes are not currently
Due to the automatic auto-scaling for apps, this means that volumes are not currently
well-suited for databases or other more complex use cases that require a single writer.

Keep in mind that volumes can be accessed concurrently, and even from different
Expand All @@ -22,7 +22,7 @@ These restrictions (including the single-region restriction) will be lifted
in the future.
</Callout>

## Using Volumes With rclone
## Create and Use Volumes

* Every app may have multiple volumes.
* Each volume has a name, which must be unique for the application.
Expand All @@ -39,19 +39,17 @@ volumes:
# A name for your volume.
# Must be unique for the given app.
- name: data
# Where to mount the volume into the filesystem.
# You can specify multiple mounts with optional subpaths.
mounts:
# Mount the volume to `/data`.
- mount_path: /data
# Optional: the subdirectory of the volume to mount.
# subpath: /subpath
# Create a persistent volume named "data" in `/data`.
mount: /data

- name: more_data
# Create a persistent volume named "more_data" in `/other_mntpoint`.
mount: /other_mntpoint
```
This will create a new "data" volume, which will be mounted at `/data`.
This will create two new volumes: "data", which will be mounted at `/data` and "more_data" which will be mounted at `/other_mntpoint`.

Now just re-deploy your app with `wasmer deploy`.
The volume will be automatically created.
Now just re-deploy your app with `wasmer deploy`, and the volume will be automatically created.

Your application can now use the mount path and treat it as persistent storage.

Expand Down Expand Up @@ -86,13 +84,13 @@ You can inspect volumes in two ways:
Volumes are not only available to your apps, but can also be remotely accessed
through the standard S3 API, or through a builtin web UI.

You can use the CLI to retrieve S3 credentials:
You can use the CLI to retrieve the credentials:

```bash
wasmer app volumes s3-credentials
wasmer app volumes credentials --format=json
```

This will print the S3 API URL, access key and secret key.
This will print the S3 API URL, access key and secret key in the JSON format.


<Callout type="info">
Expand All @@ -107,7 +105,7 @@ to your volumes. It even allows mounting a volume to your local machine!
You can get an rclone configuration snippet through the CLI:

```bash
wasmer app volumes s3-credentials --rclone-print
wasmer app volumes credentials --format=rclone
```

This will print out a configuration snippet that can be added to the rclone
Expand Down Expand Up @@ -137,3 +135,13 @@ rclone copy ./local-filename <target>:<volume-name>/remote-filename
mkdir my-volume
rclone mount <target>:<volume-name> ./my-volume
```

### Rotating credentials
In order to rotate (i.e. automatically assign a different value) the credentials tied to your volumes,
you can simply run this command with the CLI:

```bash
wasmer app volumes rotate-secrets
```

This command will rotate their values and show the new ones directly in the CLI.

0 comments on commit 7152097

Please sign in to comment.