Proposal documentation found here: https://github.com/mhmxs/calico-route-reflector-operator-proposal. Please feel free to share your ideas!!!
This Kubernetes operator can monitor and scale Calico route refloctor pods based on cluster size. The operator has a few environment variable:
ROUTE_REFLECTOR_MIN
Minimum number of route reflector pods per zone, default3
ROUTE_REFLECTOR_MAX
Maximum number of route reflector pods per zone, default25
ROUTE_REFLECTOR_RATIO
Node / route reflector pod ratio, default0.005
(1000 * 0.005 = 5
)ROUTE_REFLECTOR_NODE_LABEL
Node label of the route reflector nodes, defaultcalico-route-reflector=
ROUTE_REFLECTOR_ZONE_LABEL
Node label of the zone, default ``
During the api/core/v1/Node
reconcile phases it calculates the right number of route refloctor nodes per zone. It by multiply the number of nodes with the given ratio and updates the route reflector replicas to the expected number.
This is a standard Kubebuilder opertor so building and deploying process is similar as a (stock Kubebuilder project)[https://book.kubebuilder.io/cronjob-tutorial/running.html].
Use official image:
make install deploy
Build your own image:
IMG_REPO=[IMG_REPO] IMG_NAME=[IMG_NAME] IMG_VERSION=[IMG_VERSION] make test docker-push install deploy
- Use custom resource instead of environment variables
- Dedicated or preferred node label
- Disallow node label
- Handle taints and tolerations
We appreciate your help!
To contribute, please read our contribution guidelines: CONTRIBUTION.md