This repository is no longer maintained
Issue reports and pull requests will not be reviewed.
kubernetes-updater
Rolling updates of kubernetes clusters
Iterate through all of the etcd, masters and worker nodes in a given cluster terminating nodes and verifying their replacement is healthy before moving on.
Running
The tool expects that the environment is configured to support AWS named profiles as detailed here.
The target kubernetes cluster is set by setting the KUBERNETES_SERVER environment variable. Additionally, the following environment variables need to be passed in:
CLUSTER=<name of the cluster>
AWS_PROFILE=<aws profile to use>
AWS_REGION=<aws region>
Verbose logging can be enabled via:
ROLLER_LOG_LEVEL=4
Additionally you can control which of the components (etcd, k8s-master and k8s-node) you want to roll. This example would only roll the k8s-master and k8s-node components.
ROLLER_COMPONENTS=k8s-master,k8s-node
Example usage just specifying the kubernetes server, and rolling all components:
KUBERNETES_SERVER=https://kubernetes ./roller
Example usage for only rolling the etcd servers:
KUBERNETES_SERVER=https://kubernetes ROLLER_COMPONENTS=etcd ./roller
Node Health Checks
A node is considered healthy by the roller when the ec2 instance has the following tags:
healthy: True
If the tag either does not exist or has a value not equal to True
, the roller considers the ec2 instance in a bad state and will not continue with the cluster roll.