...
Adding a new ONAP component requires to add a description of the host VM in terms of operating system, flavor (number of vCPUs, RAM, disk), ports, etc. The VM description also contains a "user data" section that is used to implement custom operations. In ONAP, the "user data" section is used to save environment-specific parameters in the VM and make them usable by installation scripts (see next sections).
Find below the description of the SO VM:
Wiki Markup |
---|
# MSO instantiation
mso_private_port:
type: OS::Neutron::Port
properties:
network: { get_resource: oam_onap }
fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: mso_ip_addr }}]
mso_floating_ip:
type: OS::Neutron::FloatingIP
properties:
floating_network_id: { get_param: public_net_id }
port_id: { get_resource: mso_private_port }
mso_vm:
type: OS::Nova::Server
properties:
image: { get_param: ubuntu_1604_image }
flavor: { get_param: flavor_large }
name:
str_replace:
template: base-mso
params:
base: { get_param: vm_base_name }
key_name: { get_resource: vm_key }
networks:
- port: { get_resource: mso_private_port }
user_data_format: RAW
user_data:
str_replace:
params:
__nexus_repo__: { get_param: nexus_repo }
__nexus_docker_repo__: { get_param: nexus_docker_repo }
__nexus_username__: { get_param: nexus_username }
__nexus_password__: { get_param: nexus_password }
__openstack_username__: { get_param: openstack_username }
__openstack_tenant_id__: { get_param: openstack_tenant_id }
__openstack_api_key__: { get_param: openstack_api_key }
__openstack_region__: { get_param: openstack_region }
__keystone_url__: { get_param: keystone_url }
__dmaap_topic__: { get_param: dmaap_topic }
__artifacts_version__: { get_param: artifacts_version }
__dns_ip_addr__: { get_param: dns_ip_addr }
__docker_version__: { get_param: docker_version }
__gerrit_branch__: { get_param: gerrit_branch }
__cloud_env__: { get_param: cloud_env }
__external_dns__: { get_param: external_dns }
__mso_repo__: { get_param: mso_repo }
template: |
#!/bin/bash
# Create configuration files
mkdir -p /opt/config
echo "__nexus_repo__" > /opt/config/nexus_repo.txt
echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
echo "__nexus_username__" > /opt/config/nexus_username.txt
echo "__nexus_password__" > /opt/config/nexus_password.txt
echo "__artifacts_version__" > /opt/config/artifacts_version.txt
echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
echo "__openstack_username__" > /opt/config/openstack_username.txt
echo "__openstack_tenant_id__" > /opt/config/tenant_id.txt
echo "__openstack_api_key__" > /opt/config/openstack_api_key.txt
echo "__openstack_region__" > /opt/config/openstack_region.txt
echo "__keystone_url__" > /opt/config/keystone.txt
echo "__docker_version__" > /opt/config/docker_version.txt
echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
echo "__cloud_env__" > /opt/config/cloud_env.txt
echo "__external_dns__" > /opt/config/external_dns.txt
echo "__mso_repo__" > /opt/config/remote_repo.txt
# Download and run install script
curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/mso_install.sh -o /opt/mso_install.sh
cd /opt
chmod +x mso_install.sh
./mso_install.sh |