aboutsummaryrefslogtreecommitdiffstats
path: root/deployment/src/simulators_heat_template.yaml
diff options
context:
space:
mode:
authorBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>2020-04-08 09:31:13 +0200
committerBogumil Zebek <bogumil.zebek@nokia.com>2020-04-08 09:43:31 +0000
commit3c494af52c476a86ae1389991b464914517774b8 (patch)
treee6d9b4f261eac5f7b3fd0f42e740840a106842e6 /deployment/src/simulators_heat_template.yaml
parent75496bfc5b2f7e03e49ab4929d1f20962b39c992 (diff)
Move PNF simulator from /test/mocks to new project
This code is a copy of pnfsimulator located in integration repository (/test/mocks/pnfsimulator) with added profile "docker" in pom.xml located in pnfsimulator and netconfsimulator subprojects Issue-ID: INT-1517 Signed-off-by: Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com> Change-Id: I725fa0530c41b13cb12705979dee8b8b354dc1a1
Diffstat (limited to 'deployment/src/simulators_heat_template.yaml')
-rw-r--r--deployment/src/simulators_heat_template.yaml147
1 files changed, 147 insertions, 0 deletions
diff --git a/deployment/src/simulators_heat_template.yaml b/deployment/src/simulators_heat_template.yaml
new file mode 100644
index 0000000..253fcc7
--- /dev/null
+++ b/deployment/src/simulators_heat_template.yaml
@@ -0,0 +1,147 @@
+description: Heat template that deploys PnP PNF simulators
+heat_template_version: '2013-05-23'
+parameters:
+ flavor_name: {description: Type of instance (flavor) to be used, label: Flavor,
+ type: string}
+ image_name: {description: Image to be used for compute instance, label: Image name
+ or ID, type: string}
+ key_name: {description: Public/Private key pair name, label: Key pair name, type: string}
+ public_net_id: {description: Public network that enables remote connection to VNF,
+ label: Public network name or ID, type: string}
+ private_net_id: {type: string, description: Private network id, label: Private network name or ID}
+ private_subnet_id: {type: string, description: Private subnet id, label: Private subnetwork name or ID}
+ proxy: {type: string, description: Proxy, label: Proxy, default: ""}
+ vnf_id: {type: string, label: VNF ID, description: The VNF ID is provided by ONAP}
+ vf_module_id: {type: string, label: vBase module ID, description: The vBase Module ID is provided by ONAP}
+resources:
+ PNF_PnP_simulator:
+ type: OS::Nova::Server
+ properties:
+ key_name: { get_param: key_name }
+ image: { get_param: image_name }
+ flavor: { get_param: flavor_name }
+ networks:
+ - port: { get_resource: PNF_PnP_simulator_port0 }
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash
+
+ set_versions () {
+ DOCKER_VERSION=17.03
+ DOCKER_COMPOSE_VERSION=1.22.0
+ }
+
+ set_proxy () {
+ HTTP_PROXY=$proxy
+ HTTPS_PROXY=$proxy
+ http_proxy=$proxy
+ https_proxy=$proxy
+ export HTTP_PROXY=$proxy
+ export HTTPS_PROXY=$proxy
+ export http_proxy=$proxy
+ export https_proxy=$proxy
+ }
+
+ enable_root_ssh () {
+ sed -i 's/PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
+ sed -i 's/PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
+ service sshd restart
+ echo -e "arthur\narthur" | passwd root
+ }
+
+ update_os () {
+ rm -rf /var/lib/apt/lists/*
+ apt-get clean
+ apt-get update
+ }
+
+ set_apt_get_proxy () {
+ cat > /etc/apt/apt.conf.d/proxy.conf << EOF
+ Acquire {
+ HTTP::proxy "$proxy";
+ HTTPS::proxy "$proxy";
+ }
+ EOF
+ }
+
+ docker_remove () {
+ dnf -y remove docker \
+ docker-client \
+ docker-client-latest \
+ docker-common \
+ docker-latest \
+ docker-latest-logrotate \
+ docker-logrotate \
+ docker-selinux \
+ docker-engine-selinux \
+ docker-engine
+ }
+
+ docker_install_and_configure () {
+ curl "https://releases.rancher.com/install-docker/$DOCKER_VERSION.sh" | sh
+ mkdir -p /etc/systemd/system/docker.service.d/
+ cat > /etc/systemd/system/docker.service.d/docker.conf << EOF
+ [Service]
+ ExecStart=
+ ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry=nexus3.onap.org:10003
+ Environment="HTTP_PROXY=$proxy"
+ Environment="HTTPS_PROXY=$proxy"
+ EOF
+ systemctl daemon-reload
+ systemctl restart docker
+ apt-mark hold docker-ce
+ docker login -u docker -p docker nexus3.onap.org:10003
+ }
+ docker_compose_install () {
+ curl -L https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
+ chmod +x /usr/local/bin/docker-compose
+ }
+ pnf_sim_file_checkout () {
+ cd /root; git clone https://gerrit.onap.org/r/integration
+ }
+
+ start_pnf_simulator () {
+ docker login -u docker -p docker nexus3.onap.org:10003
+ cd ~/integration/test/mocks/pnfsimulator/pnfsimulator
+ docker-compose up -d
+ }
+
+ start_netconf_simulator () {
+ docker login -u docker -p docker nexus3.onap.org:10003
+ cd ~/integration/test/mocks/pnfsimulator/netconfsimulator
+ docker-compose up -d
+ }
+
+ set_versions
+ set_proxy
+ enable_root_ssh
+ set_apt_get_proxy
+ docker_install_and_configure
+ docker_compose_install
+ pnf_sim_file_checkout
+ start_pnf_simulator
+ start_netconf_simulator
+ params:
+ $proxy: { get_param: proxy }
+ PNF_PnP_simulator_port0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: private_net_id }
+ security_groups:
+ - default
+ fixed_ips:
+ - subnet_id: { get_param: private_subnet_id }
+ PNF_PnP_simulator_public:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: PNF_PnP_simulator_port0 }
+outputs:
+ PNF_PnP_simulator_private_ip:
+ description: IP address of PNF_PnP_simulator in private network
+ value: { get_attr: [ PNF_PnP_simulator, first_address ] }
+ PNF_PnP_simulator_public_ip:
+ description: Floating IP address of PNF_PnP_simulator in public network
+ value: { get_attr: [ PNF_PnP_simulator_public, floating_ip_address ] }