{"id":26854221,"url":"https://github.com/zokeber/velero-notifications","last_synced_at":"2025-05-05T20:08:57.263Z","repository":{"id":282752130,"uuid":"949549591","full_name":"zokeber/velero-notifications","owner":"zokeber","description":"Kubernetes controller to send Slack and Email notifications from Velero backups","archived":false,"fork":false,"pushed_at":"2025-04-10T01:59:53.000Z","size":114,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-05T20:08:49.605Z","etag":null,"topics":["email","email-sender","go","golang","kubernetes","kubernetes-cluster","notifications","slack","velero","velero-kubernetes"],"latest_commit_sha":null,"homepage":"https://zokeber.github.io/velero-notifications/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zokeber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"ko_fi":"zokeber"}},"created_at":"2025-03-16T17:50:01.000Z","updated_at":"2025-04-11T15:25:57.000Z","dependencies_parsed_at":"2025-04-10T01:40:21.948Z","dependency_job_id":"92d04187-710d-4046-9d4c-f33f30898883","html_url":"https://github.com/zokeber/velero-notifications","commit_stats":null,"previous_names":["zokeber/velero-notifications"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zokeber%2Fvelero-notifications","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zokeber%2Fvelero-notifications/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zokeber%2Fvelero-notifications/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zokeber%2Fvelero-notifications/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zokeber","download_url":"https://codeload.github.com/zokeber/velero-notifications/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252569645,"owners_count":21769517,"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","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":["email","email-sender","go","golang","kubernetes","kubernetes-cluster","notifications","slack","velero","velero-kubernetes"],"created_at":"2025-03-30T23:19:04.914Z","updated_at":"2025-05-05T20:08:57.222Z","avatar_url":"https://github.com/zokeber.png","language":"Go","funding_links":["https://ko-fi.com/zokeber"],"categories":[],"sub_categories":[],"readme":"# Velero Notifications\n\n[![build and push container image](https://github.com/zokeber/velero-notifications/actions/workflows/main.yaml/badge.svg)](https://github.com/zokeber/velero-notifications/actions/workflows/main.yaml)\n[![Publish HELM chart](https://github.com/zokeber/velero-notifications/actions/workflows/chart.yaml/badge.svg)](https://github.com/zokeber/velero-notifications/actions/workflows/chart.yaml)\n[![pages-build-deployment](https://github.com/zokeber/velero-notifications/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/zokeber/velero-notifications/actions/workflows/pages/pages-build-deployment)\n[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/zokeber-velero-notifications)](https://artifacthub.io/packages/search?repo=zokeber-velero-notifications)\n\n\n## Overview\nVelero Notifications is a Golang-based controller designed to monitor Velero backups in your Kubernetes cluster and send notifications via Slack or Email when backups complete successfully or fail. The controller uses the Kubernetes dynamic client to query backup resources, track state changes, and notify only once when a new backup is finishes.\n\nWhen running locally, the application uses your local kubeconfig. When deployed in-cluster, it automatically uses the in-cluster configuration.\n\n## Features\n\n- **Backup Monitoring:** Detects when new backups begin (`InProgress`) and notifies on completion or failure.\n- **Notification Channels:** Sends notifications through Slack and Email (with support for additional channels in the future).\n- **Customizable Configuration:** Fully configurable via a YAML file for logging, backup intervals, and notification settings.\n- **Helm Chart Packaging:** Easily deployable in any Kubernetes cluster using our Helm chart.\n\n## Usage\n\nVelero Notifications continuously monitors Velero backups and sends notifications only when a backup that was in the InProgress state finishes (either successfully or with failure). Notifications include details such as start and completion times, progress (items backed up), warnings, and—for failed backups—the failure reason.\n\n## Installation\n\n### Using Helm Chart\n\nOur Helm chart is hosted at [https://zokeber.github.io/velero-notifications/](https://zokeber.github.io/velero-notifications/). To install the chart:\n\n1. **Add the Helm repository:**\n\n```bash\nhelm repo add zokeber-velero-notifications https://zokeber.github.io/velero-notifications/\nhelm repo update\n```\n\n2. **Create the namespace (if not already created):**\n\n```bash\nkubectl create namespace velero\n```\n\n3. **Install the chart:**\n\n```bash\nhelm install velero-notifications zokeber-velero-notifications/velero-notifications --namespace velero\n```\n4. **(Optional) Override default values:**\n\nThe application is configured via a values yaml file. Create a custom values file (e.g., custom-values.yaml) with your desired settings, then run:\n\n```bash\nhelm upgrade velero-notifications zokeber-velero-notifications/velero-notifications --namespace velero -f custom-values.yaml\n```\n\nAn example configuration (in the Helm chart's ) is:\n\n```yaml\nnamespace: \"velero\"\ncheck_interval: 60\nnotification_prefix: \"[kubernetes-context] \"\nverbose: true\n\nslack:\n  enabled: false\n  webhook_url: \"https://hooks.slack.com/services/XXXXXXX\"\n  channel: \"velero-notifications\"\n  username: \"Velero\"\n\nemail:\n  enabled: true\n  failures_only: false\n  smtp_server: \"smtp.gmail.com\"\n  smtp_port: 587\n  username: \"username@gmail.com\"\n  password: \"password\"\n  from: \"username@gmail.com\"\n  to: \"notifications@gmail.com\"\n```\n\nPlease looking at the [Helm Chart Readme file](https://github.com/zokeber/velero-notifications/blob/main/charts/velero-notifications/README.md) to setting up or overriding some values.\n\n## Contributing\n\nWe welcome contributions from the community! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for details on our code style, branching model, and how to submit pull requests.\n\n## License\n\nThis project is licensed under the Apache License.\n\n## Contact\n\nFor any questions or issues, please open an issue on GitHub.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzokeber%2Fvelero-notifications","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzokeber%2Fvelero-notifications","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzokeber%2Fvelero-notifications/lists"}