diff --git a/haven-notify/Dockerfile b/haven-notify/Dockerfile index 2b565b0..51091ca 100644 --- a/haven-notify/Dockerfile +++ b/haven-notify/Dockerfile @@ -9,4 +9,5 @@ FROM busybox:latest WORKDIR /app COPY --from=builder /app/haven-notify . EXPOSE 8080 +ENV WEBHOOK_URL="" ENTRYPOINT ["/app/haven-notify"] diff --git a/haven-notify/deploy/haven-notify.yaml b/haven-notify/deploy/haven-notify.yaml index 9b31fd1..716270a 100644 --- a/haven-notify/deploy/haven-notify.yaml +++ b/haven-notify/deploy/haven-notify.yaml @@ -20,6 +20,12 @@ spec: imagePullPolicy: Always ports: - containerPort: 8080 + env: + - name: WEBHOOK_URL + valueFrom: + secretKeyRef: + name: discord-webhook + key: HAVEN_WEBHOOK_URL nodeSelector: kubernetes.io/arch: amd64 --- diff --git a/haven-notify/main.go b/haven-notify/main.go index ad72533..29339b0 100644 --- a/haven-notify/main.go +++ b/haven-notify/main.go @@ -7,6 +7,7 @@ import ( "fmt" "log" "net/http" + "os" ) // Notification payload @@ -47,11 +48,14 @@ func notifyHandler(w http.ResponseWriter, r *http.Request) { } func sendDiscordNotification(title, message string) error { - const webhookURL = "" + webhookURL := os.Getenv("WEBHOOK_URL") + if webhookURL == "" { + return fmt.Errorf("WEBHOOK_URL environment variable not set") + } // Discord webhook payload type discordPayload struct { - Content string `json:"content"` + Content string `json:"content"` } content := "**" + title + "**\n" + message @@ -59,17 +63,17 @@ func sendDiscordNotification(title, message string) error { jsonData, err := json.Marshal(payload) if err != nil { - return err + return err } resp, err := http.Post(webhookURL, "application/json", bytes.NewBuffer(jsonData)) if err != nil { - return err + return err } defer resp.Body.Close() if resp.StatusCode < 200 || resp.StatusCode >= 300 { - return fmt.Errorf("Discord webhook returned status: %s", resp.Status) + return fmt.Errorf("Discord webhook returned status: %s", resp.Status) } return nil