/sentinel

Watch for changes in the status of Kubernetes resources and publish them to other systems for processing.

Primary LanguageGoApache License 2.0Apache-2.0

NOTE! This project has now been integrated with the Onix project and is part of its Kubernetes Bundle. Please go here for the new Sentinel project.

An explanation of how Sentinel fits in Onix can be found here

Sentinel

Sentinel is a Go application, which looks for state changes of kubernetes objects, and publish their associated metadata to specific endpoints for further processing by downstream systems.

The application process can either run inside or outside of a Kubernetes cluster and can publish events to either a webhook or to an instance of the Apache Kafka message broker.

Architecture

The following image shows how the application works:

sentinel system architecture

Topics

Name Description
Getting Started Various examples of how to get started using Sentinel.
Configuration How to change Sentinel behaviour using configuration variables.
Publishers A description of the various mechanisms to publish status changes to other systems.
Scripts Various scripts to facilitate development and testing.

API compatibility

The current version uses the Kubernetes API 1.11.10, compatible with Openshift 3.11.

To build the solution for another api version, the dependencies in the go module file has to be updated, for example, using go get as follows:

# for example, to update to version 1.14.2
$ go get -u k8s.io/api@kubernetes-1.14.2
$ go get -u k8s.io/apimachinery@kubernetes-1.14.2
$ go get -u k8s.io/client-go@kubernetes-1.14.2

NOTE: the minimal required go version is 1.12.5

[*] The Sentinel icon was made by Freepik from Flaticon and is licensed by Creative Commons BY 3.0