From e6fd6a111c4fea92cf83e4adb1097f80eac51b7a Mon Sep 17 00:00:00 2001 From: Serg Melikyan Date: Tue, 3 Dec 2013 17:07:32 +0400 Subject: [PATCH] Moved elastic apps to OS::Neutron::LoadBalancer Change-Id: Icfd01a303b0ae36e87d455135b6ad7c9ac25c651 --- .../Services/heat_templates/Linux.template | 2 +- .../heat_templates/LoadBalancer.template | 53 ++++++++++++------- .../Services/heat_templates/Windows.template | 8 +-- .../Services/ui_forms/AspNetAppFarm.yaml | 19 ++++--- .../Services/ui_forms/WebServerFarm.yaml | 21 +++++--- .../Services/workflows/WebApps.xml | 3 +- 6 files changed, 64 insertions(+), 42 deletions(-) diff --git a/muranorepository/Services/heat_templates/Linux.template b/muranorepository/Services/heat_templates/Linux.template index b28b753..2cc95f3 100644 --- a/muranorepository/Services/heat_templates/Linux.template +++ b/muranorepository/Services/heat_templates/Linux.template @@ -3,7 +3,7 @@ "Parameters": { "KeyName": { - "Description": "Key Pair name for Load Balancer", + "Description": "Key Pair", "Type": "String", "Default": "$keyName" } diff --git a/muranorepository/Services/heat_templates/LoadBalancer.template b/muranorepository/Services/heat_templates/LoadBalancer.template index ad85bb4..4d3a4f6 100644 --- a/muranorepository/Services/heat_templates/LoadBalancer.template +++ b/muranorepository/Services/heat_templates/LoadBalancer.template @@ -1,22 +1,39 @@ { - "Resources" : { - "$lbName" : { - "Type" : "AWS::ElasticLoadBalancing::LoadBalancer", - "Properties" : { - "AvailabilityZones" : { "Fn::GetAZs" : "" }, - "Instances" : [{"Ref": "$instanceName"}], - "Listeners" : [ { - "LoadBalancerPort" : "$lbPort", - "InstancePort" : "80", - "Protocol" : "HTTP" - }] + "Resources": { + "${lbName}-HealthMonitor": { + "Type": "OS::Neutron::HealthMonitor", + "Properties": { + "type": "HTTP", + "delay": 3, + "max_retries": 3, + "timeout": 10, + "http_method": "GET", + "expected_codes": "200", + "url_path": "/" + } + }, + "${lbName}-Pool": { + "Type": "OS::Neutron::Pool", + "Properties": { + "protocol": "HTTP", + "subnet_id": {"Ref": "subnet"}, + "lb_method": "ROUND_ROBIN", + "name": "${lbName}-Pool", + "vip": { + "name": "${lbName}-Pool-VIP", + "address": "$lbIp", + "protocol_port": "$lbPort" + }, + "monitors": [{"Ref": "${lbName}-HealthMonitor"}] + } + }, + "${lbName}-LoadBalancer": { + "Type": "OS::Neutron::LoadBalancer", + "Properties": { + "pool_id": {"Ref": "${lbName}-Pool"}, + "protocol_port": "$lbPort", + "members": [{"Ref": "$instanceName"}] } - } - }, - "Outputs": { - "LoadBalancerIP": { - "Value": { "Fn::GetAtt": [ "$lbName", "DNSName" ] }, - "Description": "" } } -} \ No newline at end of file +} diff --git a/muranorepository/Services/heat_templates/Windows.template b/muranorepository/Services/heat_templates/Windows.template index bbdc25b..9460c47 100644 --- a/muranorepository/Services/heat_templates/Windows.template +++ b/muranorepository/Services/heat_templates/Windows.template @@ -1,13 +1,7 @@ { "AWSTemplateFormatVersion": "2010-09-09", - "Parameters": { - "KeyName": { - "Description": "Key Pair name for Load Balancer", - "Type": "String", - "Default": "murano-lb-key" - } - }, + "Parameters": {}, "Resources": { "$instanceName": { diff --git a/muranorepository/Services/ui_forms/AspNetAppFarm.yaml b/muranorepository/Services/ui_forms/AspNetAppFarm.yaml index 151d8a5..d260343 100644 --- a/muranorepository/Services/ui_forms/AspNetAppFarm.yaml +++ b/muranorepository/Services/ui_forms/AspNetAppFarm.yaml @@ -17,13 +17,13 @@ forms: hidden: true attributeNames: false description: >- - The ASP.NET application will be installed on a number of IIS Web + The ASP.NET application will be installed on a number of IIS Web Servers, and load balancing will be configured. - name: name type: string label: Service Name description: >- - Enter a desired name for a service. Just A-Z, a-z, 0-9, dash and + Enter a desired name for a service. Just A-Z, a-z, 0-9, dash and underline are allowed. minLength: 2 maxLength: 64 @@ -51,7 +51,7 @@ forms: label: Domain required: false description: >- - Service can be joined to the Active Directory domain. If you want to + Service can be joined to the Active Directory domain. If you want to create an AD domain create the AD Service first. helpText: Optional field for a domain to which service can be joined - name: repository @@ -73,6 +73,11 @@ forms: maxValue: 100 initial: 2 helpText: Enter an integer value between 2 and 100 + - name: loadBalancerIp + type: clusterip + label: Load Balancer VIP + description: Specify IP number where Load Balancer will be running + helpText: Enter an free IP address from the subnet where instances will be created - name: loadBalancerPort type: integer label: Load Balancer port @@ -86,8 +91,8 @@ forms: label: Hostname template description: >- For your convenience all instance hostnames can be named - in the same way. Enter a name and use # character for incrementation. - For example, host# turns into host1, host2, etc. Please follow Windows + in the same way. Enter a name and use # character for incrementation. + For example, host# turns into host1, host2, etc. Please follow Windows hostname restrictions. required: false regexpValidator: '^(([a-zA-Z0-9#][a-zA-Z0-9-#]*[a-zA-Z0-9#])\.)*([A-Za-z0-9#]|[A-Za-z0-9#][A-Za-z0-9-#]*[A-Za-z0-9#])$' @@ -113,7 +118,7 @@ forms: type: flavor label: Instance flavor description: >- - Select registered in Openstack flavor. Consider that service performance + Select registered in Openstack flavor. Consider that service performance depends on this parameter. required: false - name: osImage @@ -121,7 +126,7 @@ forms: imageType: windows label: Instance image description: >- - Select valid image for a service. Image should already be prepared and + Select valid image for a service. Image should already be prepared and registered in glance. - name: availabilityZone type: azone diff --git a/muranorepository/Services/ui_forms/WebServerFarm.yaml b/muranorepository/Services/ui_forms/WebServerFarm.yaml index 3bf2f6d..168b028 100644 --- a/muranorepository/Services/ui_forms/WebServerFarm.yaml +++ b/muranorepository/Services/ui_forms/WebServerFarm.yaml @@ -20,7 +20,7 @@ forms: type: string label: Service Name description: >- - Enter a desired name for a service. Just A-Z, a-z, 0-9, dash and + Enter a desired name for a service. Just A-Z, a-z, 0-9, dash and underline are allowed. minLength: 2 maxLength: 64 @@ -40,15 +40,15 @@ forms: descriptionTitle: Passwords description: >- Windows requires strong password for service administration. - Your password should have at least one letter in each - register, a number and a special character. Password length should be + Your password should have at least one letter in each + register, a number and a special character. Password length should be a minimum of 7 characters. - name: domain type: domain label: Domain required: false description: >- - Service can be joined to the Active Directory domain. If you want to + Service can be joined to the Active Directory domain. If you want to create an AD domain create the AD Service first. helpText: Optional field for a domain to which service can be joined - name: dcInstances @@ -60,6 +60,11 @@ forms: label: Instance Count description: Several instances with IIS Service can be created at one time. helpText: Enter an integer value between 2 and 100 + - name: loadBalancerIp + type: clusterip + label: Load Balancer VIP + description: Specify IP number where Load Balancer will be running + helpText: Enter an free IP address from the subnet where instances will be created - name: loadBalancerPort type: integer label: Load Balancer port @@ -73,8 +78,8 @@ forms: label: Hostname template description: >- For your convenience all instance hostnames can be named - in the same way. Enter a name and use # character for incrementation. - For example, host# turns into host1, host2, etc. Please follow Windows + in the same way. Enter a name and use # character for incrementation. + For example, host# turns into host1, host2, etc. Please follow Windows hostname restrictions. required: false regexpValidator: '^(([a-zA-Z0-9#][a-zA-Z0-9-#]*[a-zA-Z0-9#])\.)*([A-Za-z0-9#]|[A-Za-z0-9#][A-Za-z0-9-#]*[A-Za-z0-9#])$' @@ -100,7 +105,7 @@ forms: type: flavor label: Instance flavor description: >- - Select registered in Openstack flavor. Consider that service performance + Select registered in Openstack flavor. Consider that service performance depends on this parameter. required: false - name: osImage @@ -108,7 +113,7 @@ forms: imageType: windows label: Instance image description: >- - Select valid image for a service. Image should already be prepared and + Select valid image for a service. Image should already be prepared and registered in glance. - name: availabilityZone type: azone diff --git a/muranorepository/Services/workflows/WebApps.xml b/muranorepository/Services/workflows/WebApps.xml index f93f7ee..24801a4 100644 --- a/muranorepository/Services/workflows/WebApps.xml +++ b/muranorepository/Services/workflows/WebApps.xml @@ -53,13 +53,14 @@ - http:// + http://