An open API service indexing awesome lists of open source software.

https://github.com/zmalik/k8s-publisher

A simple k8s controller that publish messages on pod level based on annotations in slack channels
https://github.com/zmalik/k8s-publisher

events kubernetes pods slack

Last synced: 3 months ago
JSON representation

A simple k8s controller that publish messages on pod level based on annotations in slack channels

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/zmalik/k8s-publisher.svg?branch=master)](https://travis-ci.org/zmalik/k8s-publisher)

# k8s-publisher

A simple kubernetes controller that watches pods for any changes and notify to sinks or trigger actions based on pods annotations

The idea behind k8s-publisher is to empower pod level custom channels, and avoid a super sink to aggregate all events of a kubernetes cluster. And make it easy a pod diagnostic in case of naive errors.

## Slack integration

The very first integration is with slack. You can define a slack channel to subscribe for a pod.

```
annotations:
# Tell k8s-publisher to send notifications of failure to slack #my-channel
notify-channels: |
[{"type":"slack", "value":"#my-channel"}]
```

And the k8s-publisher takes care of publishing messages related to the pod to that channel.

## Http integration

The very first integration is with slack. You can define a slack channel to subscribe for a pod.

```
annotations:
# Tell k8s-publisher to send notifications of failure to endpoint
notify-channels: |
[{"type":"http", "value":"http://myendpoint.com/webhook"}]
```

And the k8s-publisher takes care of publishing messages related to the pod to that channel.

## Installation

```
git clone https://github.com/zmalik/k8s-publisher.git
```

edit the `deploy/deployment.yaml` file and add your slack-api-token

```
kubectl create -f deploy/deployment.yaml
```

A k8s-publisher pod will run and keep an eye on all pods and keep checking for the `notify-channels` annotation.

![demo.png](demo.png)

## Work in Progress

This is a work in progress to add more integrations like stdout or email.