kube-job-notifier

command module
v0.0.32 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2023 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 
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