louislam / uptime-kuma

A fancy self-hosted monitoring tool
https://uptime.kuma.pet
MIT License
57.33k stars 5.16k forks source link

Kubernetes integration with auto discovery #1932

Open m4dm4rtig4n opened 2 years ago

m4dm4rtig4n commented 2 years ago

⚠️ Please verify that this feature request has NOT been suggested before.

🏷️ Feature Request Type

New Notification, New Monitor, Other

🔖 Feature description

The goal of the evolution would be to ensure that Uptime Kuma directly reads Ingress to self-configure HTTPs monitor. And also with the possibility of creating custom config in the style:

apiVersion: uptime-kuma/v1
kind: tcp
metadata:
  name: home-assistant
spec:
  url: 192.168.1.100
  port: 8123
  retry: 0
  alerting:
    slack:
      webhook: https://.......

or

apiVersion: uptime-kuma/v1
kind: ping
metadata:
  name: home-assistant
spec:
  url: 192.168.1.100
  retry: 0
  alerting:
    slack:
      webhook: https://.......

✔️ Solution

Create customressources uptime-kuma + RBAC Uptime Kuma listen kubernetes API directly to read all configuration.

❓ Alternatives

No response

📝 Additional Context

No response

lenaxia commented 2 years ago

For a great example of something basic, hajimari is a good place to start.

https://github.com/toboshii/hajimari

pierreozoux commented 1 year ago

For this, I'd use: https://github.com/stakater/IngressMonitorController

with: https://github.com/lucasheld/uptime-kuma-api

m4dm4rtig4n commented 1 year ago

For this, I'd use: https://github.com/stakater/IngressMonitorController

with: https://github.com/lucasheld/uptime-kuma-api

Have you exemple to intergrate this tools into Uptime Kuma ? I don't see Uptime Kuma compatibility :/

pierreozoux commented 1 year ago

It has to be built ;)

SQuent commented 3 weeks ago

Hi everyone!

I’ve developed a Kubernetes Ingress Monitor Controller called Kuma Ingress watcher. It is designed to automatically monitor Traefik IngressRoutes and/or Kubernetes Ingress in a Kubernetes cluster, creating corresponding monitors in Uptime Kuma. This controller is flexible and allows you to customize the monitoring configuration using annotations.

You can check out the Helm chart and the source code here.