############################################################################## # Copyright (c) 2018 Mirantis Inc., Enea AB and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## {%- import 'net_map.j2' as nm with context %} --- parameters: _param: # openstack service addresses {%- if conf.MCP_VCP %} openstack_proxy_control_address: ${_param:opnfv_openstack_proxy_control_address} openstack_proxy_node01_control_address: ${_param:opnfv_openstack_proxy_node01_control_address} openstack_proxy_node02_control_address: ${_param:opnfv_openstack_proxy_node02_control_address} {%- else %} openstack_proxy_control_address: ${_param:opnfv_openstack_control_address} openstack_proxy_node01_control_address: ${_param:opnfv_openstack_control_node01_address} openstack_proxy_node02_control_address: ${_param:opnfv_openstack_control_node03_address} {%- endif %} openstack_proxy_address: ${_param:opnfv_openstack_proxy_address} openstack_proxy_node01_address: ${_param:opnfv_openstack_proxy_node01_address} openstack_proxy_node02_address: ${_param:opnfv_openstack_proxy_node02_address} openstack_control_address: ${_param:opnfv_openstack_control_address} openstack_control_node01_address: ${_param:opnfv_openstack_control_node01_address} openstack_control_node02_address: ${_param:opnfv_openstack_control_node02_address} openstack_control_node03_address: ${_param:opnfv_openstack_control_node03_address} {%- if conf.MCP_VCP %} openstack_database_address: ${_param:opnfv_openstack_database_address} openstack_database_node01_address: ${_param:opnfv_openstack_database_node01_address} openstack_database_node02_address: ${_param:opnfv_openstack_database_node02_address} openstack_database_node03_address: ${_param:opnfv_openstack_database_node03_address} openstack_message_queue_address: ${_param:opnfv_openstack_message_queue_address} openstack_message_queue_node01_address: ${_param:opnfv_openstack_message_queue_node01_address} openstack_message_queue_node02_address: ${_param:opnfv_openstack_message_queue_node02_address} openstack_message_queue_node03_address: ${_param:opnfv_openstack_message_queue_node03_address} openstack_telemetry_address: ${_param:opnfv_openstack_telemetry_address} openstack_telemetry_node01_address: ${_param:opnfv_openstack_telemetry_node01_address} openstack_telemetry_node02_address: ${_param:opnfv_openstack_telemetry_node02_address} openstack_telemetry_node03_address: ${_param:opnfv_openstack_telemetry_node03_address} {%- else %} openstack_database_address: ${_param:openstack_control_address} openstack_database_node01_address: ${_param:openstack_control_node01_address} openstack_database_node02_address: ${_param:openstack_control_node02_address} openstack_database_node03_address: ${_param:openstack_control_node03_address} openstack_message_queue_address: ${_param:openstack_control_address} openstack_message_queue_node01_address: ${_param:openstack_control_node01_address} openstack_message_queue_node02_address: ${_param:openstack_control_node02_address} openstack_message_queue_node03_address: ${_param:openstack_control_node03_address} openstack_telemetry_address: ${_param:openstack_control_address} openstack_telemetry_node01_address: ${_param:openstack_control_node01_address} openstack_telemetry_node02_address: ${_param:openstack_control_node02_address} openstack_telemetry_node03_address: ${_param:openstack_control_node03_address} {%- endif %} # openstack service hostnames {%- if conf.MCP_VCP %} openstack_proxy_hostname: prx openstack_proxy_node01_hostname: prx01 openstack_proxy_node02_hostname: prx02 openstack_control_hostname: ctl openstack_control_node01_hostname: ctl01 openstack_control_node02_hostname: ctl02 openstack_control_node03_hostname: ctl03 openstack_database_hostname: dbs openstack_database_node01_hostname: dbs01 openstack_database_node02_hostname: dbs02 openstack_database_node03_hostname: dbs03 openstack_message_queue_hostname: msg openstack_message_queue_node01_hostname: msg01 openstack_message_queue_node02_hostname: msg02 openstack_message_queue_node03_hostname: msg03 openstack_telemetry_hostname: mdb openstack_telemetry_node01_hostname: mdb01 openstack_telemetry_node02_hostname: mdb02 openstack_telemetry_node03_hostname: mdb03 {%- else %} openstack_proxy_hostname: ${_param:openstack_control_hostname} openstack_proxy_node01_hostname: ${_param:openstack_control_node01_hostname} openstack_proxy_node02_hostname: ${_param:openstack_control_node03_hostname} openstack_control_hostname: kvm openstack_control_node01_hostname: kvm01 openstack_control_node02_hostname: kvm02 openstack_control_node03_hostname: kvm03 openstack_database_hostname: ${_param:openstack_control_hostname} openstack_database_node01_hostname: ${_param:openstack_control_node01_hostname} openstack_database_node02_hostname: ${_param:openstack_control_node02_hostname} openstack_database_node03_hostname: ${_param:openstack_control_node03_hostname} openstack_message_queue_hostname: ${_param:openstack_control_hostname} openstack_message_queue_node01_hostname: ${_param:openstack_control_node01_hostname} openstack_message_queue_node02_hostname: ${_param:openstack_control_node02_hostname} openstack_message_queue_node03_hostname: ${_param:openstack_control_node03_hostname} openstack_telemetry_hostname: ${_param:openstack_control_hostname} openstack_telemetry_node01_hostname: ${_param:openstack_control_node01_hostname} openstack_telemetry_node02_hostname: ${_param:openstack_control_node02_hostname} openstack_telemetry_node03_hostname: ${_param:openstack_control_node03_hostname} {%- endif %} # openstack compute openstack_compute_node01_hostname: cmp001 openstack_compute_node02_hostname: cmp002 openstack_region: RegionOne admin_email: root@localhost db_connection_recycle_time: 300 # Neutron osv/nodvr neutron_control_dvr: 'False' neutron_global_physnet_mtu: 1500 neutron_external_mtu: 1500 neutron_gateway_dvr: 'False' neutron_gateway_agent_mode: legacy neutron_compute_dvr: 'False' neutron_compute_agent_mode: legacy neutron_compute_external_access: 'True' galera_server_cluster_name: openstack_cluster armband_repo_version: 'queens' # ${_param:openstack_version} glance_version: ${_param:openstack_version} glance_service_host: ${_param:openstack_control_address} keystone_version: ${_param:openstack_version} keystone_service_host: ${_param:openstack_control_address} heat_version: ${_param:openstack_version} heat_service_host: ${_param:openstack_control_address} cinder_version: ${_param:openstack_version} cinder_service_host: ${_param:openstack_control_address} ceilometer_version: ${_param:openstack_version} ceilometer_service_host: ${_param:openstack_telemetry_address} nova_version: ${_param:openstack_version} nova_service_host: ${_param:openstack_control_address} neutron_version: ${_param:openstack_version} neutron_service_host: ${_param:openstack_control_address} {%- if conf.MCP_VCP %} glusterfs_service_host: ${_param:infra_kvm_address} {%- else %} glusterfs_service_host: ${_param:openstack_control_address} {%- endif %} mysql_admin_user: root aodh_version: ${_param:openstack_version} barbican_version: ${_param:openstack_version} barbican_service_host: ${_param:openstack_control_address} barbican_integration_enabled: true horizon_version: ${_param:openstack_version} horizon_identity_host: ${_param:openstack_control_address} horizon_identity_encryption: none horizon_identity_version: 3 aodh_service_host: ${_param:openstack_telemetry_address} gnocchi_version: 4.2 gnocchi_service_host: ${_param:openstack_telemetry_address} panko_version: ${_param:openstack_version} panko_service_host: ${_param:openstack_telemetry_address} ceilometer_agent_default_polling_interval: 180 ceilometer_agent_default_polling_meters: - "*" designate_service_host: ${_param:openstack_control_address} designate_domain_id: 5186883b-91fb-4891-bd49-e6769234a8fc designate_pool_ns_records: - hostname: 'ns1.example.org.' priority: 10 designate_pool_nameservers: - host: ${_param:openstack_control_node01_address} port: 53 - host: ${_param:openstack_control_node02_address} port: 53 - host: ${_param:openstack_control_node03_address} port: 53 designate_pool_target_type: bind9 designate_pool_target_masters: - host: ${_param:openstack_control_node01_address} port: 5354 - host: ${_param:openstack_control_node02_address} port: 5354 - host: ${_param:openstack_control_node03_address} port: 5354 designate_pool_target_options: host: ${_param:openstack_control_node01_address} port: 53 rndc_host: ${_param:openstack_control_node01_address} rndc_port: 953 rndc_key_file: /etc/designate/rndc.key designate_version: ${_param:openstack_version} # Billing # keystone_billometer_password: opnfv_secret # keystone_billometer_address: ${_param:billometer_service_host} # billometer_service_host: ${_param:openstack_billing_address} # billometer_version: ${_param:openstack_version} # billometer_secret_key: opnfv_secretpasswordpasswordpassword # billometer_identity_password: ${_param:keystone_billometer_password} # billometer_identity_host: ${_param:openstack_control_address} # billometer_identity_token: ${_param:keystone_service_token} linux: system: {%- if 'aarch64' in nm.cluster.arch %} repo: armband_3: # Should be in sync with the repo config generated via curtin/MaaS source: "deb http://linux.enea.com/mcp-repos/${_param:armband_repo_version}/${_param:linux_system_codename} ${_param:armband_repo_version}-armband main" key: ${_param:armband_key} pin: - pin: 'release a=${_param:armband_repo_version}-armband' priority: 1201 package: '*' {%- endif %} kernel: sysctl: net.ipv4.tcp_congestion_control: yeah net.ipv4.tcp_slow_start_after_idle: 0 net.ipv4.tcp_fin_timeout: 30 package: python-tornado: version: latest network: host: {%- if conf.MCP_VCP %} prx: address: ${_param:openstack_proxy_control_address} names: - ${_param:openstack_proxy_hostname} - ${_param:openstack_proxy_hostname}.${_param:cluster_domain} prx01: address: ${_param:openstack_proxy_node01_control_address} names: - ${_param:openstack_proxy_node01_hostname} - ${_param:openstack_proxy_node01_hostname}.${_param:cluster_domain} prx02: address: ${_param:openstack_proxy_node02_control_address} names: - ${_param:openstack_proxy_node02_hostname} - ${_param:openstack_proxy_node02_hostname}.${_param:cluster_domain} ctl: address: ${_param:openstack_control_address} names: - ${_param:openstack_control_hostname} - ${_param:openstack_control_hostname}.${_param:cluster_domain} ctl01: address: ${_param:openstack_control_node01_address} names: - ${_param:openstack_control_node01_hostname} - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain} ctl02: address: ${_param:openstack_control_node02_address} names: - ${_param:openstack_control_node02_hostname} - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain} ctl03: address: ${_param:openstack_control_node03_address} names: - ${_param:openstack_control_node03_hostname} - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain} msg: address: ${_param:openstack_message_queue_address} names: - ${_param:openstack_message_queue_hostname} - ${_param:openstack_message_queue_hostname}.${_param:cluster_domain} msg01: address: ${_param:openstack_message_queue_node01_address} names: - ${_param:openstack_message_queue_node01_hostname} - ${_param:openstack_message_queue_node01_hostname}.${_param:cluster_domain} msg02: address: ${_param:openstack_message_queue_node02_address} names: - ${_param:openstack_message_queue_node02_hostname} - ${_param:openstack_message_queue_node02_hostname}.${_param:cluster_domain} msg03: address: ${_param:openstack_message_queue_node03_address} names: - ${_param:openstack_message_queue_node03_hostname} - ${_param:openstack_message_queue_node03_hostname}.${_param:cluster_domain} dbs: address: ${_param:openstack_database_address} names: - ${_param:openstack_database_hostname} - ${_param:openstack_database_hostname}.${_param:cluster_domain} dbs01: address: ${_param:openstack_database_node01_address} names: - ${_param:openstack_database_node01_hostname} - ${_param:openstack_database_node01_hostname}.${_param:cluster_domain} dbs02: address: ${_param:openstack_database_node02_address} names: - ${_param:openstack_database_node02_hostname} - ${_param:openstack_database_node02_hostname}.${_param:cluster_domain} dbs03: address: ${_param:openstack_database_node03_address} names: - ${_param:openstack_database_node03_hostname} - ${_param:openstack_database_node03_hostname}.${_param:cluster_domain} mdb: address: ${_param:openstack_telemetry_address} names: - ${_param:openstack_telemetry_hostname} - ${_param:openstack_telemetry_hostname}.${_param:cluster_domain} mdb01: address: ${_param:openstack_telemetry_node01_address} names: - ${_param:openstack_telemetry_node01_hostname} - ${_param:openstack_telemetry_node01_hostname}.${_param:cluster_domain} mdb02: address: ${_param:openstack_telemetry_node02_address} names: - ${_param:openstack_telemetry_node02_hostname} - ${_param:openstack_telemetry_node02_hostname}.${_param:cluster_domain} mdb03: address: ${_param:openstack_telemetry_node03_address} names: - ${_param:openstack_telemetry_node03_hostname} - ${_param:openstack_telemetry_node03_hostname}.${_param:cluster_domain} {%- else %} kvm: address: ${_param:openstack_control_address} names: - ${_param:openstack_control_hostname} - ${_param:openstack_control_hostname}.${_param:cluster_domain} kvm01: address: ${_param:openstack_control_node01_address} names: - ${_param:openstack_control_node01_hostname} - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain} kvm02: address: ${_param:openstack_control_node02_address} names: - ${_param:openstack_control_node02_hostname} - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain} kvm03: address: ${_param:openstack_control_node03_address} names: - ${_param:openstack_control_node03_hostname} - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain} {%- endif %} {#- For compute nodes, expand values in-place, bypassing reclass param expansion #} {%- for cmp in range(1, nm.cmp_nodes + 1) %} {%- set h = 'cmp%03d' | format(cmp) %} {%- set mgmt = nm.net_mgmt_hosts | length + nm.start_ip[nm.net_mgmt] + loop.index %} {{ h }}: address: {{ nm.net_mgmt | ipnet_hostaddr(mgmt) }} names: - {{ h }} - {{ h }}.${_param:cluster_domain} {%- endfor %}