Parameters
The MINIO module exposes 22 public parameters in two groups:
MINIO: 19 parameters for deploying Silo object-storage clustersMINIO_REMOVE: 3 parameters controlling object-storage cluster removal
Since Pigsty v3.6, the minio.yml playbook no longer includes removal functionality. Removal-related parameters have been migrated to the dedicated minio_remove role and minio-rm.yml playbook.
Parameter Overview
The MINIO group configures a Silo object-storage cluster, including identity, storage paths, ports, credentials, and bucket/user provisioning.
| Parameter | Type | Level | Description |
|---|---|---|---|
minio_type | enum | G/C | Reserved backend selector; currently accepts only silo |
minio_seq | int | I | minio instance identifier, REQUIRED |
minio_cluster | string | C | Required object-storage cluster identity |
minio_user | username | C | minio os user, minio by default |
minio_https | bool | G/C | Enable HTTPS for object storage? true by default |
minio_node | string | C | minio node name pattern |
minio_data | path | C | minio data dir, use {x...y} for multiple disks |
minio_volumes | string | C | minio core parameter for nodes and disks, auto-gen |
minio_domain | string | G | minio external domain, sss.pigsty by default |
minio_port | port | C | minio service port, 9000 by default |
minio_admin_port | port | C | minio console port, 9001 by default |
minio_access_key | username | C | root access key, minioadmin by default |
minio_secret_key | password | C | root secret key, S3User.MinIO by default |
minio_extra_vars | string | C | extra environment variables for minio server |
minio_provision | bool | G/C | run minio provisioning tasks? true by default |
minio_alias | string | G | minio client alias for the deployment |
minio_endpoint | string | C | endpoint for the minio client alias |
minio_buckets | bucket[] | C | list of minio buckets to be created |
minio_users | user[] | C | list of minio users to be created |
The MINIO_REMOVE group controls object-storage cluster removal, including safeguards, data cleanup, and package removal.
| Parameter | Type | Level | Description |
|---|---|---|---|
minio_safeguard | bool | G/C/A | prevent accidental removal? false by default |
minio_rm_data | bool | G/C/A | remove Silo data during removal? true by default |
minio_rm_pkg | bool | G/C/A | uninstall Silo and mcli? false by default |
The minio_volumes and minio_endpoint are auto-generated parameters, but you can explicitly override them.
Defaults
MINIO: 19 public parameters, defined in roles/minio/defaults/main.yml
MINIO_REMOVE: 3 parameters, defined in roles/minio_remove/defaults/main.yml
MINIO
This section contains parameters for the minio role,
used by the minio.yml playbook.
minio_type
Parameter: minio_type, Type: enum, Level: G/C
Reserved object-storage backend selector. The default and only currently accepted value is silo. Silo retains the MinIO S3/Admin APIs, MINIO_* environment variables, and disk format.
minio and rustfs are no longer valid values and fail during role identity validation. Before you upgrade a legacy MinIO cluster to v4.5, independently validate backups, MinIO-to-Silo data compatibility, and rollback. This parameter does not migrate data.
Both the deployment and removal roles default minio_type to silo. A minio-rm.yml run still requires minio_cluster and minio_seq. It still uses minio_safeguard and the data/package cleanup switches. The engine default does not bypass these removal guards.
minio_seq
Parameter: minio_seq, Type: int, Level: I
Object-storage instance identifier. This identity parameter is required and has no default. You must assign it manually.
We recommend that you start at 1 and increment by 1. Never reuse a previously assigned sequence number.
The sequence number, together with the cluster name minio_cluster, uniquely identifies each object-storage instance (e.g., minio-1).
In multi-node deployments, sequence numbers are also used to generate node names, which are written to the /etc/hosts file for static resolution.
minio_cluster
Parameter: minio_cluster, Type: string, Level: C
Object-storage cluster name. This parameter is required and has no default. Use it to distinguish membership and monitoring identity when deploying multiple clusters.
The cluster name, together with the sequence number minio_seq, uniquely identifies each object-storage instance.
For example, with cluster name minio and sequence 1, the instance name is minio-1.
The role finds members across the inventory through each host’s minio_cluster value. The Ansible group name can differ from the cluster identity.
Define this parameter explicitly in the object-storage group’s cluster variables. Do not define it in all.vars. That would make every host a MINIO module member.
For multiple clusters, also set distinct minio_alias, minio_domain, and minio_endpoint values to avoid shared aliases and domain-name conflicts.
minio_user
Parameter: minio_user, Type: username, Level: C
Object-storage operating system user, default is minio.
Silo runs as this user, and its certificates are stored under ~/.minio/certs/.
minio_https
Parameter: minio_https, Type: bool, Level: G/C
Specifies whether to enable HTTPS for object storage. The default is true.
Pigsty’s default pgBackRest minio repository preset uses HTTPS. It validates the certificate with /etc/pki/ca.crt. Keep this parameter true when you use the defaults.
pgBackRest itself does not require HTTPS. If you explicitly switch to HTTP, also update the storage TLS options in pgbackrest_repo. A change to this parameter alone is insufficient.
If HTTPS is enabled, Pigsty automatically issues certificates for the selected server. The certificates include minio_domain and the IP addresses of each node.
minio_node
Parameter: minio_node, Type: string, Level: C
Object-storage node-name pattern used for multi-node single-disk and multi-node multi-disk deployments.
The default is ${minio_cluster}-${minio_seq}.pigsty. This combines the instance name with the .pigsty suffix.
The domain pattern specified here generates node names, which are written to /etc/hosts on all Silo nodes.
minio_data
Parameter: minio_data, Type: path, Level: C
Silo data directory, default value: /data/minio. Set this parameter to a filesystem directory, not a raw block device such as /dev/sdb. The MINIO role creates the directory and sets its permissions. It does not format or mount production data drives.
Single-node single-disk may use a regular directory on the root filesystem for development. Multi-node single-disk, multi-node multi-disk, and single-node multi-disk deployments should use independent, persistent, non-root filesystems. Distributed Silo rejects data paths on the root filesystem.
/data/minio may be a subdirectory of a separately mounted /data filesystem. If /data is only a directory under /, it is still on the root drive. For multiple drives, use {x...y} notation to specify mount points, such as /data{1...4}/minio. Each expanded path should map to a separate filesystem.
See Configuration: Storage Paths and Mounts for the complete requirements and verification commands.
minio_volumes
Parameter: minio_volumes, Type: string, Level: C
Silo core volume parameter. It is unset by default and generated with this rule:
- In single-node deployment (single or multi-drive),
minio_volumesdirectly uses theminio_datavalue. - In multi-node deployment,
minio_volumesusesminio_node,minio_port, andminio_datato generate multi-node addresses. - In multi-pool deployment, you typically need to explicitly specify and override
minio_volumesto define multiple node pool addresses.
When specifying this parameter, ensure the values are consistent with minio_node, minio_port, and minio_data.
minio_domain
Parameter: minio_domain, Type: string, Level: G
Silo service domain name, default is sss.pigsty.
Clients can access the Silo S3 service through this domain. The role includes this name in the certificate SAN (Subject Alternative Name). It does not automatically create a DNS record for minio_domain.
Add an explicit record through node_etc_hosts or dns_records. For one node, point the record to the Silo node IP. For multiple nodes, point it to a load-balancer VIP.
minio_port
Parameter: minio_port, Type: port, Level: C
Silo service port, default is 9000.
This is the Silo S3 API listening port. Clients access object storage through this port, which is also used for inter-node communication in multi-node deployments.
minio_admin_port
Parameter: minio_admin_port, Type: port, Level: C
Silo console port, default is 9001.
This is the listening port for Silo’s web management console, available at https://<minio-ip>:9001.
To expose the Silo console through Nginx, add it to infra_portal. The console requires HTTPS and WebSocket support.
minio_access_key
Parameter: minio_access_key, Type: username, Level: C
Root access key (username), default is minioadmin.
This is the Silo super-administrator username with full access to every bucket and object. Change this default in production.
minio_secret_key
Parameter: minio_secret_key, Type: password, Level: C
Root secret key (password), default is S3User.MinIO.
This is the Silo super-administrator password, used together with minio_access_key.
Default passwords create a security risk. Change this password in production.
Tip: ./configure -g randomizes default passwords recognized by the configuration wizard. See the Default Credentials Checklist for the complete scope.
minio_extra_vars
Parameter: minio_extra_vars, Type: string, Level: C
Extra environment variables passed to Silo. Silo retains the MINIO_* variable names.
Default is an empty string. You can use multiline strings to pass multiple environment variables:
minio_provision
Parameter: minio_provision, Type: bool, Level: G/C
Specifies whether to run Silo provisioning tasks. The default is true.
When enabled, Pigsty automatically creates the buckets and users defined in minio_buckets and minio_users.
Set this to false if you don’t need automatic provisioning of these resources.
minio_alias
Parameter: minio_alias, Type: string, Level: G
mcli client alias for the local Silo cluster, default value: sss.
If minio_provision is enabled, Pigsty writes this alias to the mcli configuration file (~/.mcli/config.json). It uses the Ansible execution user on every Infra node and Silo member. A host in both groups receives the configuration only once. You can then use mcli <alias> commands directly, for example mcli ls sss/.
If deploying multiple Silo clusters, specify a different alias for each cluster to avoid conflicts.
minio_endpoint
Parameter: minio_endpoint, Type: string, Level: C
Endpoint for the client alias. If specified, minio_endpoint overrides the automatic <scheme>://<minio_domain>:<minio_port> endpoint. For example, use https://sss.pigsty:9002. This override applies to aliases on Infra nodes and Silo members.
The role runs this command as the Ansible execution user on Infra nodes and Silo members.
minio_buckets
Parameter: minio_buckets, Type: bucket[], Level: C
List of Silo buckets to create by default:
Three default buckets are created with different purposes and policies:
pgsqlbucket: Used by default for PostgreSQL pgBackREST backup storage.metabucket: Open bucket with versioning enabled, suitable for storing important metadata requiring version management.databucket: Open bucket for other purposes, e.g., Supabase templates may use this bucket for business data.
Each bucket has a corresponding access policy with the same name. For example, the pgsql policy has full access to the pgsql bucket, and so on.
Add the lock flag to a bucket definition to enable object locking. This prevents accidental object deletion.
minio_users
Parameter: minio_users, Type: user[], Level: C
List of Silo users to create, default value:
The default configuration creates three users corresponding to three default buckets:
pgbackrest: For PostgreSQL pgBackREST backups, with access to thepgsqlbucket.s3user_meta: For accessing themetabucket.s3user_data: For accessing thedatabucket.
Tip: ./configure -g will automatically replace these passwords in the configuration template if they appear as defaults.
MINIO_REMOVE
This section contains parameters for the minio_remove role,
used by the minio-rm.yml playbook.
minio_safeguard
Parameter: minio_safeguard, Type: bool, Level: G/C/A
Safeguard switch to prevent accidental deletion, default value is false.
When enabled, the minio-rm.yml playbook aborts and refuses to remove the Silo cluster, protecting it against accidental deletion.
We recommend that you enable this safeguard in production. It helps prevent data loss from accidental operations:
minio_rm_data
Parameter: minio_rm_data, Type: bool, Level: G/C/A
Specifies whether to delete Silo data and configuration during removal. The default is true.
When enabled, the minio-rm.yml playbook deletes data directories, /etc/default/silo, the .minio user directory, and /etc/systemd/system/silo.service. If set to false, it preserves data and configuration. It does not prevent service deregistration, shutdown, or disabling.
minio_rm_pkg
Parameter: minio_rm_pkg, Type: bool, Level: G/C/A
Specifies whether to uninstall Silo packages during removal. The default is false.
When enabled, the minio-rm.yml playbook uninstalls silo and mcli. This option is disabled by default so the packages remain available for later use.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)