Hello Oskar,
A modified Docker image is probably the simplest solution to what you are trying to accomplish. Otherwise, the way to “copy using YAML file” would be to modify the Helm Chart itself, adding an additional InitContainer which would perform the copy ahead of the Dremio software startup. Bear in mind that this path has more requirements and setup to make work from the get-go.
Since you already have your hands around the custom Docker image, I would go with that route, as it’s easier to handle upstream changes to a Custom Docker image, versus taking upstream changes to the Helm Charts.
With the custom Image approach, you just need to modify your FROM tag to get the new Dremio version into play, and fire off a new build of the Container. However, if you modify the Helm Chart, you have to merge any upstream changes into your local version, when and if such fixes should be posted. Also, you have the complexity of adding an additional InitContainer and setting up this ancillary Persistent Store you mentioned from which you would need to grab these other jar files.
Doing the work ahead of time through a modified image does not impact Dremio start-up time like an additional InitContainer will do. This direction also takes away additional pre-setup work for a new standup of Dremio, for instance, as might happen with a Disaster Recovery operation.
So, I recommend that you continue down the path you are going with a modified Container image. It will generally be the least overall effort to accomplish the desired goal. Once it’s set and working the way you need, you only need to rebuild a new image at those times when you want to take a new version of Dremio into your environment, with no other triggers of the new effort.
Plus, I am not sure how familiar you are with templating Helm Charts, but you seem to know well enough about what you are doing with the Docker image. You might as well keep the focus on that since you seem to be close to the solution you seek. Plus, a late redirection of implementation might extend the overall timeline of completion, which may or may not be a concern for you.
Personally, when it comes to a choice between modifying a Container or a Helm Chart to deploy a solution, I tend to go with “least effort” using a modified image approach. I will only modify the Chart when there is some brittle aspect to it that prevents me from getting the application deployment I need. Perhaps in the case that the Chart and values.yaml
are unable to control some specific capability I seek to implement, like cert-manager
integration for instance.
Thanks,
–Reid