All Projects → stakater → Ingressmonitorcontroller

stakater / Ingressmonitorcontroller

Licence: apache-2.0
A Kubernetes controller to watch ingresses and create liveness alerts for your apps/microservices in UptimeRobot, StatusCake, Pingdom, etc. – [✩Star] if you're using it!

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Ingressmonitorcontroller

K8s
Kubernetes Helm Charts for the ORY ecosystem.
Stars: ✭ 127 (-58.5%)
Mutual labels:  helm-charts, helm, k8s
charts
Helm charts for creating reproducible and maintainable deployments of Polyaxon with Kubernetes.
Stars: ✭ 32 (-89.54%)
Mutual labels:  helm, k8s, helm-charts
Helm Secrets
Successor of zendesk/helm-secrets - A helm plugin that help manage secrets with Git workflow and store them anywhere
Stars: ✭ 165 (-46.08%)
Mutual labels:  helm-charts, helm, k8s
Helmsman
Helm Charts as Code
Stars: ✭ 854 (+179.08%)
Mutual labels:  helm-charts, helm, k8s
helm-charts
Official Helm Chart Repository for InfluxData Applications
Stars: ✭ 133 (-56.54%)
Mutual labels:  helm, k8s, helm-charts
Helm Secrets
DEPRECATED A helm plugin that help manage secrets with Git workflow and store them anywhere
Stars: ✭ 1,129 (+268.95%)
Mutual labels:  helm-charts, helm, k8s
Helm-Cheat-Sheet
A cheat sheet for Helm commands.
Stars: ✭ 72 (-76.47%)
Mutual labels:  helm, k8s, helm-charts
Pega Helm Charts
Orchestrate a Pega Platform™ deployment by using Docker, Kubernetes, and Helm to take advantage of Pega Platform Cloud Choice flexibility.
Stars: ✭ 58 (-81.05%)
Mutual labels:  helm, k8s, openshift
charts
☸️ Helm Charts for YOURLS
Stars: ✭ 12 (-96.08%)
Mutual labels:  helm, k8s, helm-charts
bilrost
Kubernetes controller/operator to set up OAUTH2/OIDC security on any ingress based service
Stars: ✭ 17 (-94.44%)
Mutual labels:  controller, ingress, k8s
Awesome Helm
Collaborative list of awesome helm charts and resources. PRs are welcome!
Stars: ✭ 543 (+77.45%)
Mutual labels:  helm-charts, helm, k8s
stackstorm-ha
K8s Helm Chart (βeta!) that codifies StackStorm (aka "IFTTT for Ops" https://stackstorm.com/) Highly Availability fleet as a simple to use reproducible infrastructure-as-code app
Stars: ✭ 74 (-75.82%)
Mutual labels:  helm, k8s, helm-charts
Apisix Ingress Controller
ingress controller for K8s
Stars: ✭ 139 (-54.58%)
Mutual labels:  controller, ingress, k8s
Quiz
Example real time quiz application with .NET Core, React, DDD, Event Sourcing, Docker and built-in infrastructure for CI/CD with k8s, jenkins and helm
Stars: ✭ 100 (-67.32%)
Mutual labels:  helm-charts, helm, k8s
Kubernetes Pfsense Controller
Integrate Kubernetes and pfSense
Stars: ✭ 100 (-67.32%)
Mutual labels:  controller, ingress, k8s
Helmfiles
Comprehensive Distribution of Helmfiles for Kubernetes
Stars: ✭ 205 (-33.01%)
Mutual labels:  helm-charts, helm, k8s
helm-controller
A simple way to manage helm charts with a Custom Resource Definitions in k8s.
Stars: ✭ 49 (-83.99%)
Mutual labels:  controller, helm, helm-charts
charts
Public helm charts
Stars: ✭ 15 (-95.1%)
Mutual labels:  helm, k8s, helm-charts
khelm
A Helm chart templating CLI, kpt function and kustomize plugin
Stars: ✭ 46 (-84.97%)
Mutual labels:  helm, k8s, helm-charts
rudder
Application releases based on helm
Stars: ✭ 19 (-93.79%)
Mutual labels:  controller, helm

Ingress Monitor Controller

DEPRECATION NOTICE:

IMC has now been converted to an Operator and we have stopped support from our side for the controller based implementation , although support from community for the controller is still appreciated. Using Operator is recommended and existing users can follow Migration To Operator for migrating to Operator. Although, Controller based implementation is maintained at release-v1 instead.

An operator to watch ingresses/routes and create liveness alerts for your apps/microservices in Uptime checkers.

Get started with Stakater

Problem Statement

We want to monitor ingresses in a kubernetes cluster and routes in openshift cluster via any uptime checker but the problem is having to manually check for new ingresses or routes / removed ingresses or routes and add them to the checker or remove them.

Solution

This operator will continuously watch ingresses/routes based on defined EndpointMonitor custom resource, and automatically add / remove monitors in any of the uptime checkers. With the help of this solution, you can keep a check on your services and see whether they're up and running and live, without worrying about manually registering them on the Uptime checker.

Supported Uptime Checkers

Currently we support the following monitors:

Usage

Adding configuration

Configure the uptime checker configuration in the config.yaml based on your uptime provider. Add create a secret imc-config that holds config.yaml key:

kind: Secret
apiVersion: v1
metadata:
  name: imc-config
data:
  config.yaml: >-
    <BASE64_ENCODED_CONFIG.YAML>
type: Opaque

Configuration Parameters

Following are the available options that you can use to customize the controller:

Key Description
providers An array of uptime providers that you want to add to your controller
enableMonitorDeletion A safeguard flag that is used to enable or disable monitor deletion on ingress deletion (Useful for prod environments where you don't want to remove monitor on ingress deletion)
resyncPeriod Resync period in seconds, allows to re-sync periodically the monitors with the Routes. Defaults to 0 (= disabled)
creationDelay CreationDelay is a duration string to add a delay before creating new monitor (e.g., to allow DNS to catch up first)
monitorNameTemplate Template for monitor name eg, {{.Namespace}}-{{.Name}}
  • Replace BASE64_ENCODED_CONFIG.YAML with your config.yaml file that is encoded in base64.
  • For detailed guide for the configuration refer to Docs and go through configuration guidelines for your uptime provider.
  • For sample config.yaml files refer to Sample Configs.
  • Name of secret can be changed by setting environment variable CONFIG_SECRET_NAME.

Add EndpointMonitor

EndpointMonitor resource can be used to manage monitors on static urls or route/ingress references.

  • Specifying url:
apiVersion: endpointmonitor.stakater.com/v1alpha1
kind: EndpointMonitor
metadata:
  name: stakater
spec:
  forceHttps: true
  url: https://stakater.com
  • Specifying route reference:
apiVersion: endpointmonitor.stakater.com/v1alpha1
kind: EndpointMonitor
metadata:
  name: frontend
spec:
  forceHttps: true
  urlFrom:
    routeRef:
      name: frontend
  • Specifying ingress reference:
apiVersion: endpointmonitor.stakater.com/v1alpha1
kind: EndpointMonitor
metadata:
  name: frontend
spec:
  forceHttps: true
  urlFrom:
    ingressRef:
      name: frontend

NOTE: For provider specific additional configuration refer to Docs and go through configuration guidelines for your uptime provider.

Deploying the Operator

The following quickstart let's you set up Ingress Monitor Controller to register uptime monitors for endpoints:

  1. Clone this repository
    $ git clone [email protected]:stakater/IngressMonitorController.git
  1. Deploy dependencies(crds):
    $ oc apply -f deploy/crds
  1. Deploy ServiceAccount, Role, RoleBinding and Operator:
   $ oc apply -f deploy/service_account.yaml
   $ oc apply -f deploy/role.yaml
   $ oc apply -f deploy/role_binding.yaml
   $ oc apply -f deploy/operator.yaml

Environment Variables

Key Description
WATCH_NAMESPACE Use comma separated list of namespaces or leave the field empty to watch all namespaces(cluster scope)
CONFIG_SECRET_NAME Name of secret that holds the configuration
LOG_LEVEL Set logging level from debug,info,warn,error,fatal. Default value is Info
LOG_FORMAT Set logging format from text,json. Default value is text

Help

Documentation

You can find more detailed documentation for configuration, extension, and support for other Uptime checkers etc. here

Contributing

If you'd like to contribute any fixes or enhancements, please refer to the documentation here

Have a question?

File a GitHub issue, or send us an email.

Talk to us on Slack

Join and talk to us on the #tools-ingressmonitor channel for discussing the Ingress Monitor Controller

Join Slack Chat

License

Apache2 © Stakater

About

The IngressMonitorController is maintained by Stakater. Like it? Please let us know at [email protected]

See our other projects or contact us in case of professional services and queries on [email protected]

The Google Cloud test infrastructure is sponsored by JOSHMARTIN.

Contributors

Stakater Team and the Open Source community! 🏆

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].