Comments (14)
@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.
@karmi I've swapped back to using role overrides for now and look forward to a resolution. Cheers.
from elasticsearch.
@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.
@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.
Agreed. Talked about it to @vhyza, and the current situation is a bit too crazy. I think it makes sense to expose:
- Override attributes via standard Chef means (environment/role/node/etc)
- Allow using the
elasticsearch/settings
databag to save all config info pertaining to Elasticsearch -- plugins would obviously fit here nicely. - Allow using the
elasticsearch/aws
andelasticsearch/data
databags to save all config info for Amazon and persistence, making it symmetric toelasticsearch::aws
andelasticsearch::data
recipes - Rename the
elasticsearch::users
databag toelasticsearch::proxy
and allow setting any Nginx proxy related attribute there.
from elasticsearch.
@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.
additional FYI.. I am using chef 11.
from elasticsearch.
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.
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.
@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.
@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.
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.
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.
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)
- Switch from Foodcritic to Cookstyle
- Systemd does not start elasticsearch with Type=notify HOT 5
- Log4j ESJsonLayout not available in ES 6.x
- Support for 6.8.10
- elasticsearch_install don't converge in idempotency state HOT 2
- cluster.initial_master_nodes HOT 3
- deprecated options jvm.options file HOT 3
- Provide support for elasticsearch-oss and custom package name install
- node.roles attribute cannot be set through configuration HOT 1
- allow package to manage it's own init.d/systemd scripts HOT 1
- plugin install fails cause of input dialog/tty
- trigger plugin remove/install when upgrading HOT 2
- Is this cookbook still maintained? HOT 2
- Entire cookbook stopped working with HOT 2
- Stop using Travis CI
- [Ubuntu 20.04] ElasticSearch_install 7.5.1 HOT 1
- Any way to override yum repo in attributes?
- support for ES 8.x? HOT 2
- Dependency Dashboard
- Allow configuration of systemd service Restart directive
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elasticsearch.