There are a number of race conditions in Calico's CNI calico-node combo container, particularly when dealing with more interesting networking systems.
The calico kicker is a crude tool which provides a certain amount of time for calico-node
to get its configuration in order and then, if it fails to do so, kills the Pod, such that it can try again.
In order to operate, the POD_NAME
environment variable must be set, and the ServiceAccount under which the kicker runs must have delete privilege on Pods in the namespace in which it runs.
This package comes with a Kustomize Component, found in the kustomize/
directory. Note that as a component, it must be included as such, not as a resource.
While this will work with a standard Calico deployment, if you do not run Calico in its own calico
namespace, you must also set POD_NAMESPACE
. For instance, the default namespace for upstream calico is kube-system
.