kube-job-notifier

command module
v0.0.34 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 18, 2024 License: Apache-2.0 Imports: 30 Imported by: 0

README

kube-job-notifier

For kubernetes job notification tool

Description

  • Notification Kubernetes Job start, success, and failure.

Usage

Notification setting(Slack only)
  • Please set environment variable
export SLACK_TOKEN=YOUR_SLACK_TOKEN
export SLACK_CHANNEL=YOUR_NOTIFICATION_CHANNEL_ID
export SLACK_STARTED_NOTIFY=true # OPTIONAL DEFAULT true
export SLACK_SUCCEEDED_NOTIFY=true # OPTIONAL DEFAULT true
export SLACK_FAILED_NOTIFY=true # OPTIONAL DEFAULT true
export SLACK_USERNAME=YOUR_NOTIFICATION_USERNAME # OPTIONAL
export SLACK_SUCCEED_CHANNEL=YOUR_NOTIFICATION_CHANNEL_ID # OPTIONAL
export SLACK_FAILED_CHANNEL=YOUR_NOTIFICATION_CHANNEL_ID # OPTIONAL
export DATADOG_ENABLED=true # OPTIONAL DEFAULT false
export NAMESPACE=KUBERNETES_NAMESPACE # OPTIONAL

It will take SLACK_CHANNEL as default channel which may be overwritten by SLACK_SUCCEED_CHANNEL, SLACK_FAILED_CHANNEL environment variables.

Another way of overriding behaviour is using job annotations in k8s. Available job annotations to override are:

- kube-job-notifier/default-channel - will be used as channel for a notification if similar success channel annotation is empty 
- kube-job-notifier/success-channel - will be used as channel for a success job notification 
- kube-job-notifier/started-channel - will be used as channel for a started job notification 
- kube-job-notifier/failed-channel - will be used as channel for a failed job notification 

Also it's possible to suppress notification per job:

- kube-job-notifier/suppress-success-notification - suppress notification for succesfully finished job even if SLACK_SUCCEEDED_NOTIFY environment variable set to true
- kube-job-notifier/suppress-started-notification - suppress notification when job is started even if SLACK_STARTED_NOTIFY environment variable set to true 
- kube-job-notifier/suppress-failed-notification - suppress notification when job is failed even if SLACK_FAILED_NOTIFY environment variable set to true 
slack permissions
  • Required permission above.
chat:write
files:write
Event subscription setting(Current Datadog support only)
Job with multiple containers logging

By default for cron jobs logs are attached from container with the same name as a cron job. This can be overwritten by adding kube-job-notifier/log-mode annotation.

  • ownerContainer - get logs only from container with the same name as cron job (default behaviour if annotation is not presented);
  • podOnly - get logs from the pod, works perfectly with pod with single container;
  • podContainers - get logs from all pod containers and concatenate them.
Run
Local

go run *.go -kubeconfig {YOUR_KUBECONFIG_PATH}

Kubernetes
  • Run your kubernetes cluster.(Note default namespace is default). If change apply namespace, please edit manifest.
  • Setting SLACK_TOKEN and SLACK_CHANNEL in manifest/sample/deployment.yaml.
  • Apply manifest kubectl apply -f manifests/sample/
  • Check running
kubectl get po
NAME                                            READY   STATUS    RESTARTS   AGE
kube-job-notifier-deployment-698fbc8b54-ffk2q   1/1     Running   0          8m12s
Install with Helm

helm repo add kube-job-notifier https://yutachaos.github.io/kube-job-notifier/ helm install kube-job-notifier/kube-job-notifier --generate-name

Document

https://yutachaos.github.io/kube-job-notifier/

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL