From 7fd2619e0df370fa832eeff00790bcaa52dc4ffc Mon Sep 17 00:00:00 2001 From: Jonas Bjurel Date: Tue, 29 Dec 2015 22:16:57 +0100 Subject: A simple method to separate configuration for base fuel, plugins, PODs and deployment/test scenarios READY TO MERGE! Replaces: https://gerrit.opnfv.org/gerrit/#/c/3995/ Abstract -------- This deployment framework relies on a configuration structure, providing base installer configuration, per POD specific configuration, plugin configuration, and deployment scenario configuration. - The base installer configuration resembles the least common denominator of all HW/POD environment and deployment scenarios (These configurations are normally carried by the the installer projects in this case (fuel@OPNFV). - Per POD specific configuration specifies POD unique parameters, the POD parameter possible to alter is governed by the Fuel@OPNFV project. - Plugin configuration - providing configuration of a specific plugin. these configurations maintain there own namespace and are normally maintained by collaborative projects building Fuel@OPNFV plugins - Deployment scenario configuration - provides a high level, POD/HW environment independent scenario configuration for a specific deployment. It defines what features/plugins that shall be deployed - as well needed overrides of the plugin config as well as the base installer-, POD/HW environment- configurations. Objects allowed to override is governed by the Fuel@OPNFV project. Executing a deployment ---------------------- deploy.sh must be executed locally at the target lab/pod/jumpserver A lab configuration structure must be provided - see the section below. It is straight forward to execute a deployment task - as an example: sudo deploy.sh -b file:///home/jenkins/config -l ericsson-1 -p pod-2 -s os_odl-l2_no-ha -i file:///home/jenkins/MyIso.iso -b and -i arguments should be expressed in URI style. The resources can thus be local or remote. Feedback -------- Please give feed-back before I'm going to far on a wrong tangent Implemented scenarios so far: ----------------------------- - os_ha - os_no-ha - os_odl-l3_ha - os_odl-l3_no-ha - os_odl-l2_ha - os_odl-l2_no-ha - os_onos_ha - os_onos_no-ha - os_kvm_ha - os_kvm_no-ha - os_ovs_ha - os_ovs_no-ha - os_kvm_ovs_ha - os_kvm_ovs_no-ha VERIFIED READY TO MERGE JIRA: FUEL-35 Change-Id: I94a9b477d8ed4ee8057c16d8f20fe543f7ecc20d Signed-off-by: Jonas Bjurel --- deploy/cloud/configure_nodes.py | 13 +- deploy/cloud/configure_settings.py | 12 +- deploy/common.py | 5 + deploy/config/dea_base.yaml | 597 +++++++++++++++++++++ .../default/fuel/config/dea-pod-override.yaml | 278 ++++++++++ .../devel-pipeline/default/fuel/config/dha.yaml | 38 ++ .../elx/fuel/config/dea-pod-override.yaml | 277 ++++++++++ .../labs/devel-pipeline/elx/fuel/config/dha.yaml | 38 ++ deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml | 18 + deploy/config/plugins/fuel-nfvovs_0.0.1.yaml | 19 + deploy/config/plugins/fuel-odl_0.0.1.yaml | 64 +++ deploy/config/plugins/fuel-onos_0.0.1.yaml | 24 + deploy/deploy-config.py | 296 ++++++++++ deploy/scenario/README | 165 ++++++ .../ha_heat_ceilometer_scenario_0.0.1.yaml | 113 ++++ .../ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml | 117 ++++ .../ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml | 117 ++++ .../ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml | 126 +++++ .../ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml | 126 +++++ .../ha_onos_heat_ceilometer_scenario_0.0.1.yaml | 120 +++++ .../no-ha_heat_ceilometer_scenario_0.0.1.yaml | 108 ++++ ...-ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml | 113 ++++ ...kvm_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml | 119 ++++ ...-ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml | 113 ++++ ...o-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml | 121 +++++ ...o-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml | 121 +++++ .../no-ha_onos_heat_ceilometer_scenario_0.0.1.yaml | 115 ++++ deploy/scenario/scenario.yaml | 56 ++ 28 files changed, 3426 insertions(+), 3 deletions(-) create mode 100644 deploy/config/dea_base.yaml create mode 100644 deploy/config/labs/devel-pipeline/default/fuel/config/dea-pod-override.yaml create mode 100644 deploy/config/labs/devel-pipeline/default/fuel/config/dha.yaml create mode 100644 deploy/config/labs/devel-pipeline/elx/fuel/config/dea-pod-override.yaml create mode 100644 deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml create mode 100644 deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml create mode 100644 deploy/config/plugins/fuel-nfvovs_0.0.1.yaml create mode 100644 deploy/config/plugins/fuel-odl_0.0.1.yaml create mode 100644 deploy/config/plugins/fuel-onos_0.0.1.yaml create mode 100644 deploy/deploy-config.py create mode 100644 deploy/scenario/README create mode 100644 deploy/scenario/ha_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/ha_onos_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/no-ha_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/no-ha_onos_heat_ceilometer_scenario_0.0.1.yaml create mode 100644 deploy/scenario/scenario.yaml (limited to 'deploy') diff --git a/deploy/cloud/configure_nodes.py b/deploy/cloud/configure_nodes.py index a456679ab..46121df62 100644 --- a/deploy/cloud/configure_nodes.py +++ b/deploy/cloud/configure_nodes.py @@ -30,9 +30,18 @@ class ConfigureNodes(object): def config_nodes(self): log('Configure nodes') + + # Super dirty fix since Fuel 7 requires user defined roles to be + # assigned before anything else (BUG fixed in Fuel 8)! + for node_id, roles_blade in self.node_id_roles_dict.iteritems(): + if "opendaylight" in roles_blade[0] or "onos" in roles_blade[0] or "contrail" in roles_blade[0]: + exec_cmd('fuel node set --node-id %s --role %s --env %s' + % (node_id, roles_blade[0], self.env_id)) + for node_id, roles_blade in self.node_id_roles_dict.iteritems(): - exec_cmd('fuel node set --node-id %s --role %s --env %s' - % (node_id, roles_blade[0], self.env_id)) + if "opendaylight" not in roles_blade[0] and "onos" not in roles_blade[0] and "contrail" not in roles_blade[0]: + exec_cmd('fuel node set --node-id %s --role %s --env %s' + % (node_id, roles_blade[0], self.env_id)) self.download_deployment_config() for node_id, roles_blade in self.node_id_roles_dict.iteritems(): diff --git a/deploy/cloud/configure_settings.py b/deploy/cloud/configure_settings.py index c773e1b61..052634f99 100644 --- a/deploy/cloud/configure_settings.py +++ b/deploy/cloud/configure_settings.py @@ -47,9 +47,19 @@ class ConfigureSettings(object): settings_yaml = ('%s/settings_%s.yaml' % (self.yaml_config_dir, self.env_id)) check_file_exists(settings_yaml) - backup(settings_yaml) + with io.open(settings_yaml, 'r') as stream: + orig_dea = yaml.load(stream) + + backup(settings_yaml) settings = self.dea.get_property('settings') + # Copy fuel defined plugin_id's to user defined settings + for plugin in orig_dea['editable']: + if 'metadata' in orig_dea['editable'][plugin] and 'plugin_id' in orig_dea['editable'][plugin]['metadata']: + if not plugin in settings['editable']: + settings['editable'][plugin] = orig_dea['editable'][plugin] + else: + settings['editable'][plugin]["metadata"]["plugin_id"] = orig_dea['editable'][plugin]["metadata"]["plugin_id"] with io.open(settings_yaml, 'w') as stream: yaml.dump(settings, stream, default_flow_style=False) diff --git a/deploy/common.py b/deploy/common.py index ccd43d79a..bc2787617 100644 --- a/deploy/common.py +++ b/deploy/common.py @@ -49,8 +49,13 @@ def exec_cmd(cmd, check=True): return_code = process.returncode if check: if return_code > 0: + print "Failed command: " + str(cmd) + print "Command returned response: " + str(response) + print "Command return code: " + str(return_code) raise Exception(response) else: + print "Command: " + str(cmd) + print str(response) return response return response, return_code diff --git a/deploy/config/dea_base.yaml b/deploy/config/dea_base.yaml new file mode 100644 index 000000000..d3188a1af --- /dev/null +++ b/deploy/config/dea_base.yaml @@ -0,0 +1,597 @@ +dea-base-config-metadata: + title: 'Deployment Environment Adapter Base configuration' + # DEA API version supported + version: '0.1' + created: 'Mon Dec 28 2015' + comment: 'None' +environment: + mode: ha + net_segment_type: tun +wanted_release: Kilo on Ubuntu 14.04 +fuel: + FUEL_ACCESS: + password: admin + user: admin + HOSTNAME: fuel +settings: + editable: + access: + email: + description: Email address for Administrator + label: Email + regex: + error: Invalid email + source: ^\S+@\S+$ + type: text + value: admin@localhost + weight: 40 + metadata: + label: Access + weight: 10 + password: + description: Password for Administrator + label: Password + regex: + error: Empty password + source: \S + type: password + value: admin + weight: 20 + tenant: + description: Tenant (project) name for Administrator + label: Tenant + regex: + error: Invalid tenant name + source: ^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?![Gg]uest$)(?!.* + +.*$).+ + type: text + value: admin + weight: 30 + user: + description: Username for Administrator + label: Username + regex: + error: Invalid username + source: ^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?![Gg]uest$)(?!.* + +.*$).+ + type: text + value: admin + weight: 10 + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: false + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + mongo: + description: If selected, You can use external Mongo DB as ceilometer backend + label: Use external Mongo DB + restrictions: + - settings:additional_components.ceilometer.value == false + type: checkbox + value: false + weight: 40 + murano: + description: If selected, Murano component will be installed + label: Install Murano + type: checkbox + value: false + weight: 20 + sahara: + description: If selected, Sahara component will be installed + label: Install Sahara + type: checkbox + value: false + weight: 10 + common: + auth_key: + description: Public key(s) to include in authorized_keys on deployed nodes + label: Public Key + type: textarea + value: '' + weight: 70 + auto_assign_floating_ip: + description: If selected, OpenStack will automatically assign a floating IP + to a new instance + label: Auto assign floating IP + restrictions: + - action: hide + condition: cluster:net_provider == 'neutron' + type: checkbox + value: false + weight: 40 + debug: + description: Debug logging mode provides more information, but requires more + disk space. + label: OpenStack debug logging + type: checkbox + value: false + weight: 20 + libvirt_type: + label: Hypervisor type + type: radio + value: kvm + values: + - data: kvm + description: Choose this type of hypervisor if you run OpenStack on hardware + label: KVM + - data: qemu + description: Choose this type of hypervisor if you run OpenStack on virtual + hosts. + label: QEMU + weight: 30 + metadata: + label: Common + weight: 30 + nova_quota: + description: Quotas are used to limit CPU and memory usage for tenants. Enabling + quotas will increase load on the Nova database. + label: Nova quotas + type: checkbox + value: false + weight: 25 + puppet_debug: + description: Debug puppet logging mode provides more information, but requires + more disk space. + label: Puppet debug logging + type: checkbox + value: true + weight: 20 + resume_guests_state_on_host_boot: + description: Whether to resume previous guests state when the host reboots. + If enabled, this option causes guests assigned to the host to resume their + previous state. If the guest was running a restart will be attempted when + nova-compute starts. If the guest was not running previously, a restart + will not be attempted. + label: Resume guests state on host boot + type: checkbox + value: true + weight: 60 + use_cow_images: + description: For most cases you will want qcow format. If it's disabled, raw + image format will be used to run VMs. OpenStack with raw format currently + does not support snapshotting. + label: Use qcow format for images + type: checkbox + value: true + weight: 50 + use_vcenter: + restrictions: + - condition: cluster:net_provider == 'nova_network' + type: hidden + value: false + weight: 30 + corosync: + group: + description: '' + label: Group + type: text + value: 226.94.1.1 + weight: 10 + metadata: + label: Corosync + restrictions: + - action: hide + condition: 'true' + weight: 50 + port: + description: '' + label: Port + type: text + value: '12000' + weight: 20 + verified: + description: Set True only if multicast is configured correctly on router. + label: Need to pass network verification. + type: checkbox + value: false + weight: 10 + external_mongo: + hosts_ip: + description: IP Addresses of MongoDB. Use comma to split IPs + label: MongoDB hosts IP + regex: + error: Invalid hosts ip sequence + source: ^(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?),)*((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ + type: text + value: '' + weight: 30 + metadata: + label: External MongoDB + restrictions: + - action: hide + condition: settings:additional_components.mongo.value == false + message: Ceilometer and MongoDB are not enabled on the Additional Components + section + weight: 20 + mongo_db_name: + description: Mongo database name + label: Database name + regex: + error: Invalid database name + source: ^\w+$ + type: text + value: ceilometer + weight: 30 + mongo_password: + description: Mongo database password + label: Password + regex: + error: Password contains spaces + source: ^\S*$ + type: password + value: ceilometer + weight: 30 + mongo_replset: + description: Name for Mongo replication set + label: Replset + type: text + value: '' + weight: 30 + mongo_user: + description: Mongo database username + label: Username + regex: + error: Empty username + source: ^\w+$ + type: text + value: ceilometer + weight: 30 + kernel_params: + kernel: + description: Default kernel parameters + label: Initial parameters + type: text + value: console=tty0 net.ifnames=0 biosdevname=0 rootdelay=90 nomodeset + weight: 45 + metadata: + label: Kernel parameters + weight: 40 + murano_settings: + metadata: + label: Murano Settings + restrictions: + - action: hide + condition: settings:additional_components.murano.value == false + message: Murano is not enabled on the Additional Components section + weight: 20 + murano_repo_url: + description: '' + label: Murano Repository URL + type: text + value: http://storage.apps.openstack.org/ + weight: 10 + neutron_advanced_configuration: + metadata: + label: Neutron Advanced Configuration + restrictions: + - action: hide + condition: cluster:net_provider != 'neutron' + weight: 45 + neutron_dvr: + description: Enable Distributed Virtual Routers in Neutron + label: Neutron DVR + restrictions: + - ? networking_parameters:segmentation_type != 'vlan' and settings:neutron_advanced_configuration.neutron_l2_pop.value + == false + : DVR requires L2 population to be enabled. + type: checkbox + value: false + weight: 20 + neutron_l2_pop: + description: Enable L2 population mechanism in Neutron + label: Neutron L2 population + restrictions: + - action: hide + condition: networking_parameters:segmentation_type == 'vlan' + type: checkbox + value: false + weight: 10 + neutron_mellanox: + metadata: + enabled: true + label: Mellanox Neutron components + restrictions: + - action: hide + condition: not ('experimental' in version:feature_groups) + toggleable: false + weight: 50 + plugin: + label: Mellanox drivers and SR-IOV plugin + type: radio + value: disabled + values: + - data: disabled + description: If selected, Mellanox drivers, Neutron and Cinder plugin will + not be installed. + label: Mellanox drivers and plugins disabled + restrictions: + - settings:storage.iser.value == true + - data: drivers_only + description: If selected, Mellanox Ethernet drivers will be installed to + support networking over Mellanox NIC. Mellanox Neutron plugin will not + be installed. + label: Install only Mellanox drivers + restrictions: + - settings:common.libvirt_type.value != 'kvm' + - data: ethernet + description: If selected, both Mellanox Ethernet drivers and Mellanox network + acceleration (Neutron) plugin will be installed. + label: Install Mellanox drivers and SR-IOV plugin + restrictions: + - settings:common.libvirt_type.value != 'kvm' or not (cluster:net_provider + == 'neutron' and networking_parameters:segmentation_type == 'vlan') + weight: 60 + vf_num: + description: Note that one virtual function will be reserved to the storage + network, in case of choosing iSER. + label: Number of virtual NICs + restrictions: + - settings:neutron_mellanox.plugin.value != 'ethernet' + type: text + value: '16' + weight: 70 + provision: + metadata: + label: Provision + restrictions: + - action: hide + condition: 'true' + weight: 80 + method: + type: hidden + value: image + public_network_assignment: + assign_to_all_nodes: + description: When disabled, public network will be assigned to controllers + only + label: Assign public network to all nodes + type: checkbox + value: true + weight: 10 + metadata: + label: Public network assignment + restrictions: + - action: hide + condition: cluster:net_provider != 'neutron' + weight: 50 + public_ssl: + cert_data: + description: Certificate and private key data, concatenated into a single + file + label: Certificate + restrictions: + - action: hide + condition: (settings:public_ssl.cert_source.value != 'user_uploaded') or + (settings:public_ssl.horizon.value == false and settings:public_ssl.services.value + == false) + type: file + value: '' + weight: 40 + cert_source: + description: From where we'll get certificate and private key + label: Select source for certificate + restrictions: + - action: hide + condition: settings:public_ssl.horizon.value == false and settings:public_ssl.services.value + == false + type: radio + value: self_signed + values: + - data: self_signed + description: Generate private key and certificate that will be signed by + this key + label: Self-signed + - data: user_uploaded + description: Use pre-generated key and certificate + label: I have my own keypair with certificate + weight: 30 + horizon: + description: Secure access to Horizon enabling HTTPS instead of HTTP + label: HTTPS for Horizon + type: checkbox + value: false + weight: 10 + hostname: + description: Your DNS entries should point to this name. Self-signed certificates + also will use this hostname + label: DNS hostname for public TLS endpoints + restrictions: + - action: hide + condition: settings:public_ssl.horizon.value == false and settings:public_ssl.services.value + == false + type: text + value: public.fuel.local + weight: 50 + metadata: + label: Public TLS + weight: 110 + services: + description: Enable TLS termination on HAProxy for OpenStack services + label: TLS for OpenStack public endpoints + type: checkbox + value: false + weight: 20 + repo_setup: + metadata: + always_editable: true + label: Repositories + weight: 50 + repos: + description: 'Please note: the first repository will be considered the operating + system mirror that will be used during node provisioning. + + To create a local repository mirror on the Fuel master node, please follow + the instructions provided by running "fuel-createmirror --help" on the Fuel + master node. + + Please make sure your Fuel master node has Internet access to the repository + before attempting to create a mirror. + + For more details, please refer to the documentation (https://docs.mirantis.com/openstack/fuel/fuel-7.0/operations.html#external-ubuntu-ops). + + ' + extra_priority: null + type: custom_repo_configuration + value: + - name: ubuntu + priority: null + section: main + suite: trusty + type: deb + uri: http://10.20.0.2:8080/ubuntu-part + - name: ubuntu-updates + priority: null + section: main + suite: trusty + type: deb + uri: http://10.20.0.2:8080/ubuntu-part + - name: ubuntu-security + priority: null + section: main + suite: trusty + type: deb + uri: http://10.20.0.2:8080/ubuntu-part + - name: mos + priority: 1050 + section: main restricted + suite: mos7.0 + type: deb + uri: http://10.20.0.2:8080/2015.1.0-7.0/ubuntu/x86_64 + - name: mos-updates + priority: 1050 + section: main restricted + suite: mos7.0-updates + type: deb + uri: http://10.20.0.2:8080/mos-ubuntu + - name: mos-security + priority: 1050 + section: main restricted + suite: mos7.0-security + type: deb + uri: http://10.20.0.2:8080/mos-ubuntu + - name: mos-holdback + priority: 1100 + section: main restricted + suite: mos7.0-holdback + type: deb + uri: http://10.20.0.2:8080/mos-ubuntu + - name: Auxiliary + priority: 1150 + section: main restricted + suite: auxiliary + type: deb + uri: http://10.20.0.2:8080/2015.1.0-7.0/ubuntu/auxiliary + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + images_vcenter: + description: Configures Glance to use the vCenter/ESXi backend to store images. + If enabled, this option will prevent Swift from installing. + label: VMWare vCenter/ESXi datastore for images (Glance) + restrictions: + - action: hide + condition: settings:common.use_vcenter.value != true + - condition: settings:storage.images_ceph.value == true + message: Only one Glance backend could be selected. + type: checkbox + value: false + weight: 35 + iser: + description: 'High performance block storage: Cinder volumes over iSER protocol + (iSCSI over RDMA). This feature requires SR-IOV capabilities in the NIC, + and will use a dedicated virtual function for the storage network.' + label: iSER protocol for volumes (Cinder) + restrictions: + - settings:storage.volumes_lvm.value != true or settings:common.libvirt_type.value + != 'kvm' + - action: hide + condition: not ('experimental' in version:feature_groups) + type: checkbox + value: false + weight: 11 + metadata: + label: Storage + weight: 60 + objects_ceph: + description: Configures RadosGW front end for Ceph RBD. This exposes S3 and + Swift API Interfaces. If enabled, this option will prevent Swift from installing. + label: Ceph RadosGW for objects (Swift API) + restrictions: + - settings:storage.images_ceph.value == false + type: checkbox + value: true + weight: 80 + osd_pool_size: + description: Configures the default number of object replicas in Ceph. This + number must be equal to or lower than the number of deployed 'Storage - + Ceph OSD' nodes. + label: Ceph object replication factor + regex: + error: Invalid number + source: ^[1-9]\d*$ + type: text + value: '2' + weight: 85 + volumes_ceph: + description: Configures Cinder to store volumes in Ceph RBD images. + label: Ceph RBD for volumes (Cinder) + restrictions: + - settings:storage.volumes_lvm.value == true + type: checkbox + value: true + weight: 20 + volumes_lvm: + description: It is recommended to have at least one Storage - Cinder LVM node. + label: Cinder LVM over iSCSI for volumes + restrictions: + - settings:storage.volumes_ceph.value == true + type: checkbox + value: false + weight: 10 + workloads_collector: + enabled: + type: hidden + value: true + metadata: + label: Workloads Collector User + restrictions: + - action: hide + condition: 'true' + weight: 10 + password: + type: password + value: YqvwqNhL + tenant: + type: text + value: services + user: + type: text + value: fuel_stats_user diff --git a/deploy/config/labs/devel-pipeline/default/fuel/config/dea-pod-override.yaml b/deploy/config/labs/devel-pipeline/default/fuel/config/dea-pod-override.yaml new file mode 100644 index 000000000..2be68e25a --- /dev/null +++ b/deploy/config/labs/devel-pipeline/default/fuel/config/dea-pod-override.yaml @@ -0,0 +1,278 @@ +dea-pod-override-config-metadata: + title: 'Deployment Environment Adapter POD override for Development Pipeline - Default version' + version: '0.1' + created: 'Thu 7 2016' + comment: 'None' +environment: + name: opnfv_virt +fuel: + ADMIN_NETWORK: + cidr: 10.20.0.0/24 + dhcp_gateway: 10.20.0.2 + dhcp_pool_end: 10.20.0.254 + dhcp_pool_start: 10.20.0.3 + ipaddress: 10.20.0.2 + netmask: 255.255.0.0 + DNS_DOMAIN: opnfvericsson.se + DNS_SEARCH: opnfvericsson.se + DNS_UPSTREAM: 10.118.32.193 + FUEL_ACCESS: + password: admin + user: admin + HOSTNAME: opnfv_virt + NTP1: 81.170.152.66 + NTP2: 83.168.200.199 + NTP3: 78.108.60.252 +interfaces_1: + eth0: + - fuelweb_admin + - management + eth1: + - storage + eth2: + - private + eth3: + - public +transformations_1: + transformations: + - action: add-br + name: br-fw-admin + - action: add-br + name: br-mgmt + - action: add-br + name: br-storage + - action: add-br + name: br-ex + - action: add-br + name: br-floating + provider: ovs + - action: add-patch + bridges: + - br-floating + - br-ex + mtu: 65000 + provider: ovs + - action: add-br + name: br-mesh + - action: add-port + bridge: br-fw-admin + name: eth0 + - action: add-port + bridge: br-mgmt + name: eth0.101 + - action: add-port + bridge: br-storage + name: eth1.102 + - action: add-port + bridge: br-mesh + name: eth2.103 + - action: add-port + bridge: br-ex + name: eth3 +network: + management_vip: 192.168.0.2 + management_vrouter_vip: 192.168.0.1 + networking_parameters: + base_mac: fa:16:3e:00:00:00 + configuration_template: null + dns_nameservers: + - 8.8.8.8 + - 8.8.4.4 + floating_ranges: + - - 172.16.0.130 + - 172.16.0.254 + gre_id_range: + - 2 + - 65535 + internal_cidr: 192.168.111.0/24 + internal_gateway: 192.168.111.1 + net_l23_provider: ovs + segmentation_type: tun + vlan_range: + - 1000 + - 1030 + networks: + - cidr: 172.16.0.0/24 + gateway: 172.16.0.1 + ip_ranges: + - - 172.16.0.2 + - 172.16.0.126 + meta: + cidr: 172.16.0.0/24 + configurable: true + floating_range_var: floating_ranges + ip_range: + - 172.16.0.2 + - 172.16.0.126 + map_priority: 1 + name: public + notation: ip_ranges + render_addr_mask: public + render_type: null + use_gateway: true + vips: + - haproxy + - vrouter + vlan_start: null + name: public + vlan_start: null + - cidr: 192.168.0.0/24 + gateway: null + ip_ranges: + - - 192.168.0.1 + - 192.168.0.254 + meta: + cidr: 192.168.0.0/24 + configurable: true + map_priority: 2 + name: management + notation: cidr + render_addr_mask: internal + render_type: cidr + use_gateway: false + vips: + - haproxy + - vrouter + vlan_start: 101 + name: management + vlan_start: 101 + - cidr: 192.168.1.0/24 + gateway: null + ip_ranges: + - - 192.168.1.1 + - 192.168.1.254 + meta: + cidr: 192.168.1.0/24 + configurable: true + map_priority: 2 + name: storage + notation: cidr + render_addr_mask: storage + render_type: cidr + use_gateway: false + vlan_start: 102 + name: storage + vlan_start: 102 + - cidr: 192.168.2.0/24 + gateway: null + ip_ranges: + - - 192.168.2.1 + - 192.168.2.254 + meta: + cidr: 192.168.2.0/24 + configurable: true + map_priority: 2 + name: private + notation: cidr + render_addr_mask: null + render_type: cidr + seg_type: tun + use_gateway: false + vlan_start: 103 + name: private + vlan_start: 103 + - cidr: 10.20.0.0/16 + gateway: 10.20.0.2 + ip_ranges: + - - 10.20.0.3 + - 10.20.0.254 + meta: + configurable: false + map_priority: 0 + notation: ip_ranges + render_addr_mask: null + render_type: null + unmovable: true + use_gateway: true + name: fuelweb_admin + vlan_start: null + public_vip: 172.16.0.3 + public_vrouter_vip: 172.16.0.2 + vips: + management: + ipaddr: 192.168.0.2 + namespace: haproxy + network_role: mgmt/vip + node_roles: + - controller + - primary-controller + public: + ipaddr: 172.16.0.3 + namespace: haproxy + network_role: public/vip + node_roles: + - controller + - primary-controller + vrouter: + ipaddr: 192.168.0.1 + namespace: vrouter + network_role: mgmt/vip + node_roles: + - controller + - primary-controller + vrouter_pub: + ipaddr: 172.16.0.2 + namespace: vrouter + network_role: public/vip + node_roles: + - controller + - primary-controller +settings: + editable: + external_dns: + dns_list: + description: List of upstream DNS servers, separated by comma + label: DNS list + regex: + error: Invalid IP address list + source: ^\*$|^(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3}(?:\s*,\s*(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3})*$ + type: text + value: 8.8.8.8,8.8.4.4 + weight: 10 + metadata: + label: Host OS DNS Servers + weight: 90 + external_ntp: + metadata: + label: Host OS NTP Servers + weight: 100 + ntp_list: + description: List of upstream NTP servers, separated by comma + label: NTP server list + regex: + error: Invalid NTP server list + source: ^\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(?:\.\d{1,3}){3})\s*(?:,\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(\.\d{1,3}){3})\s*)*$ + type: text + value: 81.170.152.66,83.168.200.199,78.108.60.252 + weight: 10 + syslog: + metadata: + label: Syslog + weight: 50 + syslog_port: + description: Remote syslog port + label: Port + regex: + error: Invalid syslog port + source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ + type: text + value: '514' + weight: 20 + syslog_server: + description: Remote syslog hostname + label: Hostname + type: text + value: '' + weight: 10 + syslog_transport: + label: Syslog transport protocol + type: radio + value: tcp + values: + - data: udp + description: '' + label: UDP + - data: tcp + description: '' + label: TCP + weight: 30 diff --git a/deploy/config/labs/devel-pipeline/default/fuel/config/dha.yaml b/deploy/config/labs/devel-pipeline/default/fuel/config/dha.yaml new file mode 100644 index 000000000..26c4d2b16 --- /dev/null +++ b/deploy/config/labs/devel-pipeline/default/fuel/config/dha.yaml @@ -0,0 +1,38 @@ +dha-pod-config-metadata: + title: Deployment Hardware Adapter (DHA) for fuel development pipeline - default version + version: 0.0.1 + created: Jan 7 2016 + comment: Default version + +# Adapter to use for this definition +adapter: libvirt + +# Node list. +# Mandatory property is id, all other properties are adapter specific. + +nodes: +- id: 1 + libvirtName: controller1 + libvirtTemplate: templates/virtual_environment/vms/controller.xml +- id: 2 + libvirtName: compute1 + libvirtTemplate: templates/virtual_environment/vms/compute.xml +- id: 3 + libvirtName: compute2 + libvirtTemplate: templates/virtual_environment/vms/compute.xml +- id: 4 + libvirtName: compute3 + libvirtTemplate: templates/virtual_environment/vms/compute.xml +- id: 5 + libvirtName: fuel-master + libvirtTemplate: templates/virtual_environment/vms/fuel.xml + isFuel: yes + username: root + password: r00tme + +virtNetConfDir: templates/virtual_environment/networks + +disks: + fuel: 50G + controller: 100G + compute: 50G diff --git a/deploy/config/labs/devel-pipeline/elx/fuel/config/dea-pod-override.yaml b/deploy/config/labs/devel-pipeline/elx/fuel/config/dea-pod-override.yaml new file mode 100644 index 000000000..7fc429b84 --- /dev/null +++ b/deploy/config/labs/devel-pipeline/elx/fuel/config/dea-pod-override.yaml @@ -0,0 +1,277 @@ +dea-pod-override-config-metadata: + title: 'Deployment Environment Adapter POD override for Development Pipeline - Ericsson ELX version' + version: '0.1' + created: 'Mon Dec 30 2015' + comment: 'None' +environment: + name: opnfv_virt +interfaces_1: + eth0: + - fuelweb_admin + - management + eth1: + - storage + eth2: + - private + eth3: + - public +transformations_1: + transformations: + - action: add-br + name: br-fw-admin + - action: add-br + name: br-mgmt + - action: add-br + name: br-storage + - action: add-br + name: br-ex + - action: add-br + name: br-floating + provider: ovs + - action: add-patch + bridges: + - br-floating + - br-ex + mtu: 65000 + provider: ovs + - action: add-br + name: br-mesh + - action: add-port + bridge: br-fw-admin + name: eth0 + - action: add-port + bridge: br-mgmt + name: eth0.101 + - action: add-port + bridge: br-storage + name: eth1.102 + - action: add-port + bridge: br-mesh + name: eth2.103 + - action: add-port + bridge: br-ex + name: eth3 +fuel: + ADMIN_NETWORK: + cidr: 10.20.0.0/24 + dhcp_gateway: 10.20.0.2 + dhcp_pool_end: 10.20.0.254 + dhcp_pool_start: 10.20.0.3 + ipaddress: 10.20.0.2 + netmask: 255.255.0.0 + DNS_DOMAIN: opnfvericsson.se + DNS_SEARCH: opnfvericsson.se + DNS_UPSTREAM: 147.214.6.234 + FUEL_ACCESS: + password: admin + user: admin + HOSTNAME: opnfv_virt + NTP1: 193.181.14.10 + NTP2: 193.181.14.11 + NTP3: null +network: + management_vip: 192.168.0.2 + management_vrouter_vip: 192.168.0.1 + networking_parameters: + base_mac: fa:16:3e:00:00:00 + configuration_template: null + dns_nameservers: + - 147.214.6.234 + floating_ranges: + - - 172.16.0.130 + - 172.16.0.254 + gre_id_range: + - 2 + - 65535 + internal_cidr: 192.168.111.0/24 + internal_gateway: 192.168.111.1 + net_l23_provider: ovs + segmentation_type: tun + vlan_range: + - 1000 + - 1030 + networks: + - cidr: 172.16.0.0/24 + gateway: 172.16.0.1 + ip_ranges: + - - 172.16.0.2 + - 172.16.0.126 + meta: + cidr: 172.16.0.0/24 + configurable: true + floating_range_var: floating_ranges + ip_range: + - 172.16.0.2 + - 172.16.0.126 + map_priority: 1 + name: public + notation: ip_ranges + render_addr_mask: public + render_type: null + use_gateway: true + vips: + - haproxy + - vrouter + vlan_start: null + name: public + vlan_start: null + - cidr: 192.168.0.0/24 + gateway: null + ip_ranges: + - - 192.168.0.1 + - 192.168.0.254 + meta: + cidr: 192.168.0.0/24 + configurable: true + map_priority: 2 + name: management + notation: cidr + render_addr_mask: internal + render_type: cidr + use_gateway: false + vips: + - haproxy + - vrouter + vlan_start: 101 + name: management + vlan_start: 101 + - cidr: 192.168.1.0/24 + gateway: null + ip_ranges: + - - 192.168.1.1 + - 192.168.1.254 + meta: + cidr: 192.168.1.0/24 + configurable: true + map_priority: 2 + name: storage + notation: cidr + render_addr_mask: storage + render_type: cidr + use_gateway: false + vlan_start: 102 + name: storage + vlan_start: 102 + - cidr: 192.168.2.0/24 + gateway: null + ip_ranges: + - - 192.168.2.1 + - 192.168.2.254 + meta: + cidr: 192.168.2.0/24 + configurable: true + map_priority: 2 + name: private + notation: cidr + render_addr_mask: null + render_type: cidr + seg_type: tun + use_gateway: false + vlan_start: 103 + name: private + vlan_start: 103 + - cidr: 10.20.0.0/16 + gateway: 10.20.0.2 + ip_ranges: + - - 10.20.0.3 + - 10.20.0.254 + meta: + configurable: false + map_priority: 0 + notation: ip_ranges + render_addr_mask: null + render_type: null + unmovable: true + use_gateway: true + name: fuelweb_admin + vlan_start: null + public_vip: 172.16.0.3 + public_vrouter_vip: 172.16.0.2 + vips: + management: + ipaddr: 192.168.0.2 + namespace: haproxy + network_role: mgmt/vip + node_roles: + - controller + - primary-controller + public: + ipaddr: 172.16.0.3 + namespace: haproxy + network_role: public/vip + node_roles: + - controller + - primary-controller + vrouter: + ipaddr: 192.168.0.1 + namespace: vrouter + network_role: mgmt/vip + node_roles: + - controller + - primary-controller + vrouter_pub: + ipaddr: 172.16.0.2 + namespace: vrouter + network_role: public/vip + node_roles: + - controller + - primary-controller +settings: + editable: + external_dns: + dns_list: + description: List of upstream DNS servers, separated by comma + label: DNS list + regex: + error: Invalid IP address list + source: ^\*$|^(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3}(?:\s*,\s*(?:\d|1?\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|1?\d\d|2[0-4]\d|25[0-5])){3})*$ + type: text + value: 147.214.6.234 + weight: 10 + metadata: + label: Host OS DNS Servers + weight: 90 + external_ntp: + metadata: + label: Host OS NTP Servers + weight: 100 + ntp_list: + description: List of upstream NTP servers, separated by comma + label: NTP server list + regex: + error: Invalid NTP server list + source: ^\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(?:\.\d{1,3}){3})\s*(?:,\s*(?:(?:\w+(?:-+\w+)*\.)+[a-z]+|\d{1,3}(\.\d{1,3}){3})\s*)*$ + type: text + value: 193.181.14.10, 193.181.14.11 + weight: 10 + syslog: + metadata: + label: Syslog + weight: 50 + syslog_port: + description: Remote syslog port + label: Port + regex: + error: Invalid syslog port + source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ + type: text + value: '514' + weight: 20 + syslog_server: + description: Remote syslog hostname + label: Hostname + type: text + value: '' + weight: 10 + syslog_transport: + label: Syslog transport protocol + type: radio + value: tcp + values: + - data: udp + description: '' + label: UDP + - data: tcp + description: '' + label: TCP + weight: 30 \ No newline at end of file diff --git a/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml b/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml new file mode 100644 index 000000000..fc0e93a4f --- /dev/null +++ b/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml @@ -0,0 +1,38 @@ +dha-pod-config-metadata: + title: Deployment Hardware Adapter (DHA) for fuel development pipeline - Ericsson ELX version + version: 0.0.1 + created: Dececember 30 2015 + comment: ELX version + +# Adapter to use for this definition +adapter: libvirt + +# Node list. +# Mandatory property is id, all other properties are adapter specific. + +nodes: +- id: 1 + libvirtName: controller1 + libvirtTemplate: templates/virtual_environment/vms/controller.xml +- id: 2 + libvirtName: compute1 + libvirtTemplate: templates/virtual_environment/vms/compute.xml +- id: 3 + libvirtName: compute2 + libvirtTemplate: templates/virtual_environment/vms/compute.xml +- id: 4 + libvirtName: compute3 + libvirtTemplate: templates/virtual_environment/vms/compute.xml +- id: 5 + libvirtName: fuel-master + libvirtTemplate: templates/virtual_environment/vms/fuel.xml + isFuel: yes + username: root + password: r00tme + +virtNetConfDir: templates/virtual_environment/networks + +disks: + fuel: 50G + controller: 100G + compute: 50G diff --git a/deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml b/deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml new file mode 100644 index 000000000..df59e551d --- /dev/null +++ b/deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml @@ -0,0 +1,18 @@ +plugin-config-metadata: + title: NFV QEMU-KVM fuel Plugin configuration template + version: 0.1 + created: Wed Jan 6 2016 + comment: None + +fuel-plugin-qemu: + metadata: + enabled: true + label: fuel-plugin-qemu + # plugin_id: Assigned during installation + toggleable: true + weight: 70 + use_kvm: + label: 'EXPERIMENTAL: KVM enhancements for NFV' + type: checkbox + value: true + weight: 20 diff --git a/deploy/config/plugins/fuel-nfvovs_0.0.1.yaml b/deploy/config/plugins/fuel-nfvovs_0.0.1.yaml new file mode 100644 index 000000000..02b6bf856 --- /dev/null +++ b/deploy/config/plugins/fuel-nfvovs_0.0.1.yaml @@ -0,0 +1,19 @@ +plugin-config-metadata: + title: NFV OVS fuel Plugin configuration template + version: 0.1 + created: Wed Jan 6 2016 + comment: None + +fuel-plugin-ovsnfv: + fuel-plugin-ovsnfv_text: + description: Description for text field + label: Text field + type: text + value: Set default value + weight: 25 + metadata: + enabled: true + label: Userspace OVS support + # plugin_id: Assigned during installation + toggleable: true + weight: 70 diff --git a/deploy/config/plugins/fuel-odl_0.0.1.yaml b/deploy/config/plugins/fuel-odl_0.0.1.yaml new file mode 100644 index 000000000..11622a16c --- /dev/null +++ b/deploy/config/plugins/fuel-odl_0.0.1.yaml @@ -0,0 +1,64 @@ +plugin-config-metadata: + title: OpenDaylight fuel Plugin configuration template + version: 0.1 + created: Mon Dec 28 2015 + comment: None + +opendaylight: + enable_gbp: + label: GBP features + type: checkbox + value: false + weight: 14 + enable_l3_odl: + label: 'EXPERIMENTAL: Use ODL to manage L3 traffic' + type: checkbox + value: false + weight: 12 + enable_sfc: + label: SFC features + type: checkbox + value: false + weight: 13 + metadata: + enabled: true + label: OpenDaylight Lithium plugin + odl_features: + default: + - config + - standard + - region + - package + - kar + - ssh + - management + gbp: + - odl-groupbasedpolicy-base + - odl-groupbasedpolicy-ofoverlay + ovs: + - odl-ovsdb-openstack + - odl-restconf-all + - odl-aaa-authn + - odl-dlux-all + sfc: + - odl-sfc-core + - odl-sfc-sb-rest + - odl-sfc-ui + - odl-sfc-netconf + - odl-sfc-ovs + - odl-sfcofl2 + - odl-sfc-test-consumer + # plugin_id: Assigned during installation + restrictions: + - cluster:net_provider != 'neutron': Only neutron is supported by OpenDaylight + toggleable: true + weight: 70 + rest_api_port: + description: Port on which ODL REST API will be available. + label: Port number + regex: + error: Invalid port number + source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ + type: text + value: '8282' + weight: 40 diff --git a/deploy/config/plugins/fuel-onos_0.0.1.yaml b/deploy/config/plugins/fuel-onos_0.0.1.yaml new file mode 100644 index 000000000..48dfd2fe3 --- /dev/null +++ b/deploy/config/plugins/fuel-onos_0.0.1.yaml @@ -0,0 +1,24 @@ +plugin-config-metadata: + title: ONOS fuel Plugin configuration template + version: 0.1 + created: Wed Jan 7 2016 + comment: None + +onos: + metadata: + enabled: true + label: onos plugin + # plugin_id: Assigned during installation + restrictions: + - cluster:net_provider != 'neutron': Neutron only + toggleable: true + weight: 70 + public_eth: + description: Please note that onos needs an independent eth for public + network when interfaces of nodes are configured, or L3 traffic to + internet will fail! + Defualt is eth3. + label: Public Ethernet Port + type: text + value: eth3 + weight: 20 diff --git a/deploy/deploy-config.py b/deploy/deploy-config.py new file mode 100644 index 000000000..f94466fe8 --- /dev/null +++ b/deploy/deploy-config.py @@ -0,0 +1,296 @@ +#!/usr/bin/python +############################################################################### +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################### + +############################################################################### +# Description +# This script constructs the final deployment dea.yaml and dha.yaml files +# The dea.yaml get's constructed from (in reverse priority): +# 1) dea-base +# 2) dea-pod-override +# 3) deployment-scenario dea-override-config section +# +# The dha.yaml get's constructed from (in reverse priority): +# 1) pod dha +# 2) deployment-scenario dha-override-config section +############################################################################### + +import os +import yaml +import sys +import urllib2 +import calendar +import time +import collections +import hashlib + +from functools import reduce +from operator import or_ +from common import ( + log, + exec_cmd, + err, + warn, + check_file_exists, + create_dir_if_not_exists, + delete, + check_if_root, + ArgParser, +) + +def parse_arguments(): + parser = ArgParser(prog='python %s' % __file__) + parser.add_argument('-dha', dest='dha_uri', action='store', + default=False, help='dha configuration file FQDN URI', required=True) + parser.add_argument('-deab', dest='dea_base_uri', action='store', + default=False, help='dea base configuration FQDN URI', required=True) + parser.add_argument('-deao', dest='dea_pod_override_uri', action='store', + default=False, help='dea POD override configuration FQDN URI', + required=True) + parser.add_argument('-scenario-base-uri', dest='scenario_base_uri', action='store', + default=False, help='Deploymen scenario base directory URI', + required=True) + parser.add_argument('-scenario', dest='scenario', action='store', + default=False, help='Deploymen scenario short-name (priority), or base file name (in the absense of a shortname defenition)', + required=True) + + parser.add_argument('-plugins', dest='plugins_uri', action='store', + default=False, help='Plugin configurations directory URI', + required=True) + parser.add_argument('-output', dest='output_path', action='store', + default=False, + help='Local path for resulting output configuration files', + required=True) + args = parser.parse_args() + log(args) + kwargs = {'dha_uri': args.dha_uri, + 'dea_base_uri': args.dea_base_uri, + 'dea_pod_override_uri': args.dea_pod_override_uri, + 'scenario_base_uri': args.scenario_base_uri, + 'scenario': args.scenario, + 'plugins_uri': args.plugins_uri, + 'output_path': args.output_path} + return kwargs + +def setup_yaml(): + represent_dict_order = lambda self, data: self.represent_mapping('tag:yaml.org,2002:map', data.items()) + yaml.add_representer(collections.OrderedDict, represent_dict_order) + +def sha_uri(uri): + import hashlib + response = urllib2.urlopen(uri) + data = response.read() + sha1 = hashlib.sha1() + sha1.update(data) + return sha1.hexdigest() + +def mergedicts(dict1, dict2): + for k in set(dict1.keys()).union(dict2.keys()): + if k in dict1 and k in dict2: + if isinstance(dict1[k], dict) and isinstance(dict2[k], dict): + yield (k, dict(mergedicts(dict1[k], dict2[k]))) + else: + # If one of the values is not a dict, you can't continue + # merging it. + # Value from second dict overrides one in first and we move on. + yield (k, dict2[k]) + elif k in dict1: + yield (k, dict1[k]) + else: + yield (k, dict2[k]) + +setup_yaml() +kwargs = parse_arguments() + +# Generate final dea.yaml by merging following config files/fragments in revers priority order: +# "dea-base", "dea-pod-override", "deplyment-scenario/module-config-override" +# and "deployment-scenario/dea-override" +print 'Generating final dea.yaml configuration....' + +# Fetch dea-base, extract and purge meta-data +print 'Parsing dea-base from: ' + kwargs["dea_base_uri"] + "...." +response = urllib2.urlopen(kwargs["dea_base_uri"]) +dea_base_conf = yaml.load(response.read()) +dea_base_title = dea_base_conf['dea-base-config-metadata']['title'] +dea_base_version = dea_base_conf['dea-base-config-metadata']['version'] +dea_base_creation = dea_base_conf['dea-base-config-metadata']['created'] +dea_base_sha = sha_uri(kwargs["dea_base_uri"]) +dea_base_comment = dea_base_conf['dea-base-config-metadata']['comment'] +dea_base_conf.pop('dea-base-config-metadata') +final_dea_conf = dea_base_conf + +# Fetch dea-pod-override, extract and purge meta-data, merge with previous dea data structure +print 'Parsing the dea-pod-override from: ' + kwargs["dea_pod_override_uri"] + "...." +response = urllib2.urlopen(kwargs["dea_pod_override_uri"]) +dea_pod_override_conf = yaml.load(response.read()) +if dea_pod_override_conf: + dea_pod_title = dea_pod_override_conf['dea-pod-override-config-metadata']['title'] + dea_pod_version = dea_pod_override_conf['dea-pod-override-config-metadata']['version'] + dea_pod_creation = dea_pod_override_conf['dea-pod-override-config-metadata']['created'] + dea_pod_sha = sha_uri(kwargs["dea_pod_override_uri"]) + dea_pod_comment = dea_pod_override_conf['dea-pod-override-config-metadata']['comment'] + print 'Merging dea-base and dea-pod-override configuration ....' + dea_pod_override_conf.pop('dea-pod-override-config-metadata') + if dea_pod_override_conf: + final_dea_conf = dict(mergedicts(final_dea_conf, dea_pod_override_conf)) + +# Fetch deployment-scenario, extract and purge meta-data, merge deployment-scenario/ +# dea-override-configith previous dea data structure +print 'Parsing deployment-scenario from: ' + kwargs["scenario"] + "...." + +response = urllib2.urlopen(kwargs["scenario_base_uri"] + "/scenario.yaml") +scenario_short_translation_conf = yaml.load(response.read()) +if kwargs["scenario"] in scenario_short_translation_conf: + scenario_uri = kwargs["scenario_base_uri"] + "/" + scenario_short_translation_conf[kwargs["scenario"]]['configfile'] +else: + scenario_uri = kwargs["scenario_base_uri"] + "/" + kwargs["scenario"] +response = urllib2.urlopen(scenario_uri) +deploy_scenario_conf = yaml.load(response.read()) + +if deploy_scenario_conf: + deploy_scenario_title = deploy_scenario_conf['deployment-scenario-metadata']['title'] + deploy_scenario_version = deploy_scenario_conf['deployment-scenario-metadata']['version'] + deploy_scenario_creation = deploy_scenario_conf['deployment-scenario-metadata']['created'] + deploy_scenario_sha = sha_uri(scenario_uri) + deploy_scenario_comment = deploy_scenario_conf['deployment-scenario-metadata']['comment'] + deploy_scenario_conf.pop('deployment-scenario-metadata') +else: + print "Deployment scenario file not found or is empty" + print "Cannot continue, exiting ...." + sys.exit(1) + +dea_scenario_override_conf = deploy_scenario_conf["dea-override-config"] +if dea_scenario_override_conf: + print 'Merging dea-base-, dea-pod-override- and deployment-scenario configuration into final dea.yaml configuration....' + final_dea_conf = dict(mergedicts(final_dea_conf, dea_scenario_override_conf)) + +# Fetch plugin-configuration configuration files, extract and purge meta-data, +# merge/append with previous dea data structure, override plugin-configuration with +# deploy-scenario/module-config-override +modules = [] +module_uris = [] +module_titles = [] +module_versions = [] +module_creations = [] +module_shas = [] +module_comments = [] +if deploy_scenario_conf["stack-extensions"]: + for module in deploy_scenario_conf["stack-extensions"]: + print 'Loading configuration for module: ' + module["module"] + ' and merging it to final dea.yaml configuration....' + response = urllib2.urlopen(kwargs["plugins_uri"] + '/' + module["module-config-name"] + '_' + module["module-config-version"] + '.yaml') + module_conf = yaml.load(response.read()) + modules.append(module["module"]) + module_uris.append(kwargs["plugins_uri"] + '/' + module["module-config-name"] + '_' + module["module-config-version"] + '.yaml') + module_titles.append(str(module_conf['plugin-config-metadata']['title'])) + module_versions.append(str(module_conf['plugin-config-metadata']['version'])) + module_creations.append(str(module_conf['plugin-config-metadata']['created'])) + module_shas.append(sha_uri(kwargs["plugins_uri"] + '/' + module["module-config-name"] + '_' + module["module-config-version"] + '.yaml')) + module_comments.append(str(module_conf['plugin-config-metadata']['comment'])) + module_conf.pop('plugin-config-metadata') + final_dea_conf['settings']['editable'].update(module_conf) + scenario_module_override_conf = module['module-config-override'] + if scenario_module_override_conf: + dea_scenario_module_override_conf = {} + dea_scenario_module_override_conf['settings'] = {} + dea_scenario_module_override_conf['settings']['editable'] = {} + dea_scenario_module_override_conf['settings']['editable'][module["module"]] = scenario_module_override_conf + final_dea_conf = dict(mergedicts(final_dea_conf, dea_scenario_module_override_conf)) + +# Dump final dea.yaml including configuration management meta-data to argument provided +# directory +if not os.path.exists(kwargs["output_path"]): + os.makedirs(kwargs["output_path"]) +print 'Dumping final dea.yaml to ' + kwargs["output_path"] + '/dea.yaml....' +with open(kwargs["output_path"] + '/dea.yaml', "w") as f: + f.write("title: DEA.yaml file automatically generated from the configuration files stated in the \"configuration-files\" fragment below\n") + f.write("version: " + str(calendar.timegm(time.gmtime())) + "\n") + f.write("created: " + str(time.strftime("%d/%m/%Y")) + " " + str(time.strftime("%H:%M:%S")) + "\n") + f.write("comment: none\n") + + f.write("configuration-files:\n") + f.write(" dea-base:\n") + f.write(" uri: " + kwargs["dea_base_uri"] + "\n") + f.write(" title: " + str(dea_base_title) + "\n") + f.write(" version: " + str(dea_base_version) + "\n") + f.write(" created: " + str(dea_base_creation) + "\n") + f.write(" sha1: " + str(dea_base_sha) + "\n") + f.write(" comment: " + str(dea_base_comment) + "\n") + + f.write(" pod-override:\n") + f.write(" uri: " + kwargs["dea_pod_override_uri"] + "\n") + f.write(" title: " + str(dea_pod_title) + "\n") + f.write(" version: " + str(dea_pod_version) + "\n") + f.write(" created: " + str(dea_pod_creation) + "\n") + f.write(" sha1: " + str(dea_pod_sha) + "\n") + f.write(" comment: " + str(dea_pod_comment) + "\n") + + f.write(" deployment-scenario:\n") + f.write(" uri: " + str(scenario_uri) + "\n") + f.write(" title: " + str(deploy_scenario_title) + "\n") + f.write(" version: " + str(deploy_scenario_version) + "\n") + f.write(" created: " + str(deploy_scenario_creation) + "\n") + f.write(" sha1: " + str(deploy_scenario_sha) + "\n") + f.write(" comment: " + str(deploy_scenario_comment) + "\n") + + f.write(" plugin-modules:\n") + for k in range(0,len(modules)): + f.write(" - module: " + modules[k] + "\n") + f.write(" uri: " + module_uris[k] + "\n") + f.write(" title: " + module_titles[k] + "\n") + f.write(" version: " + module_versions[k] + "\n") + f.write(" created: " + module_creations[k] + "\n") + f.write(" sha-1: " + module_shas[k] + "\n") + f.write(" comment: " + module_comments[k] + "\n") + + yaml.dump(final_dea_conf, f, default_flow_style=False) + +# Load POD dha and override it with "deployment-scenario/dha-override-config" section +print 'Generating final dha.yaml configuration....' +print 'Parsing dha-pod yaml configuration....' +response = urllib2.urlopen(kwargs["dha_uri"]) +dha_pod_conf = yaml.load(response.read()) +dha_pod_title = dha_pod_conf['dha-pod-config-metadata']['title'] +dha_pod_version = dha_pod_conf['dha-pod-config-metadata']['version'] +dha_pod_creation = dha_pod_conf['dha-pod-config-metadata']['created'] +dha_pod_sha = sha_uri(kwargs["dha_uri"]) +dha_pod_comment = dha_pod_conf['dha-pod-config-metadata']['comment'] +dha_pod_conf.pop('dha-pod-config-metadata') +final_dha_conf = dha_pod_conf + +dha_scenario_override_conf = deploy_scenario_conf["dha-override-config"] +if dha_scenario_override_conf: + print 'Merging dha-pod and deployment-scenario override information to final dha.yaml configuration....' + final_dha_conf = dict(mergedicts(dha_base_conf, dha_scenario_override_conf)) + +# Dump final dha.yaml to argument provided directory +print 'Dumping final dha.yaml to ' + kwargs["output_path"] + '/dha.yaml....' +with open(kwargs["output_path"] + '/dha.yaml', "w") as f: + f.write("title: DHA.yaml file automatically generated from the configuration files stated in the \"configuration-files\" fragment below\n") + f.write("version: " + str(calendar.timegm(time.gmtime())) + "\n") + f.write("created: " + str(time.strftime("%d/%m/%Y")) + " " + str(time.strftime("%H:%M:%S")) + "\n") + f.write("comment: none\n") + + f.write("configuration-files:\n") + + f.write(" dha-pod-configuration:\n") + f.write(" uri: " + kwargs["dha_uri"] + "\n") + f.write(" title: " + str(dha_pod_title) + "\n") + f.write(" version: " + str(dha_pod_version) + "\n") + f.write(" created: " + str(dha_pod_creation) + "\n") + f.write(" sha-1: " + str(dha_pod_sha) + "\n") + f.write(" comment: " + str(dha_pod_comment) + "\n") + + f.write(" deployment-scenario:\n") + f.write(" uri: " + str(scenario_uri) + "\n") + f.write(" title: " + str(deploy_scenario_title) + "\n") + f.write(" version: " + str(deploy_scenario_version) + "\n") + f.write(" created: " + str(deploy_scenario_creation) + "\n") + f.write(" sha-1: " + str(deploy_scenario_sha) + "\n") + f.write(" comment: " + str(deploy_scenario_comment) + "\n") + yaml.dump(final_dha_conf, f, default_flow_style=False) diff --git a/deploy/scenario/README b/deploy/scenario/README new file mode 100644 index 000000000..aebeb40ee --- /dev/null +++ b/deploy/scenario/README @@ -0,0 +1,165 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +Abstract: +--------- +The directory contains configuration files for different OPNFV deployment +feature scenarios used by Fuel@OPNFV, eg.: +- High availability configuration +- Type of SDN controller to be deployed +- OPNFV collaboration project features to be deployed. +- Provisioning of any other sevices + +Creating a new plugin +--------------------- +Creating a new plugin involves creating a plugin config yaml file in +/deploy/config/plugins. The filename should comply to following structure: +fuel-_.yaml. +The plugin configuration must include plugin configuration metadata as below: + +plugin-config-metadata: + title: + version: + created: + comment: + +Moreover, naturaly the plugin configuration must include the plugin yaml +fragment, eg: + +opendaylight: + metadata: + enabled: true + label: OpenDaylight Lithium plugin +....... + +Creating a new deployment scenario +---------------------------------- +Creating a new deployment scenario involve creating a deployment scenario +yaml file under deploy/scenario/. The filename should comply to following +format: ___...__.yaml + +The deployment configuration file must contain configuration metadata as stated +below: + +deployment-scenario-metadata: + title: + version: + created: + comment: + +To include fuel plugins, use the stack-extentions key: +stack-extensions, eg: + +stack-extensions: + - module: opendaylight + module-config-name: fuel-odl + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + rest_api_port: + value: '8282' + enable_gbp: + value: false + enable_l3_odl: + value: true + enable_sfc: + value: false + +"module-config-name" and "module-config-version" must correspond to how +the plugin configuration yaml was named. +Everything under the "module-config-override" overrides the corresponding +keys in the plugin config yaml file, this can for instance be used to configure +the plugin. + +Everything under the "dea-override-config" overrides corresponding keys in the dea_base.yaml and dea_pod_override.yaml. +You must at least provide {environment:{mode:'value},{net_segment_type:'value'} +and {nodes:....} in order to configure the HA mode, network segmentation types +and role to node assignments. +Other ovverides may also be used to enable stack features such as ceph, heat, +etc. +Example: + +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller,opendaylight + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 5 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +Optionally you may override the pod dha defenition under the +"dha-override-config" key. + +Short names +----------- +scenario.yaml provides a mapping between a deployment scenario short-name +and one or several deployment scenario configuration yaml files. + +Other +----- +These configuration files are used by deploy.sh provided by Fuel@OPNFV, e.g. +deploy.sh will clone this repo when deploying. \ No newline at end of file diff --git a/deploy/scenario/ha_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..ae2432edc --- /dev/null +++ b/deploy/scenario/ha_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,113 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: OpenStack-only, HA deployment + version: 0.0.1 + created: December 29 2015 + comment: Fuel OpenStack-only with Ceph, Ceilometer and Heat, HA deployment + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 5 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..e07fd0d1a --- /dev/null +++ b/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,117 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: NFV KVM HA deployment + version: 0.0.1 + created: Jan 6 2016 + comment: NFV KVM HA + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: fuel-plugin-qemu + module-config-name: fuel-nfvkvm + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 5 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..1419858cb --- /dev/null +++ b/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,117 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: NFV OVS HA deployment + version: 0.0.1 + created: Jan 6 2016 + comment: NFV OVS HA + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: fuel-plugin-ovsnfv + module-config-name: fuel-nfvovs + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 5 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..9b1d077d2 --- /dev/null +++ b/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,126 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: ODL-L2 HA deployment + version: 0.0.1 + created: Jan 5 2016 + comment: Fuel ODL-L2 HA with Ceph, Ceilometer and Heat + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: opendaylight + module-config-name: fuel-odl + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + rest_api_port: + value: '8282' + enable_gbp: + value: false + enable_l3_odl: + value: false + enable_sfc: + value: false + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller,opendaylight + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 5 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..a0f68097d --- /dev/null +++ b/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,126 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: ODL-L3 HA deployment + version: 0.0.1 + created: Jan 5 2016 + comment: Fuel ODL-L3 HA with Ceph, Ceilometer and Heat + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: opendaylight + module-config-name: fuel-odl + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + rest_api_port: + value: '8282' + enable_gbp: + value: false + enable_l3_odl: + value: true + enable_sfc: + value: false + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller,opendaylight + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 5 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/ha_onos_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/ha_onos_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..8fc4e2229 --- /dev/null +++ b/deploy/scenario/ha_onos_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,120 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: ONOS HA deployment + version: 0.0.1 + created: Jan 7 2016 + comment: Fuel ONOS HA with Ceph, Ceilometer and Heat + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: onos + module-config-name: fuel-onos + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + public_eth: + value: 'eth3' + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller,onos + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 5 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/no-ha_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..76595e8db --- /dev/null +++ b/deploy/scenario/no-ha_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,108 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: OpenStack-only, No-HA deployment + version: 0.0.1 + created: December 29 2015 + comment: Fuel OpenStack-only with Ceph, Ceilometer and Heat, No-HA deployment + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..04306c24b --- /dev/null +++ b/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,113 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: NFV KVM NO-HA deployment + version: 0.0.1 + created: Jan 6 2016 + comment: NFV KVM NO-HA + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: fuel-plugin-qemu + module-config-name: fuel-nfvkvm + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..96b6f87f6 --- /dev/null +++ b/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,119 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: NFV KVM and OVS No-HA deployment + version: 0.0.1 + created: Jan 6 2016 + comment: NFV KVM and OVS + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: fuel-plugin-qemu + module-config-name: fuel-nfvkvm + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + + - module: fuel-plugin-ovsnfv + module-config-name: fuel-nfvovs + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_2 + - id: 3 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_2 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_2 + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..f8f68adfe --- /dev/null +++ b/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,113 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: NFV OVS NO-HA deployment + version: 0.0.1 + created: Jan 6 2016 + comment: NFV OVS NO-HA + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: fuel-plugin-ovsnfv + module-config-name: fuel-nfvovs + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..f3e22906f --- /dev/null +++ b/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,121 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: ODL-L2 No-HA deployment + version: 0.0.1 + created: December 30 2015 + comment: Fuel ODL-L2 No HA with Ceph, Ceilometer and Heat + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: opendaylight + module-config-name: fuel-odl + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + rest_api_port: + value: '8282' + enable_gbp: + value: false + enable_l3_odl: + value: false + enable_sfc: + value: false + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller,opendaylight + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..880938935 --- /dev/null +++ b/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,121 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: ODL-L3 No-HA deployment + version: 0.0.1 + created: Jan 5 2016 + comment: Fuel ODL-L3 No HA with Ceph, Ceilometer and Heat + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: opendaylight + module-config-name: fuel-odl + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + rest_api_port: + value: '8282' + enable_gbp: + value: false + enable_l3_odl: + value: true + enable_sfc: + value: false + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller,opendaylight + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/no-ha_onos_heat_ceilometer_scenario_0.0.1.yaml b/deploy/scenario/no-ha_onos_heat_ceilometer_scenario_0.0.1.yaml new file mode 100644 index 000000000..e30c1dfe9 --- /dev/null +++ b/deploy/scenario/no-ha_onos_heat_ceilometer_scenario_0.0.1.yaml @@ -0,0 +1,115 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################### # Description: +# This .yaml configuration file defines the configuration of the fuel +# deployment and is passed as an argument to deploy.sh +# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config +# This will make build.sh fetch this configuration file and configure the +# deployment accordingly. +# After the deployment, a copy of this file gets uploaded to fuel: +# /root/deploy-config.yaml, as well as the sha-1 sum of this file: +# /root/deploy-config.sha1 +############################################################################## + +############################################################################## +# deployment configuration meta-data +deployment-scenario-metadata: + title: ONOS No-HA deployment + version: 0.0.1 + created: Jan 7 2016 + comment: ONOS No HA with Ceph, Ceilometer and Heat + +############################################################################## +# Stack extentions are opnfv added value features in form of a fuel-plugin +# plug-ins listed below will be enabled and configured according to the +# /_.yaml +# It does so by copying the config file to the local plugin config directory +stack-extensions: + - module: onos + module-config-name: fuel-onos + module-config-version: 0.0.1 + module-config-override: + # Module config overrides + public_eth: + value: 'eth3' + +############################################################################## +# By editing the override-config sections below, you can override arbitrary +# configuration name-space settings +dea-override-config: + environment: + mode: ha + net_segment_type: tun + wanted_release: Kilo on Ubuntu 14.04 + nodes: + - id: 1 + interfaces: interfaces_1 + role: mongo,controller,onos + transformations: transformations_1 + - id: 2 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 3 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + - id: 4 + interfaces: interfaces_1 + role: ceph-osd,compute + transformations: transformations_1 + settings: + editable: + additional_components: + ceilometer: + description: If selected, Ceilometer component will be installed + label: Install Ceilometer + type: checkbox + value: true + weight: 40 + heat: + description: '' + label: '' + type: hidden + value: true + weight: 30 + metadata: + label: Additional Components + weight: 20 + storage: + ephemeral_ceph: + description: Configures Nova to store ephemeral volumes in RBD. This works + best if Ceph is enabled for volumes and images, too. Enables live migration + of all types of Ceph backed VMs (without this option, live migration will + only work with VMs launched from Cinder volumes). + label: Ceph RBD for ephemeral volumes (Nova) + type: checkbox + value: true + weight: 75 + images_ceph: + description: Configures Glance to use the Ceph RBD backend to store images. + If enabled, this option will prevent Swift from installing. + label: Ceph RBD for images (Glance) + restrictions: + - settings:storage.images_vcenter.value == true: Only one Glance backend could + be selected. + type: checkbox + value: true + weight: 30 + +dha-override-config: +# disks: +# contrail: 500G + +############################################################################## +# The verification pipeline may populate the section below with arbitrary +# testing information, which post deploy can be retreived from the fuel master: +# /root/deploy-config.yaml +test: diff --git a/deploy/scenario/scenario.yaml b/deploy/scenario/scenario.yaml new file mode 100644 index 000000000..e978a46d0 --- /dev/null +++ b/deploy/scenario/scenario.yaml @@ -0,0 +1,56 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# jonas.bjurel@ericsson.com +# 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 +############################################################################## + +############################################################################## +# Description: +# This configuration file defines translation between a short deployment +# scenario name and an actual deployment scenario configuration file +############################################################################## + +os_ha: + configfile: ha_heat_ceilometer_scenario_0.0.1.yaml + +os_no-ha: + configfile: no-ha_heat_ceilometer_scenario_0.0.1.yaml + +os_odl-l3_ha: + configfile: no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml + +os_odl-l3_no-ha: + configfile: no-ha_odl-l3_heat_ceilometer_scenario_0.0.1.yaml + +os_odl-l2_ha: + configfile: no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml + +os_odl-l2_no-ha: + configfile: no-ha_odl-l2_heat_ceilometer_scenario_0.0.1.yaml + +os_onos_ha: + configfile: ha_onos_heat_ceilometer_scenario_0.0.1.yaml + +os_onos_no-ha: + configfile: no-ha_onos_heat_ceilometer_scenario_0.0.1.yaml + +os_kvm_ha: + configfile: ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml + +os_kvm_no-ha: + configfile: no-ha_nfv-kvm_heat_ceilometer_scenario_0.0.1.yaml + +os_ovs_ha: + configfile: ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml + +os_ovs_no-ha: + configfile: no-ha_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml + +os_kvm_ovs_ha: + configfile: + +os_kvm_ovs_no-ha: + configfile: no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario_0.0.1.yaml -- cgit 1.2.3-korg