heat_template_version: rocky

description: >
  Template for nova-api's logging to files

parameters:
  ContainerNovaApiImage:
    description: image
    type: string
  DeployIdentifier:
    default: ''
    type: string
    description: >
      Setting this to a unique value will re-run any deployment tasks which
      perform configuration on a Heat stack-update.

outputs:
  config_settings:
    description: Extra hieradata needed to log to files in the host.
    value: null
  volumes:
    description: The volumes needed to log to files in the host.
    value: &nova_api_volumes
      - /var/log/containers/nova:/var/log/nova:z
      - /var/log/containers/httpd/nova-api:/var/log/httpd:z
  docker_config:
    description: Extra containers needed for logging to files in the host.
    value:
      step_2:
        # db sync runs before permissions set by kolla_config
        nova_api_init_logs:
          image: {get_param: ContainerNovaApiImage}
          net: none
          privileged: false
          user: root
          volumes: *nova_api_volumes
          command: ['/bin/bash', '-c', 'chown -R nova:nova /var/log/nova']
          environment:
            # NOTE: this should force this container to re-run on each
            # update (scale-out, etc.)
            TRIPLEO_DEPLOY_IDENTIFIER: {get_param: DeployIdentifier}
  host_prep_tasks:
    description: Extra ansible tasks needed for logging to files in the host.
    value:
      - name: create persistent directories
        file:
          path: "{{ item.path }}"
          setype: "{{ item.setype }}"
          state: directory
        with_items:
          - { 'path': /var/log/containers/nova, 'setype': svirt_sandbox_file_t, 'mode': '0750' }
          - { 'path': /var/log/containers/httpd/nova-api, 'setype': svirt_sandbox_file_t, 'mode': '0750' }
