Page MenuHomePhabricator

OpenSearch on K8s: Decide whether or not to implement best practices through automation
Closed, ResolvedPublic

Description

As we work on the OpenSearch on K8s project, I've noticed there are a few things we probably want to set by default (to be fleshed out more later):

  • number of replicas
  • some index lifecycle management settings

But it gets difficult when we get to the "how". OpenSearch deliberately does not support manipulating dynamic settings in traditional config files such as opensearch.yml or in helm values.yaml files. The only way to set these is via the OpenSearch API. We work around this with a bash script in our legacy OpenSearch environment , but that doesn't really work in a K8s world.

Creating this ticket to:

  • Make sure this isn't already supported by the OpenSearch 3 operator (T414217).
  • If it's not, discuss whether or not we want to automate this at all, or just provide docs on how to do it.
  • If we decide to automate this, we need to carefully consider where and how to implement it.

If we deviate too much from the upstream Helm chart, we'll make it difficult for us to maintain our fork. But if we use something that's not clearly connected to the immediate k8s deployment (Airflow?), we run the risk of adding a hard-to-discover dependency (why is this thing running on my cluster every 30 minutes and making changes I didn't ask for!?) that we own and maintain forever. Ideally, there is a ready-made solution in the existing K8s and/or Mediawiki Developer ecosystem we can leverage.