{"id":19643989,"url":"https://github.com/siderolabs/talos-backup","last_synced_at":"2025-10-11T04:04:22.415Z","repository":{"id":161177714,"uuid":"447217108","full_name":"siderolabs/talos-backup","owner":"siderolabs","description":"An easy, Talos Linux aware etcd snapshotter.","archived":false,"fork":false,"pushed_at":"2025-10-04T04:09:38.000Z","size":216,"stargazers_count":108,"open_issues_count":4,"forks_count":21,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-10-11T04:03:30.029Z","etag":null,"topics":["experimental"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/siderolabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-01-12T12:53:34.000Z","updated_at":"2025-10-08T12:37:20.000Z","dependencies_parsed_at":"2024-06-21T17:49:46.454Z","dependency_job_id":"1e09328a-c4f6-46be-b028-42a748efa16b","html_url":"https://github.com/siderolabs/talos-backup","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/siderolabs/talos-backup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siderolabs%2Ftalos-backup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siderolabs%2Ftalos-backup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siderolabs%2Ftalos-backup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siderolabs%2Ftalos-backup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/siderolabs","download_url":"https://codeload.github.com/siderolabs/talos-backup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siderolabs%2Ftalos-backup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279006247,"owners_count":26084059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["experimental"],"created_at":"2024-11-11T14:25:04.352Z","updated_at":"2025-10-11T04:04:22.410Z","avatar_url":"https://github.com/siderolabs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# talos-backup\n\ntalos-backup is a dead simple backup tool for Talos Linux-based Kubernetes clusters.\nThe goal is simple: run this as a cronjob in a desire cluster, take an etcd snapshot, push said snapshot to s3.\n\n## Installation\n\ntalos-backup runs directly in Kubernetes on a given Talos cluster.\n\nTo enable the necessary Talos API access for a pod you will need the following modifications in your machine config:\n\n```yaml\nspec:\n  machine:\n    features:\n      kubernetesTalosAPIAccess:\n        enabled: true\n        allowedRoles:\n        - os:etcd:backup\n        allowedKubernetesNamespaces:\n        - default\n```\n\nYou will need a public/private key pair to encrypt(public key) and decrypt(private key) your backups.\nThis service uses `age` for encryption.\nFind [installation instructions here](https://github.com/FiloSottile/age#installation).\nRun `age-keygen` and backup the keys in a place where you won't lose them.\n\nThe file `cronjob.sample.yaml` specifies a kubernetes CronJob that backs up a cluster every 10 minutes.\nCustomize it and substitute the age public key.\nS3 configurations may be supplied in whatever way the Go AWS SDK v2 expects them, in this example we happen to use environment variables.\n\nApply the CronJob:\n\n```bash\nkubectl apply -f cronjob.sample.yaml\n```\n\nTo test what you deployed you can trigger the job manually:\n\n```bash\nkubectl create job --from=cronjob/talos-backup my-test-job\n```\n\n## Configuration\n\n### Compression\n\nAbout compression, it is disabled by default.\nYou can turn it on by setting ENABLE_COMPRESSION to \"true\" in the environement variable list in `cronjob.sample.yaml`.\nTalos backup will compress the etcd snapshot with zstd algorithm before encrypt it.\n\n## Development\n\nYou may build the binary with:\n\n```bash\nmake talos-backup\n```\n\nor as a container image with:\n\n```bash\nmake REGISTRY=registry.example.com USERNAME=myusername PUSH=true TAG=latest image-talos-backup\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiderolabs%2Ftalos-backup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiderolabs%2Ftalos-backup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiderolabs%2Ftalos-backup/lists"}