A declarative framework for resilient Kubernetes deployment.
Go to file
Phil Sphicas d161528ae8 Avoid calico-etcd crashloop
Sometimes the calico-etcd pod crashloops when it is being bootstrapped.
This occurs intermittently in the gates.

Best guess .. when the etcd-anchor pod initially creates the etcd static
manifest, it waits for the anchor period (15 seconds) for the etcd pod
to become ready. If it is not ready, the next iteration through the loop
recreates an identical manifest. The fact that it is a new file causes
kubelet to terminate the original container and start up a new one.

Kubelet and the container runtime get out of sync, and kubelet can't
figure out the correct container id, so the pod ends up crashlooping
forever.  Manually removing and readding the manifest file doesn't
resolve the condition, although a kubelet restart actually does.

This "fix" will only write the updated manifest if it is different, and
hopefully will prevent the condition from occurring.

Change-Id: I4b6b1bf17fd8f0b36d24a741779505b38dba349f
2021-02-11 07:14:49 +00:00
.github Update Airship vulnerability link 2020-05-18 21:27:18 +00:00
charts Avoid calico-etcd crashloop 2021-02-11 07:14:49 +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 Update to container image repo k8s.gcr.io 2021-01-11 17:42:31 +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.