diff options
Diffstat (limited to 'mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha')
16 files changed, 1613 insertions, 0 deletions
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/haproxy_openstack_api.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/haproxy_openstack_api.yml new file mode 100644 index 000000000..5b0d91381 --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/haproxy_openstack_api.yml @@ -0,0 +1,174 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +parameters: + _param: + haproxy_check: check inter 15s fastinter 2s downinter 4s rise 3 fall 3 + haproxy: + proxy: + listen: + cinder_api: + type: openstack-service + service_name: cinder + binds: + - address: ${_param:cluster_vip_address} + port: 8776 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 8776 + params: ${_param:haproxy_check} + glance_api: + type: openstack-service + service_name: glance + binds: + - address: ${_param:cluster_vip_address} + port: 9292 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 9292 + params: ${_param:haproxy_check} + glance_registry_api: + type: general-service + service_name: glance + binds: + - address: ${_param:cluster_vip_address} + port: 9191 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 9191 + params: ${_param:haproxy_check} + glare: + type: general-service + service_name: glare + binds: + - address: ${_param:cluster_vip_address} + port: 9494 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 9494 + params: ${_param:haproxy_check} + heat_cloudwatch_api: + type: openstack-service + service_name: heat + binds: + - address: ${_param:cluster_vip_address} + port: 8003 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 8003 + params: ${_param:haproxy_check} + heat_api: + type: openstack-service + service_name: heat + binds: + - address: ${_param:cluster_vip_address} + port: 8004 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 8004 + params: ${_param:haproxy_check} + heat_cfn_api: + type: openstack-service + service_name: heat + binds: + - address: ${_param:cluster_vip_address} + port: 8000 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 8000 + params: ${_param:haproxy_check} + keystone_public_api: + type: openstack-service + service_name: keystone + binds: + - address: ${_param:cluster_vip_address} + port: 5000 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 5000 + params: ${_param:haproxy_check} + keystone_admin_api: + type: openstack-service + service_name: keystone + binds: + - address: ${_param:cluster_vip_address} + port: 35357 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 35357 + params: ${_param:haproxy_check} + neutron_api: + type: openstack-service + service_name: neutron + binds: + - address: ${_param:cluster_vip_address} + port: 9696 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 9696 + params: ${_param:haproxy_check} + nova_placement_api: + mode: http + binds: + - address: ${_param:cluster_vip_address} + port: 8778 + options: + - httpclose + - httplog + health-check: + http: + options: + - expect status 401 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 8778 + params: ${_param:haproxy_check} + nova_ec2_api: + type: general-service + service_name: nova + check: false + binds: + - address: ${_param:cluster_vip_address} + port: 8773 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 8773 + params: ${_param:haproxy_check} + nova_api: + type: openstack-service + service_name: nova + binds: + - address: ${_param:cluster_vip_address} + port: 8774 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 8774 + params: ${_param:haproxy_check} + nova_metadata_api: + type: openstack-service + binds: + - address: ${_param:cluster_vip_address} + port: 8775 + servers: + - name: ctl01 + host: ${_param:cluster_node01_address} + port: 8775 + params: ${_param:haproxy_check} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/config.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/config.yml new file mode 100644 index 000000000..623eb34c1 --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/config.yml @@ -0,0 +1,143 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - service.git.client + - system.linux.system.single + - system.linux.system.repo.mcp.salt + - system.linux.system.repo.saltstack.xenial + - system.salt.master.api + - system.salt.master.pkg + - system.salt.minion.ca.salt_master + - system.reclass.storage.salt + - system.reclass.storage.system.physical_control_cluster + - system.reclass.storage.system.openstack_control_cluster + - system.reclass.storage.system.openstack_proxy_cluster + - system.reclass.storage.system.openstack_database_cluster + - system.reclass.storage.system.openstack_message_queue_cluster + - system.reclass.storage.system.openstack_telemetry_cluster + # - system.reclass.storage.system.stacklight_log_cluster + # - system.reclass.storage.system.stacklight_monitor_cluster + # - system.reclass.storage.system.stacklight_telemetry_cluster + - system.reclass.storage.system.infra_maas_single +parameters: + _param: + salt_master_base_environment: prd + reclass_data_repository: local + salt_master_environment_repository: "https://github.com/tcpcloud" + salt_master_environment_revision: master + single_address: ${_param:infra_config_address} + deploy_address: ${_param:infra_config_deploy_address} + salt_master_host: ${_param:infra_config_deploy_address} + # yamllint disable rule:line-length + salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1" + dhcp_nic: ${_param:opnfv_fn_vm_primary_interface} + single_nic: ${_param:opnfv_fn_vm_secondary_interface} + linux: + network: + interface: + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} + salt: + master: + accept_policy: open_mode + file_recv: true + reclass: + storage: + data_source: + engine: local + node: + infra_kvm_node01: + params: + keepalived_vip_priority: 100 + linux_system_codename: xenial + infra_kvm_node02: + params: + keepalived_vip_priority: 101 + linux_system_codename: xenial + infra_kvm_node03: + params: + keepalived_vip_priority: 102 + linux_system_codename: xenial + openstack_telemetry_node01: + params: + linux_system_codename: xenial + openstack_telemetry_node02: + params: + linux_system_codename: xenial + openstack_telemetry_node03: + params: + linux_system_codename: xenial + openstack_message_queue_node01: + params: + linux_system_codename: xenial + openstack_message_queue_node02: + params: + linux_system_codename: xenial + openstack_message_queue_node03: + params: + linux_system_codename: xenial + openstack_proxy_node01: + params: + linux_system_codename: xenial + openstack_proxy_node02: + params: + linux_system_codename: xenial + # stacklight_log_node01: + # classes: + # - system.elasticsearch.client.single + # stacklight_monitor_node01: + # classes: + # - system.grafana.client.single + # - system.kibana.client.single + openstack_control_node01: + classes: + - cluster.baremetal-mcp-ocata-common-ha.openstack_control_init + params: + linux_system_codename: xenial + openstack_control_node02: + params: + linux_system_codename: xenial + openstack_control_node03: + params: + linux_system_codename: xenial + openstack_database_node01: + classes: + - cluster.${_param:cluster_name}.openstack.database_init + params: + linux_system_codename: xenial + openstack_database_node02: + params: + linux_system_codename: xenial + openstack_database_node03: + params: + linux_system_codename: xenial + openstack_compute_node01: + name: ${_param:openstack_compute_node01_hostname} + domain: ${_param:cluster_domain} + classes: + - cluster.${_param:cluster_name}.openstack.compute + params: + salt_master_host: ${_param:reclass_config_master} + linux_system_codename: xenial + control_address: ${_param:openstack_compute_node01_control_address} + single_address: ${_param:openstack_compute_node01_single_address} + tenant_address: ${_param:openstack_compute_node01_tenant_address} + external_address: ${_param:openstack_compute_node01_external_address} + openstack_compute_node02: + name: ${_param:openstack_compute_node02_hostname} + domain: ${_param:cluster_domain} + classes: + - cluster.${_param:cluster_name}.openstack.compute + params: + salt_master_host: ${_param:reclass_config_master} + linux_system_codename: xenial + control_address: ${_param:openstack_compute_node02_control_address} + single_address: ${_param:openstack_compute_node02_single_address} + tenant_address: ${_param:openstack_compute_node02_tenant_address} + external_address: ${_param:openstack_compute_node02_external_address} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/init.yml new file mode 100644 index 000000000..e20322a2e --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/init.yml @@ -0,0 +1,115 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.linux.system.single + - cluster.all-mcp-arch-common + # - cluster.baremetal-mcp-ocata-common-ha.stacklight + # - cluster.baremetal-mcp-ocata-common-ha.stacklight.client +parameters: + _param: + apt_mk_version: nightly + mcp_repo_version: 1.1 + salt_version: 2016.11 + cluster_domain: ${_param:cluster_name}.local + # stacklight_environment: ${_param:cluster_domain} + reclass_data_revision: master + cluster_public_host: ${_param:openstack_proxy_address} + infra_config_hostname: cfg01 + infra_maas_database_password: opnfv_secret + + # infra service addresses + infra_config_address: ${_param:opnfv_infra_config_address} + infra_config_deploy_address: ${_param:reclass_config_master} + infra_maas_node01_address: ${_param:opnfv_infra_maas_node01_address} + infra_maas_node01_deploy_address: ${_param:opnfv_maas_pxe_address} + infra_compute_node01_address: ${_param:opnfv_infra_compute_node01_address} + infra_compute_node02_address: ${_param:opnfv_infra_compute_node02_address} + infra_compute_node03_address: ${_param:opnfv_infra_compute_node03_address} + + infra_kvm_address: ${_param:opnfv_infra_kvm_address} + infra_kvm_node01_address: ${_param:opnfv_infra_kvm_node01_address} + infra_kvm_node02_address: ${_param:opnfv_infra_kvm_node02_address} + infra_kvm_node03_address: ${_param:opnfv_infra_kvm_node03_address} + + infra_maas_node01_hostname: mas01 + infra_kvm_node01_hostname: kvm01 + infra_kvm_node02_hostname: kvm02 + infra_kvm_node03_hostname: kvm03 + + ntp_strata_host1: 1.pool.ntp.org + ntp_strata_host2: 0.pool.ntp.org + + # Interface definitions + reclass: + storage: + node: + name: default + linux_dhcp_interface: + enabled: true + type: eth + proto: dhcp + name: ${_param:dhcp_nic} + linux_single_interface: + enabled: true + type: eth + proto: static + name: ${_param:single_nic} + address: ${_param:single_address} + netmask: 255.255.255.0 + + # yamllint disable-line rule:line-length + salt_api_password_hash: "$6$WV0P1shnoDh2gI/Z$22/Bcd7ffMv0jDlFpT63cAU4PiXHz9pjXwngToKwqAsgoeK4HNR3PiKaushjxp3JsQ8hNoJmAC6TxzVqfV8WH/" + reclass: + storage: + node: + openstack_proxy_node01: + params: + control_address: ${_param:openstack_proxy_node01_control_address} + openstack_proxy_node02: + params: + control_address: ${_param:openstack_proxy_node02_control_address} + linux: + system: + user: + ubuntu: + enabled: true + sudo: true + home: /home/ubuntu + network: + host: + cfg01: + address: ${_param:infra_config_address} + names: + - cfg01 + - cfg01.${_param:cluster_domain} + cfg: + address: ${_param:infra_config_address} + names: + - ${_param:infra_config_hostname} + - ${_param:infra_config_hostname}.${_param:cluster_domain} + mas01: + address: ${_param:infra_maas_node01_address} + names: + - ${_param:infra_maas_node01_hostname} + - ${_param:infra_maas_node01_hostname}.${_param:cluster_domain} + kvm01: + address: ${_param:infra_kvm_node01_address} + names: + - ${_param:infra_kvm_node01_hostname} + - ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain} + kvm02: + address: ${_param:infra_kvm_node02_address} + names: + - ${_param:infra_kvm_node02_hostname} + - ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain} + kvm03: + address: ${_param:infra_kvm_node03_address} + names: + - ${_param:infra_kvm_node03_hostname} + - ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/kvm.yml new file mode 100644 index 000000000..39ced154b --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/kvm.yml @@ -0,0 +1,155 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.linux.system.repo.mcp.openstack + - system.linux.system.repo.mcp.extra + - system.linux.system.repo.glusterfs + - service.keepalived.cluster.single + - system.glusterfs.server.volume.glance + - system.glusterfs.server.volume.keystone + - system.glusterfs.server.cluster + - system.salt.control.virt + - system.salt.control.cluster.openstack_control_cluster + - system.salt.control.cluster.openstack_proxy_cluster + - system.salt.control.cluster.openstack_database_cluster + - system.salt.control.cluster.openstack_message_queue_cluster + - system.salt.control.cluster.openstack_telemetry_cluster + # - system.salt.control.cluster.stacklight_server_cluster + # - system.salt.control.cluster.stacklight_log_cluster + # - system.salt.control.cluster.stacklight_telemetry_cluster + - cluster.baremetal-mcp-ocata-common-ha.infra.kvm_init +parameters: + _param: + linux_system_codename: xenial + glusterfs_version: '3.10' + cluster_vip_address: ${_param:infra_kvm_address} + cluster_node01_address: ${_param:infra_kvm_node01_address} + cluster_node02_address: ${_param:infra_kvm_node02_address} + cluster_node03_address: ${_param:infra_kvm_node03_address} + keepalived_vip_interface: br-ctl + keepalived_vip_virtual_router_id: 69 + # {dhcp,single}_nic are not used, but referenced + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} + linux: + network: + remove_iface_files: + - '/etc/network/interfaces.d/50-cloud-init.cfg' + salt: + control: + size: # RAM 4096,8192,16384,32768,65536 + # Default production sizing + openstack.control: + cpu: 4 + ram: 12288 + disk_profile: small + net_profile: default + openstack.database: + cpu: 4 + ram: 6144 + disk_profile: large + net_profile: default + openstack.message_queue: + cpu: 4 + ram: 2048 + disk_profile: small + net_profile: default + openstack.telemetry: + cpu: 2 + ram: 3072 + disk_profile: xxlarge + net_profile: default + # stacklight.log: + # cpu: 2 + # ram: 4096 + # disk_profile: xxlarge + # net_profile: default + # stacklight.server: + # cpu: 2 + # ram: 4096 + # disk_profile: small + # net_profile: default + # stacklight.telemetry: + # cpu: 2 + # ram: 4096 + # disk_profile: xxlarge + # net_profile: default + openstack.proxy: + cpu: 2 + ram: 2048 + disk_profile: small + net_profile: default_ext + cluster: + internal: + node: + mdb01: + image: ${_param:salt_control_xenial_image} + mdb02: + image: ${_param:salt_control_xenial_image} + mdb03: + image: ${_param:salt_control_xenial_image} + ctl01: + image: ${_param:salt_control_xenial_image} + ctl02: + image: ${_param:salt_control_xenial_image} + ctl03: + image: ${_param:salt_control_xenial_image} + dbs01: + image: ${_param:salt_control_xenial_image} + dbs02: + image: ${_param:salt_control_xenial_image} + dbs03: + image: ${_param:salt_control_xenial_image} + msg01: + image: ${_param:salt_control_xenial_image} + msg02: + image: ${_param:salt_control_xenial_image} + msg03: + image: ${_param:salt_control_xenial_image} + prx01: + image: ${_param:salt_control_xenial_image} + prx02: + image: ${_param:salt_control_xenial_image} + provider: kvm03.${_param:cluster_domain} + virt: + nic: + default: + eth1: + bridge: br-mgmt + model: virtio + eth0: + bridge: br-ctl + model: virtio + default_ext: + eth2: + bridge: br-mgmt + model: virtio + eth1: + bridge: br-ex + model: virtio + eth0: + bridge: br-ctl + model: virtio + glusterfs: + server: + volumes: + nova_instances: + storage: /srv/glusterfs/nova_instances + replica: 3 + bricks: + - ${_param:cluster_node01_address}:/srv/glusterfs/nova_instances + - ${_param:cluster_node02_address}:/srv/glusterfs/nova_instances + - ${_param:cluster_node03_address}:/srv/glusterfs/nova_instances + options: + cluster.readdir-optimize: 'True' + nfs.disable: 'True' + network.remote-dio: 'True' + cluster.favorite-child-policy: mtime + diagnostics.client-log-level: WARNING + diagnostics.brick-log-level: WARNING diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/kvm_init.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/kvm_init.yml.j2 new file mode 100644 index 000000000..d14f90582 --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/kvm_init.yml.j2 @@ -0,0 +1,99 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +{# NOTE: br-{mgmt,ctl} are cross-referenced, careful when changing names #} +{%- if conf.net_config is defined and conf.idf is defined -%} + {#- NOTE: Currently, we assume all cluster nodes use the same mapping -#} + + {#- Determine interface index for each network (plumbing vars) -#} + {%- set idx_admin = conf['net_config']['admin']['interface'] -%} + {%- set idx_mgmt = conf['net_config']['mgmt']['interface'] -%} + {%- set idx_private = conf['net_config']['private']['interface'] -%} + {%- set idx_public = conf['net_config']['public']['interface'] -%} + + {#- Physical interface OS name for each network (e.g. em1, enp1s0f1) -#} + {%- set node = conf['idf']['fuel']['network']['node'][0] -%} + {%- set nic_admin = node['interfaces'][idx_admin] -%} + {%- set nic_mgmt = node['interfaces'][idx_mgmt] -%} + {%- set nic_private = node['interfaces'][idx_private] -%} + {%- set nic_public = node['interfaces'][idx_public] -%} + + {#- PCI addresses (only for DPDK on private) -#} + {%- set bus_private = node['busaddr'][idx_private] -%} + + {#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) -#} + {%- set vlan_admin = conf['net_config']['admin']['vlan'] -%} + {%- set vlan_mgmt = conf['net_config']['mgmt']['vlan'] -%} + {%- set vlan_private = conf['net_config']['private']['vlan'] -%} + {%- set vlan_public = conf['net_config']['public']['vlan'] -%} +{%- else -%} + {%- set nic_admin = 'enp6s0' -%} + {%- set nic_mgmt = 'enp6s0' -%} + {%- set nic_private = None -%} + {%- set nic_public = None -%} + {%- set vlan_admin = 'native' -%} + {%- set vlan_mgmt = '300' -%} + {%- set vlan_private = '1000' -%} +{%- endif -%} + +{#- Filter-out NIC duplicates by constructing a dict (used NICs only) -#} +{%- set nics = { nic_admin: True, nic_mgmt: True, nic_public: True } -%} + +{%- set vlans = { vlan_admin: nic_admin, vlan_mgmt: nic_mgmt, vlan_public: nic_public } -%} +--- +parameters: + linux: + network: + interface: +{%- for nic in nics %} + {{ nic }}: + enabled: true + type: eth + proto: manual + address: 0.0.0.0 + netmask: 255.255.255.0 + name: {{ nic }} + noifupdown: true +{%- endfor %} + +{%- for vlan in vlans %} + {%- if vlan and vlan != 'native' %} + {{ vlans[vlan] }}.{{ vlan }}: + enabled: true + proto: manual + type: vlan + name: {{ vlans[vlan] }}.{{ vlan }} + use_interfaces: + - {{ vlans[vlan] }} + {%- endif %} +{%- endfor %} + + br-mgmt: + enabled: true + proto: dhcp + type: bridge + name_servers: ${_param:opnfv_name_servers} + use_interfaces: + - {{ nic_admin }}{% if vlan_admin and vlan_admin != 'native' %}.{{ vlan_admin }}{% endif %} + noifupdown: true + br-ctl: + enabled: true + type: bridge + proto: static + address: ${_param:single_address} + netmask: 255.255.255.0 + use_interfaces: + - {{ nic_mgmt }}{% if vlan_mgmt and vlan_mgmt != 'native' %}.{{ vlan_mgmt }}{% endif %} + br-ex: + enabled: true + proto: manual + address: 0.0.0.0 + netmask: 255.255.255.0 + type: bridge + use_interfaces: + - {{ nic_public }}{% if vlan_public and vlan_public != 'native' %}.{{ vlan_public }}{% endif %} + noifupdown: true diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/maas.yml new file mode 100644 index 000000000..e8c2965f7 --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/infra/maas.yml @@ -0,0 +1,136 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.maas.region.single + - service.maas.cluster.single +parameters: + _param: + dhcp_interface: ${_param:opnfv_fn_vm_primary_interface} + primary_interface: ${_param:opnfv_fn_vm_secondary_interface} + pxe_interface: ${_param:opnfv_fn_vm_tertiary_interface} + interface_mtu: 1500 + # MaaS has issues using MTU > 1500 for PXE interface + pxe_interface_mtu: 1500 + linux_system_codename: xenial + maas_admin_username: opnfv + maas_admin_password: opnfv_secret + maas_db_password: opnfv_secret + dns_server01: ${_param:opnfv_dns_server01} + single_address: ${_param:infra_maas_node01_deploy_address} + # {dhcp,single}_nic are not used, but referenced + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} + maas: + region: + salt_master_ip: ${_param:infra_config_deploy_address} + domain: ${_param:cluster_domain} + maas_config: + commissioning_distro_series: 'xenial' + default_distro_series: 'xenial' + default_osystem: 'ubuntu' + default_storage_layout: 'lvm' + disk_erase_with_secure_erase: false + dnssec_validation: 'no' + enable_third_party_drivers: true + network_discovery: 'enabled' + default_min_hwe_kernel: 'hwe-16.04' + subnets: + opnfv_maas_pxe: + name: ${_param:opnfv_maas_pxe_network_address}/24 + cidr: ${_param:opnfv_maas_pxe_network_address}/24 + gateway_ip: ${_param:single_address} + iprange: + start: ${_param:opnfv_maas_pxe_start_address} + end: ${_param:opnfv_maas_pxe_end_address} + type: dynamic + vlans: + untagged: + vid: 0 + dhcp_on: true + primary_rack: ${_param:infra_maas_node01_hostname} + machines: + kvm01: + interface: + mac: ${_param:opnfv_maas_node01_interface_mac} + power_parameters: + power_address: ${_param:opnfv_maas_node01_power_address} + power_password: ${_param:opnfv_maas_node01_power_password} + power_type: ${_param:opnfv_maas_node01_power_type} + power_user: ${_param:opnfv_maas_node01_power_user} + architecture: ${_param:opnfv_maas_node01_architecture} + distro_series: xenial + hwe_kernel: hwe-16.04 + kvm02: + interface: + mac: ${_param:opnfv_maas_node02_interface_mac} + power_parameters: + power_address: ${_param:opnfv_maas_node02_power_address} + power_password: ${_param:opnfv_maas_node02_power_password} + power_type: ${_param:opnfv_maas_node02_power_type} + power_user: ${_param:opnfv_maas_node02_power_user} + architecture: ${_param:opnfv_maas_node02_architecture} + distro_series: xenial + hwe_kernel: hwe-16.04 + kvm03: + interface: + mac: ${_param:opnfv_maas_node03_interface_mac} + power_parameters: + power_address: ${_param:opnfv_maas_node03_power_address} + power_password: ${_param:opnfv_maas_node03_power_password} + power_type: ${_param:opnfv_maas_node03_power_type} + power_user: ${_param:opnfv_maas_node03_power_user} + architecture: ${_param:opnfv_maas_node03_architecture} + distro_series: xenial + hwe_kernel: hwe-16.04 + cmp001: + interface: + mac: ${_param:opnfv_maas_node04_interface_mac} + power_parameters: + power_address: ${_param:opnfv_maas_node04_power_address} + power_password: ${_param:opnfv_maas_node04_power_password} + power_type: ${_param:opnfv_maas_node04_power_type} + power_user: ${_param:opnfv_maas_node04_power_user} + architecture: ${_param:opnfv_maas_node04_architecture} + distro_series: xenial + hwe_kernel: hwe-16.04 + cmp002: + interface: + mac: ${_param:opnfv_maas_node05_interface_mac} + power_parameters: + power_address: ${_param:opnfv_maas_node05_power_address} + power_password: ${_param:opnfv_maas_node05_power_password} + power_type: ${_param:opnfv_maas_node05_power_type} + power_user: ${_param:opnfv_maas_node05_power_user} + architecture: ${_param:opnfv_maas_node05_architecture} + distro_series: xenial + hwe_kernel: hwe-16.04 + linux: + network: + interface: + dhcp_interface: + enabled: true + name: ${_param:dhcp_interface} + type: eth + proto: dhcp + primary_interface: + enabled: true + name: ${_param:primary_interface} + mtu: ${_param:interface_mtu} + proto: static + address: ${_param:infra_maas_node01_address} + netmask: 255.255.255.0 + type: eth + pxe_interface: + enabled: true + name: ${_param:pxe_interface} + mtu: ${_param:pxe_interface_mtu} + proto: static + address: ${_param:single_address} + netmask: 255.255.255.0 + type: eth diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_compute.yml new file mode 100644 index 000000000..47ef1f79f --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_compute.yml @@ -0,0 +1,61 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.linux.system.repo.mcp.extra + - system.linux.system.repo.glusterfs + - system.linux.storage.loopback + - system.glusterfs.client.cluster + - system.nova.compute.cluster + - system.nova.compute.nfv.hugepages + - system.nova.compute.nfv.cpu_pinning + - system.neutron.gateway.cluster + - system.cinder.volume.single + - system.cinder.volume.backend.lvm + - system.ceilometer.agent.cluster + - cluster.baremetal-mcp-ocata-common-ha.openstack_compute_init +parameters: + _param: + cluster_vip_address: ${_param:openstack_control_address} + cluster_local_address: ${_param:control_address} + cluster_node01_hostname: ctl01 + cluster_node01_address: ${_param:openstack_control_node01_address} + cluster_node02_hostname: ctl02 + cluster_node02_address: ${_param:openstack_control_node02_address} + cluster_node03_hostname: ctl03 + cluster_node03_address: ${_param:openstack_control_node03_address} + nova_vncproxy_url: https://${_param:cluster_public_host}:6080 + interface_mtu: 1500 + keepalived_vip_interface: br-ctl + keepalived_vip_virtual_router_id: 69 + loopback_device_size: 20 + linux_system_codename: xenial + glusterfs_version: '3.10' + # {dhcp,single}_nic are not used, but referenced + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} + glusterfs: + client: + volumes: + nova_instances: + path: /var/lib/nova/instances + server: ${_param:glusterfs_service_host} + # yamllint disable-line rule:line-length + opts: "defaults,backup-volfile-servers=${_param:cluster_node01_address}:${_param:cluster_node02_address}:${_param:cluster_node03_address}" + linux: + network: + remove_iface_files: + - '/etc/network/interfaces.d/50-cloud-init.cfg' + system: + kernel: + sysctl: + vm.dirty_ratio: 10 + vm.dirty_background_ratio: 5 + neutron: + gateway: + vlan_aware_vms: true diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_compute_init.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_compute_init.yml.j2 new file mode 100644 index 000000000..687777b2c --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_compute_init.yml.j2 @@ -0,0 +1,107 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +{# NOTE: br-{mgmt,ctl} are cross-referenced, careful when changing names #} +{%- if conf.net_config is defined and conf.idf is defined -%} + {#- NOTE: Currently, we assume all cluster nodes use the same mapping -#} + + {#- Determine interface index for each network (plumbing vars) -#} + {%- set idx_admin = conf['net_config']['admin']['interface'] -%} + {%- set idx_mgmt = conf['net_config']['mgmt']['interface'] -%} + {%- set idx_private = conf['net_config']['private']['interface'] -%} + {%- set idx_public = conf['net_config']['public']['interface'] -%} + + {#- Physical interface OS name for each network (e.g. em1, enp1s0f1) -#} + {%- set iface_names = conf['idf']['fuel']['network']['node'][0]['interfaces'] -%} + {%- set nic_admin = iface_names[idx_admin] -%} + {%- set nic_mgmt = iface_names[idx_mgmt] -%} + {%- set nic_private = iface_names[idx_private] -%} + {%- set nic_public = iface_names[idx_public] -%} + + {#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) -#} + {%- set vlan_admin = conf['net_config']['admin']['vlan'] -%} + {%- set vlan_mgmt = conf['net_config']['mgmt']['vlan'] -%} + {%- set vlan_private = conf['net_config']['private']['vlan'] -%} + {%- set vlan_public = conf['net_config']['public']['vlan'] -%} +{%- else -%} + {%- set nic_admin = 'enp6s0' -%} + {%- set nic_mgmt = 'enp6s0' -%} + {%- set nic_private = None -%} + {%- set nic_public = None -%} + {%- set vlan_admin = 'native' -%} + {%- set vlan_mgmt = '300' -%} + {%- set vlan_private = '1000' -%} +{%- endif -%} + +{#- Filter-out NIC duplicates by constructing a dict (used NICs only) -#} +{%- set nics = { nic_admin: True, nic_mgmt: True, nic_public: True} -%} + +{%- set vlans = { vlan_admin: nic_admin, vlan_mgmt: nic_mgmt, vlan_public: nic_public} -%} +--- +parameters: + linux: + network: + bridge: openvswitch + interface: +{%- for nic in nics %} + {%- if nic == nic_admin %} + {{ nic }}: + enabled: true + type: eth + proto: dhcp + name: {{ nic }} + {%- else %} + {{ nic }}: + enabled: true + type: eth + proto: manual + address: 0.0.0.0 + netmask: 255.255.255.0 + mtu: ${_param:interface_mtu} + name: {{ nic }} + {%- endif %} +{%- endfor %} + +{%- for vlan in vlans %} + {%- if vlan and vlan != 'native' %} + {{ vlans[vlan] }}.{{ vlan }}: + enabled: true + proto: manual + type: vlan + name: {{ vlans[vlan] }}.{{ vlan }} + use_interfaces: + - {{ vlans[vlan] }} + {%- endif %} +{%- endfor %} + + br-ctl: + enabled: true + type: bridge + proto: static + address: ${_param:single_address} + netmask: 255.255.255.0 + use_interfaces: + - {{ nic_mgmt }}{% if vlan_mgmt and vlan_mgmt != 'native' %}.{{ vlan_mgmt }}{% endif %} + br-floating: + enabled: true + type: ovs_bridge + mtu: ${_param:interface_mtu} + float-to-ex: + enabled: true + type: ovs_port + mtu: ${_param:interface_mtu} + bridge: br-floating + br-ex: + enabled: true + type: bridge + mtu: ${_param:interface_mtu} + address: ${_param:external_address} + netmask: 255.255.255.0 + use_interfaces: + - {{ nic_public }}{% if vlan_public and vlan_public != 'native' %}.{{ vlan_public }}{% endif %} + use_ovs_ports: + - float-to-ex diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_control.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_control.yml new file mode 100644 index 000000000..ce82807ce --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_control.yml @@ -0,0 +1,98 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.linux.system.repo.mcp.openstack + - system.linux.system.repo.mcp.extra + - system.linux.system.repo.glusterfs + - system.ceilometer.client + - system.memcached.server.single + - system.keystone.server.cluster + - system.keystone.server.wsgi + - system.glance.control.cluster + - system.nova.control.cluster + - system.cinder.control.cluster + - system.cinder.control.backend.lvm + - system.heat.server.cluster + - system.designate.server.cluster + - system.designate.server.backend.bind + - system.bind.server.single + - system.haproxy.proxy.listen.openstack.nova-placement + - system.haproxy.proxy.listen.openstack.glare + - system.glusterfs.client.cluster + - system.glusterfs.client.volume.glance + - system.glusterfs.client.volume.keystone +parameters: + _param: + keepalived_vip_interface: ${_param:single_nic} + keepalived_vip_virtual_router_id: 50 + cluster_vip_address: ${_param:openstack_control_address} + cluster_local_address: ${_param:single_address} + cluster_node01_hostname: ctl01 + cluster_node01_address: ${_param:openstack_control_node01_address} + cluster_node02_hostname: ctl02 + cluster_node02_address: ${_param:openstack_control_node02_address} + cluster_node03_hostname: ctl03 + cluster_node03_address: ${_param:openstack_control_node03_address} + nova_vncproxy_url: https://${_param:cluster_public_host}:6080 + glusterfs_version: '3.10' + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} + linux: + network: + interface: + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} + neutron: + server: + vlan_aware_vms: true + keystone: + server: + cacert: /etc/ssl/certs/mcp_os_cacert + bind: + server: + control: + mgmt: + enabled: true + bind: + address: ${_param:single_address} + port: 953 + allow: + - ${_param:openstack_control_node01_address} + - ${_param:openstack_control_node02_address} + - ${_param:openstack_control_node03_address} + keys: + - designate + designate: + server: + pools: + default: + description: 'test pool' + targets: + default: + description: 'test target1' + default1: + type: ${_param:designate_pool_target_type} + description: 'test target2' + masters: ${_param:designate_pool_target_masters} + options: + host: ${_param:openstack_control_node02_address} + port: 53 + rndc_host: ${_param:openstack_control_node02_address} + rndc_port: 953 + rndc_key_file: /etc/designate/rndc.key + default2: + type: ${_param:designate_pool_target_type} + description: 'test target3' + masters: ${_param:designate_pool_target_masters} + options: + host: ${_param:openstack_control_node03_address} + port: 53 + rndc_host: ${_param:openstack_control_node03_address} + rndc_port: 953 + rndc_key_file: /etc/designate/rndc.key diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_control_init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_control_init.yml new file mode 100644 index 000000000..deb4cd7e9 --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_control_init.yml @@ -0,0 +1,17 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.keystone.client.single + - system.keystone.client.service.aodh + - system.keystone.client.service.ceilometer + - system.keystone.client.service.nova21 + - system.keystone.client.service.nova-placement + - system.keystone.client.service.glare + - system.keystone.client.service.cinder3 + - system.keystone.client.service.designate diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_database.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_database.yml new file mode 100644 index 000000000..7ed588d9b --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_database.yml @@ -0,0 +1,44 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.linux.system.repo.mcp.openstack + - system.linux.system.repo.mcp.extra + - system.galera.server.cluster + - system.galera.server.database.aodh + - system.galera.server.database.ceilometer + - system.galera.server.database.cinder + - system.galera.server.database.designate + - system.galera.server.database.glance + - system.galera.server.database.grafana + - system.galera.server.database.heat + - system.galera.server.database.keystone + - system.galera.server.database.nova + - system.galera.server.database.neutron +parameters: + _param: + keepalived_vip_interface: ${_param:single_nic} + keepalived_vip_virtual_router_id: 80 + galera_server_cluster_name: openstack_cluster + galera_max_connections: 3072 + galera_innodb_buffer_pool_size: 2048M + cluster_vip_address: ${_param:openstack_database_address} + cluster_local_address: ${_param:single_address} + cluster_node01_hostname: dbs01 + cluster_node01_address: ${_param:openstack_database_node01_address} + cluster_node02_hostname: dbs02 + cluster_node02_address: ${_param:openstack_database_node02_address} + cluster_node03_hostname: dbs03 + cluster_node03_address: ${_param:openstack_database_node03_address} + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} + linux: + network: + interface: + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_database_init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_database_init.yml new file mode 100644 index 000000000..731fe6ed6 --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_database_init.yml @@ -0,0 +1,10 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.mysql.client.single diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_init.yml new file mode 100644 index 000000000..49140f803 --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_init.yml @@ -0,0 +1,304 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +parameters: + _param: + + openstack_version: ocata + + openstack_gateway_node01_address: ${_param:opnfv_openstack_gateway_node01_address} + openstack_gateway_node02_address: ${_param:opnfv_openstack_gateway_node02_address} + openstack_gateway_node03_address: ${_param:opnfv_openstack_gateway_node03_address} + openstack_gateway_node01_tenant_address: ${_param:opnfv_openstack_gateway_node01_tenant_address} + openstack_gateway_node02_tenant_address: ${_param:opnfv_openstack_gateway_node02_tenant_address} + openstack_gateway_node03_tenant_address: ${_param:opnfv_openstack_gateway_node03_tenant_address} + openstack_gateway_node01_hostname: gtw01 + openstack_gateway_node02_hostname: gtw02 + openstack_gateway_node03_hostname: gtw03 + + # openstack service addresses + openstack_proxy_node01_control_address: ${_param:opnfv_openstack_proxy_node01_control_address} + openstack_proxy_node02_control_address: ${_param:opnfv_openstack_proxy_node02_control_address} + 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} + 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_hostname: mdb + openstack_telemetry_node01_hostname: mdb01 + openstack_telemetry_node02_hostname: mdb02 + openstack_telemetry_node03_hostname: mdb03 + + 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} + + # OpenStack Compute + openstack_compute_node01_single_address: ${_param:opnfv_openstack_compute_node01_single_address} + openstack_compute_node02_single_address: ${_param:opnfv_openstack_compute_node02_single_address} + openstack_compute_node03_single_address: ${_param:opnfv_openstack_compute_node03_single_address} + openstack_compute_node01_control_address: ${_param:opnfv_openstack_compute_node01_control_address} + openstack_compute_node02_control_address: ${_param:opnfv_openstack_compute_node02_control_address} + openstack_compute_node03_control_address: ${_param:opnfv_openstack_compute_node03_control_address} + openstack_compute_node01_tenant_address: ${_param:opnfv_openstack_compute_node01_tenant_address} + openstack_compute_node02_tenant_address: ${_param:opnfv_openstack_compute_node02_tenant_address} + openstack_compute_node03_tenant_address: ${_param:opnfv_openstack_compute_node03_tenant_address} + openstack_compute_node01_external_address: ${_param:opnfv_openstack_compute_node01_external_address} + openstack_compute_node02_external_address: ${_param:opnfv_openstack_compute_node02_external_address} + + # openstack service hostnames + 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 compute + openstack_compute_node01_hostname: cmp001 + openstack_compute_node02_hostname: cmp002 + + openstack_region: RegionOne + admin_email: root@localhost + # Neutron osv/nodvr + neutron_control_dvr: 'False' + neutron_l3_ha: 'True' + 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 + galera_server_maintenance_password: opnfv_secret + galera_server_admin_password: opnfv_secret + rabbitmq_secret_key: opnfv_secret + rabbitmq_admin_password: opnfv_secret + rabbitmq_openstack_password: opnfv_secret + 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} + heat_domain_admin_password: opnfv_secret + cinder_version: ${_param:openstack_version} + cinder_service_host: ${_param:openstack_control_address} + ceilometer_version: ${_param:openstack_version} + ceilometer_service_host: ${_param:openstack_telemetry_address} + ceilometer_influxdb_password: opnfv_secret + nova_version: ${_param:openstack_version} + nova_service_host: ${_param:openstack_control_address} + neutron_version: ${_param:openstack_version} + neutron_service_host: ${_param:openstack_control_address} + glusterfs_service_host: ${_param:infra_kvm_address} + mysql_admin_user: root + mysql_admin_password: opnfv_secret + mysql_cinder_password: opnfv_secret + mysql_ceilometer_password: opnfv_secret + mysql_glance_password: opnfv_secret + mysql_grafana_password: opnfv_secret + mysql_heat_password: opnfv_secret + mysql_keystone_password: opnfv_secret + mysql_neutron_password: opnfv_secret + mysql_nova_password: opnfv_secret + mysql_aodh_password: opnfv_secret + mysql_designate_password: opnfv_secret + aodh_version: ${_param:openstack_version} + keystone_aodh_password: opnfv_secret + keystone_service_token: opnfv_secret + keystone_admin_password: opnfv_secret + keystone_ceilometer_password: opnfv_secret + keystone_cinder_password: opnfv_secret + keystone_glance_password: opnfv_secret + keystone_heat_password: opnfv_secret + keystone_keystone_password: opnfv_secret + keystone_neutron_password: opnfv_secret + keystone_nova_password: opnfv_secret + keystone_designate_password: opnfv_secret + ceilometer_secret_key: opnfv_secret + horizon_version: ${_param:openstack_version} + horizon_secret_key: opaesee8Que2yahJoh9fo0eefo1Aeyo6ahyei8zeiboh3aeth5loth7ieNa5xi5e + horizon_identity_host: ${_param:openstack_control_address} + horizon_identity_encryption: none + horizon_identity_version: 2 + mongodb_server_replica_set: ceilometer + mongodb_ceilometer_password: opnfv_secret + mongodb_admin_password: opnfv_secret + mongodb_shared_key: eoTh1AwahlahqueingeejooLughah4tei9feing0eeVaephooDi2li1TaeV1ooth + metadata_password: opnfv_secret + openstack_telemetry_keepalived_password: opnfv_secret + aodh_service_host: ${_param:openstack_telemetry_address} + designate_service_host: ${_param:openstack_control_address} + designate_bind9_rndc_key: 4pc+X4PDqb2q+5o72dISm72LM1Ds9X2EYZjqg+nmsS7FhdTwzFFY8l/iEDmHxnyjkA33EQC8H+z0fLLBunoitw== + 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: + network: + host: + prx: + address: ${_param:openstack_proxy_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} + cmp001: + address: ${_param:openstack_compute_node01_control_address} + names: + - ${_param:openstack_compute_node01_hostname} + - ${_param:openstack_compute_node01_hostname}.${_param:cluster_domain} + cmp002: + address: ${_param:openstack_compute_node02_control_address} + names: + - ${_param:openstack_compute_node02_hostname} + - ${_param:openstack_compute_node02_hostname}.${_param:cluster_domain} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_message_queue.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_message_queue.yml new file mode 100644 index 000000000..88affb84a --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_message_queue.yml @@ -0,0 +1,32 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.linux.system.repo.mcp.openstack + - system.linux.system.repo.mcp.extra + - system.rabbitmq.server.cluster + - system.rabbitmq.server.vhost.openstack +parameters: + _param: + keepalived_vip_interface: ${_param:single_nic} + keepalived_vip_virtual_router_id: 90 + cluster_vip_address: ${_param:openstack_message_queue_address} + cluster_local_address: ${_param:single_address} + cluster_node01_hostname: msg01 + cluster_node01_address: ${_param:openstack_message_queue_node01_address} + cluster_node02_hostname: msg02 + cluster_node02_address: ${_param:openstack_message_queue_node02_address} + cluster_node03_hostname: msg03 + cluster_node03_address: ${_param:openstack_message_queue_node03_address} + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} + linux: + network: + interface: + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_proxy.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_proxy.yml new file mode 100644 index 000000000..84845658c --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_proxy.yml @@ -0,0 +1,77 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.linux.system.repo.mcp.openstack + - system.linux.system.repo.mcp.extra + - system.nginx.server.single + - system.nginx.server.proxy.openstack_api + - system.nginx.server.proxy.openstack_vnc + - system.nginx.server.proxy.openstack_web + - system.nginx.server.proxy.openstack.aodh + - system.nginx.server.proxy.openstack.ceilometer + - system.horizon.server.single + - system.salt.minion.cert.proxy + - system.sphinx.server.doc.reclass + - service.keepalived.cluster.single +parameters: + _param: + keepalived_vip_interface: ${_param:single_nic} + keepalived_vip_virtual_router_id: 240 + nginx_proxy_ssl: + enabled: true + authority: ${_param:salt_minion_ca_authority} + engine: salt + mode: secure + cluster_vip_address: ${_param:openstack_proxy_address} + salt_minion_ca_host: cfg01.${_param:cluster_domain} + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} + control_nic: ${_param:opnfv_vcp_vm_tertiary_interface} + linux: + network: + interface: + dhcp: + enabled: true + type: eth + proto: dhcp + name: ${_param:dhcp_nic} + route: + mcpcontol: + address: ${_param:opnfv_net_mcpcontrol} + netmask: ${_param:opnfv_net_mcpcontrol_mask} + gateway: ${_param:opnfv_infra_maas_node01_deploy_address} + single: + enabled: true + type: eth + proto: static + name: ${_param:single_nic} + address: ${_param:single_address} + netmask: 255.255.255.0 + route: + public: + address: 0.0.0.0 + netmask: 0.0.0.0 + gateway: ${_param:opnfv_net_public_gw} + control: + enabled: true + type: eth + proto: static + name: ${_param:control_nic} + address: ${_param:control_address} + netmask: 255.255.255.0 + system: + package: + libapache2-mod-wsgi: + version: latest + salt: + minion: + cert: + proxy: + alternative_names: "IP:${_param:openstack_proxy_address}" + key_usage: 'digitalSignature, keyEncipherment' diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_telemetry.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_telemetry.yml new file mode 100644 index 000000000..c52b5ed79 --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common-ha/openstack_telemetry.yml @@ -0,0 +1,41 @@ +############################################################################## +# Copyright (c) 2017 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 +############################################################################## +--- +classes: + - system.linux.system.repo.mcp.openstack + - system.linux.system.repo.mcp.extra + - system.mongodb.server.cluster + - system.mongodb.server.database.ceilometer + - system.ceilometer.server.backend.mongodb + # - system.ceilometer.server.backend.influxdb + # - system.heka.ceilometer_collector.single + - system.ceilometer.server.cluster + - system.aodh.server.cluster +parameters: + _param: + keepalived_openstack_telemetry_vip_interface: ${_param:single_nic} + keepalived_vip_virtual_router_id: 230 + cluster_vip_address: ${_param:openstack_telemetry_address} + cluster_local_address: ${_param:single_address} + cluster_node01_hostname: mdb01 + cluster_node01_address: ${_param:openstack_telemetry_node01_address} + cluster_node02_hostname: mdb02 + cluster_node02_address: ${_param:openstack_telemetry_node02_address} + cluster_node03_hostname: mdb03 + cluster_node03_address: ${_param:openstack_telemetry_node03_address} + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} + linux: + network: + interface: + dhcp: ${_param:linux_dhcp_interface} + single: ${_param:linux_single_interface} + mongodb: + server: + logging: + verbose: v |