npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

kubernetes-probes

v0.2.2

Published

Listener for health probes from kubernetes.

Downloads

10

Readme

kubernetes-probes

Library for an express listener on specified port to expose an http probe endpoint that kubelet can use to check container status. Both readiness and liveness probes are supported. This library supports a model whereby an app could have several asynchronous aspects that define readiness or liveness. You define one or more functions for each aspect of readiness or liveness. When probed (readiness or liveness), kubernetes-probes calls the appropriate one or more defined functions.

Use of this library infers your app is implementing both (all) probes. If kubernetes-probes gets a probe and there are no functions defined for that type of probe, the response will be negative, i.e., a status code of 400. This will indicate to kubernetes that the app is not ready/lively.

Usage

In this example readiness and liveness are being set.

var k8sProbes = require('kubernetes-probes');
k8sProbes.setReadiness(true);
k8sProbes.setLiveness(true);
k8sProbes.listen(80);

In this example there is one liveness function and two readiness functions.

var k8sProbes = require('kubernetes-probes');
k8sProbes.addLivenessFunction(ready);
k8sProbes.addReadinessFunction(alive, "ready 1");
k8sProbes.addReadinessFunction(alive, "ready 2");
k8sProbes.listen(80);
//
// Liveness function
var alive = function(cb) {
    cb(true, "I am alive.");
};
//
// Readiness function #1
var ready1 = function(cb) {
    cb(true, "I am ready.");
};
//
// Readiness function #2
var ready2 = function(cb) {
    cb(true, "I am ready.");
};

Dependencies

  • Express
  • Async

API

  • addReadinessFunction(alive, name)
    • alive - [REQUIRED] - function(cb). Called by kubernetes-probes when kubernetes requests a liveness probe. If this function is not defined, kubernetes-probes response will be "liveness function undefined." with status 400.
      • cb - [REQUIRED] - function(isAlive, message). Called to return liveness state to kubernetes-probes.
        • isAlive - [REQUIRED] - boolean. TRUE indicates alive, response status is 200. FALSE indicates not alive, response status is 400.
        • message - [OPTIONAL] - string. returned in response to probe.
          • default if isAlive TRUE - "alive".
          • default if isAlive FALSE - "dead".
    • name - [OPTIONAL] - string. Name of this particular aspect of being ready. Default is "All".
  • addLivenessFunction(ready, name)
    • ready - [REQUIRED] - function(cb). Called by kubernetes-probes when kubernetes requests a readiness probe. If this function is not defined, kubernetes-probes response will be "readiness function undefined." with status 400.
      • cb - [REQUIRED] - function(isReady, message). Called to return liveness state to kubernetes-probes.
        • isReady - [REQUIRED] - boolean. TRUE indicates ready, response status is 200. FALSE indicates not ready, response status is 400.
        • message - [OPTIONAL] - string. returned in response to probe.
          • default if isAlive TRUE - "ready".
          • default if isAlive FALSE - "not ready".
    • name - [OPTIONAL] - string. Name of this particular aspect of being lively. Default is "All".
  • setReadiness(ready)
    • ready - [REQUIRED] - boolean. If this function has been called, and addReadinessFunction() has not been called, then the most recent value of ready will be used to respond to a readiness probe.
  • setLiveness(alive)
    • alive - [REQUIRED] - boolean. If this function has been called, and addLivenessFunction() has not been called, then the most recent value of alive will be used to respond to a liveness probe.
  • listen(port)
    • port - [REQUIRED] - integer. kubernetes-probes will start listening on this port.