Question on plugin install and configdir

I am working on an es 1.7 install and am using the puppet module to define instances. When I run the plugin install for shield the config goes to /etc/elasticsearch/shield however the instance is /etc/elasticsearch/foo.

I am only able to make things work by putting a sym-link from /etc/elasticsearch/foo/shield to /etc/elasticsearch/shield. I have tried overriding the config settings but not sure if I am doing it right.

I feel like there are a few problems here:

  1. I'm telling the plugin to apply for a named instance foo but the config does not drop there. Reading https://github.com/elastic/elasticsearch/blob/master/core/src/main/java/org/elasticsearch/plugins/PluginManager.java#L263-L273 implies to me the manager at least thinks about it

  2. Are these config settings right to override the location of the configs:

    'shield.authc.realms.esusers.files.users': '/etc/elasticsearch/shield/users'
    'shield.authc.realms.esusers.files.roles': '/etc/elasticsearch/shield/roles.yml'
    'shield.authc.realms.esusers.files.role_mapping': '/etc/elasticsearch/shield/role_mapping.yml'

Section from hiera:

elasticsearch::plugins:
  "elasticsearch/license/latest":
    instances:
      - foo
  "elasticsearch/shield/latest":
    instances:
      - foo
  "elasticsearch/watcher/latest":
    instances:
      - foo
  "elasticsearch/marvel/latest":
    instances:
      - foo

Host is rhel 7. elasticsearch version is 1.7.2, jvm is openjdk 1.8

This is a known problem and I think the next iteration of our module handles this better.

@electrical can you comment further please :slight_smile: