We (Data Platform SRE and Search platform team) have had several issues with OpenSearch packaging since moving to OpenSearch 2 and 3. We need to decide on a packaging strategy.
- We started out using an OpenSearch 2.7 from a repo created WMF's Observability team. We had to abandon this due to the age of the package .
- Next, we switched to the OpenSearch project's latest upstream 2.x and 3.x packages. While this has kept us current in terms of features and security, there are some drawbacks here as well:
- Forced installation of security demo, this comment sums it up pretty well. We are optimistic that we can engage with the upstream and move this forward, but the Github issue has been around for awhile.
- Large number of plugins installed by default Per IRC conversation with @dcausse , the upstream package enables 26 plugins by default. For security and performance reasons, we want to be more intentional about which plugins we activate.
Currently, the Search Platform removes all plugins from its Docker image , but this is causing issues where we end up removing the plugins here, then re-adding them into our wmf-opensearch-search-plugins package. This is causing the package to fail installation, as the OpenSearch package already owns these packages:
dpkg: error processing archive /var/cache/apt/archives/wmf-opensearch-search-plugins_2.19.5+3~bullseye_all.deb (--unpack): trying to overwrite '/usr/share/opensearch/plugins/opensearch-knn/LICENSE.txt', which is also in package opensearch (2.19.5)
One tantalizing option is to use the opensearch-min tarball as a source of a Debian package.
However, this gets us farther away from upstream and I would argue that we should try to engage with upstream and try to make improvements there if possible. We could also just continue using the upstream package and disable the plugins we don't want.
Creating this ticket to:
- Discuss requirements with stakeholders
- Determine level of effort for disabling plugins with Puppet or some other automation
Install the opensearch-min tarball outside of containers and determine its viability as a source for a deb package. If it seems reasonable, we could submit a PR to build the deb upstream (no guarantee they would accept it though).declined, not needed
Once we have done the above, we should be able to decide on how to move forward:
- Keep using upstream packages, but disable the unwanted plugins with Puppet or some other automation
Use the opensearch-min tarball to build our own Debian packages and attempt to get these changes merged upstream.declined