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.

Hi @zhujiaxi I have similar requirement. I want to have https disabled on the elastic search and for which i disabled it from the config section for elastic search on the helm chart( opendistro_security.disabled: true). But post that if i open the kibana console im not able to login. i tried default elasticsearch username password(elastic, changeme) and admin/admin but its not working. Can you please help me like what user we can use after disabling the opendistro security plugin to login or if we can altogether login without authentication.

Hi @akhileshjoshi2 you need to also remove the Kibaran Security Plugin before you can use Kibana since you disabled security in the backend already.

$KIBANA_ROOT/bin/kibana-plugin remove opendistroSecurityKibana

Then remove everything related to security plugin in kibana.yml.

Thanks.