feat: Add 2-node quorum support for RustFS cluster
Deploy Infrastructure / plan (push) Waiting to run
Deploy Infrastructure / apply (push) Blocked by required conditions
Security Audit / Infrastructure Scan (IaC) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/apache/tika:latest) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/gotenberg/gotenberg:8) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/library/postgres:15) (push) Waiting to run
Security Audit / Docker Image Scan (docker.io/library/redis:7) (push) Waiting to run
Security Audit / Docker Image Scan (ghcr.io/icereed/paperless-gpt:latest) (push) Waiting to run
Security Audit / Docker Image Scan (ghcr.io/paperless-ngx/paperless-ngx:latest) (push) Waiting to run
Security Audit / Docker Image Scan (shenxn/protonmail-bridge:latest) (push) Waiting to run

Configure RustFS erasure coding to allow cluster operation with 2 out
of 3 nodes (EC:1 = 1 parity drive).

Changes:
- Add rustfs_storage_class_standard variable (default: EC:1)
- Add RUSTFS_STORAGE_CLASS_STANDARD to cluster config template
- Add config tag to config task for targeted updates

Apply config changes with:
  ansible-playbook -i inventory/ plays/install-rustfs.yml --tags config

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-02-17 00:09:51 +01:00
co-authored by Claude
parent f2dc2ad86e
commit aafe17ff8a
3 changed files with 9 additions and 0 deletions
+4
View File
@@ -16,3 +16,7 @@ rustfs_secret_key: "rustfsadmin"
rustfs_console_enable: true
rustfs_obs_logger_level: "error"
# Erasure coding - EC:1 allows 2-node quorum (1 parity drive)
# With 3 nodes, this means the cluster can operate with 2 nodes up
rustfs_storage_class_standard: "EC:1"
+3
View File
@@ -80,6 +80,9 @@
src: rustfs.cluster.j2
dest: "{{ rustfs_config_file }}"
notify: Restart rustfs
tags:
- config
- rustfs-config
- name: Create RustFS systemd service
template:
@@ -7,3 +7,5 @@ RUSTFS_CONSOLE_ADDRESS=":{{ rustfs_console_port }}"
RUSTFS_CONSOLE_ENABLE={{ rustfs_console_enable | lower }}
RUSTFS_OBS_LOGGER_LEVEL={{ rustfs_obs_logger_level }}
RUSTFS_OBS_LOG_DIRECTORY="{{ rustfs_log_dir }}/"
# Erasure coding for 2-node quorum support
RUSTFS_STORAGE_CLASS_STANDARD="{{ rustfs_storage_class_standard }}"