This operator provides CRDs to create key/value pairs (KeyValuePair
). The operator combines these configuration objects into a single ConfigMap
and deploys a REST API that can be used to access the individual values with the corresponding keys.
The operator is written in the Kubernetes Operators Framework (Kopf) while the HTTP server for the REST API is written in Tornado. The code for the operator is found in the /opr
directory while the code for the Tornado server is located in the /srv
directory.
The /tests
directory contains unit and integration tests for the server and operator. The /examples
directory contains simple examples on how to use the custom resources to deploy a config server instance. The /chart
directory contains the definitions for a Helm chart.
See Kopf documentation. The Dockerfile for the deployment is part of this repository.
This repository also contains a Helm chart which can be deployed with:
TODO: how?
The config-server-operator
can be run locally without writing a whole deployment for it, for example in a local minikube
cluster.
Clone the project
git clone https://github.com/TU-Wien-dataLAB/config-server-operator.git
Go to the project directory
cd config-server-operator
Install dependencies
pip install kopf kubernetes
Add the CRDs to the cluster
kubectl apply -f chart/config-server-operator/crds/
Run the operator
kopf run opr/operator.py --verbose