Skip to content
Forward Kubernetes Events using the Graylog Extended Log Format
Branch: master
Clone or download
Latest commit db01751 Jan 16, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis
docs First commit Jan 9, 2019
src add additional fields to the gelf forwarding Jan 16, 2019
.gitignore First commit Jan 9, 2019
.travis.yml release v1.0.0. Jan 16, 2019
CHANGELOG.md release v1.0.0. Jan 16, 2019
Dockerfile Deploy image to hub.docker.com Jan 10, 2019
LICENSE Fill placeholder in license file Jan 10, 2019
Makefile release v1.0.0. Jan 16, 2019
README.md release v1.0.0. Jan 16, 2019
event-forwarder-gelf.go release v1.0.0. Jan 16, 2019
go.mod First commit Jan 9, 2019
go.sum

README.md

kubernetes-event-forwarder-gelf

Build Status

Forward Kubernetes Events using the Graylog Extended Log Format.

Usage

Usage:
  event-forwarder-gelf [OPTIONS]

Application Options:
  -v, --verbose= Show verbose debug information [$VERBOSE]
      --host=    Graylog TCP endpoint host [$GRAYLOG_HOST]
      --port=    Graylog TCP endpoint port [$GRAYLOG_PORT]
      --cluster= Name of this cluster [$CLUSTER]
      --version  Print version information

Help Options:
  -h, --help     Show this help message

Run the pre-built image xingse/event-forwarder-gelf locally (with local permission):

echo CLUSTER=cluster-name >> .env
echo GRAYLOG_HOST=graylog >> .env
echo GRAYLOG_PORT=12222   >> .env
docker run --env-file=.env xingse/event-forwarder-gelf

Deployment

Run this controller on Kubernetes with the following commands:

kubectl create serviceaccount event-forwarder-gelf \
  --namespace=kube-system

kubectl create clusterrole xing:controller:event-forwarder-gelf \
  --verb=get,watch,list \
  --resource=events

kubectl create clusterrolebinding xing:controller:event-forwarder-gelf \
  --clusterrole=xing:controller:event-forwarder-gelf \
  --serviceaccount=kube-system:event-forwarder-gelf

kubectl run event-forwarder-gelf \
  --image=xingse/event-forwarder-gelf \
  --env=CLUSTER=cluster-name \
  --env=GRAYLOG_HOST=graylog \
  --env=GRAYLOG_PORT=12222 \
  --serviceaccount=event-forwarder-gelf

Development

This project uses go modules introduced by go 1.11. Please put the project somewhere outside of your GOPATH to make go automatically recogninze this.

All build and install steps are managed in the Makefile. make test will fetch external dependencies, compile the code and run the tests. If all goes well, hack along and submit a pull request. You might need to run the go mod tidy after updating dependencies.

Releases

Releases are a two-step process, beginning with a manual step:

  • Create a release commit
  • Run make release, which will create an image, retrieve the version from the binary, create a git tag and push both your commit and the tag

The Travis CI run will then realize that the current tag refers to the current master commit and will tag the built docker image accordingly.

You can’t perform that action at this time.