Implement IPv6 support in the control plane
Introduce kolla_address filter. Introduce put_address_in_context filter. Add AF config to vars. Address contexts: - raw (default): <ADDR> - memcache: inet6:[<ADDR>] - url: [<ADDR>] Other changes: globals.yml - mention just IP in comment prechecks/port_checks (api_intf) - kolla_address handles validation 3x interface conditional (swift configs: replication/storage) 2x interface variable definition with hostname (haproxy listens; api intf) 1x interface variable definition with hostname with bifrost exclusion (baremetal pre-install /etc/hosts; api intf) neutron's ml2 'overlay_ip_version' set to 6 for IPv6 on tunnel network basic multinode source CI job for IPv6 prechecks for rabbitmq and qdrouterd use proper NSS database now MariaDB Galera Cluster WSREP SST mariabackup workaround (socat and IPv6) Ceph naming workaround in CI TODO: probably needs documenting RabbitMQ IPv6-only proto_dist Ceph ms switch to IPv6 mode Remove neutron-server ml2_type_vxlan/vxlan_group setting as it is not used (let's avoid any confusion) and could break setups without proper multicast routing if it started working (also IPv4-only) haproxy upgrade checks for slaves based on ipv6 addresses TODO: ovs-dpdk grabs ipv4 network address (w/ prefix len / submask) not supported, invalid by default because neutron_external has no address No idea whether ovs-dpdk works at all atm. ml2 for xenapi Xen is not supported too well. This would require working with XenAPI facts. rp_filter setting This would require meddling with ip6tables (there is no sysctl param). By default nothing is dropped. Unlikely we really need it. ironic dnsmasq is configured IPv4-only dnsmasq needs DHCPv6 options and testing in vivo. KNOWN ISSUES (beyond us): One cannot use IPv6 address to reference the image for docker like we currently do, see: https://github.com/moby/moby/issues/39033 (docker_registry; docker API 400 - invalid reference format) workaround: use hostname/FQDN RabbitMQ may fail to bind to IPv6 if hostname resolves also to IPv4. This is due to old RabbitMQ versions available in images. IPv4 is preferred by default and may fail in the IPv6-only scenario. This should be no problem in real life as IPv6-only is indeed IPv6-only. Also, when new RabbitMQ (3.7.16/3.8+) makes it into images, this will no longer be relevant as we supply all the necessary config. See: https://github.com/rabbitmq/rabbitmq-server/pull/1982 For reliable runs, at least Ansible 2.8 is required (2.8.5 confirmed to work well). Older Ansible versions are known to miss IPv6 addresses in interface facts. This may affect redeploys, reconfigures and upgrades which run after VIP address is assigned. See: https://github.com/ansible/ansible/issues/63227 Bifrost Train does not support IPv6 deployments. See: https://storyboard.openstack.org/#!/story/2006689 Change-Id: Ia34e6916ea4f99e9522cd2ddde03a0a4776f7e2c Implements: blueprint ipv6-control-plane Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
This commit is contained in:
parent
ba228529b1
commit
bc053c09c1
28
ansible/filter_plugins/address.py
Normal file
28
ansible/filter_plugins/address.py
Normal file
@ -0,0 +1,28 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright 2019 Radosław Piliszek (yoctozepto)
|
||||
#
|
||||
# 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.
|
||||
|
||||
from kolla_ansible.kolla_address import kolla_address
|
||||
from kolla_ansible.put_address_in_context import put_address_in_context
|
||||
|
||||
|
||||
class FilterModule(object):
|
||||
"""IP address filters"""
|
||||
|
||||
def filters(self):
|
||||
return {
|
||||
'kolla_address': kolla_address,
|
||||
'put_address_in_context': put_address_in_context,
|
||||
}
|
@ -64,10 +64,10 @@ container_proxy:
|
||||
|
||||
# By default, Kolla API services bind to the network address assigned
|
||||
# to the api_interface. Allow the bind address to be an override.
|
||||
api_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
|
||||
api_interface_address: "{{ 'api' | kolla_address }}"
|
||||
|
||||
# This is used to get the ip corresponding to the storage_interface.
|
||||
storage_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}"
|
||||
storage_interface_address: "{{ 'storage' | kolla_address }}"
|
||||
|
||||
################
|
||||
# Chrony options
|
||||
@ -109,9 +109,9 @@ docker_restart_policy_retry: "10"
|
||||
|
||||
# Extra docker options for Zun
|
||||
docker_configure_for_zun: "no"
|
||||
docker_zun_options: -H tcp://{{ api_interface_address }}:2375
|
||||
docker_zun_options: -H tcp://{{ api_interface_address | put_address_in_context('url') }}:2375
|
||||
docker_zun_config:
|
||||
cluster-store: etcd://{% for host in groups.get('etcd', []) %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ hostvars[host]['etcd_client_port'] }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
cluster-store: etcd://{% for host in groups.get('etcd', []) %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ hostvars[host]['etcd_client_port'] }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
# Timeout after Docker sends SIGTERM before sending SIGKILL.
|
||||
docker_graceful_timeout: 60
|
||||
@ -165,7 +165,7 @@ om_rpc_port: "{{ rabbitmq_port }}"
|
||||
om_rpc_group: "rabbitmq"
|
||||
om_rpc_vhost: "/"
|
||||
|
||||
rpc_transport_url: "{{ om_rpc_transport }}://{% for host in groups[om_rpc_group] %}{{ om_rpc_user }}:{{ om_rpc_password }}@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ om_rpc_port }}{% if not loop.last %},{% endif %}{% endfor %}/{{ om_rpc_vhost }}"
|
||||
rpc_transport_url: "{{ om_rpc_transport }}://{% for host in groups[om_rpc_group] %}{{ om_rpc_user }}:{{ om_rpc_password }}@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ om_rpc_port }}{% if not loop.last %},{% endif %}{% endfor %}/{{ om_rpc_vhost }}"
|
||||
|
||||
# oslo.messaging notify transport valid options are [ rabbit ]
|
||||
om_notify_transport: "rabbit"
|
||||
@ -175,7 +175,7 @@ om_notify_port: "{{ rabbitmq_port }}"
|
||||
om_notify_group: "rabbitmq"
|
||||
om_notify_vhost: "/"
|
||||
|
||||
notify_transport_url: "{{ om_notify_transport }}://{% for host in groups[om_notify_group] %}{{ om_notify_user }}:{{ om_notify_password }}@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ om_notify_port }}{% if not loop.last %},{% endif %}{% endfor %}/{{ om_notify_vhost }}"
|
||||
notify_transport_url: "{{ om_notify_transport }}://{% for host in groups[om_notify_group] %}{{ om_notify_user }}:{{ om_notify_password }}@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ om_notify_port }}{% if not loop.last %},{% endif %}{% endfor %}/{{ om_notify_vhost }}"
|
||||
|
||||
####################
|
||||
# Networking options
|
||||
@ -193,9 +193,24 @@ tunnel_interface: "{{ network_interface }}"
|
||||
octavia_network_interface: "{{ api_interface }}"
|
||||
bifrost_network_interface: "{{ network_interface }}"
|
||||
dns_interface: "{{ network_interface }}"
|
||||
migration_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + migration_interface]['ipv4']['address'] }}"
|
||||
tunnel_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + tunnel_interface]['ipv4']['address'] }}"
|
||||
octavia_network_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + octavia_network_interface]['ipv4']['address'] }}"
|
||||
|
||||
# Configure the address family (AF) per network.
|
||||
# Valid options are [ ipv4, ipv6 ]
|
||||
network_address_family: "ipv4"
|
||||
api_address_family: "{{ network_address_family }}"
|
||||
storage_address_family: "{{ network_address_family }}"
|
||||
cluster_address_family: "{{ network_address_family }}"
|
||||
swift_storage_address_family: "{{ storage_address_family }}"
|
||||
swift_replication_address_family: "{{ swift_storage_address_family }}"
|
||||
migration_address_family: "{{ network_address_family }}"
|
||||
tunnel_address_family: "{{ network_address_family }}"
|
||||
octavia_network_address_family: "{{ api_address_family }}"
|
||||
bifrost_network_address_family: "{{ network_address_family }}"
|
||||
dns_address_family: "{{ network_address_family }}"
|
||||
|
||||
migration_interface_address: "{{ 'migration' | kolla_address }}"
|
||||
tunnel_interface_address: "{{ 'tunnel' | kolla_address }}"
|
||||
octavia_network_interface_address: "{{ 'octavia_network' | kolla_address }}"
|
||||
|
||||
# Valid options are [ openvswitch, linuxbridge, vmware_nsxv, vmware_nsxv3, vmware_dvs, opendaylight ]
|
||||
neutron_plugin_agent: "openvswitch"
|
||||
@ -715,14 +730,14 @@ enable_kibana: "{{ 'yes' if enable_central_logging | bool or enable_monasca | bo
|
||||
####################
|
||||
# Redis options
|
||||
####################
|
||||
redis_connection_string: "redis://{% for host in groups['redis'] %}{% if host == groups['redis'][0] %}admin:{{ redis_master_password }}@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ redis_sentinel_port }}?sentinel=kolla{% else %}&sentinel_fallback={{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ redis_sentinel_port }}{% endif %}{% endfor %}&db=0&socket_timeout=60&retry_on_timeout=yes"
|
||||
redis_connection_string: "redis://{% for host in groups['redis'] %}{% if host == groups['redis'][0] %}admin:{{ redis_master_password }}@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ redis_sentinel_port }}?sentinel=kolla{% else %}&sentinel_fallback={{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ redis_sentinel_port }}{% endif %}{% endfor %}&db=0&socket_timeout=60&retry_on_timeout=yes"
|
||||
|
||||
####################
|
||||
# Osprofiler options
|
||||
####################
|
||||
# valid values: ["elasticsearch", "redis"]
|
||||
osprofiler_backend: "elasticsearch"
|
||||
elasticsearch_connection_string: "elasticsearch://{{ elasticsearch_address }}:{{ elasticsearch_port }}"
|
||||
elasticsearch_connection_string: "elasticsearch://{{ elasticsearch_address | put_address_in_context('url') }}:{{ elasticsearch_port }}"
|
||||
osprofiler_backend_connection_string: "{{ redis_connection_string if osprofiler_backend == 'redis' else elasticsearch_connection_string }}"
|
||||
|
||||
####################
|
||||
@ -762,9 +777,9 @@ kibana_log_prefix: "flog"
|
||||
####################
|
||||
keystone_internal_fqdn: "{{ kolla_internal_fqdn }}"
|
||||
keystone_external_fqdn: "{{ kolla_external_fqdn }}"
|
||||
keystone_admin_url: "{{ admin_protocol }}://{{ keystone_internal_fqdn }}:{{ keystone_admin_port }}"
|
||||
keystone_internal_url: "{{ internal_protocol }}://{{ keystone_internal_fqdn }}:{{ keystone_public_port }}"
|
||||
keystone_public_url: "{{ public_protocol }}://{{ keystone_external_fqdn }}:{{ keystone_public_port }}"
|
||||
keystone_admin_url: "{{ admin_protocol }}://{{ keystone_internal_fqdn | put_address_in_context('url') }}:{{ keystone_admin_port }}"
|
||||
keystone_internal_url: "{{ internal_protocol }}://{{ keystone_internal_fqdn | put_address_in_context('url') }}:{{ keystone_public_port }}"
|
||||
keystone_public_url: "{{ public_protocol }}://{{ keystone_external_fqdn | put_address_in_context('url') }}:{{ keystone_public_port }}"
|
||||
|
||||
keystone_admin_user: "admin"
|
||||
keystone_admin_project: "admin"
|
||||
|
@ -58,7 +58,7 @@ aodh_evaluation_interval: 300
|
||||
####################
|
||||
aodh_database_name: "aodh"
|
||||
aodh_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}aodh{% endif %}"
|
||||
aodh_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
aodh_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
####################
|
||||
# Notification
|
||||
@ -129,9 +129,9 @@ aodh_notifier_extra_volumes: "{{ aodh_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
aodh_admin_endpoint: "{{ admin_protocol }}://{{ aodh_internal_fqdn }}:{{ aodh_api_port }}"
|
||||
aodh_internal_endpoint: "{{ internal_protocol }}://{{ aodh_internal_fqdn }}:{{ aodh_api_port }}"
|
||||
aodh_public_endpoint: "{{ public_protocol }}://{{ aodh_external_fqdn }}:{{ aodh_api_port }}"
|
||||
aodh_admin_endpoint: "{{ admin_protocol }}://{{ aodh_internal_fqdn | put_address_in_context('url') }}:{{ aodh_api_port }}"
|
||||
aodh_internal_endpoint: "{{ internal_protocol }}://{{ aodh_internal_fqdn | put_address_in_context('url') }}:{{ aodh_api_port }}"
|
||||
aodh_public_endpoint: "{{ public_protocol }}://{{ aodh_external_fqdn | put_address_in_context('url') }}:{{ aodh_api_port }}"
|
||||
|
||||
aodh_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -16,7 +16,7 @@ connection = mysql+pymysql://{{ aodh_database_user }}:{{ aodh_database_password
|
||||
[keystone_authtoken]
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
www_authenticate_uri = {{ keystone_internal_url }}
|
||||
project_domain_name = {{ default_project_domain_name }}
|
||||
project_name = service
|
||||
|
@ -4,7 +4,7 @@
|
||||
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
||||
{% endif %}
|
||||
{% set binary_path = '/usr/bin' if aodh_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
||||
Listen {{ api_interface_address }}:{{ aodh_api_listen_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ aodh_api_listen_port }}
|
||||
|
||||
ServerSignature Off
|
||||
ServerTokens Prod
|
||||
|
@ -43,7 +43,7 @@ barbican_services:
|
||||
####################
|
||||
barbican_database_name: "barbican"
|
||||
barbican_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}barbican{% endif %}"
|
||||
barbican_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
barbican_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -93,9 +93,9 @@ barbican_worker_extra_volumes: "{{ barbican_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
barbican_admin_endpoint: "{{ admin_protocol }}://{{ barbican_internal_fqdn }}:{{ barbican_api_port }}"
|
||||
barbican_internal_endpoint: "{{ internal_protocol }}://{{ barbican_internal_fqdn }}:{{ barbican_api_port }}"
|
||||
barbican_public_endpoint: "{{ public_protocol }}://{{ barbican_external_fqdn }}:{{ barbican_api_port }}"
|
||||
barbican_admin_endpoint: "{{ admin_protocol }}://{{ barbican_internal_fqdn | put_address_in_context('url') }}:{{ barbican_api_port }}"
|
||||
barbican_internal_endpoint: "{{ internal_protocol }}://{{ barbican_internal_fqdn | put_address_in_context('url') }}:{{ barbican_api_port }}"
|
||||
barbican_public_endpoint: "{{ public_protocol }}://{{ barbican_external_fqdn | put_address_in_context('url') }}:{{ barbican_api_port }}"
|
||||
|
||||
barbican_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
[uwsgi]
|
||||
socket = {{ api_interface_address }}:{{ barbican_api_listen_port }}
|
||||
socket = {{ api_interface_address | put_address_in_context('url') }}:{{ barbican_api_listen_port }}
|
||||
protocol = http
|
||||
processes = {{ openstack_service_workers }}
|
||||
lazy = true
|
||||
|
@ -4,7 +4,7 @@ log_dir = /var/log/kolla/barbican
|
||||
|
||||
bind_port = {{ barbican_api_listen_port }}
|
||||
bind_host = {{ api_interface_address }}
|
||||
host_href = {{ public_protocol }}://{{ barbican_external_fqdn }}:{{ barbican_api_port }}
|
||||
host_href = {{ public_protocol }}://{{ barbican_external_fqdn | put_address_in_context('url') }}:{{ barbican_api_port }}
|
||||
backlog = 4096
|
||||
max_allowed_secret_in_bytes = 10000
|
||||
max_allowed_request_size_in_bytes = 1000000
|
||||
@ -62,7 +62,7 @@ auth_type = password
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[oslo_messaging_notifications]
|
||||
transport_url = {{ notify_transport_url }}
|
||||
|
@ -37,7 +37,7 @@
|
||||
{% set api_interface = hostvars[host]['api_interface'] %}
|
||||
{% if host not in groups['bifrost'] or 'ansible_' + api_interface in hostvars[host] %}
|
||||
{% set hostnames = [hostvars[host]['ansible_nodename'], hostvars[host]['ansible_hostname']] %}
|
||||
{{ hostvars[host]['ansible_' + api_interface]['ipv4']['address'] }} {{ hostnames | unique | join(' ') }}
|
||||
{{ 'api' | kolla_address(host) }} {{ hostnames | unique | join(' ') }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
become: True
|
||||
|
@ -39,7 +39,7 @@ blazar_aggregate_pool_name: "freepool"
|
||||
####################
|
||||
blazar_database_name: "blazar"
|
||||
blazar_database_user: "blazar"
|
||||
blazar_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
blazar_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -77,9 +77,9 @@ blazar_manager_extra_volumes: "{{ blazar_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
blazar_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ blazar_api_port }}/v1"
|
||||
blazar_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ blazar_api_port }}/v1"
|
||||
blazar_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ blazar_api_port }}/v1"
|
||||
blazar_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ blazar_api_port }}/v1"
|
||||
blazar_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ blazar_api_port }}/v1"
|
||||
blazar_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ blazar_api_port }}/v1"
|
||||
|
||||
blazar_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -35,7 +35,7 @@ service_token_roles_required = True
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[database]
|
||||
connection = mysql+pymysql://{{ blazar_database_user }}:{{ blazar_database_password }}@{{ blazar_database_address }}/{{ blazar_database_name }}
|
||||
|
@ -51,4 +51,4 @@ connection_password = {{ xenserver_password }}
|
||||
[cache]
|
||||
backend = oslo_cache.memcache_pool
|
||||
enabled = True
|
||||
memcache_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcache_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
@ -101,9 +101,9 @@ ceph_mds_hostname: "{%- if ceph_mds_host_type == 'HOSTNAME' -%}{{ ansible_hostna
|
||||
####################
|
||||
## Ceph_rgw_keystone
|
||||
####################
|
||||
swift_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
||||
swift_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
||||
swift_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
||||
swift_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
||||
swift_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
||||
swift_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ rgw_port }}{{ '/' if ceph_rgw_compatibility|bool else '/swift/' }}v1"
|
||||
|
||||
ceph_rgw_keystone_user: "ceph_rgw"
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
- name: Check final release (as running on MONs)
|
||||
become: true
|
||||
command: "docker exec ceph_mon ceph -m {{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }} versions"
|
||||
command: "docker exec ceph_mon ceph -m {{ 'storage' | kolla_address }} versions"
|
||||
changed_when: false
|
||||
register: ceph_release_command
|
||||
delegate_to: "{{ groups['ceph-mon'][0] }}"
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
- name: Finalize the upgrade by disallowing older OSDs
|
||||
become: true
|
||||
command: "docker exec ceph_mon ceph -m {{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }} osd require-osd-release {{ ((ceph_release_command.stdout|from_json).mon | string).split(' ')[4] }}"
|
||||
command: "docker exec ceph_mon ceph -m {{ 'storage' | kolla_address }} osd require-osd-release {{ ((ceph_release_command.stdout|from_json).mon | string).split(' ')[4] }}"
|
||||
changed_when: false
|
||||
delegate_to: "{{ groups['ceph-mon'][0] }}"
|
||||
run_once: true
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"command": "/usr/bin/ceph-mon -f {% if ceph_debug %}-d{% endif %} -i {{ ceph_mon_hostname }} --public-addr {{ storage_interface_address }}:6789",
|
||||
"command": "/usr/bin/ceph-mon -f {% if ceph_debug %}-d{% endif %} -i {{ ceph_mon_hostname }} --public-addr {{ storage_interface_address | put_address_in_context('url') }}:6789",
|
||||
"config_files": [
|
||||
{
|
||||
"source": "{{ container_config_directory }}/ceph.conf",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"command": "/usr/bin/ceph-osd -f {% if ceph_debug %}-d{% endif %} --public-addr {{ storage_interface_address }} --cluster-addr {{ hostvars[inventory_hostname]['ansible_' + cluster_interface]['ipv4']['address'] }}",
|
||||
"command": "/usr/bin/ceph-osd -f {% if ceph_debug %}-d{% endif %} --public-addr {{ storage_interface_address }} --cluster-addr {{ 'cluster' | kolla_address }}",
|
||||
"config_files": [
|
||||
{
|
||||
"source": "{{ container_config_directory }}/ceph.conf",
|
||||
|
@ -13,12 +13,16 @@ mon initial members = {% for host in groups['ceph-mon'] %}{{ hostvars[host]['ans
|
||||
{% elif ceph_mon_host_type == 'INVENTORY' %}
|
||||
mon initial members = {% for host in groups['ceph-mon'] %}{{ host }}{% if not loop.last %}, {% endif %}{% endfor %}
|
||||
{%- else %}
|
||||
mon initial members = {% for host in groups['ceph-mon'] %}{{ hostvars[host]['ansible_' + hostvars[host]['storage_interface']]['ipv4']['address'] }}{% if not loop.last %}, {% endif %}{% endfor %}
|
||||
mon initial members = {% for host in groups['ceph-mon'] %}{{ 'storage' | kolla_address(host) }}{% if not loop.last %}, {% endif %}{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
mon host = {% for host in groups['ceph-mon'] %}{{ hostvars[host]['ansible_' + hostvars[host]['storage_interface']]['ipv4']['address'] }}{% if not loop.last %}, {% endif %}{% endfor %}
|
||||
mon host = {% for host in groups['ceph-mon'] %}{{ 'storage' | kolla_address(host) }}{% if not loop.last %}, {% endif %}{% endfor %}
|
||||
|
||||
mon addr = {% for host in groups['ceph-mon'] %}{{ hostvars[host]['ansible_' + hostvars[host]['storage_interface']]['ipv4']['address'] }}:6789{% if not loop.last %}, {% endif %}{% endfor %}
|
||||
mon addr = {% for host in groups['ceph-mon'] %}{{ 'storage' | kolla_address(host) | put_address_in_context('url') }}:6789{% if not loop.last %}, {% endif %}{% endfor %}
|
||||
|
||||
{% if storage_address_family == 'ipv6' %}
|
||||
ms bind ipv6 = true
|
||||
{% endif %}
|
||||
|
||||
auth cluster required = cephx
|
||||
auth service required = cephx
|
||||
@ -43,8 +47,8 @@ mon cluster log file = /var/log/kolla/ceph/$cluster.log
|
||||
|
||||
{% if service_name is defined and service_name == 'ceph-rgw' %}
|
||||
[client.radosgw.gateway]
|
||||
host = {{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}
|
||||
rgw frontends = civetweb port={{ api_interface_address }}:{{ rgw_port }}
|
||||
host = {{ 'storage' | kolla_address }}
|
||||
rgw frontends = civetweb port={{ api_interface_address | put_address_in_context('url') }}:{{ rgw_port }}
|
||||
{% if enable_ceph_rgw_keystone | bool %}
|
||||
rgw_keystone_url = {{ keystone_admin_url }}
|
||||
rgw_keystone_admin_user = {{ ceph_rgw_keystone_user }}
|
||||
|
@ -91,7 +91,7 @@ ceph_client_cinder_backup_keyring_caps:
|
||||
####################
|
||||
cinder_database_name: "cinder"
|
||||
cinder_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cinder{% endif %}"
|
||||
cinder_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
cinder_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
# Max number of object to consider
|
||||
# when run online data migration
|
||||
@ -164,12 +164,12 @@ cinder_volume_extra_volumes: "{{ cinder_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
cinder_v2_admin_endpoint: "{{ admin_protocol }}://{{ cinder_internal_fqdn }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
||||
cinder_v2_internal_endpoint: "{{ internal_protocol }}://{{ cinder_internal_fqdn }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
||||
cinder_v2_public_endpoint: "{{ public_protocol }}://{{ cinder_external_fqdn }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
||||
cinder_v3_admin_endpoint: "{{ admin_protocol }}://{{ cinder_internal_fqdn }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
||||
cinder_v3_internal_endpoint: "{{ internal_protocol }}://{{ cinder_internal_fqdn }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
||||
cinder_v3_public_endpoint: "{{ public_protocol }}://{{ cinder_external_fqdn }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
||||
cinder_v2_admin_endpoint: "{{ admin_protocol }}://{{ cinder_internal_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
||||
cinder_v2_internal_endpoint: "{{ internal_protocol }}://{{ cinder_internal_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
||||
cinder_v2_public_endpoint: "{{ public_protocol }}://{{ cinder_external_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v2/%(tenant_id)s"
|
||||
cinder_v3_admin_endpoint: "{{ admin_protocol }}://{{ cinder_internal_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
||||
cinder_v3_internal_endpoint: "{{ internal_protocol }}://{{ cinder_internal_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
||||
cinder_v3_public_endpoint: "{{ public_protocol }}://{{ cinder_external_fqdn | put_address_in_context('url') }}:{{ cinder_api_port }}/v3/%(tenant_id)s"
|
||||
|
||||
cinder_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
{% else %}
|
||||
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
||||
{% endif %}
|
||||
Listen {{ api_interface_address }}:{{ cinder_api_listen_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ cinder_api_listen_port }}
|
||||
|
||||
ServerSignature Off
|
||||
ServerTokens Prod
|
||||
|
@ -13,7 +13,7 @@ my_ip = {{ api_interface_address }}
|
||||
osapi_volume_workers = {{ openstack_service_workers }}
|
||||
volume_name_template = volume-%s
|
||||
|
||||
glance_api_servers = {{ internal_protocol }}://{{ glance_internal_fqdn }}:{{ glance_api_port }}
|
||||
glance_api_servers = {{ internal_protocol }}://{{ glance_internal_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}
|
||||
|
||||
glance_num_retries = {{ groups['glance-api'] | length }}
|
||||
glance_api_version = 2
|
||||
@ -42,7 +42,7 @@ backup_share = {{ cinder_backup_share }}
|
||||
backup_file_size = 327680000
|
||||
{% elif enable_swift | bool and cinder_backup_driver == "swift" %}
|
||||
backup_driver = cinder.backup.drivers.swift.SwiftBackupDriver
|
||||
backup_swift_url = {{ internal_protocol }}://{{ swift_internal_fqdn }}:{{ swift_proxy_server_port }}/v1/AUTH_
|
||||
backup_swift_url = {{ internal_protocol }}://{{ swift_internal_fqdn | put_address_in_context('url') }}:{{ swift_proxy_server_port }}/v1/AUTH_
|
||||
backup_swift_auth = per_user
|
||||
backup_swift_auth_version = 1
|
||||
backup_swift_user =
|
||||
@ -103,7 +103,7 @@ password = {{ cinder_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
|
||||
[oslo_concurrency]
|
||||
@ -210,5 +210,5 @@ auth_endpoint = {{ keystone_internal_url }}
|
||||
backend_url = {{ redis_connection_string }}
|
||||
{% elif cinder_coordination_backend == 'etcd' %}
|
||||
# NOTE(jeffrey4l): python-etcd3 module do not support multi endpoint here.
|
||||
backend_url = etcd3://{{ hostvars[groups['etcd'][0]]['ansible_' + hostvars[groups['etcd'][0]]['api_interface']]['ipv4']['address'] }}:{{ etcd_client_port }}
|
||||
backend_url = etcd3://{{ 'api' | kolla_address(groups['etcd'][0]) | put_address_in_context('url') }}:{{ etcd_client_port }}
|
||||
{% endif %}
|
||||
|
@ -34,7 +34,7 @@ cloudkitty_services:
|
||||
####################
|
||||
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 }}:{{ database_port }}"
|
||||
cloudkitty_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -72,9 +72,9 @@ cloudkitty_api_extra_volumes: "{{ cloudkitty_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
cloudkitty_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ cloudkitty_api_port }}"
|
||||
cloudkitty_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ cloudkitty_api_port }}"
|
||||
cloudkitty_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ cloudkitty_api_port }}"
|
||||
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 }}"
|
||||
|
||||
|
@ -27,7 +27,7 @@ region_name = {{ openstack_region_name }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[oslo_concurrency]
|
||||
lock_path = /var/lib/cloudkitty/tmp
|
||||
|
@ -1,6 +1,6 @@
|
||||
{% set python_path = '/usr/lib/python2.7/site-packages' if cloudkitty_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
|
||||
{% set binary_path = '/usr/bin' if cloudkitty_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
||||
Listen {{ api_interface_address }}:{{ cloudkitty_api_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ cloudkitty_api_port }}
|
||||
|
||||
ServerSignature Off
|
||||
ServerTokens Prod
|
||||
|
@ -7,5 +7,5 @@ LoadPlugin memory
|
||||
LoadPlugin network
|
||||
|
||||
<Plugin "network">
|
||||
Server "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}" "{{ collectd_udp_port }}"
|
||||
Server "{{ 'api' | kolla_address }}" "{{ collectd_udp_port }}"
|
||||
</Plugin>
|
||||
|
@ -33,7 +33,7 @@
|
||||
<store>
|
||||
@type monasca
|
||||
keystone_url {{ keystone_internal_url }}
|
||||
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_log_api_port }}
|
||||
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}
|
||||
monasca_log_api_version v3.0
|
||||
username {{ monasca_agent_user }}
|
||||
password {{ monasca_agent_password }}
|
||||
@ -81,7 +81,7 @@
|
||||
<store>
|
||||
@type monasca
|
||||
keystone_url {{ keystone_internal_url }}
|
||||
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_log_api_port }}
|
||||
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}
|
||||
monasca_log_api_version v3.0
|
||||
username {{ monasca_agent_user }}
|
||||
password {{ monasca_agent_password }}
|
||||
|
@ -3,7 +3,7 @@
|
||||
<store>
|
||||
@type monasca
|
||||
keystone_url {{ keystone_internal_url }}
|
||||
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_log_api_port }}
|
||||
monasca_log_api {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}
|
||||
monasca_log_api_version v3.0
|
||||
username {{ monasca_agent_user }}
|
||||
password {{ monasca_agent_password }}
|
||||
|
@ -41,7 +41,7 @@ congress_services:
|
||||
####################
|
||||
congress_database_name: "congress"
|
||||
congress_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}congress{% endif %}"
|
||||
congress_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
congress_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -90,9 +90,9 @@ congress_datasource_extra_volumes: "{{ congress_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
congress_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ congress_api_port }}"
|
||||
congress_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ congress_api_port }}"
|
||||
congress_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ congress_api_port }}"
|
||||
congress_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ congress_api_port }}"
|
||||
congress_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ congress_api_port }}"
|
||||
congress_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ congress_api_port }}"
|
||||
|
||||
congress_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -40,7 +40,7 @@ password = {{ congress_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[oslo_messaging_notifications]
|
||||
transport_url = {{ notify_transport_url }}
|
||||
@ -54,4 +54,4 @@ policy_file = {{ congress_policy_file }}
|
||||
enable_proxy_headers_parsing = True
|
||||
|
||||
[congress]
|
||||
url = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ congress_api_port }}
|
||||
url = {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ congress_api_port }}
|
||||
|
@ -29,7 +29,7 @@ cyborg_services:
|
||||
####################
|
||||
cyborg_database_name: "cyborg"
|
||||
cyborg_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}cyborg{% endif %}"
|
||||
cyborg_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
cyborg_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
####################
|
||||
# Docker
|
||||
@ -77,9 +77,9 @@ cyborg_conductor_extra_volumes: "{{ cyborg_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
cyborg_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ cyborg_api_port }}"
|
||||
cyborg_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ cyborg_api_port }}"
|
||||
cyborg_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ cyborg_api_port }}"
|
||||
cyborg_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ cyborg_api_port }}"
|
||||
cyborg_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ cyborg_api_port }}"
|
||||
cyborg_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ cyborg_api_port }}"
|
||||
|
||||
cyborg_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -16,14 +16,14 @@ connection = mysql+pymysql://{{ cyborg_database_user }}:{{ cyborg_database_passw
|
||||
[keystone_authtoken]
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcache_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
auth_uri = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_public_port }}
|
||||
memcache_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
auth_uri = {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ keystone_public_port }}
|
||||
project_domain_name = {{ default_project_domain_name }}
|
||||
project_name = service
|
||||
user_domain_name = {{ default_user_domain_name }}
|
||||
username = {{ cyborg_keystone_user }}
|
||||
password = {{ cyborg_keystone_password }}
|
||||
auth_url = {{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_admin_port }}
|
||||
auth_url = {{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ keystone_admin_port }}
|
||||
auth_type = password
|
||||
|
||||
{% if cyborg_policy_file is defined %}
|
||||
|
@ -71,7 +71,7 @@ designate_services:
|
||||
####################
|
||||
designate_database_name: "designate"
|
||||
designate_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}designate{% endif %}"
|
||||
designate_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
designate_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -164,9 +164,9 @@ designate_sink_extra_volumes: "{{ designate_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
designate_admin_endpoint: "{{ admin_protocol }}://{{ designate_internal_fqdn }}:{{ designate_api_port }}"
|
||||
designate_internal_endpoint: "{{ internal_protocol }}://{{ designate_internal_fqdn }}:{{ designate_api_port }}"
|
||||
designate_public_endpoint: "{{ public_protocol }}://{{ designate_external_fqdn }}:{{ designate_api_port }}"
|
||||
designate_admin_endpoint: "{{ admin_protocol }}://{{ designate_internal_fqdn | put_address_in_context('url') }}:{{ designate_api_port }}"
|
||||
designate_internal_endpoint: "{{ internal_protocol }}://{{ designate_internal_fqdn | put_address_in_context('url') }}:{{ designate_api_port }}"
|
||||
designate_public_endpoint: "{{ public_protocol }}://{{ designate_external_fqdn | put_address_in_context('url') }}:{{ designate_api_port }}"
|
||||
|
||||
designate_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
- name: Checking free port for designate mdns
|
||||
wait_for:
|
||||
host: "{{ hostvars[inventory_hostname]['ansible_' + dns_interface]['ipv4']['address'] }}"
|
||||
host: "{{ 'dns' | kolla_address }}"
|
||||
port: "{{ designate_mdns_port }}"
|
||||
connect_timeout: 1
|
||||
timeout: 1
|
||||
|
@ -11,8 +11,8 @@ default_pool_id = {{ designate_pool_id }}
|
||||
workers = {{ openstack_service_workers }}
|
||||
|
||||
[service:api]
|
||||
listen = {{ api_interface_address }}:{{ designate_api_listen_port }}
|
||||
api_base_uri = {{ internal_protocol }}://{{ designate_internal_fqdn }}:{{ designate_api_port }}
|
||||
listen = {{ api_interface_address | put_address_in_context('url') }}:{{ designate_api_listen_port }}
|
||||
api_base_uri = {{ internal_protocol }}://{{ designate_internal_fqdn | put_address_in_context('url') }}:{{ designate_api_port }}
|
||||
workers = {{ openstack_service_workers }}
|
||||
enable_api_admin = True
|
||||
enable_host_header = True
|
||||
@ -32,7 +32,7 @@ service_token_roles_required = True
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[service:sink]
|
||||
enabled_notification_handlers = nova_fixed, neutron_floatingip
|
||||
@ -40,7 +40,7 @@ workers = {{ openstack_service_workers }}
|
||||
|
||||
{% if service_name == 'designate-mdns' %}
|
||||
[service:mdns]
|
||||
listen = {{ hostvars[inventory_hostname]['ansible_' + dns_interface]['ipv4']['address'] }}:{{ designate_mdns_port }}
|
||||
listen = {{ 'dns' | kolla_address | put_address_in_context('url') }}:{{ designate_mdns_port }}
|
||||
workers = {{ openstack_service_workers }}
|
||||
{% endif %}
|
||||
|
||||
@ -104,5 +104,5 @@ policy_file = {{ designate_policy_file }}
|
||||
backend_url = {{ redis_connection_string }}
|
||||
{% elif designate_coordination_backend == 'etcd' %}
|
||||
# NOTE(noxoid): python-etcd3 does not support multiple endpoints
|
||||
backend_url = etcd3://{{ hostvars[groups['etcd'][0]]['ansible_' + hostvars[groups['etcd'][0]]['api_interface']]['ipv4']['address'] }}:{{ etcd_client_port }}
|
||||
backend_url = etcd3://{{ 'api' | kolla_address(groups['etcd'][0]) | put_address_in_context('url') }}:{{ etcd_client_port }}
|
||||
{% endif %}
|
||||
|
@ -1,9 +1,9 @@
|
||||
#jinja2: trim_blocks: False
|
||||
include "/etc/rndc.key";
|
||||
options {
|
||||
listen-on port {{ designate_bind_port }} { {{ hostvars[inventory_hostname]['ansible_' + hostvars[inventory_hostname]['api_interface']]['ipv4']['address'] }}; };
|
||||
listen-on port {{ designate_bind_port }} { {{ 'api' | kolla_address }}; };
|
||||
{% if api_interface != dns_interface %}
|
||||
listen-on port {{ designate_bind_port }} { {{ hostvars[inventory_hostname]['ansible_' + hostvars[inventory_hostname]['dns_interface']]['ipv4']['address'] }}; };
|
||||
listen-on port {{ designate_bind_port }} { {{ 'dns' | kolla_address }}; };
|
||||
{% endif %}
|
||||
directory "/var/lib/named";
|
||||
allow-new-zones yes;
|
||||
@ -15,9 +15,9 @@ options {
|
||||
forwarders { {{ designate_forwarders_addresses }}; };
|
||||
{% endif %}
|
||||
minimal-responses yes;
|
||||
allow-notify { {% for host in groups['designate-worker'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }};{% endfor %} };
|
||||
allow-notify { {% for host in groups['designate-worker'] %}{{ 'api' | kolla_address(host) }};{% endfor %} };
|
||||
};
|
||||
|
||||
controls {
|
||||
inet {{ hostvars[inventory_hostname]['ansible_' + hostvars[inventory_hostname]['api_interface']]['ipv4']['address'] }} port {{ designate_rndc_port }} allow { {% for host in groups['designate-worker'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}; {% endfor %} } keys { "rndc-key"; };
|
||||
inet {{ 'api' | kolla_address }} port {{ designate_rndc_port }} allow { {% for host in groups['designate-worker'] %}{{ 'api' | kolla_address(host) }}; {% endfor %} } keys { "rndc-key"; };
|
||||
};
|
||||
|
@ -9,7 +9,7 @@
|
||||
nameservers:
|
||||
{% if designate_backend == 'bind9' %}
|
||||
{% for host in groups['designate-backend-bind9'] %}
|
||||
- host: {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}
|
||||
- host: {{ 'api' | kolla_address(host) }}
|
||||
port: {{ designate_bind_port }}
|
||||
{% endfor %}
|
||||
{% elif designate_backend_external == 'bind9' %}
|
||||
@ -22,16 +22,16 @@
|
||||
{% if designate_backend == 'bind9' %}
|
||||
{% for bind_host in groups['designate-backend-bind9'] %}
|
||||
- type: bind9
|
||||
description: BIND9 Server {{ hostvars[bind_host]['ansible_' + hostvars[bind_host]['api_interface']]['ipv4']['address'] }}
|
||||
description: BIND9 Server {{ 'api' | kolla_address(bind_host) }}
|
||||
masters:
|
||||
{% for mdns_host in groups['designate-mdns'] %}
|
||||
- host: {{ hostvars[mdns_host]['ansible_' + hostvars[mdns_host]['dns_interface']]['ipv4']['address'] }}
|
||||
- host: {{ 'dns' | kolla_address(mdns_host) }}
|
||||
port: {{ designate_mdns_port }}
|
||||
{% endfor %}
|
||||
options:
|
||||
host: {{ hostvars[bind_host]['ansible_' + hostvars[bind_host]['api_interface']]['ipv4']['address'] }}
|
||||
host: {{ 'api' | kolla_address(bind_host) }}
|
||||
port: {{ designate_bind_port }}
|
||||
rndc_host: {{ hostvars[bind_host]['ansible_' + hostvars[bind_host]['api_interface']]['ipv4']['address'] }}
|
||||
rndc_host: {{ 'api' | kolla_address(bind_host) }}
|
||||
rndc_port: {{ designate_rndc_port }}
|
||||
rndc_key_file: /etc/designate/rndc.key
|
||||
{% endfor %}
|
||||
@ -41,7 +41,7 @@
|
||||
description: BIND9 Server {{ bind_host }}
|
||||
masters:
|
||||
{% for mdns_host in groups['designate-mdns'] %}
|
||||
- host: {{ hostvars[mdns_host]['ansible_' + hostvars[mdns_host]['dns_interface']]['ipv4']['address'] }}
|
||||
- host: {{ 'dns' | kolla_address(mdns_host) }}
|
||||
port: {{ designate_mdns_port }}
|
||||
{% endfor %}
|
||||
options:
|
||||
@ -71,7 +71,7 @@
|
||||
description: Default Infoblox Pool
|
||||
masters:
|
||||
{% for mdns_host in groups['designate-mdns'] %}
|
||||
- host: {{ hostvars[mdns_host]['ansible_' + hostvars[mdns_host]['dns_interface']]['ipv4']['address'] }}
|
||||
- host: {{ 'dns' | kolla_address(mdns_host) }}
|
||||
port: {{ designate_mdns_port }}
|
||||
{% endfor %}
|
||||
options:
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "/etc/rndc.key";
|
||||
options {
|
||||
default-key "rndc-key";
|
||||
default-server {{ hostvars[inventory_hostname]['ansible_' + hostvars[inventory_hostname]['api_interface']]['ipv4']['address'] }};
|
||||
default-server {{ 'api' | kolla_address }};
|
||||
default-port {{ designate_rndc_port }};
|
||||
};
|
||||
|
@ -3,7 +3,7 @@
|
||||
# https://www.elastic.co/guide/en/elasticsearch/reference/5.6/restart-upgrade.html
|
||||
- name: Disable shard allocation
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/_cluster/settings"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/_cluster/settings"
|
||||
method: PUT
|
||||
status_code: 200
|
||||
return_content: yes
|
||||
@ -14,7 +14,7 @@
|
||||
|
||||
- name: Perform a synced flush
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/_flush/synced"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/_flush/synced"
|
||||
method: POST
|
||||
status_code: 200
|
||||
return_content: yes
|
||||
|
@ -2,12 +2,12 @@
|
||||
{% set minimum_master_nodes = (num_nodes / 2 + 1) | round(0, 'floor') | int if num_nodes > 2 else 1 %}
|
||||
{% set recover_after_nodes = (num_nodes * 2 / 3) | round(0, 'floor') | int if num_nodes > 1 else 1 %}
|
||||
node.name: "{{ api_interface_address }}"
|
||||
network.host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
|
||||
network.host: "{{ 'api' | kolla_address }}"
|
||||
|
||||
cluster.name: "{{ elasticsearch_cluster_name }}"
|
||||
node.master: true
|
||||
node.data: true
|
||||
discovery.zen.ping.unicast.hosts: [{% for host in groups['elasticsearch'] %}"{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}"{% if not loop.last %},{% endif %}{% endfor %}]
|
||||
discovery.zen.ping.unicast.hosts: [{% for host in groups['elasticsearch'] %}"{{ 'api' | kolla_address(host) }}"{% if not loop.last %},{% endif %}{% endfor %}]
|
||||
|
||||
discovery.zen.minimum_master_nodes: {{ minimum_master_nodes }}
|
||||
http.port: {{ elasticsearch_port }}
|
||||
|
@ -9,12 +9,12 @@ etcd_services:
|
||||
environment:
|
||||
ETCD_DATA_DIR: "/var/lib/etcd"
|
||||
ETCD_NAME: "{{ ansible_hostname }}"
|
||||
ETCD_ADVERTISE_CLIENT_URLS: "{{ internal_protocol }}://{{ api_interface_address }}:{{ etcd_client_port }}"
|
||||
ETCD_LISTEN_CLIENT_URLS: "{{ internal_protocol }}://{{ api_interface_address }}:{{ etcd_client_port }}"
|
||||
ETCD_INITIAL_ADVERTISE_PEER_URLS: "{{ internal_protocol }}://{{ api_interface_address }}:{{ etcd_peer_port }}"
|
||||
ETCD_LISTEN_PEER_URLS: "{{ internal_protocol }}://{{ api_interface_address }}:{{ etcd_peer_port }}"
|
||||
ETCD_ADVERTISE_CLIENT_URLS: "{{ internal_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ etcd_client_port }}"
|
||||
ETCD_LISTEN_CLIENT_URLS: "{{ internal_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ etcd_client_port }}"
|
||||
ETCD_INITIAL_ADVERTISE_PEER_URLS: "{{ internal_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ etcd_peer_port }}"
|
||||
ETCD_LISTEN_PEER_URLS: "{{ internal_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ etcd_peer_port }}"
|
||||
ETCD_INITIAL_CLUSTER_TOKEN: "{{ etcd_cluster_token }}"
|
||||
ETCD_INITIAL_CLUSTER: "{% for host in groups['etcd'] %}{{ hostvars[host]['ansible_hostname'] }}={{ internal_protocol }}://{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ etcd_peer_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
ETCD_INITIAL_CLUSTER: "{% for host in groups['etcd'] %}{{ hostvars[host]['ansible_hostname'] }}={{ internal_protocol }}://{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ etcd_peer_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
ETCD_INITIAL_CLUSTER_STATE: "new"
|
||||
ETCD_OUT_FILE: "/var/log/kolla/etcd/etcd.log"
|
||||
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||
|
@ -34,7 +34,7 @@ freezer_services:
|
||||
freezer_database_backend: "mariadb"
|
||||
freezer_database_name: "freezer"
|
||||
freezer_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}freezer{% endif %}"
|
||||
freezer_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
freezer_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
freezer_elasticsearch_replicas: "1"
|
||||
freezer_es_protocol:
|
||||
freezer_es_address:
|
||||
@ -77,9 +77,9 @@ freezer_scheduler_extra_volumes: "{{ freezer_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
freezer_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ freezer_api_port }}"
|
||||
freezer_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ freezer_api_port }}"
|
||||
freezer_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ freezer_api_port }}"
|
||||
freezer_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ freezer_api_port }}"
|
||||
freezer_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ freezer_api_port }}"
|
||||
freezer_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ freezer_api_port }}"
|
||||
|
||||
freezer_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -33,7 +33,7 @@ password = {{ freezer_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
{% if freezer_policy_file is defined %}
|
||||
[oslo_policy]
|
||||
@ -63,7 +63,7 @@ backend = elasticsearch
|
||||
driver = elasticsearch
|
||||
|
||||
[elasticsearch]
|
||||
hosts = {{ freezer_es_protocol }}://{{ freezer_es_address }}:{{ freezer_es_port }}
|
||||
hosts = {{ freezer_es_protocol }}://{{ freezer_es_address | put_address_in_context('url') }}:{{ freezer_es_port }}
|
||||
number_of_replicas = {{ freezer_elasticsearch_replicas }}
|
||||
index = freezer
|
||||
{% endif %}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{% set freezer_log_dir = '/var/log/kolla/freezer' %}
|
||||
{% set python_path = '/usr/lib/python2.7/site-packages' if freezer_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
|
||||
Listen {{ api_interface_address }}:{{ freezer_api_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ freezer_api_port }}
|
||||
|
||||
ServerSignature Off
|
||||
ServerTokens Prod
|
||||
|
@ -37,7 +37,7 @@ glance_services:
|
||||
####################
|
||||
# HAProxy
|
||||
####################
|
||||
haproxy_members: "{% for host in glance_api_hosts %}server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ glance_api_listen_port }} check inter 2000 rise 2 fall 5;{% endfor %}"
|
||||
haproxy_members: "{% for host in glance_api_hosts %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ glance_api_listen_port }} check inter 2000 rise 2 fall 5;{% endfor %}"
|
||||
|
||||
####################
|
||||
# Keystone
|
||||
@ -92,7 +92,7 @@ ceph_client_glance_keyring_caps:
|
||||
####################
|
||||
glance_database_name: "glance"
|
||||
glance_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}glance{% endif %}"
|
||||
glance_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
glance_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -147,9 +147,9 @@ glance_store_backends: "{{ glance_backends|selectattr('enabled', 'equalto', true
|
||||
# OpenStack
|
||||
####################
|
||||
|
||||
glance_admin_endpoint: "{{ admin_protocol }}://{{ glance_internal_fqdn }}:{{ glance_api_port }}"
|
||||
glance_internal_endpoint: "{{ internal_protocol }}://{{ glance_internal_fqdn }}:{{ glance_api_port }}"
|
||||
glance_public_endpoint: "{{ public_protocol }}://{{ glance_external_fqdn }}:{{ glance_api_port }}"
|
||||
glance_admin_endpoint: "{{ admin_protocol }}://{{ glance_internal_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}"
|
||||
glance_internal_endpoint: "{{ internal_protocol }}://{{ glance_internal_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}"
|
||||
glance_public_endpoint: "{{ public_protocol }}://{{ glance_external_fqdn | put_address_in_context('url') }}:{{ glance_api_port }}"
|
||||
|
||||
glance_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -38,7 +38,7 @@ password = {{ glance_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[paste_deploy]
|
||||
flavor = {% if enable_glance_image_cache | bool %}keystone+cachemanagement{% else %}keystone{% endif %}
|
||||
|
@ -69,7 +69,7 @@ swift_admin_tenant_name: "admin"
|
||||
####################
|
||||
gnocchi_database_name: "gnocchi"
|
||||
gnocchi_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}gnocchi{% endif %}"
|
||||
gnocchi_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
gnocchi_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -120,9 +120,9 @@ gnocchi_statsd_extra_volumes: "{{ gnocchi_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
gnocchi_admin_endpoint: "{{ admin_protocol }}://{{ gnocchi_internal_fqdn }}:{{ gnocchi_api_port }}"
|
||||
gnocchi_internal_endpoint: "{{ internal_protocol }}://{{ gnocchi_internal_fqdn }}:{{ gnocchi_api_port }}"
|
||||
gnocchi_public_endpoint: "{{ public_protocol }}://{{ gnocchi_external_fqdn }}:{{ gnocchi_api_port }}"
|
||||
gnocchi_admin_endpoint: "{{ admin_protocol }}://{{ gnocchi_internal_fqdn | put_address_in_context('url') }}:{{ gnocchi_api_port }}"
|
||||
gnocchi_internal_endpoint: "{{ internal_protocol }}://{{ gnocchi_internal_fqdn | put_address_in_context('url') }}:{{ gnocchi_api_port }}"
|
||||
gnocchi_public_endpoint: "{{ public_protocol }}://{{ gnocchi_external_fqdn | put_address_in_context('url') }}:{{ gnocchi_api_port }}"
|
||||
|
||||
gnocchi_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -53,7 +53,7 @@ auth_type = password
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
{% if gnocchi_policy_file is defined %}
|
||||
[oslo_policy]
|
||||
@ -87,5 +87,5 @@ swift_project_name = {{ swift_admin_tenant_name }}
|
||||
|
||||
{% if enable_grafana | bool %}
|
||||
[cors]
|
||||
allowed_origin = {{ public_protocol }}://{{ kolla_external_fqdn }}:{{ grafana_server_port }}
|
||||
allowed_origin = {{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ grafana_server_port }}
|
||||
{% endif %}
|
||||
|
@ -4,7 +4,7 @@
|
||||
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
||||
{% endif %}
|
||||
{% set wsgi_path = '/usr/bin' if gnocchi_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
||||
Listen {{ api_interface_address }}:{{ gnocchi_api_listen_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ gnocchi_api_listen_port }}
|
||||
|
||||
ServerSignature Off
|
||||
ServerTokens Prod
|
||||
|
@ -26,7 +26,7 @@ grafana_services:
|
||||
####################
|
||||
grafana_database_name: "grafana"
|
||||
grafana_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}grafana{% endif %}"
|
||||
grafana_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
grafana_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
####################
|
||||
# Datasource
|
||||
@ -39,7 +39,7 @@ grafana_data_sources:
|
||||
database: "telegraf"
|
||||
name: "telegraf"
|
||||
type: "influxdb"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ influxdb_http_port }}"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ influxdb_http_port }}"
|
||||
access: "proxy"
|
||||
basicAuth: false
|
||||
elasticsearch:
|
||||
@ -48,7 +48,7 @@ grafana_data_sources:
|
||||
name: "elasticsearch"
|
||||
type: "elasticsearch"
|
||||
access: "proxy"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}"
|
||||
database: "flog-*"
|
||||
jsonData:
|
||||
esVersion: 5
|
||||
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
- name: Wait for grafana application ready
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ grafana_server_port }}/login"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ grafana_server_port }}/login"
|
||||
status_code: 200
|
||||
register: result
|
||||
until: result.get('status') == 200
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
- name: Enable grafana datasources
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ grafana_server_port }}/api/datasources"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ grafana_server_port }}/api/datasources"
|
||||
method: POST
|
||||
user: "{{ grafana_admin_username }}"
|
||||
password: "{{ grafana_admin_password }}"
|
||||
@ -29,7 +29,7 @@
|
||||
|
||||
- name: Disable Getting Started panel
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ grafana_server_port }}/api/user/helpflags/1"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ grafana_server_port }}/api/user/helpflags/1"
|
||||
method: PUT
|
||||
user: "{{ grafana_admin_username }}"
|
||||
password: "{{ grafana_admin_password }}"
|
||||
|
@ -5,5 +5,5 @@ datasources:
|
||||
type: prometheus
|
||||
access: proxy
|
||||
orgId: 1
|
||||
url: http://{{ kolla_internal_vip_address }}:{{ prometheus_port }}
|
||||
url: http://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ prometheus_port }}
|
||||
version: 1
|
||||
|
@ -60,9 +60,8 @@ listen {{ service_name }}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% for host in groups[host_group] %}
|
||||
{% set api_interface = "ansible_%s"|format(hostvars[host]['api_interface']) %}
|
||||
{% set host_name = hostvars[host]['ansible_hostname'] %}
|
||||
{% set host_ip = hostvars[host][api_interface]['ipv4']['address'] %}
|
||||
{% set host_ip = 'api' | kolla_address(host) %}
|
||||
server {{ host_name }} {{ host_ip }}:{{ listen_port }} {{ haproxy_health_check }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
@ -80,9 +80,8 @@ backend {{ service_name }}_back
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% for host in groups[host_group] %}
|
||||
{% set api_interface = "ansible_%s"|format(hostvars[host]['api_interface']) %}
|
||||
{% set host_name = hostvars[host]['ansible_hostname'] %}
|
||||
{% set host_ip = hostvars[host][api_interface]['ipv4']['address'] %}
|
||||
{% set host_ip = 'api' | kolla_address(host) %}
|
||||
server {{ host_name }} {{ host_ip }}:{{ listen_port }} {{ haproxy_health_check }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
@ -169,13 +169,13 @@
|
||||
- inventory_hostname in groups['haproxy']
|
||||
- api_interface_address != kolla_internal_vip_address
|
||||
|
||||
# FIXME(yoctozepto): this req seems arbitrary, they need not be, just routable is fine
|
||||
- name: Checking if kolla_internal_vip_address is in the same network as api_interface on all nodes
|
||||
become: true
|
||||
command: ip -o addr show dev {{ api_interface }}
|
||||
register: ip_addr_output
|
||||
changed_when: false
|
||||
failed_when: >-
|
||||
'169.254.' not in kolla_internal_vip_address and
|
||||
( ip_addr_output is failed or
|
||||
kolla_internal_vip_address | ipaddr(ip_addr_output.stdout.split()[3]) is none)
|
||||
when:
|
||||
|
@ -1,15 +1,16 @@
|
||||
---
|
||||
- include_tasks: config.yml
|
||||
|
||||
- set_fact: secondary_addresses={{ hostvars[inventory_hostname]['ansible_' + api_interface].get('ipv4_secondaries', []) | map(attribute='address') | list }}
|
||||
|
||||
- name: Stopping all slave keepalived containers
|
||||
vars:
|
||||
key: "{{ 'ipv6' if api_address_family == 'ipv6' else 'ipv4_secondaries' }}"
|
||||
addresses: "{{ hostvars[inventory_hostname]['ansible_' + api_interface].get(key, []) | map(attribute='address') | list }}"
|
||||
become: true
|
||||
kolla_docker:
|
||||
action: "stop_container"
|
||||
common_options: "{{ docker_common_options }}"
|
||||
name: "keepalived"
|
||||
when: kolla_internal_vip_address not in secondary_addresses
|
||||
when: kolla_internal_vip_address not in addresses
|
||||
notify:
|
||||
- Restart keepalived container
|
||||
|
||||
|
@ -17,7 +17,7 @@ vrrp_instance kolla_internal_vip_{{ keepalived_virtual_router_id }} {
|
||||
{% if groups['haproxy'] | length > 1 %}
|
||||
unicast_peer {
|
||||
{% for host in groups['haproxy'] %}
|
||||
{% set ip_addr = hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] %}
|
||||
{% set ip_addr = 'api' | kolla_address(host) %}
|
||||
{% if ip_addr != api_interface_address %}
|
||||
{{ ip_addr }}
|
||||
{% endif %}
|
||||
|
@ -55,7 +55,7 @@ heat_services:
|
||||
####################
|
||||
heat_database_name: "heat"
|
||||
heat_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}heat{% endif %}"
|
||||
heat_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
heat_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -104,12 +104,12 @@ heat_engine_extra_volumes: "{{ heat_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
heat_admin_endpoint: "{{ admin_protocol }}://{{ heat_internal_fqdn }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
||||
heat_internal_endpoint: "{{ internal_protocol }}://{{ heat_internal_fqdn }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
||||
heat_public_endpoint: "{{ public_protocol }}://{{ heat_external_fqdn }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
||||
heat_cfn_admin_endpoint: "{{ admin_protocol }}://{{ heat_cfn_internal_fqdn }}:{{ heat_api_cfn_port }}/v1"
|
||||
heat_cfn_internal_endpoint: "{{ internal_protocol }}://{{ heat_cfn_internal_fqdn }}:{{ heat_api_cfn_port }}/v1"
|
||||
heat_cfn_public_endpoint: "{{ public_protocol }}://{{ heat_cfn_external_fqdn }}:{{ heat_api_cfn_port }}/v1"
|
||||
heat_admin_endpoint: "{{ admin_protocol }}://{{ heat_internal_fqdn | put_address_in_context('url') }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
||||
heat_internal_endpoint: "{{ internal_protocol }}://{{ heat_internal_fqdn | put_address_in_context('url') }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
||||
heat_public_endpoint: "{{ public_protocol }}://{{ heat_external_fqdn | put_address_in_context('url') }}:{{ heat_api_port }}/v1/%(tenant_id)s"
|
||||
heat_cfn_admin_endpoint: "{{ admin_protocol }}://{{ heat_cfn_internal_fqdn | put_address_in_context('url') }}:{{ heat_api_cfn_port }}/v1"
|
||||
heat_cfn_internal_endpoint: "{{ internal_protocol }}://{{ heat_cfn_internal_fqdn | put_address_in_context('url') }}:{{ heat_api_cfn_port }}/v1"
|
||||
heat_cfn_public_endpoint: "{{ public_protocol }}://{{ heat_cfn_external_fqdn | put_address_in_context('url') }}:{{ heat_api_cfn_port }}/v1"
|
||||
|
||||
heat_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -3,8 +3,8 @@ debug = {{ heat_logging_debug }}
|
||||
|
||||
log_dir = /var/log/kolla/heat
|
||||
|
||||
heat_metadata_server_url = {{ public_protocol }}://{{ heat_cfn_external_fqdn }}:{{ heat_api_cfn_port }}
|
||||
heat_waitcondition_server_url = {{ public_protocol }}://{{ heat_cfn_external_fqdn }}:{{ heat_api_cfn_port }}/v1/waitcondition
|
||||
heat_metadata_server_url = {{ public_protocol }}://{{ heat_cfn_external_fqdn | put_address_in_context('url') }}:{{ heat_api_cfn_port }}
|
||||
heat_waitcondition_server_url = {{ public_protocol }}://{{ heat_cfn_external_fqdn | put_address_in_context('url') }}:{{ heat_api_cfn_port }}/v1/waitcondition
|
||||
|
||||
heat_stack_user_role = {{ heat_stack_user_role }}
|
||||
|
||||
@ -52,13 +52,13 @@ password = {{ heat_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
|
||||
[cache]
|
||||
backend = oslo_cache.memcache_pool
|
||||
enabled = True
|
||||
memcache_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcache_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
|
||||
[trustee]
|
||||
|
@ -74,7 +74,7 @@ horizon_keystone_domain_choices:
|
||||
####################
|
||||
horizon_database_name: "horizon"
|
||||
horizon_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}horizon{% endif %}"
|
||||
horizon_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
horizon_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
####################
|
||||
# Docker
|
||||
|
@ -1,6 +1,6 @@
|
||||
{% set python_path = '/usr/share/openstack-dashboard' if horizon_install_type == 'binary' else '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
||||
|
||||
Listen {{ api_interface_address }}:{{ horizon_listen_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ horizon_listen_port }}
|
||||
|
||||
ServerSignature Off
|
||||
ServerTokens Prod
|
||||
|
@ -179,7 +179,7 @@ SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
||||
'LOCATION': [{% for host in groups['memcached'] %}'{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}'{% if not loop.last %},{% endif %}{% endfor %}]
|
||||
'LOCATION': [{% for host in groups['memcached'] %}'{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}'{% if not loop.last %},{% endif %}{% endfor %}]
|
||||
}
|
||||
}
|
||||
{% endif %}
|
||||
|
@ -36,7 +36,7 @@ reporting-disabled = true
|
||||
store-interval = "10s"
|
||||
[http]
|
||||
enabled = true
|
||||
bind-address = "{{ api_interface_address }}:{{ influxdb_http_port }}"
|
||||
bind-address = "{{ api_interface_address | put_address_in_context('url') }}:{{ influxdb_http_port }}"
|
||||
auth-enabled = false
|
||||
log-enabled = true
|
||||
write-tracing = false
|
||||
|
@ -81,11 +81,11 @@ ironic_services:
|
||||
####################
|
||||
ironic_database_name: "ironic"
|
||||
ironic_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}ironic{% endif %}"
|
||||
ironic_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
ironic_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
ironic_inspector_database_name: "ironic_inspector"
|
||||
ironic_inspector_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}ironic_inspector{% endif %}"
|
||||
ironic_inspector_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
ironic_inspector_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -173,13 +173,13 @@ ironic_dnsmasq_extra_volumes: "{{ ironic_extra_volumes }}"
|
||||
####################
|
||||
ironic_inspector_keystone_user: "ironic-inspector"
|
||||
|
||||
ironic_admin_endpoint: "{{ admin_protocol }}://{{ ironic_internal_fqdn }}:{{ ironic_api_port }}"
|
||||
ironic_internal_endpoint: "{{ internal_protocol }}://{{ ironic_internal_fqdn }}:{{ ironic_api_port }}"
|
||||
ironic_public_endpoint: "{{ public_protocol }}://{{ ironic_external_fqdn }}:{{ ironic_api_port }}"
|
||||
ironic_admin_endpoint: "{{ admin_protocol }}://{{ ironic_internal_fqdn | put_address_in_context('url') }}:{{ ironic_api_port }}"
|
||||
ironic_internal_endpoint: "{{ internal_protocol }}://{{ ironic_internal_fqdn | put_address_in_context('url') }}:{{ ironic_api_port }}"
|
||||
ironic_public_endpoint: "{{ public_protocol }}://{{ ironic_external_fqdn | put_address_in_context('url') }}:{{ ironic_api_port }}"
|
||||
|
||||
ironic_inspector_admin_endpoint: "{{ admin_protocol }}://{{ ironic_inspector_internal_fqdn }}:{{ ironic_inspector_port }}"
|
||||
ironic_inspector_internal_endpoint: "{{ internal_protocol }}://{{ ironic_inspector_internal_fqdn }}:{{ ironic_inspector_port }}"
|
||||
ironic_inspector_public_endpoint: "{{ public_protocol }}://{{ ironic_inspector_external_fqdn }}:{{ ironic_inspector_port }}"
|
||||
ironic_inspector_admin_endpoint: "{{ admin_protocol }}://{{ ironic_inspector_internal_fqdn | put_address_in_context('url') }}:{{ ironic_inspector_port }}"
|
||||
ironic_inspector_internal_endpoint: "{{ internal_protocol }}://{{ ironic_inspector_internal_fqdn | put_address_in_context('url') }}:{{ ironic_inspector_port }}"
|
||||
ironic_inspector_public_endpoint: "{{ public_protocol }}://{{ ironic_inspector_external_fqdn | put_address_in_context('url') }}:{{ ironic_inspector_port }}"
|
||||
|
||||
ironic_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
@ -197,7 +197,7 @@ ironic_dnsmasq_default_gateway:
|
||||
ironic_dnsmasq_boot_file: "{% if enable_ironic_ipxe | bool %}undionly.kpxe{% else %}pxelinux.0{% endif %}"
|
||||
ironic_cleaning_network:
|
||||
ironic_console_serial_speed: "115200n8"
|
||||
ironic_ipxe_url: http://{{ api_interface_address }}:{{ ironic_ipxe_port }}
|
||||
ironic_ipxe_url: http://{{ api_interface_address | put_address_in_context('url') }}:{{ ironic_ipxe_port }}
|
||||
ironic_enable_rolling_upgrade: "yes"
|
||||
ironic_inspector_kernel_cmdline_extras: []
|
||||
ironic_inspector_pxe_filter: "{% if enable_neutron | bool %}dnsmasq{% else %}none{% endif %}"
|
||||
|
@ -13,6 +13,6 @@ chain pxelinux.cfg/${mac:hexhyp} || goto inspector_ipa
|
||||
:inspector_ipa
|
||||
:retry_boot
|
||||
imgfree
|
||||
kernel --timeout 30000 {{ ironic_ipxe_url }}/ironic-agent.kernel ipa-inspection-callback-url=http://{{ ironic_inspector_internal_fqdn }}:{{ ironic_inspector_port }}/v1/continue systemd.journald.forward_to_console=yes BOOTIF=${mac} initrd=ironic-agent.initramfs {{ ironic_inspector_kernel_cmdline_extras | join(' ') }} || goto retry_boot
|
||||
kernel --timeout 30000 {{ ironic_ipxe_url }}/ironic-agent.kernel ipa-inspection-callback-url=http://{{ ironic_inspector_internal_fqdn | put_address_in_context('url') }}:{{ ironic_inspector_port }}/v1/continue systemd.journald.forward_to_console=yes BOOTIF=${mac} initrd=ironic-agent.initramfs {{ ironic_inspector_kernel_cmdline_extras | join(' ') }} || goto retry_boot
|
||||
initrd --timeout 30000 {{ ironic_ipxe_url }}/ironic-agent.initramfs || goto retry_boot
|
||||
boot
|
||||
|
@ -1,13 +1,22 @@
|
||||
# NOTE(yoctozepto): ironic-dnsmasq is used to deliver DHCP(v6) service
|
||||
# DNS service is disabled:
|
||||
port=0
|
||||
|
||||
interface={{ ironic_dnsmasq_interface }}
|
||||
bind-interfaces
|
||||
|
||||
dhcp-range={{ ironic_dnsmasq_dhcp_range }}
|
||||
dhcp-sequential-ip
|
||||
|
||||
{% if api_address_family == 'ipv6' %}
|
||||
{# TODO(yoctozepto): IPv6-only support - DHCPv6 PXE support #}
|
||||
{# different options must be used here #}
|
||||
{% else %}{# ipv4 #}
|
||||
{% if ironic_dnsmasq_default_gateway is not none %}
|
||||
dhcp-option=3,{{ ironic_dnsmasq_default_gateway }}
|
||||
{% endif %}
|
||||
dhcp-option=option:tftp-server,{{ api_interface_address }}
|
||||
dhcp-option=option:server-ip-address,{{ api_interface_address }}
|
||||
bind-interfaces
|
||||
dhcp-sequential-ip
|
||||
dhcp-option=210,/tftpboot/
|
||||
{% if enable_ironic_ipxe | bool %}
|
||||
dhcp-match=ipxe,175
|
||||
@ -20,6 +29,8 @@ dhcp-option=tag:ipxe,option:bootfile-name,{{ ironic_ipxe_url }}/inspector.ipxe
|
||||
dhcp-option=tag:efi,tag:!ipxe,option:bootfile-name,ipxe.efi
|
||||
{% endif %}
|
||||
dhcp-option=option:bootfile-name,{{ ironic_dnsmasq_boot_file }}
|
||||
{% endif %}{# ipv6/ipv4 #}
|
||||
|
||||
{% if ironic_inspector_pxe_filter == 'dnsmasq' %}
|
||||
dhcp-hostsdir=/etc/dnsmasq/dhcp-hostsdir
|
||||
{% endif %}
|
||||
|
@ -40,7 +40,7 @@ password = {{ ironic_inspector_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if ironic_policy_file is defined %}
|
||||
|
@ -1,4 +1,4 @@
|
||||
Listen {{ api_interface_address }}:{{ ironic_ipxe_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ ironic_ipxe_port }}
|
||||
|
||||
TraceEnable off
|
||||
|
||||
|
@ -66,7 +66,7 @@ valid_interfaces = internal
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if enable_cinder | bool %}
|
||||
@ -151,7 +151,7 @@ region_name = {{ openstack_region_name }}
|
||||
valid_interfaces = internal
|
||||
{% else %}
|
||||
auth_type = none
|
||||
endpoint_override = {{ internal_protocol }}://{{ ironic_internal_fqdn }}:{{ ironic_api_port }}
|
||||
endpoint_override = {{ internal_protocol }}://{{ ironic_internal_fqdn | put_address_in_context('url') }}:{{ ironic_api_port }}
|
||||
{% endif %}
|
||||
|
||||
[agent]
|
||||
|
@ -2,6 +2,6 @@ default introspect
|
||||
|
||||
label introspect
|
||||
kernel ironic-agent.kernel
|
||||
append initrd=ironic-agent.initramfs ipa-inspection-callback-url=http://{{ ironic_inspector_internal_fqdn }}:{{ ironic_inspector_port }}/v1/continue systemd.journald.forward_to_console=yes {{ ironic_inspector_kernel_cmdline_extras | join(' ') }}
|
||||
append initrd=ironic-agent.initramfs ipa-inspection-callback-url=http://{{ ironic_inspector_internal_fqdn | put_address_in_context('url') }}:{{ ironic_inspector_port }}/v1/continue systemd.journald.forward_to_console=yes {{ ironic_inspector_kernel_cmdline_extras | join(' ') }}
|
||||
|
||||
ipappend 3
|
||||
|
@ -1,4 +1,4 @@
|
||||
{
|
||||
"command": "tgtd -d 1 -f --iscsi portal={{ api_interface_address }}:{{ iscsi_port }}",
|
||||
"command": "tgtd -d 1 -f --iscsi portal={{ api_interface_address | put_address_in_context('url') }}:{{ iscsi_port }}",
|
||||
"config_files": []
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ kafka_services:
|
||||
kafka_cluster_name: "kolla_kafka"
|
||||
kafka_log_dir: "/var/log/kolla/kafka"
|
||||
kafka_heap_opts: "-Xmx1G -Xms1G"
|
||||
kafka_zookeeper: "{% for host in groups['zookeeper'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ zookeeper_client_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
kafka_zookeeper: "{% for host in groups['zookeeper'] %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ zookeeper_client_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
kafka_broker_count: "{{ groups['kafka'] | length }}"
|
||||
|
||||
####################
|
||||
|
@ -1,4 +1,4 @@
|
||||
listeners=PLAINTEXT://{{ api_interface_address }}:{{ kafka_port }}
|
||||
listeners=PLAINTEXT://{{ api_interface_address | put_address_in_context('url') }}:{{ kafka_port }}
|
||||
controlled.shutdown.enable=true
|
||||
auto.leader.rebalance.enable=true
|
||||
num.network.threads=3
|
||||
|
@ -41,7 +41,7 @@ karbor_services:
|
||||
####################
|
||||
karbor_database_name: "karbor"
|
||||
karbor_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}karbor{% endif %}"
|
||||
karbor_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
karbor_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -87,9 +87,9 @@ karbor_api_extra_volumes: "{{ karbor_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
karbor_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
||||
karbor_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
||||
karbor_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
||||
karbor_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
||||
karbor_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
||||
karbor_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ karbor_api_port }}/v1/%(project_id)s"
|
||||
|
||||
karbor_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -42,7 +42,7 @@ password = {{ karbor_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[oslo_messaging_notifications]
|
||||
transport_url = {{ notify_transport_url }}
|
||||
|
@ -57,7 +57,7 @@ keystone_services:
|
||||
####################
|
||||
keystone_database_name: "keystone"
|
||||
keystone_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}keystone{% endif %}"
|
||||
keystone_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
keystone_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
|
@ -11,6 +11,6 @@ fi
|
||||
# For each host node sync tokens
|
||||
{% for host in groups['keystone'] %}
|
||||
{% if inventory_hostname != host %}
|
||||
/usr/bin/rsync -azu --delete -e 'ssh -i /var/lib/keystone/.ssh/id_rsa -p {{ hostvars[host]['keystone_ssh_port'] }} -F /var/lib/keystone/.ssh/config' keystone@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:/etc/keystone/fernet-keys/ /etc/keystone/fernet-keys
|
||||
/usr/bin/rsync -azu --delete -e 'ssh -i /var/lib/keystone/.ssh/id_rsa -p {{ hostvars[host]['keystone_ssh_port'] }} -F /var/lib/keystone/.ssh/config' keystone@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:/etc/keystone/fernet-keys/ /etc/keystone/fernet-keys
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
{% for host in groups['keystone'] %}
|
||||
{% if inventory_hostname != host %}
|
||||
/usr/bin/rsync -az -e 'ssh -i /var/lib/keystone/.ssh/id_rsa -p {{ hostvars[host]['keystone_ssh_port'] }} -F /var/lib/keystone/.ssh/config' --delete /etc/keystone/fernet-keys/ keystone@{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:/etc/keystone/fernet-keys
|
||||
/usr/bin/rsync -az -e 'ssh -i /var/lib/keystone/.ssh/id_rsa -p {{ hostvars[host]['keystone_ssh_port'] }} -F /var/lib/keystone/.ssh/config' --delete /etc/keystone/fernet-keys/ keystone@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:/etc/keystone/fernet-keys
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
@ -46,7 +46,7 @@ max_active_keys = {{ ((fernet_token_expiry | int +
|
||||
[cache]
|
||||
backend = oslo_cache.memcache_pool
|
||||
enabled = True
|
||||
memcache_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcache_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[oslo_messaging_notifications]
|
||||
transport_url = {{ notify_transport_url }}
|
||||
@ -68,5 +68,5 @@ connection_string = {{ osprofiler_backend_connection_string }}
|
||||
|
||||
{% if enable_grafana | bool %}
|
||||
[cors]
|
||||
allowed_origin = {{ public_protocol }}://{{ kolla_external_fqdn }}:{{ grafana_server_port }}
|
||||
allowed_origin = {{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ grafana_server_port }}
|
||||
{% endif %}
|
||||
|
@ -5,8 +5,8 @@
|
||||
{% set python_path = '/var/lib/kolla/venv/lib/python' + distro_python_version + '/site-packages' %}
|
||||
{% endif %}
|
||||
{% set binary_path = '/usr/bin' if keystone_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
||||
Listen {{ api_interface_address }}:{{ keystone_public_listen_port }}
|
||||
Listen {{ api_interface_address }}:{{ keystone_admin_listen_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ keystone_public_listen_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ keystone_admin_listen_port }}
|
||||
|
||||
ServerSignature Off
|
||||
ServerTokens Prod
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
- name: Register the kibana index in elasticsearch
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana"
|
||||
method: PUT
|
||||
body: "{{ kibana_default_index_options | to_json }}"
|
||||
body_format: json
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
- name: Wait for kibana to register in elasticsearch
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana"
|
||||
status_code: 200
|
||||
register: result
|
||||
until: result.status == 200
|
||||
@ -32,7 +32,7 @@
|
||||
|
||||
- name: Change kibana config to set index as defaultIndex
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana/config/*"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana/config/*"
|
||||
method: PUT
|
||||
body:
|
||||
defaultIndex: "{{ kibana_default_index_pattern }}"
|
||||
@ -44,7 +44,7 @@
|
||||
uri:
|
||||
headers:
|
||||
Content-Type: application/json
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana"
|
||||
method: GET
|
||||
register: kibana_default_indexes
|
||||
run_once: true
|
||||
@ -60,7 +60,7 @@
|
||||
|
||||
- name: Add index pattern to kibana
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}/.kibana/index-pattern/{{ kibana_default_index_pattern }}"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}/.kibana/index-pattern/{{ kibana_default_index_pattern }}"
|
||||
method: PUT
|
||||
body: "{{ kibana_default_index | to_json }}"
|
||||
body_format: json
|
||||
|
@ -2,7 +2,7 @@ kibana.defaultAppId: "{{ kibana_default_app_id }}"
|
||||
logging.dest: /var/log/kolla/kibana/kibana.log
|
||||
server.port: {{ kibana_server_port }}
|
||||
server.host: "{{ api_interface_address }}"
|
||||
elasticsearch.url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ elasticsearch_port }}"
|
||||
elasticsearch.url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ elasticsearch_port }}"
|
||||
elasticsearch.requestTimeout: {{ kibana_elasticsearch_request_timeout }}
|
||||
elasticsearch.shardTimeout: {{ kibana_elasticsearch_shard_timeout }}
|
||||
elasticsearch.ssl.verificationMode: "{{ 'full' if kibana_elasticsearch_ssl_verify | bool else 'none' }}"
|
||||
|
@ -1,5 +1,5 @@
|
||||
[DEFAULT]
|
||||
kuryr_uri = {{ internal_protocol }}://{{ api_interface_address }}:{{ kuryr_port }}
|
||||
kuryr_uri = {{ internal_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ kuryr_port }}
|
||||
debug = {{ kuryr_logging_debug }}
|
||||
log_dir = /var/log/kolla/kuryr
|
||||
|
||||
|
@ -1 +1 @@
|
||||
http://{{ api_interface_address }}:{{ kuryr_port }}
|
||||
http://{{ api_interface_address | put_address_in_context('url') }}:{{ kuryr_port }}
|
||||
|
@ -37,7 +37,7 @@ magnum_services:
|
||||
####################
|
||||
magnum_database_name: "magnum"
|
||||
magnum_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}magnum{% endif %}"
|
||||
magnum_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
magnum_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -85,9 +85,9 @@ magnum_conductor_extra_volumes: "{{ magnum_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
magnum_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ magnum_api_port }}/v1"
|
||||
magnum_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ magnum_api_port }}/v1"
|
||||
magnum_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ magnum_api_port }}/v1"
|
||||
magnum_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ magnum_api_port }}/v1"
|
||||
magnum_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ magnum_api_port }}/v1"
|
||||
magnum_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ magnum_api_port }}/v1"
|
||||
|
||||
magnum_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -68,7 +68,7 @@ password = {{ magnum_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[trust]
|
||||
trustee_domain_admin_password = {{ magnum_keystone_password }}
|
||||
|
@ -65,7 +65,7 @@ ceph_client_manila_keyring_caps:
|
||||
#####################
|
||||
manila_database_name: "manila"
|
||||
manila_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}manila{% endif %}"
|
||||
manila_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
manila_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
#####################
|
||||
@ -129,12 +129,12 @@ manila_data_extra_volumes: "{{ manila_extra_volumes }}"
|
||||
#####################
|
||||
## OpenStack
|
||||
#####################
|
||||
manila_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
||||
manila_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
||||
manila_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
||||
manila_v2_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
||||
manila_v2_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
||||
manila_v2_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
||||
manila_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
||||
manila_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
||||
manila_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v1/%(tenant_id)s"
|
||||
manila_v2_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
||||
manila_v2_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
||||
manila_v2_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ manila_api_port }}/v2/%(tenant_id)s"
|
||||
|
||||
manila_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -19,7 +19,7 @@ password = {{ cinder_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[nova]
|
||||
auth_uri = {{ keystone_internal_url }}
|
||||
@ -35,10 +35,10 @@ password = {{ nova_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[neutron]
|
||||
url = {{ internal_protocol }}://{{ neutron_internal_fqdn }}:{{ neutron_server_port }}
|
||||
url = {{ internal_protocol }}://{{ neutron_internal_fqdn | put_address_in_context('url') }}:{{ neutron_server_port }}
|
||||
auth_uri = {{ keystone_internal_url }}
|
||||
auth_url = {{ keystone_admin_url }}
|
||||
auth_type = password
|
||||
@ -52,7 +52,7 @@ password = {{ neutron_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
{% if enable_manila_backend_generic | bool %}
|
||||
[generic]
|
||||
|
@ -40,7 +40,7 @@ password = {{ manila_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
[oslo_messaging_notifications]
|
||||
transport_url = {{ notify_transport_url }}
|
||||
|
@ -45,7 +45,7 @@ database_max_timeout: 120
|
||||
####################
|
||||
# HAProxy
|
||||
####################
|
||||
internal_haproxy_members: "{% for host in groups['mariadb'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ mariadb_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
||||
internal_haproxy_members: "{% for host in groups['mariadb'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ mariadb_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
||||
external_haproxy_members: "{% for host in groups['mariadb'] %}server {{ host }} {{ host }}:{{ mariadb_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
||||
|
||||
####################
|
||||
|
@ -26,12 +26,12 @@ character-set-server = utf8
|
||||
|
||||
datadir=/var/lib/mysql/
|
||||
|
||||
wsrep_cluster_address=gcomm://{% if (groups['mariadb'] | length) > 1 %}{% for host in groups['mariadb'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ mariadb_wsrep_port }}{% if not loop.last %},{% endif %}{% endfor %}{% endif %}
|
||||
wsrep_cluster_address=gcomm://{% if (groups['mariadb'] | length) > 1 %}{% for host in groups['mariadb'] %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ mariadb_wsrep_port }}{% if not loop.last %},{% endif %}{% endfor %}{% endif %}
|
||||
|
||||
wsrep_provider_options=gmcast.listen_addr=tcp://{{ api_interface_address }}:{{ mariadb_wsrep_port }};ist.recv_addr={{ api_interface_address }}:{{ mariadb_ist_port }}
|
||||
wsrep_provider_options=gmcast.listen_addr=tcp://{{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_wsrep_port }};ist.recv_addr={{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_ist_port }}
|
||||
|
||||
wsrep_node_address={{ api_interface_address }}:{{ mariadb_wsrep_port }}
|
||||
wsrep_sst_receive_address={{ api_interface_address }}:{{ mariadb_sst_port }}
|
||||
wsrep_node_address={{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_wsrep_port }}
|
||||
wsrep_sst_receive_address={{ api_interface_address | put_address_in_context('url') }}:{{ mariadb_sst_port }}
|
||||
|
||||
wsrep_provider={{ wsrep_driver }}
|
||||
wsrep_cluster_name="{{ database_cluster_name }}"
|
||||
@ -61,3 +61,12 @@ innodb_lock_schedule_algorithm = FCFS
|
||||
|
||||
[server]
|
||||
pid-file=/var/lib/mysql/mariadb.pid
|
||||
|
||||
[sst]
|
||||
{% if sst_method == 'mariabackup' and api_address_family == 'ipv6' %}
|
||||
# NOTE(yoctozepto): for IPv6 we need to tweak sockopt for socat (mariabackup sst backend)
|
||||
# see: https://mariadb.com/kb/en/library/xtrabackup-v2-sst-method/#performing-ssts-with-ipv6-addresses
|
||||
# and: https://jira.mariadb.org/browse/MDEV-18797
|
||||
# this can be removed when MDEV-18797 is resolved
|
||||
sockopt=",pf=ip6"
|
||||
{% endif %}
|
||||
|
@ -42,7 +42,7 @@ masakari_services:
|
||||
####################
|
||||
masakari_database_name: "masakari"
|
||||
masakari_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}masakari{% endif %}"
|
||||
masakari_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
masakari_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
####################
|
||||
# Docker
|
||||
@ -92,9 +92,9 @@ masakari_instancemonitor_default_volumes:
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
masakari_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ masakari_api_port }}"
|
||||
masakari_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ masakari_api_port }}"
|
||||
masakari_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ masakari_api_port }}"
|
||||
masakari_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ masakari_api_port }}"
|
||||
masakari_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ masakari_api_port }}"
|
||||
masakari_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ masakari_api_port }}"
|
||||
|
||||
masakari_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -12,4 +12,4 @@ username = {{ masakari_keystone_user }}
|
||||
password = {{ masakari_keystone_password }}
|
||||
|
||||
[libvirt]
|
||||
connection_uri = "qemu+tcp://{{ migration_interface_address }}/system"
|
||||
connection_uri = "qemu+tcp://{{ migration_interface_address | put_address_in_context('url') }}/system"
|
||||
|
@ -32,7 +32,7 @@ region_name = {{ openstack_region_name }}
|
||||
{% if enable_memcached | bool %}
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
[oslo_messaging_notifications]
|
||||
|
@ -5,7 +5,7 @@
|
||||
{% endif %}
|
||||
{% set binary_path = '/usr/bin' if masakari_install_type == 'binary' else '/var/lib/kolla/venv/bin' %}
|
||||
|
||||
Listen {{ api_interface_address }}:{{ masakari_api_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ masakari_api_port }}
|
||||
|
||||
ServerSignature Off
|
||||
ServerTokens Prod
|
||||
|
@ -25,7 +25,7 @@ memcached_services:
|
||||
####################
|
||||
# HAProxy
|
||||
####################
|
||||
haproxy_members: "{% for host in groups['memcached'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
||||
haproxy_members: "{% for host in groups['memcached'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ memcached_port }} check inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
|
||||
|
||||
####################
|
||||
# Docker
|
||||
|
@ -48,7 +48,7 @@ mistral_services:
|
||||
####################
|
||||
mistral_database_name: "mistral"
|
||||
mistral_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}mistral{% endif %}"
|
||||
mistral_database_address: "{{ database_address }}:{{ database_port }}"
|
||||
mistral_database_address: "{{ database_address | put_address_in_context('url') }}:{{ database_port }}"
|
||||
|
||||
|
||||
####################
|
||||
@ -108,9 +108,9 @@ mistral_api_extra_volumes: "{{ mistral_extra_volumes }}"
|
||||
####################
|
||||
# OpenStack
|
||||
####################
|
||||
mistral_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ mistral_api_port }}/v2"
|
||||
mistral_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ mistral_api_port }}/v2"
|
||||
mistral_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ mistral_api_port }}/v2"
|
||||
mistral_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ mistral_api_port }}/v2"
|
||||
mistral_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ mistral_api_port }}/v2"
|
||||
mistral_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ mistral_api_port }}/v2"
|
||||
|
||||
mistral_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -48,11 +48,11 @@ password = {{ mistral_keystone_password }}
|
||||
|
||||
memcache_security_strategy = ENCRYPT
|
||||
memcache_secret_key = {{ memcache_secret_key }}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}
|
||||
|
||||
|
||||
[mistral]
|
||||
url = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ mistral_api_port }}
|
||||
url = {{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ mistral_api_port }}
|
||||
|
||||
[openstack_actions]
|
||||
os_actions_endpoint_type = internal
|
||||
|
@ -141,11 +141,11 @@ monasca_influxdb_retention_policy:
|
||||
####################
|
||||
# Monasca
|
||||
####################
|
||||
monasca_kafka_servers: "{% for host in groups['kafka'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ kafka_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
monasca_zookeeper_servers: "{% for host in groups['zookeeper'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ zookeeper_client_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
monasca_memcached_servers: "{% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
monasca_elasticsearch_servers: "{% for host in groups['elasticsearch'] %}'{{ internal_protocol }}://{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ elasticsearch_port }}'{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
monasca_storm_nimbus_servers: "{% for host in groups['storm-nimbus'] %}'{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}'{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
monasca_kafka_servers: "{% for host in groups['kafka'] %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ kafka_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
monasca_zookeeper_servers: "{% for host in groups['zookeeper'] %}{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ zookeeper_client_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
monasca_memcached_servers: "{% for host in groups['memcached'] %}{{ 'api' | kolla_address(host) | put_address_in_context('memcache') }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
monasca_elasticsearch_servers: "{% for host in groups['elasticsearch'] %}'{{ internal_protocol }}://{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ elasticsearch_port }}'{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
monasca_storm_nimbus_servers: "{% for host in groups['storm-nimbus'] %}'{{ 'api' | kolla_address(host) }}'{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
# NOTE(dszumski): Only one NTP server is currently supported by the Monasca Agent plugin
|
||||
monasca_ntp_server: "{{ external_ntp_servers | first }}"
|
||||
|
||||
@ -189,7 +189,7 @@ monasca_grafana_data_sources:
|
||||
name: "Monasca API"
|
||||
type: "monasca-datasource"
|
||||
access: "proxy"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_api_port }}"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_api_port }}"
|
||||
isDefault: True
|
||||
basicAuth: false
|
||||
jsonData:
|
||||
@ -329,13 +329,13 @@ monasca_agent_authorized_roles:
|
||||
monasca_delegate_authorized_roles:
|
||||
- admin
|
||||
|
||||
monasca_api_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_api_port }}/v2.0"
|
||||
monasca_api_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_api_port }}/v2.0"
|
||||
monasca_api_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ monasca_api_port }}/v2.0"
|
||||
monasca_api_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_api_port }}/v2.0"
|
||||
monasca_api_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_api_port }}/v2.0"
|
||||
monasca_api_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ monasca_api_port }}/v2.0"
|
||||
|
||||
monasca_log_api_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_log_api_port }}"
|
||||
monasca_log_api_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ monasca_log_api_port }}"
|
||||
monasca_log_api_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ monasca_log_api_port }}"
|
||||
monasca_log_api_admin_endpoint: "{{ admin_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}"
|
||||
monasca_log_api_internal_endpoint: "{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}"
|
||||
monasca_log_api_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context('url') }}:{{ monasca_log_api_port }}"
|
||||
|
||||
monasca_logging_debug: "{{ openstack_logging_debug }}"
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
- name: Wait for Monasca Grafana to load
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/login"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/login"
|
||||
status_code: 200
|
||||
register: result
|
||||
until: result.get('status') == 200
|
||||
@ -16,7 +16,7 @@
|
||||
- name: List Monasca Grafana organisations
|
||||
uri:
|
||||
method: GET
|
||||
url: '{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/orgs'
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs"
|
||||
user: '{{ monasca_grafana_admin_username }}'
|
||||
password: '{{ monasca_grafana_admin_password }}'
|
||||
return_content: true
|
||||
@ -27,7 +27,7 @@
|
||||
- name: Create default control plane organisation if it doesn't exist
|
||||
uri:
|
||||
method: POST
|
||||
url: '{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/orgs'
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs"
|
||||
user: '{{ monasca_grafana_admin_username }}'
|
||||
password: '{{ monasca_grafana_admin_password }}'
|
||||
body_format: json
|
||||
@ -40,7 +40,7 @@
|
||||
- name: Lookup Monasca Grafana control plane organisation ID
|
||||
uri:
|
||||
method: GET
|
||||
url: '{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/orgs/name/{{ monasca_grafana_control_plane_org }}'
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs/name/{{ monasca_grafana_control_plane_org }}"
|
||||
user: '{{ monasca_grafana_admin_username }}'
|
||||
password: '{{ monasca_grafana_admin_password }}'
|
||||
return_content: true
|
||||
@ -51,7 +51,7 @@
|
||||
- name: Add {{ monasca_grafana_admin_username }} user to control plane organisation
|
||||
uri:
|
||||
method: POST
|
||||
url: '{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/orgs/{{ monasca_grafana_conf_org.json.id }}/users'
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/orgs/{{ monasca_grafana_conf_org.json.id }}/users"
|
||||
user: '{{ monasca_grafana_admin_username }}'
|
||||
password: '{{ monasca_grafana_admin_password }}'
|
||||
body:
|
||||
@ -69,7 +69,7 @@
|
||||
- name: Switch Monasca Grafana to the control plane organisation
|
||||
uri:
|
||||
method: POST
|
||||
url: '{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/user/using/{{ monasca_grafana_conf_org.json.id }}'
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/user/using/{{ monasca_grafana_conf_org.json.id }}"
|
||||
user: '{{ monasca_grafana_admin_username }}'
|
||||
password: '{{ monasca_grafana_admin_password }}'
|
||||
force_basic_auth: true
|
||||
@ -77,7 +77,7 @@
|
||||
|
||||
- name: Enable Monasca Grafana datasource for control plane organisation
|
||||
uri:
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ monasca_grafana_server_port }}/api/datasources"
|
||||
url: "{{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ monasca_grafana_server_port }}/api/datasources"
|
||||
method: POST
|
||||
user: "{{ monasca_grafana_admin_username }}"
|
||||
password: "{{ monasca_grafana_admin_password }}"
|
||||
|
@ -6,7 +6,7 @@ region = {{ openstack_region_name }}
|
||||
|
||||
[database]
|
||||
database = {{ monasca_database_name }}
|
||||
connection = mysql+pymysql://{{ monasca_database_user }}:{{ monasca_database_password }}@{{ monasca_database_address }}:{{ monasca_database_port }}/{{ monasca_database_name }}
|
||||
connection = mysql+pymysql://{{ monasca_database_user }}:{{ monasca_database_password }}@{{ monasca_database_address | put_address_in_context('url') }}:{{ monasca_database_port }}/{{ monasca_database_name }}
|
||||
|
||||
[influxdb]
|
||||
database_name = {{ monasca_influxdb_name }}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% set python_path = '/usr/lib/python2.7/site-packages' if monasca_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %}
|
||||
{% set wsgi_path = '/usr/bin' if monasca_install_type == 'binary' else '/monasca-api/monasca_api/api' %}
|
||||
|
||||
Listen {{ api_interface_address }}:{{ monasca_api_port }}
|
||||
Listen {{ api_interface_address | put_address_in_context('url') }}:{{ monasca_api_port }}
|
||||
|
||||
TraceEnable off
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user