webhookdocker

package module
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2020 License: Apache-2.0 Imports: 10 Imported by: 1

README

Webhook Docker

A Keybase, Slack and WebEx integration to notify Docker Events via incoming webhook

Keybase webhook setup

  • Add webhookbot from list of Bots
  • Create a new webhook for sending messages into the current conversation. You must supply a name as well to identify the webhook. Example: !webhook create alerts
  • Get the new URL to send webhooks

Docker events on keybase

Slack webhook setup

Docker events on keybase

WebEx webhook setup

Docker events on WebEx

Run

Capture docker events and send to Keybase:

$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro \
logocomune/webhook-docker:latest --keybase-endpoint=https://bots.keybase.io/webhookbot/....

Capture docker events and send to Slack:

$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro \
logocomune/webhook-docker:latest --slack-endpoint=https://hooks.slack.com/services/....

Capture docker events and send to WebEx:

$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro \
logocomune/webhook-docker:latest --webex-endpoint=https://api.ciscospark.com/v1/webhooks/incoming/....
Application options
flag Environment type Default
--node-name WD_NODE_NAME String Node name. If empty use the hostname
--hide-node-name WD_HIDE_NODE_NAME Boolean false Node name is omitted
--docker-show-running WD_DOCKER_SHOW_RUNNING Boolean false Send running container to webhook
--docker-listen-container-events WD_DOCKER_LISTEN_CONTAINER_EVENTS Boolean true Listen for container events
--docker-listen-network-events WD_DOCKER_LISTEN_NETWORK_EVENTS Boolean true Listen for network events
--docker-listen-volume-events WD_DOCKER_LISTEN_VOLUME_EVENTS Boolean true Listen for volume events
--docker-listen-container-actions WD_DOCKER_LISTEN_CONTAINER_ACTIONS Strings separated by ; attach;create;destroy;detach;die;kill;oom;pause;rename;restart;start;stop;unpause;update Docker container events
--docker-listen-network-actions WD_DOCKER_LISTEN_NETWORK_ACTIONS Strings separated by ; create;connect;destroy;disconnect;remove Docker network events
--docker-listen-volume-actions WD_DOCKER_LISTEN_VOLUME_ACTIONS Strings separated by ; create;destroy;mount;unmount Docker volume events
--docker-filter-container-name WD_DOCKER_FILTER_CONTAINER_NAME Regexp Filter events by container name (default all)
--docker-filter-negate-container-name WD_DOCKER_FILTER_NEGATE_CONTAINER_NAME Boolean false Negate the filter of container name
--docker-filter-image-name WD_DOCKER_FILTER_IMAGE_NAME Regexp Filter events by image name (default all)
--docker-filter-negate-image-name WD_DOCKER_FILTER_NEGATE_IMAGE_NAME Boolean false Negate the filter of image name
--keybase-endpoint WD_KEYBASE_ENDPOINT String Keybase endpoint for webhook
--slack-endpoint WD_SLACK_ENDPOINT String Slack endpoint for webhook
--webex-endpoint WD_WEBEX_ENDPOINT String WebEx endpoint for webhook
Regexp Filters

Capture events of container with names with the following formats:

  • exec-1234
  • exec-abcd-12345
$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro \
--docker-filter-container-name="^exec-.*$" \
logocomune/webhook-docker:latest --webex-endpoint=https://api.ciscospark.com/v1/webhooks/incoming/....

Exclude events of container with the following formats:

  • exec-1234
  • exec-abcd-12345
$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro \
--docker-filter-container-name="^exec-.*$" \
--docker-filter-negate-container-name \
logocomune/webhook-docker:latest --webex-endpoint=https://api.ciscospark.com/v1/webhooks/incoming/....

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MainProcess

func MainProcess(cfg CommonCfg, kb Keybase, sl Slack, ex WebEx) error

Types

type CommonCfg

type CommonCfg struct {
	NodeName     string
	HideNodeName bool `conf:"default:false"`
	Docker       struct {
		ShowRunning bool `conf:"default:false"`
		Filter      struct {
			ContainerName       string `conf:""`
			NegateContainerName bool   `conf:"default:false"`
			ImageName           string `conf:""`
			NegateImageName     bool   `conf:"default:false"`
		}
		Listen struct {
			ContainerEvents  bool     `conf:"default:true"`
			NetworkEvents    bool     `conf:"default:true"`
			VolumeEvents     bool     `conf:"default:true"`
			ContainerActions []string `conf:"default:attach;create;destroy;detach;die;kill;oom;pause;rename;restart;start;stop;unpause;update"`
			NetworkActions   []string `conf:"default:create;connect;destroy;disconnect;remove"`
			VolumeActions    []string `conf:"default:create;destroy;mount;unmount"`
		}
	}
}

type Keybase

type Keybase struct {
	Endpoint string `conf:""`
}

type Slack

type Slack struct {
	Endpoint string `conf:""`
}

type WebEx

type WebEx struct {
	Endpoint string `conf:"flag:webex-endpoint"`
}

Directories

Path Synopsis
cmd
webhook-docker command

Jump to

Keyboard shortcuts

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