Where to store your configuration flag
To work GO Feature Flag is using a configuration file to store your feature flags configuration.
Ideally this file should be placed somewhere accessible by all your app that are using the GO Feature Flag module.
In the solution there is a system we call
retriever that is in charge of reading the file remotely.
GO Feature Flag supports different ways to retrieve the configuration file (see list bellow).
AWS S3 is the object store of AWS, you can add your GO Feature Flag configuration file in any bucket and reference it in your configuration.
Google Cloud Storage
Google Cloud Storage is a RESTful online file storage web service for storing and accessing data on Google Cloud Platform infrastructure.
You can add your GO Feature Flag configuration file in any bucket and reference it.
A ConfigMap is an API object used to store non-confidential data in key-value pairs inside kubernetes.
GO Feature Flag can read directly in a
configmap in your namespace.
When your feature flags file is ready you can store it directly in your kubernetes instance by using this command:
kubectl create configmap goff --from-file=examples/retriever_configmap/flags.yaml
It will allow your file to be available inside Kubernetes.
Serving file with an HTTP server is probably something you are already doing, GO Feature Flag can retrieve your configuration file, from any HTTP endpoint and read it from there.
Reading the file from GitHub is pretty straight forward.
You commit your file into your favorite repository (it can be public or private) and GO Feature Flag can retrieve your configuration file and use it.
You can store your feature flags configuration in your hard drive directly.
Using a file is great for local testing, but in production it is recommended to use a distributed system instead.
If you are using the GO module, you can also implement your own retriever.
For this look at this documentation to start building your own