Skip to main content
Etcd is the key-value store that holds all Kubernetes cluster state. If etcd becomes corrupted or unavailable, your cluster will stop functioning. Omni supports creating etcd backups so that you can restore a cluster to a known good state if something goes wrong. Omni supports two backup storage backends: 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:
On a freshly created Omni instance, the output will look similar to this:
The key fields to pay attention to are: 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 custom endpoint, 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 region value or provider-specific credentials.
  • Ensure the endpoint and credentials are valid and accessible from Omni.
During configuration, Omni validates access by attempting to list objects in the bucket. If validation fails, the configuration is not applied.

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.
An example AWS IAM policy that grants the minimum required access to a bucket named mybucket:

Apply the S3 configuration

To configure S3 as the backup backend, create an EtcdBackupS3Configs.omni.sidero.dev resource. The following example configures Omni to use a MinIO S3 instance, edit this example to fit your S3 instance:
The fields in the spec are: Apply the S3 configuration:
Omni validates the credentials during resource creation by attempting to list objects in the bucket. If validation fails, the resource will not be created and an error will be returned. To confirm the configuration was applied successfully, check the backup status again:
The CONFIGURATION ERROR field should now be empty:

Create a manual backup

To trigger a backup immediately, create and apply an EtcdManualBackups.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.
  1. Run the following command, replacing <cluster-name> with the name of your cluster:
  1. Apply the resource:
  1. After a few seconds, check the per-cluster backup status:
The output will look similar to this:
  1. 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.
To enable automatic etcd backups using a cluster template:
  1. Add a features.backupConfiguration block to your cluster template:
Replace <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.
  1. Before applying, check whether automatic backups are already enabled on the cluster:
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 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.
  1. Apply the template:
If no backups exist for the cluster yet, Omni will create one immediately rather than waiting for the first scheduled interval.
  1. Verify that the backup was created by running the following command, replacing <cluster-name> with the name of your cluster:
This command will output something similar to this:

Next steps

To restore a cluster from an etcd backup, see Restore Etcd of a Cluster Managed by Cluster Templates.