Change kibana parameter to match Kibana standard


(Paul) #1

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


(Simone Scarduzio) #2

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?


(Paul) #3

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


(Simone Scarduzio) #4

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.


(Paul) #5

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

Thanks


(Simone Scarduzio) #6

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.