Deploy S3 Storage¶
Huddo Boards requires an S3 object store. This documentation will deploy a SeaweedFS (Apache 2.0 licenced) S3 storage container into the Kubernetes setup, separate to the Boards chart itself.
The deployment is named huddo-s3 because it is not Boards-specific — other Huddo products (e.g. Huddo Ideas & Wikis) can share this same S3 service, each using their own bucket. Boards uses the huddo-boards bucket.
If you already have externally hosted S3 storage please skip to the Outcomes section to determine your equivalent connection parameters.
You can also email us for support at support@huddo.com
Note
Previous versions of this guide deployed MinIO. MinIO is now AGPLv3 licenced and we recommend SeaweedFS instead. Existing MinIO installations continue to work — see the SeaweedFS migration guide for the migration rationale and data-copy approach.
Prerequisites¶
- Config file downloaded
Update config file¶
| Key | Default Value | Description |
|---|---|---|
nfs.path |
/pv-kudos/seaweedfs |
Path to storage location |
nfs.server |
STORAGE_SERVER_IP |
IP of NFS serverie 192.168.10.50 |
Deploy instructions¶
-
Generate a pair of S3 credentials and create them as a Kubernetes secret (SeaweedFS and its bucket-setup Job read this secret):
ACCESS_KEY="$(openssl rand -hex 12)" SECRET_KEY="$(openssl rand -base64 32)" echo "S3_ACCESS_KEY: $ACCESS_KEY" echo "S3_SECRET_KEY: $SECRET_KEY" kubectl create secret generic huddo-s3-credentials -n boards \ --from-literal=access-key="$ACCESS_KEY" \ --from-literal=secret-key="$SECRET_KEY"Keep the two echoed values — you will set them as
global.env.S3_ACCESS_KEY/S3_SECRET_KEYinboards.yamlduring the application setup. -
Create the folder at
nfs.pathlocation on thenfs.serverwith access777Note: please ensure sufficient storage is available (ie 100GB)
-
Ensure each Node in your Kubernetes cluster can mount this location.
Please modify the file
/etc/exportson your NFS Server to include this line<NFS_PATH_FOR_S3> <IP_RANGE_OF_YOUR_SERVERS>/<SUBNET_MASK>(rw,no_root_squash)For example:
/pv-kudos/seaweedfs 192.168.0.0/255.255.0.0(rw,no_root_squash)Apply new NFS storage to exports
exportfs -ra -
Install SeaweedFS
kubectl apply -f ./seaweedfs.yamlThe
huddo-s3-bucket-setupJob waits for the S3 service to come up and creates the default bucket, then cleans itself up after an hour.
Outcomes¶
The following are the parameters required to connect to this S3 storage. You will need these later in the application setup. If you have your own S3 storage, please substitute your values.
| Key | Default Value | Description |
|---|---|---|
S3_ENDPOINT |
huddo-s3 |
Hostname of this service |
S3_PORT |
8333 |
SeaweedFS S3 port |
S3_USE_SSL |
false |
Traffic inside the cluster |
S3_ACCESS_KEY |
<generated-access-key> |
Generated above |
S3_SECRET_KEY |
<generated-secret-key> |
Generated above |
S3_BUCKET |
huddo-boards |
Default storage bucket |