Omitting certain plugins via Helm Chart

We are deploying ODFE via Helm charts. There are certain plugins we know we don’t need or want. How can we stop loading them (i.e. omit them from the initial deployment). Or, if that isn’t possible, how can we remove them after initial deployment?

I tried using the bin/elasticsearch-plugin command to remove the plug-ins (which reported success) but couldn’t restart Elasticsearch to have the changes picked up. Deleting the pods didn’t work since it deleted the existing pod and created a new instance (with all of the plugins in place).

Hi @GSmith the docker image is containing all the plugins for distribution purpose.

If you remove certain plugins, you need to make necessary changes to the configuration file in the docker container and restart the instance.

I am not sure what you mean by “couldnt restart elasticsearch”, could you elaborate more on that?

Thanks.

Thanks for responding @zhujiaxi

I’m deploying ODFE via the Helm chart so it is all running on a Kubernetes cluster. As far as I can tell, when Kubernetes “restarts” a container it deletes the running instance of it and starts a new one. And, since my changes were made on the original instance, they don’t exist on the new instance.

I can ssh into the Elasticsearch pods, so if there is a command I can submit there to restart Elasticsearch, that might work. However, the systemctl command shown in the documentation to restart the service doesn’t work (since Elasticsearch isn’t running as a service inside the pod).

I suspect I could modify the docker image build script to delete specific plugin directories before they run and build the images but that seems like too much work. Adding the ability to identify which plugins to include/exclude in the Helm chart would be a nice enhancement. In our use-case, for example, the anomaly-detection and KNN plugins are not needed and will only confuse the users.

Hi @GSmith can you try docker ps and find the specific docker instance you are working on, and just restart the docker instance with docker restart instead of handling through kubectl?

If that does not work, you might need to just create a new docker image based on our image to achieve such task. We have several settings and commands in the docker-entrypoint.sh so we do not recommend manually kill the process and restart inside docker container.

As for include/exclude, since helm is using kube which uses docker under the hood, we currently are not able to fine-tune these advanced settings as our release of the docker image must include all the plugins in one package.

Thanks.