bitnami / charts

Bitnami Helm Charts
https://bitnami.com
Other
8.88k stars 9.16k forks source link

[bitnami/opensearch] Enable automated snapshots for OpenSearch #29601

Open lindhe opened 5 days ago

lindhe commented 5 days ago

Name and Version

bitnami/opensearch 1.3.4

What is the problem this feature will solve?

To enable consistent backups, OpenSearch uses Snapshots. It is pretty easy to configure snapshots using the OpenSearch dashboard, but this requires manual intervention and is hard to automate. As far as I can tell, there is no mechanism to configure this using declarative configuration in OpenSearch, so the user must interact with the OpenSearch API.

This is a pretty involved process where the user must first send a request to "register a repository" to store the snapshots in and then configure snapshot policy, all using the OpenSearch REST API. Even advanced users, who are already familiar with this process and how to use the API, have no easy way to automate this process today.

What is the feature you are proposing to solve the problem?

I suggest we implement a post-install chart hook that performs registration of a repository and then (optionally) creates a snapshot policy.

If we implement this as opt-in, this should be a non-breaking change.

In the future, this could be expanded upon to also include policy changes during upgrade/rollback operations or creating multiple policies.

What alternatives have you considered?

I have written a Job that does this already, but since it's not integrated into the Helm chart it's a semi-automatic process that I need to manually trigger after installing the chart. It would be nicer if it was available out-of-the-box.

lindhe commented 5 days ago

I would be happy to work on this feature. As I mentioned, I have already done the ground work. I just need to know if such a PR would be welcome, before I start working on a contribution.

javsalgar commented 4 days ago

Hi!

Thank you so much for the feature request and for wanting to contribute, of course it would be welcome! In other charts we have jobs for initializing like in Minio or Kafka. You can use them as examples for your contribution.

lindhe commented 4 days ago

That's great! I'm on it. Thanks for the pointers.

I'll need to send some REST calls to the API. In my working PoC I use docker.io/curlimages/curl:8.10.1 for that, but I know Bitnami tend to use your own images for everything. Do you have a curl image or some other image you recommend that has curl installed?

javsalgar commented 3 days ago

Yo can use the bitnami/os-shell image, which is present in most of the charts and has curl.