Cache in kubernetes using configmaps
Given an URL and config, it will fetch the url, save it in a configmap and update it every 2 minutes. That data can be acessed then by and http endpoint.
Your config has to be located in config/services.yaml
.
Services:
- name: example # Name of the service
url: https://reqres.in/api/users?page=2 # Url that will be fetched
path: /myendpoint # Path where k8s-cache will serve the result
headers: # Any headers required for the request
- key: "MyHeader"
value: "Test"
In the example above, the app:
- fetch the data from
https://reqres.in/api/users?page=2
using the headers defined - exposes the edpoint
http://localhost:8080/myendpoint
with the data - refresh's the data every 2 minutes
ConfigMaps only allow up to 1Mb of data. Considering this all the data is saved in binary to maximize the capacity.
By default the app will use the namespace kube-system
, if you want to use your own namespace, set the environment variable NAMESPACE
with the name of your namespace.
- Add retry on failure
- Docs
- Testing