Merge "Scalable Clearwater demo app"
This commit is contained in:
commit
68bce15dca
|
@ -32,39 +32,19 @@ Properties:
|
||||||
Contract: $.string().notNull()
|
Contract: $.string().notNull()
|
||||||
Usage: InOut
|
Usage: InOut
|
||||||
|
|
||||||
privateIp:
|
|
||||||
Contract: $.string()
|
|
||||||
Usage: Out
|
|
||||||
|
|
||||||
|
|
||||||
Methods:
|
Methods:
|
||||||
.init:
|
.init:
|
||||||
Body:
|
Body:
|
||||||
- $.environment: $.find(std:Environment).require()
|
- $.environment: $.find(std:Environment).require()
|
||||||
- $.dnsSecKey: base64encode($.dnsSecKey)
|
|
||||||
|
|
||||||
_createReplacements:
|
_createReplacements:
|
||||||
Body:
|
Body:
|
||||||
- Return:
|
- Return:
|
||||||
"%PUBLIC_IP%": $.instance.floatingIpAddress
|
"%PUBLIC_IP%": $.instance.floatingIpAddress
|
||||||
"%PRIVATE_IP%": $.privateIp
|
"%PRIVATE_IP%": $.instance.joinedNetworks.first().ipList.where($ != $this.instance.floatingIpAddress).first()
|
||||||
"%ZONE%": $.zoneName
|
"%ZONE%": $.zoneName
|
||||||
"%DNSSEC_KEY%": $.dnsSecKey
|
"%DNSSEC_KEY%": $.dnsSecKey
|
||||||
"%PRIVATE_NETWORK_CIDR%": $.environment.defaultNetworks.environment.describe().cidr
|
"%PRIVATE_NETWORK_CIDR%": $.instance.joinedNetworks.first().network.describe().cidr
|
||||||
|
|
||||||
_getIp4ForNetwork:
|
|
||||||
#Works only for IPv4 network with 255.255.255.0 netmask
|
|
||||||
Arguments:
|
|
||||||
- network:
|
|
||||||
Contract: $.class(res:NeutronNetwork).notNull()
|
|
||||||
Body:
|
|
||||||
- $gateIp: $network.describe().gateway
|
|
||||||
- $netAddr: $gateIp.split('.').take(3)
|
|
||||||
- Return: $.instance.ipAddresses.where(list($.split('.').take(3)) = $netAddr).first(null)
|
|
||||||
|
|
||||||
_getPrivateIp:
|
|
||||||
Body:
|
|
||||||
- Return: $._getIp4ForNetwork($.environment.defaultNetworks.environment)
|
|
||||||
|
|
||||||
_addSecurityGroupRules:
|
_addSecurityGroupRules:
|
||||||
Body:
|
Body:
|
||||||
|
@ -88,7 +68,6 @@ Methods:
|
||||||
- $._addSecurityGroupRules()
|
- $._addSecurityGroupRules()
|
||||||
- $.instance.deploy()
|
- $.instance.deploy()
|
||||||
- $._report('Run install script')
|
- $._report('Run install script')
|
||||||
- $.privateIp: $._getPrivateIp()
|
|
||||||
- $replacements: $._createReplacements()
|
- $replacements: $._createReplacements()
|
||||||
- $file: sys:Resources.string('deployBind.sh').replace($replacements)
|
- $file: sys:Resources.string('deployBind.sh').replace($replacements)
|
||||||
- conf:Linux.runCommand($.instance.agent, $file)
|
- conf:Linux.runCommand($.instance.agent, $file)
|
||||||
|
|
|
@ -54,11 +54,11 @@ Forms:
|
||||||
Enter zone name for BIND installation
|
Enter zone name for BIND installation
|
||||||
- name: dnsSecKey
|
- name: dnsSecKey
|
||||||
type: string
|
type: string
|
||||||
label: DNSSEC Key
|
label: DNSSEC Key (Base64-encoded)
|
||||||
initial: >-
|
initial: >-
|
||||||
HNujJGI+ELhlIVa6a+h1L0/2XQTbU9RaH+/F7pOQmDfKWTGc58h0rHNjnIQtms5SBQsC6lni1Kcwq8s+3W4TmA
|
SE51akpHSStFTGhsSVZhNmEraDFMMC8yWFFUYlU5UmFIKy9GN3BPUW1EZktXVEdjNThoMHJITmpuSVF0bXM1U0JRc0M2bG5pMUtjd3E4cyszVzRUbUEK
|
||||||
description: >-
|
description: >-
|
||||||
Enter DNSSEC private key. This key will be used for update DNS records via DNSSEC.
|
Enter DNSSEC private key (Base64-encoded). This key will be used for update DNS records via DNSSEC.
|
||||||
|
|
||||||
|
|
||||||
- instanceConfiguration:
|
- instanceConfiguration:
|
||||||
|
@ -104,9 +104,9 @@ Forms:
|
||||||
type: string
|
type: string
|
||||||
label: Instance Naming Pattern
|
label: Instance Naming Pattern
|
||||||
required: false
|
required: false
|
||||||
initial: BIND
|
initial: BIND#
|
||||||
maxLength: 64
|
maxLength: 64
|
||||||
regexpValidator: '^[a-zA-z][-_\w]*$'
|
regexpValidator: '^[a-zA-z][_\w#-]*$'
|
||||||
errorMessages:
|
errorMessages:
|
||||||
invalid: Just letters, numbers, underscores and hyphens are allowed.
|
invalid: Just letters, numbers, underscores and hyphens are allowed.
|
||||||
helpText: Just letters, numbers, underscores and hyphens are allowed.
|
helpText: Just letters, numbers, underscores and hyphens are allowed.
|
||||||
|
|
|
@ -13,27 +13,23 @@
|
||||||
Namespaces:
|
Namespaces:
|
||||||
=: com.mirantis.clearwater
|
=: com.mirantis.clearwater
|
||||||
std: io.murano
|
std: io.murano
|
||||||
|
res: io.murano.resources
|
||||||
|
meta: io.murano.metadata
|
||||||
dns: com.mirantis.network.dns
|
dns: com.mirantis.network.dns
|
||||||
cwBase: com.mirantis.clearwater.components.base
|
cwBase: com.mirantis.clearwater.components.base
|
||||||
components: com.mirantis.clearwater.components
|
components: com.mirantis.clearwater.components
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Name: Clearwater
|
Name: Clearwater
|
||||||
|
|
||||||
Extends: std:Application
|
Extends: std:Application
|
||||||
|
|
||||||
Properties:
|
Properties:
|
||||||
keypair:
|
|
||||||
Contract: $.string()
|
|
||||||
osImageName:
|
|
||||||
Contract: $.string().notNull()
|
|
||||||
flavorName:
|
|
||||||
Contract: $.string().notNull()
|
|
||||||
dnsApp:
|
dnsApp:
|
||||||
Contract: $.class(dns:Bind).notNull()
|
Contract: $.class(dns:Bind).notNull()
|
||||||
ellis:
|
instanceTemplate:
|
||||||
Contract: $.class(components:Ellis)
|
Contract: $.template(res:LinuxInstance)
|
||||||
Usage: Out
|
|
||||||
components:
|
components:
|
||||||
Contract:
|
Contract:
|
||||||
- $.class(cwBase:ClearwaterComponentBase).notNull()
|
- $.class(cwBase:ClearwaterComponentBase).notNull()
|
||||||
|
@ -42,19 +38,33 @@ Properties:
|
||||||
Contract: $.string().notNull()
|
Contract: $.string().notNull()
|
||||||
Default: ""
|
Default: ""
|
||||||
Usage: Out
|
Usage: Out
|
||||||
|
bonoClusterSize:
|
||||||
|
Contract: $.int().notNull()
|
||||||
|
Default: 1
|
||||||
|
sproutClusterSize:
|
||||||
|
Contract: $.int().notNull()
|
||||||
|
Default: 1
|
||||||
|
homerClusterSize:
|
||||||
|
Contract: $.int().notNull()
|
||||||
|
Default: 1
|
||||||
|
homesteadClusterSize:
|
||||||
|
Contract: $.int().notNull()
|
||||||
|
Default: 1
|
||||||
|
|
||||||
|
|
||||||
Methods:
|
Methods:
|
||||||
.init:
|
.init:
|
||||||
Body:
|
Body:
|
||||||
- $._environment: $.find(std:Environment).require()
|
- $._environment: $.find(std:Environment).require()
|
||||||
- $.ellis: new(components:Ellis, $this)
|
- If: not $.components
|
||||||
- $.components:
|
Then:
|
||||||
- new(components:Bono, $this)
|
- $.components:
|
||||||
- new(components:Sprout, $this)
|
- new(components:Ellis, $this, 'Ellis')
|
||||||
- new(components:Homer, $this)
|
- new(components:Ralf, $this, Ralf, allowedFailures => 'quorum')
|
||||||
- new(components:Ralf, $this)
|
- new(components:Bono, $this, Bono, allowedFailures => 'quorum', clusterSize => $this.bonoClusterSize)
|
||||||
- new(components:Homestead, $this)
|
- new(components:Sprout, $this, Sprout, allowedFailures => 'quorum', clusterSize => $this.sproutClusterSize)
|
||||||
|
- new(components:Homer, $this, Homer, allowedFailures => 'quorum', clusterSize => $this.homerClusterSize)
|
||||||
|
- new(components:Homestead, $this, Homestead, allowedFailures => 'quorum', clusterSize => $this.homesteadClusterSize)
|
||||||
|
|
||||||
getSecurityGroupRules:
|
getSecurityGroupRules:
|
||||||
Body:
|
Body:
|
||||||
|
@ -88,19 +98,14 @@ Methods:
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
Body:
|
Body:
|
||||||
- If: not $.getAttr(deployed, false)
|
- $this._report('Start Clearwater deploy')
|
||||||
Then:
|
- $this._environment.securityGroupManager.addGroupIngress($this.getSecurityGroupRules())
|
||||||
- $._report('Start Clearwater deploy')
|
- $this.dnsApp.deploy()
|
||||||
- $._environment.securityGroupManager.addGroupIngress($.getSecurityGroupRules())
|
- $this.components.pselect($.deploy())
|
||||||
- $.dnsApp.deploy()
|
- $ellisFloatingIp: $this.components.where($ is components:Ellis).cluster.items.first().floatingIpAddress
|
||||||
- $.ellis.deploy()
|
- $this._report(format('Use Ellis at {0} for create account and manage identities', $ellisFloatingIp))
|
||||||
- $.components.pselect($.deploy())
|
- $edgeProxyIp: $this.components.where($ is components:Bono).first().cluster.items.first().floatingIpAddress
|
||||||
- $._report('Clearwater deployed')
|
- $this._report(format('Outbound edge proxy IP is {0}', $edgeProxyIp))
|
||||||
- $._report(format('Use Ellis at {0} for create account and manage identities',
|
|
||||||
$.ellis.instance.floatingIpAddress))
|
|
||||||
- $._report(format('Outbound edge proxy IP is {0}',
|
|
||||||
$.components.where($ is components:Bono).first().instance.floatingIpAddress))
|
|
||||||
- $.setAttr(deployed, true)
|
|
||||||
|
|
||||||
_report:
|
_report:
|
||||||
Arguments:
|
Arguments:
|
||||||
|
@ -109,3 +114,39 @@ Methods:
|
||||||
Body:
|
Body:
|
||||||
- $._environment.reporter.report($this, $message)
|
- $._environment.reporter.report($this, $message)
|
||||||
|
|
||||||
|
# Lifecycle management
|
||||||
|
|
||||||
|
scaleOutSprout:
|
||||||
|
Meta:
|
||||||
|
- meta:Title:
|
||||||
|
text: "Scale out Sprout"
|
||||||
|
|
||||||
|
Scope: Public
|
||||||
|
Body:
|
||||||
|
- $this.components.where($ is components:Sprout).first().scaleOut()
|
||||||
|
|
||||||
|
scaleOutBono:
|
||||||
|
Meta:
|
||||||
|
- meta:Title:
|
||||||
|
text: "Scale out Bono"
|
||||||
|
Scope: Public
|
||||||
|
Body:
|
||||||
|
- $this.components.where($ is components:Bono).first().scaleOut()
|
||||||
|
|
||||||
|
scaleOutHomestead:
|
||||||
|
Meta:
|
||||||
|
- meta:Title:
|
||||||
|
text: "Scale out Homestead"
|
||||||
|
Scope: Public
|
||||||
|
Body:
|
||||||
|
- $this.components.where($ is components:Homestead).first().scaleOut()
|
||||||
|
|
||||||
|
scaleOutRalf:
|
||||||
|
Meta:
|
||||||
|
- meta:Title:
|
||||||
|
text: "Scale out Ralf"
|
||||||
|
Scope: Public
|
||||||
|
Body:
|
||||||
|
- $this.components.where($ is components:Ralf).first().scaleOut()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ Name: Bono
|
||||||
Extends: base:ClearwaterComponentBase
|
Extends: base:ClearwaterComponentBase
|
||||||
|
|
||||||
Methods:
|
Methods:
|
||||||
_createSecurityGroupRules:
|
getSecurityRules:
|
||||||
Body:
|
Body:
|
||||||
- $rules:
|
- $rules:
|
||||||
# STUN/TURN
|
# STUN/TURN
|
||||||
|
@ -55,9 +55,4 @@ Methods:
|
||||||
FromPort: 32768
|
FromPort: 32768
|
||||||
ToPort: 65535
|
ToPort: 65535
|
||||||
External: true
|
External: true
|
||||||
- Return: $rules
|
- Return: $rules
|
||||||
|
|
||||||
getDeployScriptName:
|
|
||||||
Body:
|
|
||||||
- Return: "deployBono.sh"
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ Extends: base:ClearwaterComponentBase
|
||||||
|
|
||||||
Methods:
|
Methods:
|
||||||
|
|
||||||
_createSecurityGroupRules:
|
getSecurityRules:
|
||||||
Body:
|
Body:
|
||||||
- $rules:
|
- $rules:
|
||||||
# HTTP
|
# HTTP
|
||||||
|
@ -33,8 +33,4 @@ Methods:
|
||||||
ToPort: 443
|
ToPort: 443
|
||||||
IpProtocol: udp
|
IpProtocol: udp
|
||||||
External: true
|
External: true
|
||||||
- Return: $rules
|
- Return: $rules
|
||||||
|
|
||||||
getDeployScriptName:
|
|
||||||
Body:
|
|
||||||
- Return: "deployEllis.sh"
|
|
|
@ -19,7 +19,7 @@ Name: Homer
|
||||||
Extends: base:ClearwaterComponentBase
|
Extends: base:ClearwaterComponentBase
|
||||||
|
|
||||||
Methods:
|
Methods:
|
||||||
_createSecurityGroupRules:
|
getSecurityRules:
|
||||||
Body:
|
Body:
|
||||||
- $rules:
|
- $rules:
|
||||||
# Ut/HTTP
|
# Ut/HTTP
|
||||||
|
@ -41,9 +41,4 @@ Methods:
|
||||||
ToPort: 9160
|
ToPort: 9160
|
||||||
External: false
|
External: false
|
||||||
|
|
||||||
- Return: $rules
|
- Return: $rules
|
||||||
|
|
||||||
getDeployScriptName:
|
|
||||||
Body:
|
|
||||||
- Return: "deployHomer.sh"
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ Name: Homestead
|
||||||
Extends: base:ClearwaterComponentBase
|
Extends: base:ClearwaterComponentBase
|
||||||
|
|
||||||
Methods:
|
Methods:
|
||||||
_createSecurityGroupRules:
|
getSecurityRules:
|
||||||
Body:
|
Body:
|
||||||
- $rules:
|
- $rules:
|
||||||
# REST-ful Provisioning API
|
# REST-ful Provisioning API
|
||||||
|
@ -45,9 +45,4 @@ Methods:
|
||||||
FromPort: 7199
|
FromPort: 7199
|
||||||
ToPort: 7199
|
ToPort: 7199
|
||||||
External: false
|
External: false
|
||||||
- Return: $rules
|
- Return: $rules
|
||||||
|
|
||||||
getDeployScriptName:
|
|
||||||
Body:
|
|
||||||
- Return: "deployHomestead.sh"
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ Name: Ralf
|
||||||
Extends: base:ClearwaterComponentBase
|
Extends: base:ClearwaterComponentBase
|
||||||
|
|
||||||
Methods:
|
Methods:
|
||||||
_createSecurityGroupRules:
|
getSecurityRules:
|
||||||
Body:
|
Body:
|
||||||
- $rules:
|
- $rules:
|
||||||
# Rf-like/HTTP API
|
# Rf-like/HTTP API
|
||||||
|
@ -46,9 +46,4 @@ Methods:
|
||||||
FromPort: 11211
|
FromPort: 11211
|
||||||
ToPort: 11211
|
ToPort: 11211
|
||||||
External: false
|
External: false
|
||||||
- Return: $rules
|
- Return: $rules
|
||||||
|
|
||||||
getDeployScriptName:
|
|
||||||
Body:
|
|
||||||
- Return: "deployRalf.sh"
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ Name: Sprout
|
||||||
Extends: base:ClearwaterComponentBase
|
Extends: base:ClearwaterComponentBase
|
||||||
|
|
||||||
Methods:
|
Methods:
|
||||||
_createSecurityGroupRules:
|
getSecurityRules:
|
||||||
Body:
|
Body:
|
||||||
- $rules:
|
- $rules:
|
||||||
# Internal SIP
|
# Internal SIP
|
||||||
|
@ -46,9 +46,4 @@ Methods:
|
||||||
FromPort: 11211
|
FromPort: 11211
|
||||||
ToPort: 11211
|
ToPort: 11211
|
||||||
External: false
|
External: false
|
||||||
- Return: $rules
|
- Return: $rules
|
||||||
|
|
||||||
getDeployScriptName:
|
|
||||||
Body:
|
|
||||||
- Return: "deploySprout.sh"
|
|
||||||
|
|
|
@ -16,107 +16,115 @@ Namespaces:
|
||||||
res: io.murano.resources
|
res: io.murano.resources
|
||||||
sys: io.murano.system
|
sys: io.murano.system
|
||||||
conf: io.murano.configuration
|
conf: io.murano.configuration
|
||||||
|
apps: io.murano.applications
|
||||||
cw: com.mirantis.clearwater
|
cw: com.mirantis.clearwater
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Name: ClearwaterComponentBase
|
Name: ClearwaterComponentBase
|
||||||
|
|
||||||
|
Extends:
|
||||||
|
- apps:SoftwareComponent
|
||||||
|
- apps:OpenStackSecurityConfigurable
|
||||||
|
|
||||||
Properties:
|
Properties:
|
||||||
instance:
|
clusterSize:
|
||||||
Contract: $.class(res:LinuxMuranoInstance)
|
Contract: $.int().notNull()
|
||||||
|
Default: 1
|
||||||
|
|
||||||
|
cluster:
|
||||||
|
Contract: $.class(apps:ServerReplicationGroup)
|
||||||
|
Usage: Out
|
||||||
|
|
||||||
|
serverProvider:
|
||||||
|
Contract: $.class(apps:TemplateServerProvider)
|
||||||
Usage: Out
|
Usage: Out
|
||||||
|
|
||||||
Methods:
|
Methods:
|
||||||
.init:
|
|
||||||
Body:
|
|
||||||
- $._environment: $.find(std:Environment).require()
|
|
||||||
- $._componentName: typeinfo($).name.split(".").last()
|
|
||||||
- $.parent: $.find(cw:Clearwater).require()
|
|
||||||
|
|
||||||
getDeployScriptName:
|
|
||||||
|
|
||||||
_createSecurityGroupRules:
|
|
||||||
|
|
||||||
_createInstance:
|
|
||||||
Body:
|
|
||||||
- $instance: new(res:LinuxMuranoInstance, $this,
|
|
||||||
name => format($._componentName),
|
|
||||||
flavor => $.parent.flavorName,
|
|
||||||
image => $.parent.osImageName,
|
|
||||||
keyname => $.parent.keypair,
|
|
||||||
securityGroupName => $._environment.securityGroupManager.defaultGroupName,
|
|
||||||
assignFloatingIp => true)
|
|
||||||
- Return: $instance
|
|
||||||
|
|
||||||
_setUp:
|
|
||||||
Body:
|
|
||||||
- $.privateNetwork: $._environment.defaultNetworks.environment
|
|
||||||
- $.instance: $._createInstance()
|
|
||||||
|
|
||||||
|
|
||||||
_createReplacements:
|
_createReplacements:
|
||||||
Arguments:
|
Arguments:
|
||||||
- instance:
|
- instance:
|
||||||
Contract: $.class(res:LinuxMuranoInstance).notNull()
|
Contract: $.class(res:LinuxInstance).notNull()
|
||||||
|
- index:
|
||||||
|
Contract: $.int().notNull()
|
||||||
Body:
|
Body:
|
||||||
|
- $instancePrivateIp: $instance.joinedNetworks.first().ipList.where($ != $instance.floatingIpAddress).first()
|
||||||
- Return:
|
- Return:
|
||||||
|
"%INDEX%": $index
|
||||||
"%PUBLIC_IP%": $instance.floatingIpAddress
|
"%PUBLIC_IP%": $instance.floatingIpAddress
|
||||||
"%PRIVATE_IP%": $.privateIp
|
"%PRIVATE_IP%": $instancePrivateIp
|
||||||
"%PRIVATE_NETWORK_CIDR%": $.privateNetwork.describe().cidr
|
"%PRIVATE_NETWORK_CIDR%": $instance.joinedNetworks.first().network.describe().cidr
|
||||||
"%PRIVATE_NETWORK_GATEWAY%": $.privateNetwork.describe().gateway
|
"%PRIVATE_NETWORK_GATEWAY%": $instance.joinedNetworks.first().network.describe().gateway
|
||||||
"%ZONE%": $.parent.dnsApp.zoneName
|
"%ZONE%": $.parent.dnsApp.zoneName
|
||||||
"%DNSSEC_KEY%": $.parent.dnsApp.dnsSecKey
|
"%DNSSEC_KEY%": $.parent.dnsApp.dnsSecKey
|
||||||
"%DNS_PRIVATE_IP%": $.parent.dnsApp.privateIp
|
"%DNS_PRIVATE_IP%": $.parent.dnsApp.instance.joinedNetworks.first().ipList.where($ = $instance.floatingIpAddress).first()
|
||||||
"%ETCD_IP%": $.parent.etcdClusterIp or $.privateIp
|
"%ETCD_IP%": $.parent.etcdClusterIp or $instancePrivateIp
|
||||||
|
|
||||||
_getIp4ForNetwork:
|
getDeployScriptName:
|
||||||
#Works only for IPv4 network with 255.255.255.0 netmask
|
Body:
|
||||||
|
- Return: $this.componentName + '/deploy.sh'
|
||||||
|
|
||||||
|
getConfigureScriptName:
|
||||||
|
Body:
|
||||||
|
- Return: $this.componentName + '/configure.sh'
|
||||||
|
|
||||||
|
.init:
|
||||||
|
Body:
|
||||||
|
- $._environment: $.find(std:Environment).require()
|
||||||
|
- $.componentName: typeinfo($).name.split(".").last()
|
||||||
|
- $.parent: $.find(cw:Clearwater).require()
|
||||||
|
- $.serverProvider: $.serverProvider or new(apps:TemplateServerProvider, $this,
|
||||||
|
template => $.parent.instanceTemplate,
|
||||||
|
serverNamePattern => $this.componentName + "-{}")
|
||||||
|
- $.cluster: $.cluster or new(apps:ServerReplicationGroup, $this,
|
||||||
|
provider => $this.serverProvider, minItems => 1, numItems => $this.clusterSize)
|
||||||
|
|
||||||
|
onInstallServer:
|
||||||
Arguments:
|
Arguments:
|
||||||
- network:
|
- instance:
|
||||||
Contract: $.class(res:NeutronNetwork).notNull()
|
Contract: $.class(res:LinuxInstance).notNull()
|
||||||
|
- serverGroup:
|
||||||
|
Contract: $.class(apps:ServerReplicationGroup).notNull()
|
||||||
Body:
|
Body:
|
||||||
- $gateIp: $network.describe().gateway
|
- $index: $serverGroup.getServers().indexWhere($.name = $instance.name)
|
||||||
- $netAddr: $gateIp.split('.').take(3)
|
- $instancePrivateIp: $instance.joinedNetworks.first().ipList.where($ != $instance.floatingIpAddress).first()
|
||||||
- Return: $.instance.ipAddresses.where(list($.split('.').take(3)) = $netAddr).first(null)
|
- If: not $.parent.etcdClusterIp
|
||||||
|
Then:
|
||||||
|
- $this.parent.setEtcdClusterIp($instancePrivateIp)
|
||||||
|
- $replacements: $._createReplacements($instance, $index)
|
||||||
|
- $file: sys:Resources.string($.getDeployScriptName()).replace($replacements)
|
||||||
|
- conf:Linux.runCommand($instance.agent, $file)
|
||||||
|
|
||||||
_getPrivateIp:
|
|
||||||
Body:
|
|
||||||
- Return: $._getIp4ForNetwork($.privateNetwork)
|
|
||||||
|
|
||||||
addSecurityGroupRules:
|
|
||||||
|
onConfigureServer:
|
||||||
Arguments:
|
Arguments:
|
||||||
- rules:
|
- instance:
|
||||||
Contract:
|
Contract: $.class(res:LinuxInstance).notNull()
|
||||||
- FromPort: $.int().notNull()
|
- serverGroup:
|
||||||
ToPort: $.int().notNull()
|
Contract: $.class(apps:ServerReplicationGroup).notNull()
|
||||||
IpProtocol: $.string().notNull()
|
|
||||||
External: $.bool().notNull()
|
|
||||||
Ethertype: $.string().check($ in list(null, 'IPv4', 'IPv6'))
|
|
||||||
Body:
|
Body:
|
||||||
- $._environment.securityGroupManager.addGroupIngress($rules)
|
- $index: $serverGroup.getServers().indexWhere($.name = $instance.name)
|
||||||
|
- $instancePrivateIp: $instance.joinedNetworks.first().ipList.where($ != $instance.floatingIpAddress).first()
|
||||||
|
- $replacements: $._createReplacements($instance, $index)
|
||||||
|
- $file: sys:Resources.string($.getConfigureScriptName()).replace($replacements)
|
||||||
|
- conf:Linux.runCommand($instance.agent, $file)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
Body:
|
Body:
|
||||||
- If: not $.getAttr(deployed, false)
|
- $this.deployAt($this.cluster)
|
||||||
Then:
|
|
||||||
- $._report(format('{0} deploy started', $._componentName))
|
|
||||||
- $._setUp()
|
|
||||||
- $.addSecurityGroupRules($._createSecurityGroupRules())
|
|
||||||
- $.instance.deploy()
|
|
||||||
- $.privateIp: $._getPrivateIp()
|
|
||||||
- $replacements: $._createReplacements($.instance)
|
|
||||||
- $file: sys:Resources.string($.getDeployScriptName()).replace($replacements)
|
|
||||||
- conf:Linux.runCommand($.instance.agent, $file)
|
|
||||||
- If: not $.parent.etcdClusterIp
|
|
||||||
Then:
|
|
||||||
- $.parent.setEtcdClusterIp($.privateIp)
|
|
||||||
- $._report(format('{0} deploy finished', $._componentName))
|
|
||||||
|
|
||||||
|
|
||||||
_report:
|
scaleOut:
|
||||||
Arguments:
|
|
||||||
- message:
|
|
||||||
Contract: $.string().notNull()
|
|
||||||
Body:
|
Body:
|
||||||
- $._environment.reporter.report($this, $message)
|
- $.report(format("Scale up {} cluster", $.componentName))
|
||||||
|
- $this.cluster.scale(1)
|
||||||
|
- $this.deploy()
|
||||||
|
|
||||||
|
|
||||||
|
scaleIn:
|
||||||
|
Body:
|
||||||
|
- $this.cluster.scale(-1)
|
||||||
|
- $this.deploy()
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
configure() {
|
||||||
|
set -x
|
||||||
|
# Function to give DNS record type and IP address for specified IP address
|
||||||
|
ip2rr() {
|
||||||
|
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
||||||
|
echo AAAA "$1"
|
||||||
|
else
|
||||||
|
echo A "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# Update DNS
|
||||||
|
retries=0
|
||||||
|
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
||||||
|
server %DNS_PRIVATE_IP%
|
||||||
|
update add bono-%INDEX%.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
||||||
|
update add %INDEX%.bono.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
||||||
|
update add %ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
||||||
|
update add %ZONE%. 30 NAPTR 0 0 "s" "SIP+D2T" "" _sip._tcp.%ZONE%.
|
||||||
|
update add %ZONE%. 30 NAPTR 0 0 "s" "SIP+D2U" "" _sip._udp.%ZONE%.
|
||||||
|
update add _sip._tcp.%ZONE%. 30 SRV 0 0 5060 %INDEX%.bono.%ZONE%.
|
||||||
|
update add _sip._udp.%ZONE%. 30 SRV 0 0 5060 %INDEX%.bono.%ZONE%.
|
||||||
|
send
|
||||||
|
EOF
|
||||||
|
} && [ $retries -lt 10 ]
|
||||||
|
do
|
||||||
|
retries=$((retries + 1))
|
||||||
|
echo 'nsupdate failed - retrying (retry '$retries')...'
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
# Use the DNS server.
|
||||||
|
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
||||||
|
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
||||||
|
service dnsmasq force-reload
|
||||||
|
}
|
||||||
|
|
||||||
|
# Log all output to file.
|
||||||
|
configure 2>&1|tee -a /var/log/clearwater-bono.log
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
deploy() {
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# Configure the APT software source.
|
||||||
|
echo 'deb http://repo.cw-ngv.com/archive/repo101 binary/' > /etc/apt/sources.list.d/clearwater.list
|
||||||
|
curl -L http://repo.cw-ngv.com/repo_key | apt-key add -
|
||||||
|
apt-get update
|
||||||
|
# Configure /etc/clearwater/local_config.
|
||||||
|
mkdir -p /etc/clearwater
|
||||||
|
etcd_ip=%ETCD_IP%
|
||||||
|
[ -n "$etcd_ip" ] || etcd_ip=%PRIVATE_IP%
|
||||||
|
cat > /etc/clearwater/local_config << EOF
|
||||||
|
management_local_ip=%PRIVATE_IP%
|
||||||
|
local_ip=%PRIVATE_IP%
|
||||||
|
public_ip=%PUBLIC_IP%
|
||||||
|
public_hostname=%INDEX%.bono.%ZONE%
|
||||||
|
etcd_cluster=$etcd_ip
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Now install the software.
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get install bono --yes --force-yes
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-config-manager --yes --force-yes
|
||||||
|
}
|
||||||
|
|
||||||
|
# Log all output to file.
|
||||||
|
deploy 2>&1|tee -a /var/log/clearwater-bono.log
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
configure() {
|
||||||
|
set -x
|
||||||
|
# Function to give DNS record type and IP address for specified IP address
|
||||||
|
ip2rr() {
|
||||||
|
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
||||||
|
echo AAAA "$1"
|
||||||
|
else
|
||||||
|
echo A "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# Update DNS
|
||||||
|
retries=0
|
||||||
|
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
||||||
|
server %DNS_PRIVATE_IP%
|
||||||
|
update add ellis-%INDEX%.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
||||||
|
update add ellis.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
||||||
|
send
|
||||||
|
EOF
|
||||||
|
} && [ $retries -lt 10 ]
|
||||||
|
do
|
||||||
|
retries=$((retries + 1))
|
||||||
|
echo 'nsupdate failed - retrying (retry '$retries')...'
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
# Use the DNS server.
|
||||||
|
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
||||||
|
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
||||||
|
service dnsmasq force-reload
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# Log all output to file.
|
||||||
|
configure 2>&1|tee -a /var/log/clearwater-ellis.log
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
deploy() {
|
deploy() {
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
# Configure the APT software source.
|
# Configure the APT software source.
|
||||||
echo 'deb http://repo.cw-ngv.com/archive/repo101 binary/' > /etc/apt/sources.list.d/clearwater.list
|
echo 'deb http://repo.cw-ngv.com/archive/repo101 binary/' > /etc/apt/sources.list.d/clearwater.list
|
||||||
curl -L http://repo.cw-ngv.com/repo_key | apt-key add -
|
curl -L http://repo.cw-ngv.com/repo_key | apt-key add -
|
||||||
|
@ -9,15 +10,18 @@ apt-get update
|
||||||
# Configure /etc/clearwater/local_config.
|
# Configure /etc/clearwater/local_config.
|
||||||
mkdir -p /etc/clearwater
|
mkdir -p /etc/clearwater
|
||||||
etcd_ip=%PRIVATE_IP%
|
etcd_ip=%PRIVATE_IP%
|
||||||
|
[ -n "$etcd_ip" ] || etcd_ip=%PRIVATE_IP%
|
||||||
cat > /etc/clearwater/local_config << EOF
|
cat > /etc/clearwater/local_config << EOF
|
||||||
local_ip=%PRIVATE_IP%
|
local_ip=%PRIVATE_IP%
|
||||||
public_ip=%PUBLIC_IP%
|
public_ip=%PUBLIC_IP%
|
||||||
public_hostname=ellis-0.%ZONE%
|
public_hostname=ellis-%INDEX%.%ZONE%
|
||||||
etcd_cluster=$etcd_ip
|
etcd_cluster=$etcd_ip
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Now install the software.
|
# Now install the software.
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install ellis --yes --force-yes
|
DEBIAN_FRONTEND=noninteractive apt-get install ellis --yes --force-yes
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-config-manager --yes --force-yes
|
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-config-manager --yes --force-yes
|
||||||
|
|
||||||
# Wait until etcd is up and running before uploading the shared_config
|
# Wait until etcd is up and running before uploading the shared_config
|
||||||
/usr/share/clearwater/clearwater-etcd/scripts/wait_for_etcd
|
/usr/share/clearwater/clearwater-etcd/scripts/wait_for_etcd
|
||||||
# Configure and upload /etc/clearwater/shared_config.
|
# Configure and upload /etc/clearwater/shared_config.
|
||||||
|
@ -43,41 +47,17 @@ turn_workaround=secret
|
||||||
ellis_api_key=secret
|
ellis_api_key=secret
|
||||||
ellis_cookie_key=secret
|
ellis_cookie_key=secret
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
sudo /usr/share/clearwater/clearwater-config-manager/scripts/upload_shared_config
|
sudo /usr/share/clearwater/clearwater-config-manager/scripts/upload_shared_config
|
||||||
# Tweak /etc/clearwater/shared_config to use homer's management hostname instead of signaling.
|
# Tweak /etc/clearwater/shared_config to use homer's management hostname instead of signaling.
|
||||||
# This works around https://github.com/Metaswitch/ellis/issues/153.
|
# This works around https://github.com/Metaswitch/ellis/issues/153.
|
||||||
sed -e 's/^xdms_hostname=.*$/xdms_hostname=homer-0.%ZONE%:7888/g' -i /etc/clearwater/shared_config
|
sed -e 's/^xdms_hostname=.*$/xdms_hostname=homer-1.%ZONE%:7888/g' -i /etc/clearwater/shared_config
|
||||||
sed -i 's|# server_names_hash_bucket_size.*|server_names_hash_bucket_size 64;|g' /etc/nginx/nginx.conf
|
sed -i 's|# server_names_hash_bucket_size.*|server_names_hash_bucket_size 64;|g' /etc/nginx/nginx.conf
|
||||||
service clearwater-infrastructure restart
|
service clearwater-infrastructure restart
|
||||||
service ellis stop
|
service ellis stop
|
||||||
# Allocate a allocate a pool of numbers to assign to users.
|
# Allocate a allocate a pool of numbers to assign to users.
|
||||||
/usr/share/clearwater/ellis/env/bin/python /usr/share/clearwater/ellis/src/metaswitch/ellis/tools/create_numbers.py --start 6505550000 --count 1000 --realm %ZONE%
|
/usr/share/clearwater/ellis/env/bin/python /usr/share/clearwater/ellis/src/metaswitch/ellis/tools/create_numbers.py --start 6505550000 --count 1000 --realm %ZONE%
|
||||||
# Function to give DNS record type and IP address for specified IP address
|
|
||||||
ip2rr() {
|
|
||||||
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
|
||||||
echo AAAA "$1"
|
|
||||||
else
|
|
||||||
echo A "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
# Update DNS
|
|
||||||
retries=0
|
|
||||||
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
|
||||||
server %DNS_PRIVATE_IP%
|
|
||||||
update add ellis-0.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
|
||||||
update add ellis.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
|
||||||
send
|
|
||||||
EOF
|
|
||||||
} && [ $retries -lt 10 ]
|
|
||||||
do
|
|
||||||
retries=$((retries + 1))
|
|
||||||
echo 'nsupdate failed - retrying (retry '$retries')...'
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
# Use the DNS server.
|
|
||||||
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
|
||||||
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
|
||||||
service dnsmasq force-reload
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Log all output to file.
|
# Log all output to file.
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
configure() {
|
||||||
|
set -x
|
||||||
|
# Function to give DNS record type and IP address for specified IP address
|
||||||
|
ip2rr() {
|
||||||
|
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
||||||
|
echo AAAA "$1"
|
||||||
|
else
|
||||||
|
echo A "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# Update DNS
|
||||||
|
retries=0
|
||||||
|
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
||||||
|
server %DNS_PRIVATE_IP%
|
||||||
|
update add homer-%INDEX%.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
||||||
|
update add homer.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
||||||
|
send
|
||||||
|
EOF
|
||||||
|
} && [ $retries -lt 10 ]
|
||||||
|
do
|
||||||
|
retries=$((retries + 1))
|
||||||
|
echo 'nsupdate failed - retrying (retry '$retries')...'
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
# Use the DNS server.
|
||||||
|
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
||||||
|
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
||||||
|
service dnsmasq force-reload
|
||||||
|
}
|
||||||
|
|
||||||
|
# Log all output to file.
|
||||||
|
configure 2>&1|tee -a /var/log/clearwater-homer.log
|
|
@ -1,6 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
deploy() {
|
deploy() {
|
||||||
|
|
||||||
# Log all output to file.
|
# Log all output to file.
|
||||||
exec > >(tee -a /var/log/clearwater-homer.log) 2>&1
|
exec > >(tee -a /var/log/clearwater-homer.log) 2>&1
|
||||||
set -x
|
set -x
|
||||||
|
@ -16,39 +17,14 @@ cat > /etc/clearwater/local_config << EOF
|
||||||
management_local_ip=%PRIVATE_IP%
|
management_local_ip=%PRIVATE_IP%
|
||||||
local_ip=%PRIVATE_IP%
|
local_ip=%PRIVATE_IP%
|
||||||
public_ip=%PUBLIC_IP%
|
public_ip=%PUBLIC_IP%
|
||||||
public_hostname=homer-0.%ZONE%
|
public_hostname=homer-%INDEX%.%ZONE%
|
||||||
etcd_cluster=$etcd_ip
|
etcd_cluster=$etcd_ip
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Now install the software.
|
# Now install the software.
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-cassandra --yes --force-yes
|
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-cassandra --yes --force-yes
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install homer --yes --force-yes
|
DEBIAN_FRONTEND=noninteractive apt-get install homer --yes --force-yes
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-management --yes --force-yes
|
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-management --yes --force-yes
|
||||||
# Function to give DNS record type and IP address for specified IP address
|
|
||||||
ip2rr() {
|
|
||||||
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
|
||||||
echo AAAA "$1"
|
|
||||||
else
|
|
||||||
echo A "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
# Update DNS
|
|
||||||
retries=0
|
|
||||||
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
|
||||||
server %DNS_PRIVATE_IP%
|
|
||||||
update add homer-0.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
|
||||||
update add homer.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
|
||||||
send
|
|
||||||
EOF
|
|
||||||
} && [ $retries -lt 10 ]
|
|
||||||
do
|
|
||||||
retries=$((retries + 1))
|
|
||||||
echo 'nsupdate failed - retrying (retry '$retries')...'
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
# Use the DNS server.
|
|
||||||
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
|
||||||
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
|
||||||
service dnsmasq force-reload
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Log all output to file.
|
# Log all output to file.
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
configure() {
|
||||||
|
set -x
|
||||||
|
# Function to give DNS record type and IP address for specified IP address
|
||||||
|
ip2rr() {
|
||||||
|
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
||||||
|
echo AAAA "$1"
|
||||||
|
else
|
||||||
|
echo A "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# Update DNS
|
||||||
|
retries=0
|
||||||
|
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
||||||
|
server %DNS_PRIVATE_IP%
|
||||||
|
update add homestead-%INDEX%.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
||||||
|
update add hs-prov.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
||||||
|
update add hs.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
||||||
|
send
|
||||||
|
EOF
|
||||||
|
} && [ $retries -lt 10 ]
|
||||||
|
do
|
||||||
|
retries=$((retries + 1))
|
||||||
|
echo 'nsupdate failed - retrying (retry '$retries')...'
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
# Use the DNS server.
|
||||||
|
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
||||||
|
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
||||||
|
service dnsmasq force-reload
|
||||||
|
}
|
||||||
|
|
||||||
|
# Log all output to file.
|
||||||
|
configure 2>&1|tee -a /var/log/clearwater-homestead.log
|
|
@ -15,39 +15,13 @@ cat > /etc/clearwater/local_config << EOF
|
||||||
management_local_ip=%PRIVATE_IP%
|
management_local_ip=%PRIVATE_IP%
|
||||||
local_ip=%PRIVATE_IP%
|
local_ip=%PRIVATE_IP%
|
||||||
public_ip=%PRIVATE_IP%
|
public_ip=%PRIVATE_IP%
|
||||||
public_hostname=homestead-0.%ZONE%
|
public_hostname=homestead-%INDEX%.%ZONE%
|
||||||
etcd_cluster=$etcd_ip
|
etcd_cluster=$etcd_ip
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Now install the software.
|
# Now install the software.
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install homestead homestead-prov clearwater-prov-tools --yes
|
DEBIAN_FRONTEND=noninteractive apt-get install homestead homestead-prov clearwater-prov-tools --yes
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-management --yes --force-yes
|
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-management --yes --force-yes
|
||||||
# Function to give DNS record type and IP address for specified IP address
|
|
||||||
ip2rr() {
|
|
||||||
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
|
||||||
echo AAAA "$1"
|
|
||||||
else
|
|
||||||
echo A "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
# Update DNS
|
|
||||||
retries=0
|
|
||||||
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
|
||||||
server %DNS_PRIVATE_IP%
|
|
||||||
update add homestead-0.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
|
||||||
update add hs-prov.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
|
||||||
update add hs.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
|
||||||
send
|
|
||||||
EOF
|
|
||||||
} && [ $retries -lt 10 ]
|
|
||||||
do
|
|
||||||
retries=$((retries + 1))
|
|
||||||
echo 'nsupdate failed - retrying (retry '$retries')...'
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
# Use the DNS server.
|
|
||||||
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
|
||||||
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
|
||||||
service dnsmasq force-reload
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Log all output to file.
|
# Log all output to file.
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
configure() {
|
||||||
|
set -x
|
||||||
|
# Function to give DNS record type and IP address for specified IP address
|
||||||
|
ip2rr() {
|
||||||
|
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
||||||
|
echo AAAA "$1"
|
||||||
|
else
|
||||||
|
echo A "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# Update DNS
|
||||||
|
retries=0
|
||||||
|
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
||||||
|
server %DNS_PRIVATE_IP%
|
||||||
|
update add ralf-%INDEX%.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
||||||
|
update add ralf.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
||||||
|
send
|
||||||
|
EOF
|
||||||
|
} && [ $retries -lt 10 ]
|
||||||
|
do
|
||||||
|
retries=$((retries + 1))
|
||||||
|
echo 'nsupdate failed - retrying (retry '$retries')...'
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
# Use the DNS server.
|
||||||
|
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
||||||
|
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
||||||
|
service dnsmasq force-reload
|
||||||
|
}
|
||||||
|
|
||||||
|
# Log all output to file.
|
||||||
|
configure 2>&1|tee -a /var/log/clearwater-ralf.log
|
|
@ -15,7 +15,7 @@ cat > /etc/clearwater/local_config << EOF
|
||||||
management_local_ip=%PRIVATE_IP%
|
management_local_ip=%PRIVATE_IP%
|
||||||
local_ip=%PRIVATE_IP%
|
local_ip=%PRIVATE_IP%
|
||||||
public_ip=%PRIVATE_IP%
|
public_ip=%PRIVATE_IP%
|
||||||
public_hostname=ralf-0.%ZONE%
|
public_hostname=ralf-%INDEX%.%ZONE%
|
||||||
etcd_cluster=$etcd_ip
|
etcd_cluster=$etcd_ip
|
||||||
EOF
|
EOF
|
||||||
# Create /etc/chronos/chronos.conf.
|
# Create /etc/chronos/chronos.conf.
|
||||||
|
@ -33,35 +33,10 @@ enabled = true
|
||||||
[exceptions]
|
[exceptions]
|
||||||
max_ttl = 600
|
max_ttl = 600
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Now install the software.
|
# Now install the software.
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install ralf --yes --force-yes
|
DEBIAN_FRONTEND=noninteractive apt-get install ralf --yes --force-yes
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-management --yes --force-yes
|
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-management --yes --force-yes
|
||||||
# Function to give DNS record type and IP address for specified IP address
|
|
||||||
ip2rr() {
|
|
||||||
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
|
||||||
echo AAAA "$1"
|
|
||||||
else
|
|
||||||
echo A "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
# Update DNS
|
|
||||||
retries=0
|
|
||||||
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
|
||||||
server %DNS_PRIVATE_IP%
|
|
||||||
update add ralf-0.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
|
||||||
update add ralf.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
|
||||||
send
|
|
||||||
EOF
|
|
||||||
} && [ $retries -lt 10 ]
|
|
||||||
do
|
|
||||||
retries=$((retries + 1))
|
|
||||||
echo 'nsupdate failed - retrying (retry '$retries')...'
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
# Use the DNS server.
|
|
||||||
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
|
||||||
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
|
||||||
service dnsmasq force-reload
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Log all output to file.
|
# Log all output to file.
|
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
configure() {
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# Function to give DNS record type and IP address for specified IP address
|
||||||
|
ip2rr() {
|
||||||
|
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
||||||
|
echo AAAA "$1"
|
||||||
|
else
|
||||||
|
echo A "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# Update DNS
|
||||||
|
retries=0
|
||||||
|
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
||||||
|
server %DNS_PRIVATE_IP%
|
||||||
|
update add sprout-%INDEX%.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
||||||
|
update add %INDEX%.sprout.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
||||||
|
update add sprout.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
||||||
|
update add scscf.sprout.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
||||||
|
update add icscf.sprout.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
||||||
|
update add sprout.%ZONE%. 30 NAPTR 0 0 "s" "SIP+D2T" "" _sip._tcp.sprout.%ZONE%.
|
||||||
|
update add _sip._tcp.sprout.%ZONE%. 30 SRV 0 0 5054 %INDEX%.sprout.%ZONE%.
|
||||||
|
update add icscf.sprout.%ZONE%. 30 NAPTR 0 0 "s" "SIP+D2T" "" _sip._tcp.icscf.sprout.%ZONE%.
|
||||||
|
update add _sip._tcp.icscf.sprout.%ZONE%. 30 SRV 0 0 5052 %INDEX%.sprout.%ZONE%.
|
||||||
|
update add scscf.sprout.%ZONE%. 30 NAPTR 0 0 "s" "SIP+D2T" "" _sip._tcp.scscf.sprout.%ZONE%.
|
||||||
|
update add _sip._tcp.scscf.sprout.%ZONE%. 30 SRV 0 0 5054 %INDEX%.sprout.%ZONE%.
|
||||||
|
send
|
||||||
|
EOF
|
||||||
|
} && [ $retries -lt 10 ]
|
||||||
|
do
|
||||||
|
retries=$((retries + 1))
|
||||||
|
echo 'nsupdate failed - retrying (retry '$retries')...'
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
# Use the DNS server.
|
||||||
|
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
||||||
|
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
||||||
|
service dnsmasq force-reload
|
||||||
|
}
|
||||||
|
|
||||||
|
# Log all output to file.
|
||||||
|
configure 2>&1|tee -a /var/log/clearwater-sprout.log
|
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
deploy() {
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# Configure the APT software source.
|
||||||
|
echo 'deb http://repo.cw-ngv.com/archive/repo101 binary/' > /etc/apt/sources.list.d/clearwater.list
|
||||||
|
curl -L http://repo.cw-ngv.com/repo_key | apt-key add -
|
||||||
|
apt-get update
|
||||||
|
# Configure /etc/clearwater/local_config.
|
||||||
|
mkdir -p /etc/clearwater
|
||||||
|
etcd_ip=%ETCD_IP%
|
||||||
|
[ -n "$etcd_ip" ] || etcd_ip=%PRIVATE_IP%
|
||||||
|
cat > /etc/clearwater/local_config << EOF
|
||||||
|
management_local_ip=%PRIVATE_IP%
|
||||||
|
local_ip=%PRIVATE_IP%
|
||||||
|
public_ip=%PRIVATE_IP%
|
||||||
|
public_hostname=%INDEX%.sprout.%ZONE%
|
||||||
|
etcd_cluster=$etcd_ip
|
||||||
|
EOF
|
||||||
|
# Create /etc/chronos/chronos.conf.
|
||||||
|
mkdir -p /etc/chronos
|
||||||
|
cat > /etc/chronos/chronos.conf << EOF
|
||||||
|
[http]
|
||||||
|
bind-address = %PRIVATE_IP%
|
||||||
|
bind-port = 7253
|
||||||
|
threads = 50
|
||||||
|
[logging]
|
||||||
|
folder = /var/log/chronos
|
||||||
|
level = 2
|
||||||
|
[alarms]
|
||||||
|
enabled = true
|
||||||
|
[exceptions]
|
||||||
|
max_ttl = 600
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Now install the software.
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get install sprout --yes --force-yes
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-management --yes --force-yes
|
||||||
|
}
|
||||||
|
|
||||||
|
# Log all output to file.
|
||||||
|
deploy 2>&1 | tee -a /var/log/clearwater-sprout.log
|
|
@ -1,58 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
deploy() {
|
|
||||||
set -x
|
|
||||||
|
|
||||||
# Configure the APT software source.
|
|
||||||
echo 'deb http://repo.cw-ngv.com/archive/repo101 binary/' > /etc/apt/sources.list.d/clearwater.list
|
|
||||||
curl -L http://repo.cw-ngv.com/repo_key | apt-key add -
|
|
||||||
apt-get update
|
|
||||||
# Configure /etc/clearwater/local_config.
|
|
||||||
mkdir -p /etc/clearwater
|
|
||||||
etcd_ip=%ETCD_IP%
|
|
||||||
[ -n "$etcd_ip" ] || etcd_ip=%PRIVATE_IP%
|
|
||||||
cat > /etc/clearwater/local_config << EOF
|
|
||||||
management_local_ip=%PRIVATE_IP%
|
|
||||||
local_ip=%PRIVATE_IP%
|
|
||||||
public_ip=%PUBLIC_IP%
|
|
||||||
public_hostname=0.bono.%ZONE%
|
|
||||||
etcd_cluster=$etcd_ip
|
|
||||||
EOF
|
|
||||||
# Now install the software.
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install bono --yes --force-yes
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-config-manager --yes --force-yes
|
|
||||||
# Function to give DNS record type and IP address for specified IP address
|
|
||||||
ip2rr() {
|
|
||||||
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
|
||||||
echo AAAA "$1"
|
|
||||||
else
|
|
||||||
echo A "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
# Update DNS
|
|
||||||
retries=0
|
|
||||||
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
|
||||||
server %DNS_PRIVATE_IP%
|
|
||||||
update add bono-0.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
|
||||||
update add 0.bono.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
|
||||||
update add %ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
|
||||||
update add %ZONE%. 30 NAPTR 0 0 "s" "SIP+D2T" "" _sip._tcp.%ZONE%.
|
|
||||||
update add %ZONE%. 30 NAPTR 0 0 "s" "SIP+D2U" "" _sip._udp.%ZONE%.
|
|
||||||
update add _sip._tcp.%ZONE%. 30 SRV 0 0 5060 0.bono.%ZONE%.
|
|
||||||
update add _sip._udp.%ZONE%. 30 SRV 0 0 5060 0.bono.%ZONE%.
|
|
||||||
send
|
|
||||||
EOF
|
|
||||||
} && [ $retries -lt 10 ]
|
|
||||||
do
|
|
||||||
retries=$((retries + 1))
|
|
||||||
echo 'nsupdate failed - retrying (retry '$retries')...'
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
# Use the DNS server.
|
|
||||||
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
|
||||||
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
|
||||||
service dnsmasq force-reload
|
|
||||||
}
|
|
||||||
|
|
||||||
# Log all output to file.
|
|
||||||
deploy 2>&1|tee -a /var/log/clearwater-bono.log
|
|
|
@ -1,79 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
deploy() {
|
|
||||||
set -x
|
|
||||||
# Set up the signaling network namespace on each boot by creating an init file and
|
|
||||||
# linking to it from runlevel 2 and 3
|
|
||||||
|
|
||||||
# Configure the APT software source.
|
|
||||||
echo 'deb http://repo.cw-ngv.com/archive/repo101 binary/' > /etc/apt/sources.list.d/clearwater.list
|
|
||||||
curl -L http://repo.cw-ngv.com/repo_key | apt-key add -
|
|
||||||
apt-get update
|
|
||||||
# Configure /etc/clearwater/local_config.
|
|
||||||
mkdir -p /etc/clearwater
|
|
||||||
etcd_ip=%ETCD_IP%
|
|
||||||
[ -n "$etcd_ip" ] || etcd_ip=%PRIVATE_IP%
|
|
||||||
cat > /etc/clearwater/local_config << EOF
|
|
||||||
management_local_ip=%PRIVATE_IP%
|
|
||||||
local_ip=%PRIVATE_IP%
|
|
||||||
public_ip=%PRIVATE_IP%
|
|
||||||
public_hostname=0.sprout.%ZONE%
|
|
||||||
etcd_cluster=$etcd_ip
|
|
||||||
EOF
|
|
||||||
# Create /etc/chronos/chronos.conf.
|
|
||||||
mkdir -p /etc/chronos
|
|
||||||
cat > /etc/chronos/chronos.conf << EOF
|
|
||||||
[http]
|
|
||||||
bind-address = %PRIVATE_IP%
|
|
||||||
bind-port = 7253
|
|
||||||
threads = 50
|
|
||||||
[logging]
|
|
||||||
folder = /var/log/chronos
|
|
||||||
level = 2
|
|
||||||
[alarms]
|
|
||||||
enabled = true
|
|
||||||
[exceptions]
|
|
||||||
max_ttl = 600
|
|
||||||
EOF
|
|
||||||
# Now install the software.
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install sprout --yes --force-yes
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install clearwater-management --yes --force-yes
|
|
||||||
# Function to give DNS record type and IP address for specified IP address
|
|
||||||
ip2rr() {
|
|
||||||
if echo "$1" | grep -q -e '[^0-9.]' ; then
|
|
||||||
echo AAAA "$1"
|
|
||||||
else
|
|
||||||
echo A "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
# Update DNS
|
|
||||||
retries=0
|
|
||||||
while ! { nsupdate -y "%ZONE%:%DNSSEC_KEY%" -v << EOF
|
|
||||||
server %DNS_PRIVATE_IP%
|
|
||||||
update add sprout-0.%ZONE%. 30 $(ip2rr %PUBLIC_IP%)
|
|
||||||
update add 0.sprout.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
|
||||||
update add sprout.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
|
||||||
update add scscf.sprout.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
|
||||||
update add icscf.sprout.%ZONE%. 30 $(ip2rr %PRIVATE_IP%)
|
|
||||||
update add sprout.%ZONE%. 30 NAPTR 0 0 "s" "SIP+D2T" "" _sip._tcp.sprout.%ZONE%.
|
|
||||||
update add _sip._tcp.sprout.%ZONE%. 30 SRV 0 0 5054 0.sprout.%ZONE%.
|
|
||||||
update add icscf.sprout.%ZONE%. 30 NAPTR 0 0 "s" "SIP+D2T" "" _sip._tcp.icscf.sprout.%ZONE%.
|
|
||||||
update add _sip._tcp.icscf.sprout.%ZONE%. 30 SRV 0 0 5052 0.sprout.%ZONE%.
|
|
||||||
update add scscf.sprout.%ZONE%. 30 NAPTR 0 0 "s" "SIP+D2T" "" _sip._tcp.scscf.sprout.%ZONE%.
|
|
||||||
update add _sip._tcp.scscf.sprout.%ZONE%. 30 SRV 0 0 5054 0.sprout.%ZONE%.
|
|
||||||
send
|
|
||||||
EOF
|
|
||||||
} && [ $retries -lt 10 ]
|
|
||||||
do
|
|
||||||
retries=$((retries + 1))
|
|
||||||
echo 'nsupdate failed - retrying (retry '$retries')...'
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
# Use the DNS server.
|
|
||||||
echo 'nameserver %DNS_PRIVATE_IP%' > /etc/dnsmasq.resolv.conf
|
|
||||||
echo 'RESOLV_CONF=/etc/dnsmasq.resolv.conf' >> /etc/default/dnsmasq
|
|
||||||
service dnsmasq force-reload
|
|
||||||
}
|
|
||||||
|
|
||||||
# Log all output to file.
|
|
||||||
deploy 2>&1 | tee -a /var/log/clearwater-sprout.log
|
|
|
@ -12,18 +12,37 @@
|
||||||
|
|
||||||
Version: 2.2
|
Version: 2.2
|
||||||
|
|
||||||
|
Templates:
|
||||||
|
customJoinNet:
|
||||||
|
- ?:
|
||||||
|
type: io.murano.resources.ExistingNeutronNetwork
|
||||||
|
internalNetworkName: $.instanceConfiguration.network[0]
|
||||||
|
internalSubnetworkName: $.instanceConfiguration.network[1]
|
||||||
|
|
||||||
Application:
|
Application:
|
||||||
?:
|
?:
|
||||||
type: com.mirantis.clearwater.Clearwater
|
type: com.mirantis.clearwater.Clearwater
|
||||||
keypair: $.commonInstanceConfiguration.keypair
|
instanceTemplate:
|
||||||
zoneName: $.commonInstanceConfiguration.zoneName
|
?:
|
||||||
osImageName: $.commonInstanceConfiguration.osImage
|
type: io.murano.resources.LinuxMuranoInstance
|
||||||
flavorName: $.commonInstanceConfiguration.flavor
|
name: anything
|
||||||
dnssecKey: $.commonInstanceConfiguration.dnsseckey
|
flavor: $.instanceConfiguration.flavor
|
||||||
dnsApp: $.components.dnsServer
|
image: $.instanceConfiguration.osImage
|
||||||
|
keyname: $.instanceConfiguration.keyPair
|
||||||
|
availabilityZone: $.instanceConfiguration.availabilityZone
|
||||||
|
assignFloatingIp: true
|
||||||
|
networks:
|
||||||
|
useEnvironmentNetwork: $.instanceConfiguration.network[0]=null
|
||||||
|
useFlatNetwork: false
|
||||||
|
customNetworks: switch($.instanceConfiguration.network[0], $=null=>list(), $!=null=>$customJoinNet)
|
||||||
|
dnsApp: $.appConfig.dnsServer
|
||||||
|
bonoClusterSize: $.appConfig.bonoClusterSize
|
||||||
|
sproutClusterSize: $.appConfig.sproutClusterSize
|
||||||
|
homerClusterSize: $.appConfig.homerClusterSize
|
||||||
|
homesteadClusterSize: $.appConfig.homesteadClusterSize
|
||||||
|
|
||||||
Forms:
|
Forms:
|
||||||
- commonInstanceConfiguration:
|
- instanceConfiguration:
|
||||||
fields:
|
fields:
|
||||||
- name: keypair
|
- name: keypair
|
||||||
type: keypair
|
type: keypair
|
||||||
|
@ -32,6 +51,12 @@ Forms:
|
||||||
Select the Key Pair to control access to instances. You can login to
|
Select the Key Pair to control access to instances. You can login to
|
||||||
instances using this KeyPair after the deployment of application.
|
instances using this KeyPair after the deployment of application.
|
||||||
required: false
|
required: false
|
||||||
|
- name: flavor
|
||||||
|
type: flavor
|
||||||
|
label: Instance flavor
|
||||||
|
description: >-
|
||||||
|
Select registered in Openstack flavor. Consider that application performance
|
||||||
|
depends on this parameter.
|
||||||
- name: osImage
|
- name: osImage
|
||||||
type: image
|
type: image
|
||||||
label: Instance image
|
label: Instance image
|
||||||
|
@ -39,17 +64,39 @@ Forms:
|
||||||
description: >-
|
description: >-
|
||||||
Select valid Ubuntu 14.04 image with cloud-init preinstalled for the application.
|
Select valid Ubuntu 14.04 image with cloud-init preinstalled for the application.
|
||||||
Image should already be prepared and registered in glance.
|
Image should already be prepared and registered in glance.
|
||||||
- name: flavor
|
- name: availabilityZone
|
||||||
type: flavor
|
type: azone
|
||||||
label: Instance flavor
|
label: Availability zone
|
||||||
description: >-
|
description: Select availability zone where application would be installed.
|
||||||
Select registered in Openstack flavor. Consider that application performance
|
required: false
|
||||||
depends on this parameter.
|
- name: network
|
||||||
|
type: network
|
||||||
|
label: Network
|
||||||
|
description: Select a network to join. 'Auto' corresponds to a default environment's network.
|
||||||
|
required: false
|
||||||
|
murano_networks: translate
|
||||||
|
|
||||||
- components:
|
- appConfig:
|
||||||
fields:
|
fields:
|
||||||
- name: dnsServer
|
- name: dnsServer
|
||||||
type: com.mirantis.network.dns.Bind
|
type: com.mirantis.network.dns.Bind
|
||||||
label: DNS server
|
label: DNS server
|
||||||
description: >-
|
description: >-
|
||||||
Add internal DNS server application. DNS is used by Clearewater to refer to its nodes
|
Add internal DNS server application. DNS is used by Clearewater to refer to its nodes
|
||||||
|
|
||||||
|
- name: bonoClusterSize
|
||||||
|
type: integer
|
||||||
|
label: Bono cluster size
|
||||||
|
initial: 1
|
||||||
|
- name: sproutClusterSize
|
||||||
|
type: integer
|
||||||
|
label: Sprout cluster size
|
||||||
|
initial: 1
|
||||||
|
- name: homerClusterSize
|
||||||
|
type: integer
|
||||||
|
label: Homer cluster size
|
||||||
|
initial: 1
|
||||||
|
- name: homesteadClusterSize
|
||||||
|
type: integer
|
||||||
|
label: Homestead cluster size
|
||||||
|
initial: 1
|
|
@ -19,6 +19,7 @@ Description: |
|
||||||
Author: 'Mirantis, Inc'
|
Author: 'Mirantis, Inc'
|
||||||
Tags: [vIMS]
|
Tags: [vIMS]
|
||||||
Classes:
|
Classes:
|
||||||
|
com.mirantis.clearwater.components.base.ClearwaterReplicaProvider: components/base/ClearwaterComponentBase.yaml
|
||||||
com.mirantis.clearwater.Clearwater: Clearwater.yaml
|
com.mirantis.clearwater.Clearwater: Clearwater.yaml
|
||||||
com.mirantis.clearwater.components.base.ClearwaterComponentBase: components/base/ClearwaterComponentBase.yaml
|
com.mirantis.clearwater.components.base.ClearwaterComponentBase: components/base/ClearwaterComponentBase.yaml
|
||||||
com.mirantis.clearwater.components.Bono: components/Bono.yaml
|
com.mirantis.clearwater.components.Bono: components/Bono.yaml
|
||||||
|
@ -31,3 +32,5 @@ Classes:
|
||||||
|
|
||||||
Require:
|
Require:
|
||||||
com.mirantis.network.dns.Bind:
|
com.mirantis.network.dns.Bind:
|
||||||
|
io.murano.applications:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue