A running MySQL-compatible database is expected by default, as specified in the values.yaml
at filer.extraEnvironmentVars
.
This database should be pre-configured and initialized by running:
CREATE TABLE IF NOT EXISTS `filemeta` (
`dirhash` BIGINT NOT NULL COMMENT 'first 64 bits of MD5 hash value of directory field',
`name` VARCHAR(766) NOT NULL COMMENT 'directory or file name',
`directory` TEXT NOT NULL COMMENT 'full path to parent directory',
`meta` LONGBLOB,
PRIMARY KEY (`dirhash`, `name`)
) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
Alternative database can also be configured (e.g. leveldb) following the instructions at filer.extraEnvironmentVars
.
Kubernetes node have labels which help to define which node(Host) will run which pod:
to label a node to be able to run all pod types in k8s:
kubectl label node YOUR_NODE_NAME sw-volume=true,sw-backend=true
on production k8s deployment you will want each pod to have a different host, especially the volume server & the masters, currently all pods (master/volume/filer) have anti-affinity rule to disallow running multiple pod type on the same host. if you still want to run multiple pods of the same type (master/volume/filer) on the same host please set/update the corresponding affinity rule in values.yaml to an empty one:
affinity: ""
on the volume stateful set added support for K8S PVC, currently example with the simple local-path-provisioner from Rancher (comes included with k3d / k3s) https://github.com/rancher/local-path-provisioner
you can use ANY storage class you like, just update the correct storage-class for your deployment.
1 instance for each type (master/filer+s3/volume)
you can update the replicas count for each node type in values.yaml, need to add more nodes with the corresponding labels.
most of the configuration are available through values.yaml