A declarative framework for resilient Kubernetes deployment.
Go to file
Mark Burnett 69cb269230 Make K8S proxy health check more aggressive
In K8S version 1.10, the proxy can sometimes get stuck believing that
some services do not have any endpoints.  This seems to be triggered by
network instability, though the proxy doesn't seem to recover on its
own, while bouncing the pod fixes the issue.

This change adds a naive means of detecting and recoverying from this
(`iptables-save | grep 'has no endpoints'` in the liveness probe) that
may occasionally have false positives.  As such, the liveness probe is
configured very conservatively to avoid triggering CrashLoopBackoff in
the event of a false positive.

Finally, there is a whitelist feature to help avoid false positives for
services that are known to legitimately have empty endpoints during the
course of normal operation (e.g. Patroni might manage such an endpoint
list).

Change-Id: I29a770fab70b1fb79db59ef5408f40b2af1c01f9
2018-09-05 13:46:03 -05:00
charts Make K8S proxy health check more aggressive 2018-09-05 13:46:03 -05:00
doc/source Merge "Adding node-labels api" 2018-08-09 21:31:56 +00:00
etc/promenade Minor testing-related cleanup 2018-01-02 10:14:10 -06:00
examples Update tiller version to 2.10.0 2018-08-30 15:54:07 -05:00
promenade Merge "Handle non-true defaults" 2018-08-28 16:05:08 +00:00
tests Merge "Adding node-labels api" 2018-08-09 21:31:56 +00:00
tools Update tiller version to 2.10.0 2018-08-30 15:54:07 -05:00
.dockerignore Remove tests from images 2018-08-02 15:37:18 -05:00
.gitignore Adding node-labels api 2018-08-09 23:58:59 +05:30
.gitreview Update .gitreview for openstack infra 2018-05-17 19:25:48 +01:00
.zuul.yaml Consolidate pep8/bandit zuul gating 2018-08-21 12:57:02 -05:00
Dockerfile Update Dockerfile to allow override of FROM variable 2018-07-24 21:11:35 +00:00
LICENSE Initial commit 2017-02-14 11:13:39 -08:00
Makefile Update tiller version to 2.10.0 2018-08-30 15:54:07 -05:00
README.md Update the README.md File 2018-07-30 15:52:23 -05:00
entrypoint.sh [Fix] Allow larger headers in API requests 2018-03-01 09:30:39 -06:00
requirements-direct.txt (fix) Update deckhand dependency 2018-07-17 13:57:02 -05:00
requirements-frozen.txt Consolidate pep8/bandit zuul gating 2018-08-21 12:57:02 -05:00
requirements.txt Avoid directly installing non-frozen dependencies 2017-10-20 10:54:10 -05:00
setup.py Speed up image build 2018-04-25 12:00:06 -05:00
test-requirements.txt Consolidate pep8/bandit zuul gating 2018-08-21 12:57:02 -05:00
tox.ini Add venv tox environment 2018-08-24 21:33:40 +02:00

README.md

Promenade

Promenade is a tool for bootstrapping a resilient Kubernetes cluster and managing its life-cycle via Helm charts.

Documentation can be found here.

Roadmap

The detailed Roadmap can be viewed on the OpenStack StoryBoard.

  • Cluster bootstrapping
    • Initial Genesis process results in a single node Kubernetes cluster with Under-cloud components deployed using Armada.
    • Joining sufficient master nodes results in a resilient Kubernetes cluster.
    • Destroy Genesis node after bootstrapping and re-provision as a normal node to ensure consistency.
  • Life-cycle management
    • Decommissioning of nodes.
    • Updating Kubernetes version.

Getting Started

To get started, see getting started.

Configuration is documented here.

Bugs

Bugs are tracked in OpenStack StoryBoard.