A declarative framework for resilient Kubernetes deployment.
Go to file
Phil Sphicas a57158d0e9 Disable kubernetes-etcd anchor cleanup in gates
Interesting gate failure:
* kubernetes-etcd chart is installed
* kubernetes-etcd-anchor pod creates a new kubernetes-etcd manifest
* kubernetes-etcd pod restarts
* an etcd leader election happens, triggering a tiller failure
* tiller tries to purge/delete the chart
* the kubernetes-etcd-anchor can't terminate, because the preStop gets
stuck in a loop trying to talk to etcd via the service endpoint, and the
termination grace period is 3600s

This change just takes the approach of disabling the cleanup for the
kubernetes etcd anchor pod.

An alternative fix is to change the grace period to something shorter.
However, at this point, the haproxy anchor and kube-apiserver anchor
pods have done their jobs, so kube-apiserver is talking to etcd via
haproxy, and haproxy only knows about the kubernetes-etcd pod, not the
auxiliary etcd pods. It is likely that the kubernetes-etcd anchor would
restart and spin up a new kubernetes etcd pod in time, but it may
occasionally fail.

Change-Id: Ifa71394b2f87e227a6c4ad1b4c80900cec6f5684
2021-02-13 08:57:47 +00:00
.github Update Airship vulnerability link 2020-05-18 21:27:18 +00:00
charts Update to container image repo k8s.gcr.io 2021-01-11 17:42:31 +00:00
doc Update to container image repo k8s.gcr.io 2021-01-11 17:42:31 +00:00
etc/promenade Minor testing-related cleanup 2018-01-02 10:14:10 -06:00
examples Disable kubernetes-etcd anchor cleanup in gates 2021-02-13 08:57:47 +00:00
images/promenade Fix ubuntu_xenial build (use pip <21.0) 2021-01-28 16:32:27 +00:00
promenade Remove additional /hyperkube reference 2020-09-29 23:27:27 +00:00
tests Update to container image repo k8s.gcr.io 2021-01-11 17:42:31 +00:00
tools Update to container image repo k8s.gcr.io 2021-01-11 17:42:31 +00:00
.dockerignore Remove tests from images 2018-08-02 15:37:18 -05:00
.gitignore Upgrade mismatch dependencies for pegleg 2019-09-20 15:23:21 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:52:18 +00:00
.readthedocs.yaml Fix: Promenade Exceptions docs rendering on RTD 2019-08-27 22:57:15 +02:00
.zuul.yaml fix - pep8 and image build gates 2020-09-22 08:42:40 -05:00
LICENSE Initial commit 2017-02-14 11:13:39 -08:00
Makefile Makefile; clean should include .tox 2020-12-08 12:21:44 -06:00
README.md Update the README.md File 2018-07-30 15:52:23 -05:00
entrypoint.sh [uwsgi] remove extraneous argument 2020-04-23 22:28:39 +00:00
requirements-direct.txt Update setuptools to resolve dependency conflict 2020-10-15 17:57:25 -04:00
requirements-frozen.txt Update pip package versions in preparation of pip 20.3 2020-09-28 16:34:04 -04:00
requirements.txt Pull requirements-direct into requirements 2019-08-26 13:52:04 +00:00
setup.cfg Fix outdated external references 2019-09-06 13:11:17 -05:00
setup.py Enable using PBR for package library 2018-10-25 17:04:29 -05:00
test-requirements.txt Update pip package versions in preparation of pip 20.3 2020-09-28 16:34:04 -04:00
tox.ini Adjust plugin cri parameters 2020-03-26 05:02:37 +00: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.