local and s3.
The backend is selected during Omni initialization.
This guide covers how to configure S3 backup storage, create a manual backup, and enable automatic backups.
To restore a cluster from a backup, see Restore Etcd of a Cluster Managed by Cluster Templates.
Check backup status
Before configuring backups, check the current state of the backup subsystem:
In the output above,
CONFIGURATION NAME is s3 and CONFIGURATION ERROR shows not initialized, which means the S3 backend has been selected but the credentials have not yet been configured. The remaining fields are empty because no backups have been created yet.
Configure S3 backup storage
Omni stores etcd backups in an S3-compatible bucket. Before creating any backups, you need to provide Omni with the credentials and configuration it needs to access your bucket. This section covers compatibility considerations for non-AWS providers and how to apply the S3 configuration.S3-compatible providers
Omni uses the AWS S3 API for storing etcd backups. Non-AWS providers that advertise S3 compatibility may work when configured with a customendpoint, but Omni does not maintain a compatibility list for third-party providers.
If you use a non-AWS S3 provider:
- Test backup and restore workflows before relying on them in production.
- Some providers may require additional configuration, such as a
regionvalue or provider-specific credentials. - Ensure the endpoint and credentials are valid and accessible from Omni.
Required S3 permissions
The credentials (or IAM role) Omni uses need the following permissions on the bucket:
Omni never deletes objects from the bucket, so no delete permission is required.
Because Omni never deletes old backups, the bucket grows without bound as long as automatic or manual backups keep running. Configure a bucket lifecycle rule (or your provider’s equivalent) to expire objects after a retention period that fits your recovery needs, so you don’t have to clean up the bucket manually.
mybucket:
Apply the S3 configuration
To configure S3 as the backup backend, create anEtcdBackupS3Configs.omni.sidero.dev resource.
The following example configures Omni to use a MinIO S3 instance, edit this example to fit your S3 instance:
spec are:
Apply the S3 configuration:
CONFIGURATION ERROR field should now be empty:
Create a manual backup
To trigger a backup immediately, create and apply anEtcdManualBackups.omni.sidero.dev resource.
The
<unix-timestamp> value must be no more than one minute in the future or past. The nanos field must always be 0.- Run the following command, replacing
<cluster-name>with the name of your cluster:
- Apply the resource:
- After a few seconds, check the per-cluster backup status:
- To check the overall backup subsystem status:
Enable automatic backups
Omni supports scheduled automatic backups. You can configure the backup interval using either cluster templates or by editing the cluster resource directly.- Cluster templates
- Cluster resource
To enable automatic etcd backups using a cluster template:Replace If automatic backups are not yet enabled, the output will show the backup configuration being added:If automatic backups are already enabled, the diff will show an existing This command will output something similar to this:
- Add a
features.backupConfigurationblock to your cluster template:
<controlplane-machine-uuid>, <worker-machine-one-uuid>, and <worker-machine-two-uuid> with the UUIDs of your control plane and worker machines.For more information on configuring cluster features with cluster templates, see the Cluster Template reference documentation.- Before applying, check whether automatic backups are already enabled on the cluster:
backupconfiguration block with a non-null value.In that case, you can update the interval value in your template and re-run the diff to confirm the change before applying, or skip to step 4 to verify the existing backup schedule is working as expected.- Apply the template:
If no backups exist for the cluster yet, Omni will create one immediately rather than waiting for the first scheduled interval.
- Verify that the backup was created by running the following command, replacing
<cluster-name>with the name of your cluster: