summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHong Guan <hg4105@att.com>2017-11-21 11:00:42 -0500
committerGuan, Hong (hg4105) <hg4105@att.com>2017-11-21 11:00:42 -0500
commit62f78a66d8affeac296e6531d128d310e3851ea0 (patch)
treec57f3fb57b04b37895b891656c08d6f5a9cd11fb
parentec1754488a5ae90332804fe4a87212ca98e1cf5c (diff)
Deploy SO on VMs by TOSCA
Change-Id: Ic0b775089f218f869d1abe2f374919f3286aec1d IssueID: OOM-450 Signed-off-by: Guan, Hong (hg4105) <hg4105@att.com>
-rw-r--r--TOSCA/VM/so/scripts/so.sh64
-rw-r--r--TOSCA/VM/so/so.yaml256
2 files changed, 320 insertions, 0 deletions
diff --git a/TOSCA/VM/so/scripts/so.sh b/TOSCA/VM/so/scripts/so.sh
new file mode 100644
index 0000000000..e570a9ddb9
--- /dev/null
+++ b/TOSCA/VM/so/scripts/so.sh
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+#
+PUBIP="$1"
+PVTIP="$2"
+NEXUS_REPO="$3"
+DOCKER_REPO="$4"
+NEXUS_USERNAME="$5"
+NEXUS_PASSWORD="$6"
+ARTIFACTS_VERSION="$7"
+DNS_IP="$8"
+GERRIT_BRANCH="$9"
+CLOUD_ENV="$10"
+EXETERNAL_DNS="$11"
+DMAAP_TOPIC="$12"
+OPENSTACK_USERNAME="$13"
+TENANT_ID="$14"
+OPENSTACK_API_KEY="$15"
+OPENSTACK_REGION="$16"
+KEYSTONE="$17"
+SO_REPO="$18"
+DOCKER_VERSION="$19"
+
+export HOSTNAME=`hostname`
+echo 127.0.1.1 $HOSTNAME >>/etc/hosts
+echo $PVTIP $HOSTNAME >>/etc/hosts
+echo $PUBIP $HOSTNAME >>/etc/hosts
+
+
+mkdir /opt/config
+chmod 777 /opt/config
+echo $PUBIP > /opt/config/public_ip.txt
+echo $NEXUS_REPO > /opt/config/nexus_repo.txt
+echo $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 > /opt/config/dns_ip_addr.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 $EXETERNAL_DNS > /opt/config/external_dns.txt
+echo $DMAAP_TOPIC > /opt/config/dmaap_topic.txt
+echo $OPENSTACK_USERNAME > /opt/config/openstack_username.txt
+echo $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 > /opt/config/keystone.txt
+echo $SO_REPO > /opt/config/remote_repo.txt
+
+if [ ! -f /opt/rebooted ]; then
+ touch /opt/so_install.sh
+ chmod 777 /opt/so_install.sh
+ curl -k $NEXUS_REPO/org.onap.demo/boot/$ARTIFACTS_VERSION/so_install.sh -o /opt/so_install.sh
+ cd /opt
+ chmod +x so_install.sh
+
+ echo " if [ ! -f /opt/rebooted ]; then" >/opt/install_tmp
+ echo " touch /opt/rebooted">>/opt/install_tmp
+ echo " reboot" >>/opt/install_tmp
+ echo " fi">>/opt/install_tmp
+ sed -i -e "/\treboot/r install_tmp" -e "//d" so_install.sh
+fi
+/opt/so_install.sh > so_install.log 2>&1 \ No newline at end of file
diff --git a/TOSCA/VM/so/so.yaml b/TOSCA/VM/so/so.yaml
new file mode 100644
index 0000000000..4381a6eb48
--- /dev/null
+++ b/TOSCA/VM/so/so.yaml
@@ -0,0 +1,256 @@
+###########################################################
+# This Blueprint installs ONAP SO on Openstack
+###########################################################
+
+tosca_definitions_version: cloudify_dsl_1_3
+
+description: >
+ This blueprint creates a ONAP service orchestrator
+
+imports:
+ - http://www.getcloudify.org/spec/cloudify/4.1/types.yaml
+ - http://cloudify.co/spec/openstack-plugin/2.2.0/plugin.yaml
+ - http://cloudify.co/spec/fabric-plugin/1.5/plugin.yaml
+ - http://www.getcloudify.org/spec/diamond-plugin/1.3.3/plugin.yaml
+
+inputs:
+ nexus_repo:
+ type: string
+ default: https://nexus.onap.org/content/sites/raw
+
+ docker_repo:
+ type: string
+ default: nexus3.onap.org:10001
+
+ nexus_username:
+ type: string
+ default: docker
+
+ nexus_password:
+ type: string
+ default: docker
+
+ artifacts_version:
+ type: string
+ default: 1.1.0-SNAPSHOT
+
+ dns_ip:
+ type: string
+
+ cloud_env:
+ type: string
+ default: openstack
+
+ docker_version:
+ type: string
+ default: v1.1.1
+
+ gerrit_branch:
+ type: string
+ default: master
+
+ external_dns:
+ type: string
+
+ dmaap_topic:
+ type: string
+ default: AUTO
+
+ so_repo:
+ type: string
+ default: http://gerrit.onap.org/r/so/docker-config.git
+
+ vm_instancename:
+ type: string
+
+ image:
+ description: |
+ A Ubuntu 16.04 image, along with the usual
+ type: string
+ default: Ubuntu 16.04 LTS Generic
+
+ flavor:
+ description: >
+ A machine type with more than 2 CPUs, 4096 GB RAM, and 8 GB of disk space.
+ You might want to use 4 CPUs, 8192 MB RAM for the master.
+ type: string
+ default: m1.xlarge
+
+ ssh_user:
+ description: |
+ User for connecting to agent VM
+ type: string
+ default: ubuntu
+
+ security_group:
+ description: openstack security_group
+ type: string
+
+ keypair_name:
+ description: |
+ OpenStack keypair name
+ type: string
+
+ key_filename:
+ type: string
+
+ external_network:
+ type: string
+
+ app_subnet:
+ type: string
+
+
+ openstack_username:
+ type: string
+ description: username to authenticate to OpenStack
+
+ openstack_password:
+ type: string
+ description: OpenStack tenant password for openstack_username user
+
+ openstack_tenant_name:
+ type: string
+ description: OpenStack tenant for VM deploy
+
+ openstack_auth_url:
+ type: string
+ description: Authentication URL for OpenStack
+
+ openstack_region:
+ type: string
+ description: OpenStack region
+
+dsl_definitions:
+ openstack_credentials: &openstack_credentials
+ username: { get_input: openstack_username }
+ password: { get_input: openstack_password }
+ tenant_name: { get_input: openstack_tenant_name }
+ auth_url: { get_input: openstack_auth_url }
+ region: { get_input: openstack_region }
+
+node_templates:
+
+ key_pair:
+ type: cloudify.openstack.nodes.KeyPair
+ properties:
+ private_key_path: { get_input: key_filename }
+ use_external_resource: true
+ resource_id: { get_input: keypair_name }
+ openstack_config: *openstack_credentials
+
+ private_net:
+ type: cloudify.openstack.nodes.Network
+ properties:
+ use_external_resource: true
+ resource_id: { get_input: app_subnet }
+ openstack_config: *openstack_credentials
+
+ external_network:
+ type: cloudify.openstack.nodes.Network
+ properties:
+ openstack_config: *openstack_credentials
+ use_external_resource: true
+ resource_id: { get_input: external_network}
+
+ app_security_group:
+ type: cloudify.openstack.nodes.SecurityGroup
+ properties:
+ openstack_config: *openstack_credentials
+ use_external_resource: true
+ resource_id: { get_input: security_group }
+
+ VM_001_fixed_ip:
+ type: cloudify.openstack.nodes.Port
+ properties:
+ openstack_config: *openstack_credentials
+ relationships:
+ - type: cloudify.relationships.contained_in
+ target: private_net
+ - type: cloudify.openstack.port_connected_to_security_group
+ target: app_security_group
+
+ VM_001_floating_ip:
+ type: cloudify.openstack.nodes.FloatingIP
+ properties:
+ openstack_config: *openstack_credentials
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ create:
+ inputs:
+ args:
+ floating_network_name: { get_input: external_network }
+
+ VM_001:
+ type: cloudify.openstack.nodes.Server
+ properties:
+ openstack_config: *openstack_credentials
+ install_agent: false
+ image: { get_input: image }
+ flavor: { get_input: flavor }
+ resource_id: { get_input: vm_instancename }
+ management_network_name: { get_input: app_subnet }
+ ip: { get_attribute: [VM_001_floating_ip, floating_ip_address] }
+ relationships:
+ - type: cloudify.openstack.server_connected_to_floating_ip
+ target: VM_001_floating_ip
+ - type: cloudify.openstack.server_connected_to_keypair
+ target: key_pair
+ - type: cloudify.openstack.server_connected_to_port
+ target: VM_001_fixed_ip
+
+
+ app_001:
+ type: cloudify.nodes.SoftwareComponent
+ properties:
+ interfaces:
+ cloudify.interfaces.lifecycle:
+ start:
+ implementation: fabric.fabric_plugin.tasks.run_script
+ inputs:
+ script_path: scripts/so.sh
+ use_sudo: true
+ process:
+ args:
+ [{ get_attribute: [VM_001_floating_ip, floating_ip_address]},
+ { get_attribute: [VM_001_fixed_ip, fixed_ip_address]},
+ { get_input: nexus_repo },
+ { get_input: docker_repo},
+ { get_input: nexus_username },
+ { get_input: nexus_password },
+ { get_input: artifacts_version },
+ { get_input: dns_ip},
+ { get_input: gerrit_branch },
+ openstack,
+ { get_input: external_dns},
+ { get_input: dmaap_topic},
+ { get_input: openstack_username},
+ { get_input: openstack_tenant_name},
+ { get_input: openstack_password},
+ { get_input: openstack_region},
+ { get_input: openstack_auth_url},
+ { get_input: so_repo},
+ { get_input: docker_version }]
+ fabric_env:
+ host_string: { get_attribute: [VM_001_floating_ip, floating_ip_address]}
+ user: { get_input: ssh_user }
+ key_filename: { get_input: key_filename }
+ relationships:
+ - type: cloudify.relationships.contained_in
+ target: VM_001
+ - type: cloudify.relationships.depends_on
+ target: VM_001_floating_ip
+
+outputs:
+ ONAP_Service_Orchestrator:
+ description: informations about Service Orchestrator
+ value:
+ ip: { get_attribute: [VM_001_floating_ip, floating_ip_address] }
+
+
+
+
+
+
+
+