From ef570e8954b44fd608cf1ff5e50b5cbc3d0d178f Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Thu, 12 Oct 2017 02:51:17 +0200 Subject: reclass: baremetal: Factor out common code While at it, add .yamllint file (copied from releng repo). Change-Id: I39630c0043fe2fd601510969c401e6cc9efbf69a Signed-off-by: Alexandru Avadanii (cherry picked from commit a75af3d4c30af050dd15c0f875142f6328874fe4) --- .../baremetal-mcp-ocata-common/infra/config.yml | 136 +++++++++++++++++ .../baremetal-mcp-ocata-common/infra/init.yml | 101 +++++++++++++ .../baremetal-mcp-ocata-common/infra/kvm.yml | 162 +++++++++++++++++++++ .../baremetal-mcp-ocata-common/infra/maas.yml | 126 ++++++++++++++++ 4 files changed, 525 insertions(+) create mode 100644 mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/config.yml create mode 100644 mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/init.yml create mode 100644 mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml create mode 100644 mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml (limited to 'mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra') diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/config.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/config.yml new file mode 100644 index 000000000..495cdb626 --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/config.yml @@ -0,0 +1,136 @@ +--- +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.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/infra/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/init.yml new file mode 100644 index 000000000..34b5268ae --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/init.yml @@ -0,0 +1,101 @@ +--- +classes: + - system.linux.system.single + - cluster.all-mcp-ocata-common + # - cluster.baremetal-mcp-ocata-common.stacklight + # - cluster.baremetal-mcp-ocata-common.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 + dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface} + single_nic: ${_param:opnfv_vcp_vm_secondary_interface} + 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/" + 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/infra/kvm.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml new file mode 100644 index 000000000..b9c30f03b --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/kvm.yml @@ -0,0 +1,162 @@ +--- +classes: + - system.linux.system.repo.mcp.openstack + - system.linux.system.repo.mcp.extra + - 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 +parameters: + _param: + linux_system_codename: xenial + 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 + deploy_nic: ${_param:opnfv_baremetal_primary_nic} + 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 + 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 + 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: 'On' + nfs.disable: 'On' + network.remote-dio: 'On' + diagnostics.client-log-level: WARNING + diagnostics.brick-log-level: WARNING + linux: + network: + interface: + deploy: + enabled: true + type: eth + proto: manual + address: 0.0.0.0 + netmask: 255.255.255.0 + name: ${_param:deploy_nic} + noifupdown: true + br-mgmt: + enabled: true + proto: dhcp + type: bridge + name_servers: ${_param:opnfv_name_servers} + use_interfaces: + - ${_param:deploy_nic} + noifupdown: true + mgmt-vlan: + enabled: true + proto: manual + type: vlan + name: ${_param:deploy_nic}.${_param:opnfv_net_mgmt_vlan} + use_interfaces: + - ${_param:deploy_nic} + br-ctl: + enabled: true + type: bridge + proto: static + address: ${_param:single_address} + netmask: 255.255.255.0 + use_interfaces: + - ${_param:deploy_nic}.${_param:opnfv_net_mgmt_vlan} diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml new file mode 100644 index 000000000..65a5a897a --- /dev/null +++ b/mcp/reclass/classes/cluster/baremetal-mcp-ocata-common/infra/maas.yml @@ -0,0 +1,126 @@ +--- +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} + 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 -- cgit 1.2.3-korg