Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 1512053

Summary: [RFE] allow configuring kibana.yml
Product: OpenShift Container Platform Reporter: Rich Megginson <rmeggins>
Component: LoggingAssignee: Rich Megginson <rmeggins>
Status: CLOSED DUPLICATE QA Contact: Anping Li <anli>
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.7.0CC: aos-bugs, jcantril, pweil, rmeggins, sradco, tkatarki
Target Milestone: ---   
Target Release: 3.7.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-11-19 02:40:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Rich Megginson 2017-11-10 18:26:54 UTC
Description of problem:
There is no way to configure kibana (the settings in kibana.yml).

For example: customer is getting timeouts from Kibana because Elasticsearch is heavily loaded, and would like to increase the timeout.  There is no way to do that.  The kibana.yml is hardcoded in the image.  We can't even currently use a configmap because the kibana run.sh edits this in place, so it must be a file in the container file system.

https://www.elastic.co/guide/en/kibana/5.6/settings.html

The kibana image provided by elastic allows you to provide environment variables to use for settings:  https://www.elastic.co/guide/en/kibana/current/_configuring_kibana_on_docker.html

I suggest a 3 pronged approach:

1) Allow making settings via environment variables - use something like the approach above.  The kibana run.sh will convert the env vars into settings and edit kibana.yml to add those settings.

2) Allow the user to provide kibana.yml via a configmap.  e.g.

        volumeMounts:
        - mountPath: /etc/kibana/userconfig
          name: userconfig
      - configMap:
          defaultMode: 420
          name: logging-kibana
        name: userconfig

The kibana run.sh will be changed like this:

If there is a configmap for kibana.yml, it will be copied over the default one in /etc/kibana/kibana.yml

3) Expose the most useful settings in openshift-ansible openshift_logging_kibana - we don't have to expose everything, but certain settings like elasticsearch.requesttimeout would be useful.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Rich Megginson 2017-11-19 02:40:20 UTC

*** This bug has been marked as a duplicate of bug 1514749 ***