diff options
Diffstat (limited to 'mcp/reclass/classes/cluster/mcp-odl-ha')
15 files changed, 322 insertions, 0 deletions
diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/config.yml new file mode 100644 index 000000000..58e4cd09c --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/config.yml @@ -0,0 +1,23 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - system.reclass.storage.system.opendaylight_control_single + - cluster.mcp-common-ha.infra.config + - cluster.mcp-odl-ha.infra + - cluster.all-mcp-arch-common.infra.config_pdf +parameters: + reclass: + storage: + node: + opendaylight_control_node01: + classes: + - cluster.${_param:cluster_name}.opendaylight.control + params: + linux_system_codename: xenial + single_address: ${_param:opendaylight_server_node01_single_address} diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/init.yml new file mode 100644 index 000000000..67d8c5654 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/init.yml @@ -0,0 +1,14 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - cluster.mcp-common-ha.infra + - cluster.mcp-odl-ha.openstack +parameters: + _param: + cluster_name: mcp-odl-ha diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/infra/init_vcp.yml.j2 b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/init_vcp.yml.j2 new file mode 100644 index 000000000..42cf4083e --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/init_vcp.yml.j2 @@ -0,0 +1,12 @@ +############################################################################## +# 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 +############################################################################## +--- +{%- if conf.MCP_VCP %} +classes: + - cluster.mcp-odl-ha.infra +{%- endif %} diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/infra/kvm.yml.j2 b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/kvm.yml.j2 new file mode 100644 index 000000000..ab0da39b3 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/kvm.yml.j2 @@ -0,0 +1,32 @@ +############################################################################## +# 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 +############################################################################## +--- +{%- if conf.MCP_VCP %} +# NOTE(armband): we don't want to pull in salt.control for novcp +classes: + - cluster.mcp-common-ha.infra.kvm + - cluster.mcp-odl-ha.infra +parameters: + salt: + control: + size: # RAM 4096,8192,16384,32768,65536 + # Default production sizing + opendaylight.server: + cpu: 4 + ram: 8192 + disk_profile: small + net_profile: default + cluster: + internal: + node: + odl01: + name: ${_param:opendaylight_server_node01_hostname} + provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain} + image: ${_param:salt_control_xenial_image} + size: opendaylight.server +{%- endif %} diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/infra/maas.yml.j2 b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/maas.yml.j2 new file mode 100644 index 000000000..30d712634 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/infra/maas.yml.j2 @@ -0,0 +1,22 @@ +############################################################################## +# 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 +############################################################################## +{%- set cluster_arch = [] %} +{%- for node in conf.nodes %} + {%- if node.node.arch not in cluster_arch %} + {%- do cluster_arch.append(node.node.arch) %} + {%- endif %} +{%- endfor %} +--- +classes: + - cluster.mcp-common-ha.infra.maas + - cluster.mcp-odl-ha.infra +{%- if 'aarch64' not in cluster_arch %} +parameters: + _param: + hwe_kernel: 'ga-16.04' +{%- endif %} diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/init.yml b/mcp/reclass/classes/cluster/mcp-odl-ha/init.yml new file mode 100644 index 000000000..4e740d700 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/init.yml @@ -0,0 +1,12 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - cluster.all-mcp-arch-common + - cluster.mcp-odl-ha.infra + - cluster.mcp-odl-ha.openstack diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/opendaylight/control.yml.j2 b/mcp/reclass/classes/cluster/mcp-odl-ha/opendaylight/control.yml.j2 new file mode 100644 index 000000000..a6027e08a --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/opendaylight/control.yml.j2 @@ -0,0 +1,30 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - service.opendaylight.server.single + - cluster.mcp-common-ha.openstack_interface_vcp_biport +{%- if conf.MCP_VCP %} + - cluster.mcp-odl-ha +{%- endif %} +parameters: + _param: + linux_system_codename: xenial + opendaylight: + server: + odl_bind_ip: ${_param:single_address} + odl_rest_port: 8282 + java_min_mem: 6g + java_max_mem: 6g + router_enabled: true + karaf_features: + odl_default: + - odl-restconf-all + - odl-aaa-authn + netvirt: + - odl-netvirt-openstack diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/compute.yml new file mode 100644 index 000000000..992d1c8bf --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/compute.yml @@ -0,0 +1,17 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - service.neutron.gateway.opendaylight.single + - cluster.mcp-common-ha.openstack_compute + - cluster.mcp-odl-ha.openstack.compute_pdf + - cluster.mcp-odl-ha.infra +parameters: + neutron: + gateway: + agent_mode: ${_param:neutron_gateway_agent_mode} diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/compute_pdf.yml.j2 new file mode 100644 index 000000000..7cf4c8864 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/compute_pdf.yml.j2 @@ -0,0 +1,49 @@ +############################################################################## +# 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 %} +{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #} +{%- set nics = { nm.cmp001.nic_private: True } %} +{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %} +{%- set vlans = { vlan_private_start: nm.cmp001.nic_private } %} +--- +parameters: + linux: + network: + interface: +{%- for nic in nics %} + {{ nic }}: + enabled: true + type: eth + {%- if nic == nm.cmp001.nic_admin %} + proto: dhcp + {%- else %} + proto: manual + {%- endif %} + name: {{ nic }} +{%- endfor %} + +{%- for vlan in vlans %} + {%- if vlan | int > 0 %} + {{ vlans[vlan] }}.{{ vlan }}: + enabled: true + proto: manual + type: vlan + name: {{ vlans[vlan] }}.{{ vlan }} + use_interfaces: + - {{ vlans[vlan] }} + {%- endif %} +{%- endfor %} + + br-mesh: + enabled: true + type: bridge + address: ${_param:tenant_address} + netmask: 255.255.255.0 + mtu: 1500 + use_interfaces: + - {{ nm.cmp001.nic_private }}{% if vlan_private_start | int > 0 %}.{{ vlan_private_start }}{% endif %} diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/control.yml new file mode 100644 index 000000000..547b61e0f --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/control.yml @@ -0,0 +1,21 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - system.neutron.control.opendaylight.cluster + - cluster.mcp-common-ha.openstack_interface_vcp_biport + - cluster.mcp-common-ha.openstack_control + - cluster.mcp-odl-ha.infra +parameters: + keystone: + server: + openrc_extra: + # For HA, all public services are available through nginx on prx + sdn_controller_ip: ${_param:cluster_public_host} + sdn_username: admin # Hardcoded to default ODL values for now + sdn_password: admin diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/database.yml b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/database.yml new file mode 100644 index 000000000..c14f3853e --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/database.yml @@ -0,0 +1,12 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - cluster.mcp-common-ha.openstack_interface_vcp_biport + - cluster.mcp-common-ha.openstack_database + - cluster.mcp-odl-ha.infra.init_vcp diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/init.yml.j2 b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/init.yml.j2 new file mode 100644 index 000000000..43779e927 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/init.yml.j2 @@ -0,0 +1,26 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - cluster.mcp-common-ha.openstack_init +parameters: + _param: + # opendaylight options + opendaylight_service_host: ${_param:opendaylight_server_node01_single_address} + + neutron_tenant_network_types: "flat,vxlan" +{%- if conf.MCP_VCP %} + linux: + network: + host: + odl01: + address: ${_param:opendaylight_service_host} + names: + - ${_param:opendaylight_server_node01_hostname} + - ${_param:opendaylight_server_node01_hostname}.${_param:cluster_domain} +{%- endif %} diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/message_queue.yml new file mode 100644 index 000000000..c44cb22b2 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/message_queue.yml @@ -0,0 +1,12 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - cluster.mcp-common-ha.openstack_interface_vcp_biport + - cluster.mcp-common-ha.openstack_message_queue + - cluster.mcp-odl-ha.infra.init_vcp diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/proxy.yml new file mode 100644 index 000000000..f0d4ecc37 --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/proxy.yml @@ -0,0 +1,28 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - cluster.mcp-common-ha.openstack_interface_vcp_triport + - cluster.mcp-common-ha.openstack_proxy + - cluster.mcp-odl-ha.infra.init_vcp +parameters: + nginx: + server: + site: + nginx_proxy_opendaylight_rest: + enabled: true + type: nginx_proxy + name: opendaylight_rest + check: false + proxy: + host: ${_param:opendaylight_service_host} + port: 8282 + protocol: http + host: + name: ${_param:nginx_proxy_openstack_api_host} + port: 8282 diff --git a/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/telemetry.yml new file mode 100644 index 000000000..52469b09a --- /dev/null +++ b/mcp/reclass/classes/cluster/mcp-odl-ha/openstack/telemetry.yml @@ -0,0 +1,12 @@ +############################################################################## +# 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 +############################################################################## +--- +classes: + - cluster.mcp-common-ha.openstack_interface_vcp_biport + - cluster.mcp-common-ha.openstack_telemetry + - cluster.mcp-odl-ha.infra.init_vcp |