| # ============LICENSE_START========================================== |
| # =================================================================== |
| # Copyright (c) 2017 AT&T |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| #============LICENSE_END============================================ |
| |
| ########################################################### |
| # This Blueprint installs ONAP appc on Openstack |
| ########################################################### |
| |
| tosca_definitions_version: cloudify_dsl_1_3 |
| |
| description: > |
| This blueprint creates a ONAP APP-C |
| |
| 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.2.0 |
| |
| gerrit_branch: |
| type: string |
| default: master |
| |
| external_dns: |
| type: string |
| |
| dmaap_topic: |
| type: string |
| default: AUTO |
| |
| appc_repo: |
| type: string |
| default: http://gerrit.onap.org/r/appc/deployment.git |
| |
| vm_instancename: |
| type: string |
| |
| image: |
| description: | |
| A Ubuntu 14.04 image, along with the usual |
| type: string |
| default: Ubuntu 14.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 |
| |
| dgbuilder_docker: |
| type: string |
| default: v0.1.0 |
| |
| 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/appc.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: appc_repo}, |
| { get_input: docker_version }, |
| { get_input: dgbuilder_docker}] |
| 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_Appc: |
| description: informations about app-c |
| value: |
| ip: { get_attribute: [VM_001_floating_ip, floating_ip_address] } |
| |
| |
| |
| |
| |
| |
| |
| |