https://github.com/zokeber/velero-notifications
Kubernetes controller to send Slack and Email notifications from Velero backups
https://github.com/zokeber/velero-notifications
email email-sender go golang kubernetes kubernetes-cluster notifications slack velero velero-kubernetes
Last synced: about 1 year ago
JSON representation
Kubernetes controller to send Slack and Email notifications from Velero backups
- Host: GitHub
- URL: https://github.com/zokeber/velero-notifications
- Owner: zokeber
- License: apache-2.0
- Created: 2025-03-16T17:50:01.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-10T01:59:53.000Z (about 1 year ago)
- Last Synced: 2025-05-05T20:08:49.605Z (about 1 year ago)
- Topics: email, email-sender, go, golang, kubernetes, kubernetes-cluster, notifications, slack, velero, velero-kubernetes
- Language: Go
- Homepage: https://zokeber.github.io/velero-notifications/
- Size: 111 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Velero Notifications
[](https://github.com/zokeber/velero-notifications/actions/workflows/main.yaml)
[](https://github.com/zokeber/velero-notifications/actions/workflows/chart.yaml)
[](https://github.com/zokeber/velero-notifications/actions/workflows/pages/pages-build-deployment)
[](https://artifacthub.io/packages/search?repo=zokeber-velero-notifications)
## Overview
Velero 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.
When running locally, the application uses your local kubeconfig. When deployed in-cluster, it automatically uses the in-cluster configuration.
## Features
- **Backup Monitoring:** Detects when new backups begin (`InProgress`) and notifies on completion or failure.
- **Notification Channels:** Sends notifications through Slack and Email (with support for additional channels in the future).
- **Customizable Configuration:** Fully configurable via a YAML file for logging, backup intervals, and notification settings.
- **Helm Chart Packaging:** Easily deployable in any Kubernetes cluster using our Helm chart.
## Usage
Velero 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.
## Installation
### Using Helm Chart
Our Helm chart is hosted at [https://zokeber.github.io/velero-notifications/](https://zokeber.github.io/velero-notifications/). To install the chart:
1. **Add the Helm repository:**
```bash
helm repo add zokeber-velero-notifications https://zokeber.github.io/velero-notifications/
helm repo update
```
2. **Create the namespace (if not already created):**
```bash
kubectl create namespace velero
```
3. **Install the chart:**
```bash
helm install velero-notifications zokeber-velero-notifications/velero-notifications --namespace velero
```
4. **(Optional) Override default values:**
The application is configured via a values yaml file. Create a custom values file (e.g., custom-values.yaml) with your desired settings, then run:
```bash
helm upgrade velero-notifications zokeber-velero-notifications/velero-notifications --namespace velero -f custom-values.yaml
```
An example configuration (in the Helm chart's ) is:
```yaml
namespace: "velero"
check_interval: 60
notification_prefix: "[kubernetes-context] "
verbose: true
slack:
enabled: false
webhook_url: "https://hooks.slack.com/services/XXXXXXX"
channel: "velero-notifications"
username: "Velero"
email:
enabled: true
failures_only: false
smtp_server: "smtp.gmail.com"
smtp_port: 587
username: "username@gmail.com"
password: "password"
from: "username@gmail.com"
to: "notifications@gmail.com"
```
Please 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.
## Contributing
We 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.
## License
This project is licensed under the Apache License.
## Contact
For any questions or issues, please open an issue on GitHub.