Giter Site home page Giter Site logo

Comments (14)

karmi avatar karmi commented on May 18, 2024

@Pneumatus Hi, verified this issue in Vagrant with a plugins databag. Somehow, somewhere, something evidently wipes out the plugin list loaded from the databag.

Can you use a different mechanism to specify plugins?, eg. role override or node attributes?

I'll keep this issue open to investigate it further.

from elasticsearch.

Pneumatus avatar Pneumatus commented on May 18, 2024

@karmi I've swapped back to using role overrides for now and look forward to a resolution. Cheers.

from elasticsearch.

karmi avatar karmi commented on May 18, 2024

@Pneumatus Cool. I'm wondering if exposing the plugins list via data bag is a good idea after all, because of higher chance of problems like this. It makes sense to me to support the elasticsearch/settings databag in addition to usual role/node/environment/etc attribute overrides, but would vote for slashing support for "extra" configuration databags. Anybody else any thoughts? //cc @vhyza

from elasticsearch.

Pneumatus avatar Pneumatus commented on May 18, 2024

@karmi For us at least, having the plugins configured in a databag means we can do all of our environment specific configuration via databags rather than being able to do some in databags and some in environment overrides.

Arguably we could do it all in environment overrides if we wanted (and not use databags at all) if we wanted to keep everything in the same place but I really don't like using environment overrides unless the attributes are for use universally across the environment (like, chef-server URL).

from elasticsearch.

karmi avatar karmi commented on May 18, 2024

Agreed. Talked about it to @vhyza, and the current situation is a bit too crazy. I think it makes sense to expose:

  1. Override attributes via standard Chef means (environment/role/node/etc)
  2. Allow using the elasticsearch/settings databag to save all config info pertaining to Elasticsearch -- plugins would obviously fit here nicely.
  3. Allow using the elasticsearch/aws and elasticsearch/data databags to save all config info for Amazon and persistence, making it symmetric to elasticsearch::aws and elasticsearch::data recipes
  4. Rename the elasticsearch::users databag to elasticsearch::proxy and allow setting any Nginx proxy related attribute there.

from elasticsearch.

NickPadilla avatar NickPadilla commented on May 18, 2024

@karmi I think i have found a bug in the plugins.rb recipe. It looks like it always just goes to next b/c of the aws check. Attempting to fix now, if I can get it all to work I'll create a pull request. I am using the plugins.json data bag and that is working well, couldn't get the plugins attribute to work in the settings.json - just FYI.

from elasticsearch.

NickPadilla avatar NickPadilla commented on May 18, 2024

additional FYI.. I am using chef 11.

from elasticsearch.

NickPadilla avatar NickPadilla commented on May 18, 2024

It seems to me that the aws recipe check shouldn't be there, since we should only install that plugin when the elasticsearch::aws recipe is used. If we find that plugin in the plugins.rb we should just ignore all together and not check for the recipe - since it doesn't really matter. Please let me know if this logic makes sense or if there is a use case for having this logic. Thanks!

from elasticsearch.

NickPadilla avatar NickPadilla commented on May 18, 2024

Okay, so found the issue here. And i now understand the need for the aws check, even though it could be done differently. Problem is how the specified plugins are added to the default.elasticsearch.plugins field. I'll create a pull request so that we can get this issue resolved.

from elasticsearch.

NickPadilla avatar NickPadilla commented on May 18, 2024

@karmi Hey Karel - I was hoping we could get this merged soon, or adjusted to work best for you guys. I'd like to not have to rely on my branch, which will not be merged from upstream consistently. Any help would be greatly appreciated, willing to help iron out any problems with the pull request. Thanks for your time/help!

from elasticsearch.

karmi avatar karmi commented on May 18, 2024

@NickPadilla Thanks for pinging me, left a note at #150 -- just notice above that in an ideal world where we have all the time we need, I'd refactor the support a bit, and move plugins into the elasticsearch/settings databag.

from elasticsearch.

NickPadilla avatar NickPadilla commented on May 18, 2024

Hey all, this should be fixed. If anyone would like to have the plugins specified in the elasticsearch/settings databag then it would be helpful to add that functionality. Right now it works to use the plugins databag.

from elasticsearch.

frizop avatar frizop commented on May 18, 2024

Could we have this added to the README.md? Right now I'm unable to get this to work because I don't understand the directory structure. ie:

$ cat data_bags/elasticsearch/plugins.json
{
  "id": "plugins",
  "elasticsearch": {
    "plugins": {
      "karmi/elasticsearch-paramedic": {},
      "mobz/elasticsearch-head": {},
      "lukas-vlcek/bigdesk": { "version": "2.0.0" },
      "elasticsearch-cloud-aws": { "version": "1.10.0" }
    }
  }
}

I'm chef solo with a role like the following:

  "recipe[elasticsearch]",
  "recipe[elasticsearch::plugins]"

And I'm able to make this work using a wrapper recipe and the following overrides, but I'd prefer if I could just throw a databag item in there and not have the extra overhead of another recipe:

override[:elasticsearch][:plugins] = {"mobz/elasticsearch-head" => ""}

etc etc.

from elasticsearch.

martinb3 avatar martinb3 commented on May 18, 2024

Hello! It sounds like you were able to get this working. In the meantime, we've re-written the cookbook using libraries that expose resources and providers, so you shouldn't see this problem on the newer version. Hope this helps!

from elasticsearch.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.