Change kibana parameter to match Kibana standard

Hi

Can you change the config line so it matches the kibana standard. At the moment we have ‘readonlyrest_kbn.login_custom_logo’, but Kibana’s ones have a . in between each word. And when using the kibana docker will pass envirometn variables by converting _ to a .

So a docker enviroment of ELASTICSEARCH_PASSWORD becomes elasticsearch.password. So with this in mind READONLYREST_KBN_LOGIN_CUSTOM_LOGO will be come readonlyrest.kbn.login.custom.logo and, well it doesnt show the logo.

Thanks

We do have some legacy snake case within the camel case YAML settings, but I’m not sure this should be a show stopper for devops work.

Remember that in YAML:

readonlyrest_kbn.login_custom_logo: "xxxx"

is synonym of:

readonlyrest_kbn:
  login_custom_logo: "xxx"

Sounds like super broad replacement to me :confused: What tool does this?

Hi
This is a docker-compose file that uses the ELK docker image:

version: '3'
services:
  kibana:
    build: ./builds/kibana-readonlyrest
    environment:
      SERVER_HOST: 0.0.0.0
      ELASTICSEARCH_HOSTS: http://es01:9200
      ELASTICSEARCH_USERNAME: XXXXX
      ELASTICSEARCH_PASSWORD: XXXX
      SERVER_SSL_ENABLED: "true"
      SERVER_SSL_CERTIFICATE: /usr/share/kibana/config/certs/YYYY.crt
      SERVER_SSL_KEY: /usr/share/kibana/config/certs/YYYY.key
      ELASTICSEARCH_SSL_VERIFICATIONMODE: none
      XPACK_MONITORING_ENABLED: "true"
      XPACK_SECURITY_ENABLED: "false"
      READONLYREST_KBN_LOGIN_CUSTOM_LOGO: "https://ULR.logo.png"

The last line is the issue, as that converts to this, you can see the ROR line gets dropped:

/usr/share/kibana/bin/…/node/bin/node --no-warnings --max-http-header-size=65536 /usr/share/kibana/bin/…/src/cli --cpu.cgroup.path.override=/ --cpuacct.cgroup.path.override=/ --elasticsearch.hosts=http://es01:9200 --elasticsearch.password=XXXX --elasticsearch.ssl.verificationMode=none --elasticsearch.username=XXX --server.host=0.0.0.0 --server.ssl.certificate=/usr/share/kibana/config/certs/YYY.crt --server.ssl.enabled=true --server.ssl.key=/usr/share/kibana/config/certs/YYYY.key --xpack.monitoring.enabled=true --xpack.security.enabled=false

Hm I get it. Well maybe you could declare CUSTOM_LOGO: “xyz.png” and replace that value with a bash command in the Dockerfile?

Changing all the configuration key is a massively disruptive change for the product. We would need to change the plugin ID to eliminate the underscore in the “readonlyrest_kbn” prefix. And if we do, we can’t keep on reading legacy configuration files because the only configuration keys we can declare from the plugin are namespaced with the plugin ID.

Hi, can you explain what you mean by ‘replace that value with a a bash command in the Dockerfile’ ?

Thanks

I mean, instead of using the environment variables like you shown, maybe extend the official image instead and from inside your own Dockerfile, create a RUN line that tweaks the kibana.yml file using a bash command.