---
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

- name: Install Kibana
  hosts: kibana
  become: true
  vars_files:
    - vars/variables.yml

  environment: "{{ deployment_environment_variables | default({}) }}"

  roles:
    - role: elastic_kibana

  post_tasks:
    - name: Create basic indexes
      uri:
        url: "http://127.0.0.1:5601/api/saved_objects/index-pattern/{{ item.name }}"
        method: POST
        body: "{{ item.index_options | to_json }}"
        status_code: 200,409
        body_format: json
        headers:
          Content-Type: "application/json"
          kbn-xsrf: "{{ inventory_hostname | to_uuid }}"
      with_items:
        - name: "*"
          index_options:
            attributes:
              title: "*"
              timeFieldName: "@timestamp"
        - name: "journalbeat-*"
          index_options:
            attributes:
              title: "journalbeat-*"
              timeFieldName: "@timestamp"
      register: kibana_indexes
      until: kibana_indexes is success
      retries: 6
      delay: 10
      run_once: true

    - name: Create basic indexes
      uri:
        url: "http://127.0.0.1:5601/api/kibana/settings/defaultIndex"
        method: POST
        body: "{{ item.index_options | to_json }}"
        status_code: 200
        body_format: json
        headers:
          Content-Type: "application/json"
          kbn-xsrf: "{{ inventory_hostname | to_uuid }}"
      with_items:
        - name: "*"
          index_options:
            value: "*"
      register: kibana_indexes
      until: kibana_indexes is success
      retries: 6
      delay: 10
      run_once: true

  tags:
    - server-install