---
# List of custom configuration directories.
# Each item is a dict containing the following items:
# src: Path to directory containing configuration file templates.
# dest: Path to directory in which generated files will be created.
# patterns: One or more file name patterns to match.
# enabled: Whether these files should be templated.
# ignore: Optional list of files to ignore. These files will not be copied to
#         the destination, and will not be removed from the destination, even
#         if disabled or unexpected.
kolla_openstack_custom_config:
  # Aodh.
  - src: "{{ kolla_extra_config_path }}/aodh"
    dest: "{{ kolla_node_custom_config_path }}/aodh"
    patterns: "*"
    enabled: "{{ kolla_enable_aodh }}"
  # Barbican.
  - src: "{{ kolla_extra_config_path }}/barbican"
    dest: "{{ kolla_node_custom_config_path }}/barbican"
    patterns: "*"
    enabled: "{{ kolla_enable_barbican }}"
  # Blazar.
  - src: "{{ kolla_extra_config_path }}/blazar"
    dest: "{{ kolla_node_custom_config_path }}/blazar"
    patterns: "*"
    enabled: "{{ kolla_enable_blazar }}"
  # Ceilometer.
  - src: "{{ kolla_extra_config_path }}/ceilometer"
    dest: "{{ kolla_node_custom_config_path }}/ceilometer"
    patterns: "*"
    enabled: "{{ kolla_enable_ceilometer }}"
  # Cinder.
  - src: "{{ kolla_extra_config_path }}/cinder"
    dest: "{{ kolla_node_custom_config_path }}/cinder"
    patterns: "*"
    enabled: "{{ kolla_enable_cinder }}"
  # CloudKitty.
  - src: "{{ kolla_extra_config_path }}/cloudkitty"
    dest: "{{ kolla_node_custom_config_path }}/cloudkitty"
    patterns: "*"
    enabled: "{{ kolla_enable_cloudkitty }}"
  # Designate.
  - src: "{{ kolla_extra_config_path }}/designate"
    dest: "{{ kolla_node_custom_config_path }}/designate"
    patterns: "*"
    enabled: "{{ kolla_enable_designate }}"
  # Fluentd filters.
  - src: "{{ kolla_extra_config_path }}//fluentd/filter"
    dest: "{{ kolla_node_custom_config_path }}/fluentd/filter"
    patterns: "*.conf"
    enabled: true
  # Fluentd inputs.
  - src: "{{ kolla_extra_config_path }}//fluentd/input"
    dest: "{{ kolla_node_custom_config_path }}/fluentd/input"
    patterns: "*.conf"
    enabled: true
  # Fluentd outputs.
  - src: "{{ kolla_extra_config_path }}/fluentd/output"
    dest: "{{ kolla_node_custom_config_path }}/fluentd/output"
    patterns: "*.conf"
    enabled: true
  # Glance.
  - src: "{{ kolla_extra_config_path }}/glance"
    dest: "{{ kolla_node_custom_config_path }}/glance"
    patterns: "*"
    enabled: "{{ kolla_enable_glance }}"
  # Gnocchi.
  - src: "{{ kolla_extra_config_path }}/gnocchi"
    dest: "{{ kolla_node_custom_config_path }}/gnocchi"
    patterns: "*"
    enabled: "{{ kolla_enable_gnocchi }}"
  # Grafana.
  - src: "{{ kolla_extra_config_path }}/grafana"
    dest: "{{ kolla_node_custom_config_path }}/grafana"
    patterns: "*"
    enabled: "{{ kolla_enable_grafana }}"
  # HAProxy.
  - src: "{{ kolla_extra_config_path }}/haproxy"
    dest: "{{ kolla_node_custom_config_path }}/haproxy"
    patterns: "*"
    enabled: "{{ kolla_enable_haproxy }}"
  - src: "{{ kolla_extra_config_path }}/haproxy-config"
    dest: "{{ kolla_node_custom_config_path }}/haproxy-config"
    patterns: "*"
    enabled: "{{ kolla_enable_haproxy }}"
  # Heat.
  - src: "{{ kolla_extra_config_path }}/heat"
    dest: "{{ kolla_node_custom_config_path }}/heat"
    patterns: "*"
    enabled: "{{ kolla_enable_heat }}"
  # Horizon.
  - src: "{{ kolla_extra_config_path }}/horizon"
    dest: "{{ kolla_node_custom_config_path }}/horizon"
    patterns: "*"
    enabled: "{{ kolla_enable_horizon }}"
    untemplated_dirs:
    # Do not attempt to template themes directory.
      - "themes"
  # InfluxDB.
  - src: "{{ kolla_extra_config_path }}/"
    dest: "{{ kolla_node_custom_config_path }}/"
    patterns: "influx*"
    enabled: "{{ kolla_enable_influxdb }}"
  # Ironic.
  - src: "{{ kolla_extra_config_path }}/ironic"
    dest: "{{ kolla_node_custom_config_path }}/ironic"
    patterns: "*"
    enabled: "{{ kolla_enable_ironic }}"
    ignore:
      # These are templated by kayobe, so don't remove them.
      - ironic-agent.initramfs
      - ironic-agent.kernel
  # Keystone.
  - src: "{{ kolla_extra_config_path }}/keystone"
    dest: "{{ kolla_node_custom_config_path }}/keystone"
    patterns: "*"
    enabled: "{{ kolla_enable_keystone }}"
  # Keepalived.
  - src: "{{ kolla_extra_config_path }}/keepalived"
    dest: "{{ kolla_node_custom_config_path }}/keepalived"
    patterns: "*"
    enabled: "{{ kolla_enable_haproxy }}"
  # Magnum.
  - src: "{{ kolla_extra_config_path }}/magnum"
    dest: "{{ kolla_node_custom_config_path }}/magnum"
    patterns: "*"
    enabled: "{{ kolla_enable_magnum }}"
  # Manila.
  - src: "{{ kolla_extra_config_path }}/manila"
    dest: "{{ kolla_node_custom_config_path }}/manila"
    patterns: "*"
    enabled: "{{ kolla_enable_manila }}"
  # MariaDB.
  - src: "{{ kolla_extra_config_path }}/mariadb"
    dest: "{{ kolla_node_custom_config_path }}/mariadb"
    patterns: "*"
    enabled: "{{ kolla_enable_mariadb }}"
  # Masakari.
  - src: "{{ kolla_extra_config_path }}/masakari"
    dest: "{{ kolla_node_custom_config_path }}/masakari"
    patterns: "*"
    enabled: "{{ kolla_enable_masakari }}"
  # Murano.
  - src: "{{ kolla_extra_config_path }}/murano"
    dest: "{{ kolla_node_custom_config_path }}/murano"
    patterns: "*"
    enabled: "{{ kolla_enable_murano }}"
  # Neutron.
  - src: "{{ kolla_extra_config_path }}/neutron"
    dest: "{{ kolla_node_custom_config_path }}/neutron"
    patterns: "*"
    enabled: "{{ kolla_enable_neutron }}"
    ignore:
      # These are templated by kayobe, so don't remove them.
      - ml2_conf.ini
  # Nova.
  - src: "{{ kolla_extra_config_path }}/nova"
    dest: "{{ kolla_node_custom_config_path }}/nova"
    patterns: "*"
    enabled: "{{ kolla_enable_nova }}"
  - src: "{{ kolla_extra_config_path }}/nova_compute"
    dest: "{{ kolla_node_custom_config_path }}/nova_compute"
    patterns: "*"
    enabled: "{{ kolla_enable_nova }}"
  - src: "{{ kolla_nova_libvirt_certificates_src }}"
    dest: "{{ kolla_node_custom_config_path }}/nova/nova-libvirt"
    patterns:
      - clientcert.pem
      - clientkey.pem
      - cacert.pem
    enabled: "{{ kolla_enable_nova | bool and kolla_libvirt_tls | bool }}"
    untemplated:
      - clientcert.pem
      - clientkey.pem
      - cacert.pem
  - src: "{{ kolla_nova_libvirt_certificates_src }}"
    dest: "{{ kolla_node_custom_config_path }}/nova/nova-libvirt"
    patterns:
      - servercert.pem
      - serverkey.pem
    enabled: "{{ kolla_enable_nova | bool and kolla_enable_nova_libvirt_container | bool and kolla_libvirt_tls | bool }}"
    untemplated:
      - servercert.pem
      - serverkey.pem
  # Octavia.
  - src: "{{ kolla_extra_config_path }}/octavia"
    dest: "{{ kolla_node_custom_config_path }}/octavia"
    patterns: "*"
    enabled: "{{ kolla_enable_octavia }}"
  # OpenSearch.
  - src: "{{ kolla_extra_config_path }}/opensearch"
    dest: "{{ kolla_node_custom_config_path }}/opensearch"
    patterns: "*"
    enabled: "{{ kolla_enable_opensearch }}"
  # Placement
  - src: "{{ kolla_extra_config_path }}/placement"
    dest: "{{ kolla_node_custom_config_path }}/placement"
    patterns: "*"
    enabled: "{{ kolla_enable_placement }}"
  # Prometheus config
  - src: "{{ kolla_extra_config_path }}/prometheus"
    dest: "{{ kolla_node_custom_config_path }}/prometheus"
    patterns: "*"
    enabled: "{{ kolla_enable_prometheus }}"
  # Sahara.
  - src: "{{ kolla_extra_config_path }}/sahara"
    dest: "{{ kolla_node_custom_config_path }}/sahara"
    patterns: "*"
    enabled: "{{ kolla_enable_sahara }}"
  # Swift.
  - src: "{{ kolla_extra_config_path }}/swift"
    dest: "{{ kolla_node_custom_config_path }}/swift"
    patterns: "*"
    enabled: "{{ kolla_enable_swift }}"
    untemplated:
      # These are binary files, and should not be templated.
      - account.builder
      - account.ring.gz
      - container.builder
      - container.ring.gz
      - object.builder
      - object.ring.gz
