Persistent Volumes are Kubernetes native.
How to set up Persistent Volumes
You can either:
Let the helm chart create the volumes for you (recommended)
Create the Volumes manually
Let the helm chart create the volumes for you (recommended)
Comment out the
claimName
Check the remaining settings (see table below)
Run a
helm install ...
Now the helm chart will create 3 volumes as specified in the settings
backend-uploads
button3d-media
button3d-private-media
Setup the respective
claimName
to the string of the Persistent volume name. E.g.
Code Block | ||
---|---|---|
| ||
fileStorageConfig:
uploads:
claimName: "backend-uploads" |
6. Now helm will use the initially created volumes instead of creating new ones.
Create the Volumes manually
1. Creating the volumes
Please consult the Kubernetes Documentation to create the 3 volumes manually.
Our recommended claim names are:
backend-uploads
button3d-media
button3d-private-media
2. Link the volumes
Setup the respective claimName
to the string of the Persistent volume name. E.g.
Code Block | ||
---|---|---|
| ||
fileStorageConfig:
uploads:
claimName: "backend-uploads" |
All other settings will be ignored.
Code Block | ||
---|---|---|
| ||
fileStorageConfig: internal: enabled: true uploads: size: 1Gi storageClass: default claimName: accessMode: ReadWriteMany media: size: 1Gi storageClass: default claimName: accessMode: ReadWriteOnceReadWriteMany privateMedia: size: 1Gi storageClass: default # fileStorageConfig.internal.privateMedia.claimName -- Use an existing PVC to persist data. If unspecified, a claim will be created with the name "button3d-private-media" claimName: # fileStorageConfig.internal.privateMedia.subPath -- Mount a sub directory of the persistent volume if set subPath: "" # fileStorageConfig.internal.privateMedia.accessMode -- Set to ReadWriteMany if storage needs to be accessed from another pod accessMode: ReadWriteOnceReadWriteMany |
Settings Key | Possible Values | Description | |
---|---|---|---|
| An AWS Region, eg | Specify the region of the S3 Bucket | |
| A valid S3-Bucket name | The name of the bucket that holds the public media files | |
| A valid S3-Bucket name | The name of the bucket that holds the private media files | |
| A valid S3-Bucket name | The name of the bucket that holds the uploads (eg - 3D files) | |
| Any String | The access key of the IAM user that should access the private and public media buckets | |
| Any String | The secret key of the IAM user that should access the private and public media buckets | Specifies if Persistent Volumes are used |
|
| The size of the volume on initial creation. Only relevant if | |
| A supported storageClass name or | Check https://kubernetes.io/docs/concepts/storage/storage-classes/ . You can use | |
| A string | See above | |
|
| Specifies if you can attach to the volume from multiple pods. It is recommended to use |