--- project_name: "cloudkitty" cloudkitty_services: cloudkitty-api: container_name: "cloudkitty_api" group: "cloudkitty-api" image: "{{ cloudkitty_api_image_full }}" enabled: True volumes: "{{ cloudkitty_api_default_volumes + cloudkitty_api_extra_volumes }}" dimensions: "{{ cloudkitty_api_dimensions }}" healthcheck: "{{ cloudkitty_api_healthcheck }}" haproxy: cloudkitty_api: enabled: "{{ enable_cloudkitty }}" mode: "http" external: false port: "{{ cloudkitty_api_port }}" cloudkitty_api_external: enabled: "{{ enable_cloudkitty }}" mode: "http" external: true port: "{{ cloudkitty_api_port }}" cloudkitty-processor: container_name: "cloudkitty_processor" group: "cloudkitty-processor" image: "{{ cloudkitty_processor_image_full }}" enabled: True volumes: "{{ cloudkitty_processor_default_volumes + cloudkitty_processor_extra_volumes }}" dimensions: "{{ cloudkitty_processor_dimensions }}" healthcheck: "{{ cloudkitty_processor_healthcheck }}" #################### # Database #################### cloudkitty_database_name: "cloudkitty" cloudkitty_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cloudkitty{% endif %}" cloudkitty_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}" #################### # Docker #################### cloudkitty_install_type: "{{ kolla_install_type }}" cloudkitty_tag: "{{ openstack_tag }}" cloudkitty_api_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ cloudkitty_install_type }}-cloudkitty-api" cloudkitty_api_tag: "{{ cloudkitty_tag }}" cloudkitty_api_image_full: "{{ cloudkitty_api_image }}:{{ cloudkitty_api_tag }}" cloudkitty_processor_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ cloudkitty_install_type }}-cloudkitty-processor" cloudkitty_processor_tag: "{{ cloudkitty_tag }}" cloudkitty_processor_image_full: "{{ cloudkitty_processor_image }}:{{ cloudkitty_processor_tag }}" cloudkitty_processor_dimensions: "{{ default_container_dimensions }}" cloudkitty_api_dimensions: "{{ default_container_dimensions }}" cloudkitty_api_default_volumes: - "{{ node_config_directory }}/cloudkitty-api/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}" - "kolla_logs:/var/log/kolla/" - "{{ kolla_dev_repos_directory ~ '/cloudkitty/cloudkitty:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/cloudkitty' if cloudkitty_dev_mode | bool else '' }}" cloudkitty_processor_default_volumes: - "{{ node_config_directory }}/cloudkitty-processor/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}" - "kolla_logs:/var/log/kolla/" - "{{ kolla_dev_repos_directory ~ '/cloudkitty/cloudkitty:/var/lib/kolla/venv/lib/python' ~ distro_python_version ~ '/site-packages/cloudkitty' if cloudkitty_dev_mode | bool else '' }}" cloudkitty_api_enable_healthchecks: "{{ enable_container_healthchecks }}" cloudkitty_api_healthcheck_interval: "{{ default_container_healthcheck_interval }}" cloudkitty_api_healthcheck_retries: "{{ default_container_healthcheck_retries }}" cloudkitty_api_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}" cloudkitty_api_healthcheck_test: ["CMD-SHELL", "healthcheck_curl http://{{ api_interface_address | put_address_in_context('url') }}:{{ cloudkitty_api_port}}"] cloudkitty_api_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}" cloudkitty_api_healthcheck: interval: "{{ cloudkitty_api_healthcheck_interval }}" retries: "{{ cloudkitty_api_healthcheck_retries }}" start_period: "{{ cloudkitty_api_healthcheck_start_period }}" test: "{% if cloudkitty_api_enable_healthchecks | bool %}{{ cloudkitty_api_healthcheck_test }}{% else %}NONE{% endif %}" timeout: "{{ cloudkitty_api_healthcheck_timeout }}" cloudkitty_processor_enable_healthchecks: "{{ enable_container_healthchecks }}" cloudkitty_processor_healthcheck_interval: "{{ default_container_healthcheck_interval }}" cloudkitty_processor_healthcheck_retries: "{{ default_container_healthcheck_retries }}" cloudkitty_processor_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}" cloudkitty_processor_healthcheck_test: ["CMD-SHELL", "healthcheck_port cloudkitty-processor {{ om_rpc_port }}"] cloudkitty_processor_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}" cloudkitty_processor_healthcheck: interval: "{{ cloudkitty_processor_healthcheck_interval }}" retries: "{{ cloudkitty_processor_healthcheck_retries }}" start_period: "{{ cloudkitty_processor_healthcheck_start_period }}" test: "{% if cloudkitty_processor_enable_healthchecks | bool %}{{ cloudkitty_processor_healthcheck_test }}{% else %}NONE{% endif %}" timeout: "{{ cloudkitty_processor_healthcheck_timeout }}" cloudkitty_extra_volumes: "{{ default_extra_volumes }}" cloudkitty_processor_extra_volumes: "{{ cloudkitty_extra_volumes }}" cloudkitty_api_extra_volumes: "{{ cloudkitty_extra_volumes }}" #################### # OpenStack #################### cloudkitty_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ cloudkitty_api_port }}" cloudkitty_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ cloudkitty_api_port }}" cloudkitty_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ cloudkitty_api_port }}" cloudkitty_logging_debug: "{{ openstack_logging_debug }}" cloudkitty_keystone_user: "cloudkitty" openstack_cloudkitty_auth: "{{ openstack_auth }}" #################### # Cloudkitty #################### cloudkitty_openstack_keystone_default_role: "rating" #################### # Kolla #################### cloudkitty_git_repository: "{{ kolla_dev_repos_git }}/{{ project_name }}" cloudkitty_dev_repos_pull: "{{ kolla_dev_repos_pull }}" cloudkitty_dev_mode: "{{ kolla_dev_mode }}" cloudkitty_source_version: "{{ kolla_source_version }}" cloudkitty_custom_metrics_yaml_file: "metrics.yml" #################### # Storage backend #################### # Valid options are 'sqlalchemy', 'influxdb' or 'elasticsearch'. The default value is # 'influxdb', which matches the default in Cloudkitty since the Stein release. # When the backend is "influxdb" or "elasticsearch", we also enable the required service # accordingly. # Additionally, we use cloudkitty API v2 for any backend but sqlalchemy. cloudkitty_storage_backend: "influxdb" # InfluxDB retention policy to use (defaults to autogen). # cloudkitty_influxdb_retention_policy: "autogen" # Set to true to use SSL for InfluxDB connections. # cloudkitty_influxdb_use_ssl: false # Path of the CA certificate to trust for HTTPS connections. # cloudkitty_influxdb_cafile: "{{ openstack_cacert }}" # Set to true to authorize insecure HTTPS connections to InfluxDB. # This means, HTTPS connections without validating the certificate used by InfluxDB # cloudkitty_influxdb_insecure_connections: false cloudkitty_influxdb_name: "cloudkitty" # Set the elasticsearch index name. cloudkitty_elasticsearch_index_name: "cloudkitty" # Set the elasticsearch host URL. cloudkitty_elasticsearch_url: "{{ internal_protocol }}://{{ elasticsearch_address }}:{{ elasticsearch_port }}" # Path of the CA certificate to trust for HTTPS connections. # cloudkitty_elasticsearch_cafile: "{{ openstack_cacert }}" # Set to true to authorize insecure HTTPS connections to Elasticsearch. # This means, HTTPS connections without validating the certificate used by elasticsearch cloudkitty_elasticsearch_insecure_connections: false #################### # Collector #################### # Valid options are 'gnocchi', 'monasca' or 'prometheus'. The default value is # 'gnocchi', which matches the default in Cloudkitty. cloudkitty_collector_backend: "gnocchi" # Set Monasca interface used for keystone URL discovery. cloudkitty_monasca_interface: "internal" # Set prometheus collector URL. cloudkitty_prometheus_url: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ prometheus_port }}" # Path of the CA certificate to trust for HTTPS connections. # cloudkitty_prometheus_cafile: "{{ openstack_cacert }}" # Set to true to authorize insecure HTTPS connections to Prometheus. # This means, HTTPS connections without validating the certificate used by prometheus. cloudkitty_prometheus_insecure_connections: false #################### # Keystone #################### cloudkitty_ks_services: - name: "cloudkitty" type: "rating" description: "OpenStack Rating" endpoints: - {'interface': 'admin', 'url': '{{ cloudkitty_admin_endpoint }}'} - {'interface': 'internal', 'url': '{{ cloudkitty_internal_endpoint }}'} - {'interface': 'public', 'url': '{{ cloudkitty_public_endpoint }}'} cloudkitty_ks_users: - project: "service" user: "{{ cloudkitty_keystone_user }}" password: "{{ cloudkitty_keystone_password }}" role: "admin" cloudkitty_ks_roles: - "{{ cloudkitty_openstack_keystone_default_role }}"