Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
How to declaratively enable RabbitMQ feature flags in Kubernetes
We use Kubernetes on a cloud (GKE, to be precise). We use RabbitMQ for messaging and we need to upgrade it from 3.10 to 3.12 .
FWIW RabbitMQ has been added to our system using a chart from Bitnami.
The problem is that we need to enable RabbitMQ's feature flags.
More specifically, the problem is that we need to enable the flags before upgrading.
There are several ways of enabling RabbitMQ's feature flags, according to the post linked above:
- One can go into RabbitMQ's Management Plugin UI and enable them, via "Admin > Feature Flags".
- One can go into the Pod and enable them from the command line, using
rabbitmqctl enable_feature flag.
What I haven't found, however, is a way of enabling them from a configuration. I would like to configure Kubernetes so that, upon re-deploying the RabbitMQ Pod, it would automatically enable the feature flags.
The options seem to be:
- Add a line to the Pod descriptor where we enter the container and execute
- Individually enter the different environments and manually enable the feature flags there (whether using the CLI or the Management Plugin UI).
However, I would much rather enable the feature flags in a more declarative fashion. What I'm really looking for is a way to set the feature flags via a ConfigMap, allowing the flags to be set automatically when the Pod is restarted. This would be safer than executing shell commands on container startup, and also more in keeping with the Kubernetes philosophy of doing everything declaratively.
The question is if there is such a "declarative" way to set RabbitMQ's feature flags?