Categorygithub.com/FiNCDeveloper/k8s-job-notifier
repositorypackage
0.0.0-20211221013041-0870bb4b2836
Repository: https://github.com/fincdeveloper/k8s-job-notifier.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

k8s-job-notifier

kubernetes jobの終了ステータス時にSlackへ通知するためのアプリケーション。

とにかく最小限の機能だけ実装しています。

inspired by bitnami-labs/kubewatch

Example

notify example


Installation

See: Installation

Usage

CronJob, Jobマニフェストのアノテーションで通知設定を行う。

具体的には spec.jobTemplate.metadata.annotations に所定のkey/valueを記述する。

実際の設定例

この設定例では以下のような設定で通知を行います。

  • ジョブの失敗時にslack通知を行う。
  • #times_sre channelに対してメッセージを送信する。
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    metadata:
      annotations:
        notify-slack.finc.com/enabled : "true"
        notify-slack.finc.com/channel: "#times_sre"
        notify-slack.finc.com/conditions: "Failed"
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            command: ["echo", "hello"]

notify-slack annotations

annotation prefix notify-slack.finc.com に設定できる設定一覧。

設定を行わなかった場合、デフォルト設定が適用されます。デフォルト設定は環境変数によって上書きすることが可能です。

e.g. notify-slack.finc.com/channel: "#times_sre"

KeyDescriptionExample valueDefaultEnvironment variable
enabledJobリソースのslack通知を有効化します。truetrueSLACK_DEFAULT_ENABLED
channel通知先チャンネルを指定します#times_sreproduction: #job-notify staging: #job-notify-stgDEFAULT_CHANNEL
conditions通知するジョブコンディションを , 区切りで指定します。Complete, FailedFailed

制限事項

基本スケールしません。

replica=1で動かす前提で、eventの厳密なqueue管理を行っていないので二重起動すると二重に通知が送信されます。