From d111b096344000cff242c1a32fe901ddda2b4b8e Mon Sep 17 00:00:00 2001
From: Martin Cuchran <cuchy@Martins-MacBook-Pro-4.local>
Date: Mon, 6 Feb 2017 15:28:09 +0100
Subject: [PATCH] resource group devided

---
 Openstack/pv176_env.yaml                  |  4 +-
 Openstack/pv176_network.yaml              | 55 +++++++++++++++++++++++
 Openstack/pv176_student_server_group.yaml | 43 +++++++++++-------
 Openstack/pv176_vm.yaml                   | 11 +++--
 4 files changed, 92 insertions(+), 21 deletions(-)
 create mode 100644 Openstack/pv176_network.yaml

diff --git a/Openstack/pv176_env.yaml b/Openstack/pv176_env.yaml
index 9368628..f376062 100644
--- a/Openstack/pv176_env.yaml
+++ b/Openstack/pv176_env.yaml
@@ -1,3 +1,3 @@
 resource_registry:
-  Lib::single_vm: https://raw.githubusercontent.com/Mamut3D/openstack-tutorial/master/heat/lib/1_single_vm.yaml
-  Lib::private_network: https://raw.githubusercontent.com/Mamut3D/openstack-tutorial/master/heat/lib/2_private_network.yaml
+  Lib::single_vm: https://gitlab.ics.muni.cz/396462/PV176/raw/master/Openstack/pv176_vm.yaml
+  Lib::private_network: https://gitlab.ics.muni.cz/396462/PV176/raw/master/Openstack/pv176_network.yaml
\ No newline at end of file
diff --git a/Openstack/pv176_network.yaml b/Openstack/pv176_network.yaml
new file mode 100644
index 0000000..edab32d
--- /dev/null
+++ b/Openstack/pv176_network.yaml
@@ -0,0 +1,55 @@
+heat_template_version: '2016-04-08'
+
+resources:
+  internal_net:
+    type: OS::Neutron::Net
+    properties:
+        name: PV176-private-network
+  internal_subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network_id: { get_resource: internal_net }
+      cidr: "10.0.0.0/8"
+      dns_nameservers: [ "147.251.4.3", "8.8.8.8" ]
+      ip_version: 4
+      enable_dhcp: false
+      name: PV176-private-subnet
+  internal_router:
+    type: OS::Neutron::Router
+    properties:
+      external_gateway_info: { network: public-float-21 }
+      name: PV176-router
+  internal_interface:
+    type: OS::Neutron::RouterInterface
+    properties:
+      router_id: { get_resource: internal_router }
+      subnet: { get_resource: internal_subnet }
+  full_access_secgroup:
+    type: OS::Neutron::SecurityGroup
+    properties:
+      name: PV176-security-group-MUNI
+      rules:
+        - protocol: tcp
+          remote_ip_prefix: 147.251.0.0/16
+          port_range_min: 1
+          port_range_max: 65000
+        - protocol: tcp
+          remote_ip_prefix: 10.0.0.0/8
+          port_range_min: 1
+          port_range_max: 65000
+          
+
+outputs:
+  private_network:
+    description: Private network info.
+    value: { get_attr: [internal_net] }
+  private_subnet:
+    description: Private network info.
+    value: { get_attr: [internal_subnet] }  
+  sec_group:
+    description: security group.
+    value: { get_attr: [full_access_secgroup] }  
+  private_router:
+    value: { get_attr: [internal_router]}
+  private_interface:
+    value: { get_attr: [internal_interface]}
\ No newline at end of file
diff --git a/Openstack/pv176_student_server_group.yaml b/Openstack/pv176_student_server_group.yaml
index 8968bd1..e6093af 100644
--- a/Openstack/pv176_student_server_group.yaml
+++ b/Openstack/pv176_student_server_group.yaml
@@ -1,23 +1,34 @@
 heat_template_version: '2016-04-08'
 
 parameters:
-
-  cluster_size:
-    type: number
-    label: Cluster size
-    description: Number of instances in cluster.
-    default: 2
+    flavor:
+        type: string
+        default: m1.large
+    safe_mode_administrator_password:
+      default: P@ssw0rd
+      description: The safe mode administration password
+      type: string
+      constraints:
+        - length: { min: 8, max: 64 }
+        - allowed_pattern: "(?=^.{6,255}$)((?=.*\\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*\\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*"
+          description: must contain letters numbers and symbols
+    cluster_size:
+      type: number
+      label: Cluster size
+      description: Number of instances in cluster.
+      default: 2
 
 resources:
 
-  network:
-    type: Lib::private_network
+    network:
+      type: Lib::private_network
 
-  tiny_cluster:
-    type: OS::Heat::ResourceGroup
-    properties:
-      count: { get_param: cluster_size }
-      resource_def:
-        type: Lib::single_vm
-        properties:
-          network: { get_attr: [ network, private_subnet, network_id ] }
+    tiny_cluster:
+      type: OS::Heat::ResourceGroup
+      properties:
+        count: { get_param: cluster_size }
+        resource_def:
+          type: Lib::single_vm
+          properties:
+            network: { get_attr: [ network, private_subnet, network_id ] }  
+            
diff --git a/Openstack/pv176_vm.yaml b/Openstack/pv176_vm.yaml
index 44e280e..14604f7 100644
--- a/Openstack/pv176_vm.yaml
+++ b/Openstack/pv176_vm.yaml
@@ -2,7 +2,7 @@ heat_template_version: '2016-04-08'
 
 resources:
 
-  Server_1:
+  server:
     type: OS::Nova::Server
     properties:
       name: PV176-server-1
@@ -30,5 +30,10 @@ resources:
             exit 1001
           params:
             safe_mode_administrator_password: { get_param: safe_mode_administrator_password }
-          
-                
\ No newline at end of file
+outputs:
+  instance_name:
+    description: Name of the instance.
+    value: { get_attr: [ server, name ] }
+  instance_ip:
+    description: IP address of the instance.
+    value: { get_attr: [ server, first_address ] }
\ No newline at end of file
-- 
GitLab