Merge "Wire in NodeExtraConfig interface"
authorJenkins <jenkins@review.openstack.org>
Fri, 9 Oct 2015 08:56:59 +0000 (08:56 +0000)
committerGerrit Code Review <review@openstack.org>
Fri, 9 Oct 2015 08:56:59 +0000 (08:56 +0000)
92 files changed:
Makefile
README.md [deleted file]
README.rst [new file with mode: 0644]
base.yaml [deleted file]
debian-mirror.yaml [deleted file]
deprecated/undercloud-bm-nova-config.yaml [moved from undercloud-bm-nova-config.yaml with 100% similarity]
deprecated/undercloud-bm-nova-deploy.yaml [moved from undercloud-bm-nova-deploy.yaml with 100% similarity]
deprecated/undercloud-source.yaml [moved from undercloud-source.yaml with 99% similarity]
deprecated/undercloud-vlan-port.yaml [moved from undercloud-vlan-port.yaml with 100% similarity]
deprecated/undercloud-vm-ironic-config.yaml [moved from undercloud-vm-ironic-config.yaml with 100% similarity]
deprecated/undercloud-vm-ironic-deploy.yaml [moved from undercloud-vm-ironic-deploy.yaml with 100% similarity]
deprecated/undercloud-vm-nova-config.yaml [moved from undercloud-vm-nova-config.yaml with 100% similarity]
deprecated/undercloud-vm-nova-deploy.yaml [moved from undercloud-vm-nova-deploy.yaml with 100% similarity]
environments/neutron-ml2-cisco-n1kv.yaml [new file with mode: 0644]
examples/launchconfig1.yaml [deleted file]
examples/launchconfig1_hot.yaml [deleted file]
examples/launchconfig2.yaml [deleted file]
examples/launchconfig2_hot.yaml [deleted file]
examples/launchconfig_result.yaml [deleted file]
examples/launchconfig_result_hot.yaml [deleted file]
examples/lib.yaml [deleted file]
examples/lib_hot.yaml [deleted file]
examples/scale1.yaml [deleted file]
examples/scale1_hot.yaml [deleted file]
examples/scale2.yaml [deleted file]
examples/scale2_hot.yaml [deleted file]
examples/scale_map.yaml [deleted file]
examples/scale_map2.yaml [deleted file]
examples/scale_map2_hot.yaml [deleted file]
examples/scale_map_hot.yaml [deleted file]
examples/scale_map_result.yaml [deleted file]
examples/scale_map_result_hot.yaml [deleted file]
examples/scale_map_result_hot_blacklist.yaml [deleted file]
examples/scale_result.yaml [deleted file]
examples/scale_result_hot.yaml [deleted file]
examples/source.yaml [deleted file]
examples/source2.yaml [deleted file]
examples/source2_hot.yaml [deleted file]
examples/source2_lib_result.yaml [deleted file]
examples/source2_lib_result_hot.yaml [deleted file]
examples/source_hot.yaml [deleted file]
examples/source_include_subkey.yaml [deleted file]
examples/source_include_subkey_hot.yaml [deleted file]
examples/source_include_subkey_result.yaml [deleted file]
examples/source_include_subkey_result_hot.yaml [deleted file]
examples/source_lib_result.yaml [deleted file]
examples/source_lib_result_hot.yaml [deleted file]
extraconfig/tasks/yum_update.sh
extraconfig/tasks/yum_update.yaml
nagios3.yaml [deleted file]
net-config-static-bridge.yaml
network/config/bond-with-vlans/ceph-storage.yaml
network/config/bond-with-vlans/cinder-storage.yaml
network/config/bond-with-vlans/compute.yaml
network/config/bond-with-vlans/controller.yaml
network/config/bond-with-vlans/swift-storage.yaml
network/config/single-nic-vlans/ceph-storage.yaml
network/config/single-nic-vlans/cinder-storage.yaml
network/config/single-nic-vlans/compute.yaml
network/config/single-nic-vlans/controller.yaml
network/config/single-nic-vlans/swift-storage.yaml
os-apply-config/all-nodes-config.yaml [moved from all-nodes-config.yaml with 100% similarity]
os-apply-config/ceph-cluster-config.yaml [moved from ceph-cluster-config.yaml with 100% similarity]
os-apply-config/ceph-storage-post.yaml [moved from ceph-storage-post.yaml with 100% similarity]
os-apply-config/ceph-storage.yaml [moved from ceph-storage.yaml with 100% similarity]
os-apply-config/cinder-storage-post.yaml [moved from cinder-storage-post.yaml with 100% similarity]
os-apply-config/cinder-storage.yaml [moved from cinder-storage.yaml with 100% similarity]
os-apply-config/compute-post.yaml [moved from compute-post.yaml with 100% similarity]
os-apply-config/compute.yaml [moved from compute.yaml with 100% similarity]
os-apply-config/controller-post.yaml [moved from controller-post.yaml with 100% similarity]
os-apply-config/controller.yaml [moved from controller.yaml with 100% similarity]
os-apply-config/swift-devices-and-proxy-config.yaml [moved from swift-devices-and-proxy-config.yaml with 100% similarity]
os-apply-config/swift-storage-post.yaml [moved from swift-storage-post.yaml with 100% similarity]
os-apply-config/swift-storage.yaml [moved from swift-storage.yaml with 100% similarity]
os-apply-config/vip-config.yaml [moved from vip-config.yaml with 100% similarity]
overcloud-resource-registry.yaml
overcloud-without-mergepy.yaml
puppet/ceph-storage.yaml
puppet/cinder-storage.yaml
puppet/compute.yaml
puppet/controller.yaml
puppet/extraconfig/pre_deploy/controller/neutron-ml2-cisco-n1kv.yaml [new file with mode: 0644]
puppet/hieradata/object.yaml
puppet/manifests/overcloud_cephstorage.pp
puppet/manifests/overcloud_compute.pp
puppet/manifests/overcloud_controller.pp
puppet/manifests/overcloud_controller_pacemaker.pp
puppet/manifests/overcloud_object.pp
puppet/manifests/overcloud_volume.pp
puppet/manifests/ringbuilder.pp
puppet/swift-storage.yaml
setup.cfg

index 6ead708..131e1b9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -22,19 +22,19 @@ overcloud.yaml: deprecated/overcloud-source.yaml deprecated/block-storage.yaml d
        python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE:-'0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'0'} --scale CephStorage=$${CEPHSTORAGESCALE:-'0'} deprecated/overcloud-source.yaml deprecated/block-storage.yaml deprecated/swift-source.yaml deprecated/swift-storage-source.yaml deprecated/ssl-source.yaml deprecated/swift-deploy.yaml deprecated/nova-compute-config.yaml ${CONTROLEXTRA} > $@.tmp
        mv $@.tmp $@
 
-undercloud-vm.yaml: undercloud-source.yaml undercloud-vm-nova-config.yaml undercloud-vm-nova-deploy.yaml
+undercloud-vm.yaml: deprecated/undercloud-source.yaml deprecated/undercloud-vm-nova-config.yaml deprecated/undercloud-vm-nova-deploy.yaml
        python ./tripleo_heat_merge/merge.py --hot $^ > $@.tmp
        mv $@.tmp $@
 
-undercloud-bm.yaml: undercloud-source.yaml undercloud-bm-nova-config.yaml undercloud-bm-nova-deploy.yaml
+undercloud-bm.yaml: deprecated/undercloud-source.yaml deprecated/undercloud-bm-nova-config.yaml deprecated/undercloud-bm-nova-deploy.yaml
        python ./tripleo_heat_merge/merge.py --hot $^ > $@.tmp
        mv $@.tmp $@
 
-undercloud-vm-ironic.yaml: undercloud-source.yaml undercloud-vm-ironic-config.yaml undercloud-vm-ironic-deploy.yaml
+undercloud-vm-ironic.yaml: deprecated/undercloud-source.yaml deprecated/undercloud-vm-ironic-config.yaml deprecated/undercloud-vm-ironic-deploy.yaml
        python ./tripleo_heat_merge/merge.py --hot $^ > $@.tmp
        mv $@.tmp $@
 
-undercloud-vm-ironic-vlan.yaml: undercloud-source.yaml undercloud-vm-ironic-config.yaml undercloud-vm-ironic-deploy.yaml undercloud-vlan-port.yaml
+undercloud-vm-ironic-vlan.yaml: deprecated/undercloud-source.yaml deprecated/undercloud-vm-ironic-config.yaml deprecated/undercloud-vm-ironic-deploy.yaml deprecated/undercloud-vlan-port.yaml
        python ./tripleo_heat_merge/merge.py --hot $^ > $@.tmp
        mv $@.tmp $@
 
diff --git a/README.md b/README.md
deleted file mode 100644 (file)
index 97cc384..0000000
--- a/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-templates
-=========
-
-Generic templates to describe multi-host infrastructure, consumable by OpenStack Heat, Crowbar, others.
-
-
-merge.py
-========
-
-The Makefile contains several targets for generated templates, see its contents for all of them. To run functional tests for merge.py, run 'make test'.
diff --git a/README.rst b/README.rst
new file mode 100644 (file)
index 0000000..148a741
--- /dev/null
@@ -0,0 +1,55 @@
+======================
+tripleo-heat-templates
+======================
+
+Heat templates to deploy OpenStack using OpenStack.
+
+* Free software: Apache license
+* Documentation: http://docs.openstack.org/developer/tripleo-docs
+* Source: http://git.openstack.org/cgit/openstack/tripleo-heat-templates
+* Bugs: http://bugs.launchpad.net/tripleo
+
+Features
+--------
+
+The ability to deploy a multi-node, role based OpenStack deployment using
+OpenStack Heat. Notable features include:
+
+ * Choice of deployment/configuration tooling: puppet, os-apply-config, and
+   (soon) docker
+
+ * Role based deployment: roles for the controller, compute, ceph, swift,
+   and cinder storage
+
+ * physical network configuration: support for isolated networks, bonding,
+   and standard ctlplane networking
+
+Directories
+-----------
+
+A description of the directory layout in TripleO Heat Templates.
+
+ * deprecated: contains templates that have been deprecated
+
+ * environments: contains heat environment files that can be used with -e
+                 on the command like to enable features, etc.
+
+ * extraconfig: templates used to enable 'extra' functionality. Includes
+                functionality for distro specific registration and upgrades.
+
+ * firstboot: example first_boot scripts that can be used when initially
+              creating instances.
+
+ * network: heat templates to help create isolated networks and ports
+
+ * puppet: templates mostly driven by configuration with puppet. To use these
+           templates you can use the overcloud-resource-registry-puppet.yaml.
+
+ * os-apply-config: templates mostly driven by configuration w/
+                    os-collect-config and bash based
+                    elements (which use the Heat os-apply-config group).
+                    These will soon be deprecated and are no longer part
+                    of the upstream CI testing efforts.
+
+ * validation-scripts: validation scripts useful to all deployment
+                       configurations
diff --git a/base.yaml b/base.yaml
deleted file mode 100644 (file)
index a1ba509..0000000
--- a/base.yaml
+++ /dev/null
@@ -1,77 +0,0 @@
-heat_template_version: 2013-05-23
-description: 'Tie OpenStack components together'
-parameters:
-  KeystoneAdminToken:
-    description: Admin Token needed for keystone
-    type: string
-    hidden: true
-  TemplateRoot:
-    description: URL Base where all of our templates are available
-    type: string
-resources:
-  RabbitMQ:
-    type: AWS::CloudFormation::Stack
-    TemplateURL:
-      Fn::Join:
-        - {get_param: TemplateRoot}
-        - rabbitmq.yaml
-    parameters:
-      InstanceType: m1.small
-      KeyName: default
-      RabbitMQImage: image-rabbitmq
-  MySQL:
-    type: AWS::CloudFormation::Stack
-    TemplateURL:
-      Fn::Join:
-        - {get_param: TemplateRoot}
-        - mysql.yaml
-    parameters:
-      InstanceType: m1.small
-      KeyName: default
-      MySQLImage: image-mysql
-  Keystone:
-    type: AWS::CloudFormation::Stack
-    TemplateURL:
-      Fn::Join:
-        - {get_param: TemplateRoot}
-        - keystone.yaml
-    parameters:
-      AdminToken: {get_param: KeystoneAdminToken}
-      KeyName: default
-      KeystoneDSN:
-        Fn::Join:
-          - 'mysql://keystone:'
-          - {get_attr: [ MySQL , KeystonePassword ]}
-          - '@'
-          - {get_attr: [ MySQL , MySQLHost ]}
-          - '/keystone'
-  Glance:
-    type: AWS::CloudFormation::Stack
-    TemplateURL:
-      Fn::Join:
-        - {get_param: TemplateRoot}
-        - glance.yaml
-    parameters:
-      KeyName: default
-      HeatDSN:
-        Fn::Join:
-          - 'mysql://glance:'
-          - {get_attr: [ MySQL, GlancePassword ] }
-          - '@'
-          - {get_attr: [ MySQL, MySQLHost ]}
-          - '/glance'
-  Heat:
-    type: AWS::CloudFormation::Stack
-    TemplateURL:
-      Fn::Join:
-        - {get_param: TemplateRoot}
-        - heat.yaml
-    parameters:
-      KeyName: default
-      HeatDSN:
-        Fn::Join:
-          - 'mysql://heat:'
-          - {get_attr: [ MySQL, HeatPassword ] }
-          - '@'
-          - {get_attr: [ MySQL, MySQLHost ]}
-          - '/heat'
diff --git a/debian-mirror.yaml b/debian-mirror.yaml
deleted file mode 100644 (file)
index ddfff6a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-description: 'Debian-mirror: A Debian or Ubuntu mirror in the cloud'
-parameters:
-  DebianMirrorArchitectures:
-    default: [{"arch": "amd64"}]
-    description: The architectures to be mirrored
-    type: JSON
-  DebianMirrorComponents:
-    default: ["main", "restricted", "universe", "multiverse"]
-    description: The components to be mirrored
-    type: JSON
-  DebianMirrorMirror:
-    default: http://archive.ubuntu.com/ubuntu
-    description: The mirror that is to be used as the source
-    type: string
-  DebianMirrorSuites:
-    default: ["saucy", "saucy-updates", "saucy-security"]
-    description: The suites to be mirrored
-    type: JSON
-resources:
-  debianMirrorConfig:
-    type: AWS::AutoScaling::LaunchConfiguration
-    metadata:
-      debian-mirror:
-        mirror:
-          get_param: DebianMirrorMirror
-        suites:
-          get_param: DebianMirrorSuites
-        architectures:
-          get_param: DebianMirrorArchitectures
-        components:
-          get_param: DebianMirrorComponents
similarity index 99%
rename from undercloud-source.yaml
rename to deprecated/undercloud-source.yaml
index 6fe2066..317896d 100644 (file)
@@ -1,4 +1,4 @@
-description: All-in-one baremetal OpenStack and all dependencies.
+description: Deprecated. Use instack-undercloud instead. All-in-one baremetal OpenStack and all dependencies.
 heat_template_version: 2013-05-23
 parameters:
   AdminPassword:
diff --git a/environments/neutron-ml2-cisco-n1kv.yaml b/environments/neutron-ml2-cisco-n1kv.yaml
new file mode 100644 (file)
index 0000000..651e956
--- /dev/null
@@ -0,0 +1,11 @@
+# A Heat environment file which can be used to enable a
+# a Cisco N1KV backend, configured via puppet
+resource_registry:
+  OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/neutron-ml2-cisco-n1kv.yaml
+  OS::TripleO::ComputeExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/neutron-ml2-cisco-n1kv.yaml
+
+parameter_defaults:
+  N1000vVSMIP: '192.0.2.50'
+  N1000vMgmtGatewayIP: '192.0.2.1'
+  N1000vVSMDomainID: '100'
+  N1000vVSMHostMgmtIntf: 'br-ex'
diff --git a/examples/launchconfig1.yaml b/examples/launchconfig1.yaml
deleted file mode 100644 (file)
index 70ea246..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
-  A:
-    Type: String
-    Default: test1
-  B:
-    Type: String
-    Default: test2
-  resource1Image:
-    Type: String
-    Default: resource1
-Resources:
-  notcomputeConfigBase:
-    Type: AWS::AutoScaling::LaunchConfiguration
-    Metadata:
-      OpenStack::Role: notcomputeConfig
-      a: {Ref: A}
-      b: {Ref: B}
-  resource1:
-    Type: OS::Nova::Server
-    Properties:
-      flavor: test_flavor
-      image: {Ref: resource1Image}
-      key_name: test_key
diff --git a/examples/launchconfig1_hot.yaml b/examples/launchconfig1_hot.yaml
deleted file mode 100644 (file)
index 4c86e76..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-heat_template_version: 2014-10-16
-parameters:
-  A:
-    type: string
-    default: test1
-  B:
-    type: string
-    default: test2
-  resource1Image:
-    type: string
-    default: resource1
-resources:
-  notcomputeConfigBase:
-    type: AWS::AutoScaling::LaunchConfiguration
-    metadata:
-      OpenStack::Role: notcomputeConfig
-      a: {get_param: A}
-      b: {get_param: B}
-  resource1:
-    type: OS::Nova::Server
-    properties:
-      flavor: test_flavor
-      image: {get_param: resource1Image}
-      key_name: test_key
diff --git a/examples/launchconfig2.yaml b/examples/launchconfig2.yaml
deleted file mode 100644 (file)
index 3ced0cc..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
-  C:
-    Type: String
-    Default: test3
-  resource2Image:
-    Type: String
-    Default: resource2
-Resources:
-  notcomputeConfigMixin:
-    Type: AWS::AutoScaling::LaunchConfiguration
-    Metadata:
-      OpenStack::Role: notcomputeConfig
-      c: {Ref: C}
-  resource2:
-    Type: OS::Nova::Server
-    Properties:
-      flavor: test_flavor
-      image: {Ref: resource2Image}
-      key_name: test_key
diff --git a/examples/launchconfig2_hot.yaml b/examples/launchconfig2_hot.yaml
deleted file mode 100644 (file)
index 1586a4d..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-heat_template_version: 2014-10-16
-parameters:
-  C:
-    type: string
-    default: test3
-  resource2Image:
-    type: string
-    default: resource2
-resources:
-  notcomputeConfigMixin:
-    type: AWS::AutoScaling::LaunchConfiguration
-    metadata:
-      OpenStack::Role: notcomputeConfig
-      c: {get_param: C}
-  resource2:
-    type: OS::Nova::Server
-    properties:
-      flavor: test_flavor
-      image: {get_param: resource2Image}
-      key_name: test_key
diff --git a/examples/launchconfig_result.yaml b/examples/launchconfig_result.yaml
deleted file mode 100644 (file)
index 76c12b8..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-Description: examples/launchconfig1.yaml,examples/launchconfig2.yaml
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
-  A:
-    Default: test1
-    Type: String
-  B:
-    Default: test2
-    Type: String
-  C:
-    Default: test3
-    Type: String
-  resource1Image:
-    Default: resource1
-    Type: String
-  resource2Image:
-    Default: resource2
-    Type: String
-Resources:
-  notcomputeConfig:
-    Metadata:
-      OpenStack::Role: notcomputeConfig
-      a:
-        Ref: A
-      b:
-        Ref: B
-      c:
-        Ref: C
-    Type: AWS::AutoScaling::LaunchConfiguration
-  resource1:
-    Properties:
-      flavor: test_flavor
-      image:
-        Ref: resource1Image
-      key_name: test_key
-    Type: OS::Nova::Server
-  resource2:
-    Properties:
-      flavor: test_flavor
-      image:
-        Ref: resource2Image
-      key_name: test_key
-    Type: OS::Nova::Server
diff --git a/examples/launchconfig_result_hot.yaml b/examples/launchconfig_result_hot.yaml
deleted file mode 100644 (file)
index 1375bae..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-description: examples/launchconfig1_hot.yaml,examples/launchconfig2_hot.yaml
-heat_template_version: '2014-10-16'
-parameters:
-  A:
-    default: test1
-    type: string
-  B:
-    default: test2
-    type: string
-  C:
-    default: test3
-    type: string
-  resource1Image:
-    default: resource1
-    type: string
-  resource2Image:
-    default: resource2
-    type: string
-resources:
-  notcomputeConfig:
-    metadata:
-      OpenStack::Role: notcomputeConfig
-      a:
-        get_param: A
-      b:
-        get_param: B
-      c:
-        get_param: C
-    type: AWS::AutoScaling::LaunchConfiguration
-  resource1:
-    properties:
-      flavor: test_flavor
-      image:
-        get_param: resource1Image
-      key_name: test_key
-    type: OS::Nova::Server
-  resource2:
-    properties:
-      flavor: test_flavor
-      image:
-        get_param: resource2Image
-      key_name: test_key
-    type: OS::Nova::Server
diff --git a/examples/lib.yaml b/examples/lib.yaml
deleted file mode 100644 (file)
index d42e95f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Parameters:
-  ImportantValue:
-    Default: a_default
-    Type: String
-  BImage:
-    Type: String
-Resources:
-  GenericB:
-    Type: OS::Nova::Server
-    Properties:
-      image: {Ref: BImage}
-    Metadata:
-      my_meta: {Ref: ImportantValue}
diff --git a/examples/lib_hot.yaml b/examples/lib_hot.yaml
deleted file mode 100644 (file)
index b5af05e..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-parameters:
-  ImportantValue:
-    default: a_default
-    type: string
-  BImage:
-    type: string
-resources:
-  GenericB:
-    type: OS::Nova::Server
-    properties:
-      image: {get_param: BImage}
-    metadata:
-      my_meta: {get_param: ImportantValue}
diff --git a/examples/scale1.yaml b/examples/scale1.yaml
deleted file mode 100644 (file)
index 6acb604..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Resources:
-  ComputeUser:
-    Type: AWS::IAM::User
-    Properties:
-      Policies: [ { Ref: ComputeAccessPolicy } ]
-  GlobalAccessPolicy:
-    Type: OS::Heat::AccessPolicy
-  NovaCompute0Key:
-    Type: FileInclude
-    Path: examples/scale2.yaml
-    SubKey: Resources.NovaCompute0Key
-  NovaCompute0CompletionCondition:
-    Type: FileInclude
-    Path: examples/scale2.yaml
-    SubKey: Resources.NovaCompute0CompletionCondition
-  NovaCompute0CompletionHandle:
-    Type: FileInclude
-    Path: examples/scale2.yaml
-    SubKey: Resources.NovaCompute0CompletionHandle
-  NovaCompute0Config:
-    Type: FileInclude
-    Path: examples/scale2.yaml
-    SubKey: Resources.NovaCompute0Config
-    Parameters:
-        ComputeImage: "123"
-        RabbitUserName: "guest"
-        RabbitPassword: "guest"
-  NovaCompute0:
-    Type: FileInclude
-    Path: examples/scale2.yaml
-    SubKey: Resources.NovaCompute0
diff --git a/examples/scale1_hot.yaml b/examples/scale1_hot.yaml
deleted file mode 100644 (file)
index 6e46a32..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-heat_template_version: 2014-10-16
-resources:
-  ComputeUser:
-    type: AWS::IAM::User
-    properties:
-      Policies: [ { get_param: ComputeAccessPolicy } ]
-  GlobalAccessPolicy:
-    type: OS::Heat::AccessPolicy
-  NovaCompute0Key:
-    type: FileInclude
-    Path: examples/scale2_hot.yaml
-    SubKey: resources.NovaCompute0Key
-  NovaCompute0CompletionCondition:
-    type: FileInclude
-    Path: examples/scale2_hot.yaml
-    SubKey: resources.NovaCompute0CompletionCondition
-  NovaCompute0CompletionHandle:
-    type: FileInclude
-    Path: examples/scale2_hot.yaml
-    SubKey: resources.NovaCompute0CompletionHandle
-  NovaCompute0Config:
-    type: FileInclude
-    Path: examples/scale2_hot.yaml
-    SubKey: resources.NovaCompute0Config
-    parameters:
-        ComputeImage: "123"
-        RabbitUserName: "guest"
-        RabbitPassword: "guest"
-  NovaCompute0:
-    type: FileInclude
-    Path: examples/scale2_hot.yaml
-    SubKey: resources.NovaCompute0
diff --git a/examples/scale2.yaml b/examples/scale2.yaml
deleted file mode 100644 (file)
index 8b3e4f8..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
-  ComputeImage:
-    Type: String
-  RabbitUserName:
-    Type: String
-  RabbitPassword:
-    Type: String
-    NoEcho: true
-Resources:
-  ComputeAccessPolicy:
-    Type: OS::Heat::AccessPolicy
-    Properties:
-      AllowedResources: [ NovaCompute0 ]
-  NovaCompute0Key:
-    Type: AWS::IAM::AccessKey
-    Properties:
-      UserName:
-        Ref: ComputeUser
-  NovaCompute0CompletionCondition:
-    Type: AWS::CloudFormation::WaitCondition
-    DependsOn: notcompute
-    Properties:
-      Handle: {Ref: NovaCompute0CompletionHandle}
-      Count: '1'
-      Timeout: '1800'
-  NovaCompute0CompletionHandle:
-    Type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute0:
-    Type: OS::Nova::Server
-    Properties:
-      image:
-        Ref: ComputeImage
-    Metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute0Key
-          secret_access_key:
-            Fn::GetAtt: [ NovaCompute0Key, SecretAccessKey ]
-          stack_name: {Ref: 'AWS::StackName'}
-          path: NovaCompute0Config.Metadata
-  NovaCompute0Config:
-    Type: AWS::AutoScaling::LaunchConfiguration
-    Metadata:
-      completion-handle:
-        Ref: NovaCompute0CompletionHandle
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute0Key
-          secret_access_key:
-            Fn::GetAtt: [ NovaCompute0Key, SecretAccessKey ]
-          stack_name: {Ref: 'AWS::StackName'}
-          path: NovaCompute0Config.Metadata
-      neutron:
-        ovs:
-          local_ip:
-            Fn::Select:
-              - 0
-              - Fn::Select:
-                - ctlplane
-                - Fn::GetAtt:
-                  - NovaCompute0
-                  - networks
-      rabbit:
-        username: {Ref: RabbitUserName}
-        password: {Ref: RabbitPassword}
-
diff --git a/examples/scale2_hot.yaml b/examples/scale2_hot.yaml
deleted file mode 100644 (file)
index eb50761..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-heat_template_version: 2014-10-16
-parameters:
-  ComputeImage:
-    type: string
-  RabbitUserName:
-    type: string
-  RabbitPassword:
-    type: string
-    hidden: true
-resources:
-  ComputeAccessPolicy:
-    type: OS::Heat::AccessPolicy
-    properties:
-      AllowedResources: [ NovaCompute0 ]
-  NovaCompute0Key:
-    type: AWS::IAM::AccessKey
-    properties:
-      UserName:
-        get_param: ComputeUser
-  NovaCompute0CompletionCondition:
-    type: AWS::CloudFormation::WaitCondition
-    depends_on: notcompute
-    properties:
-      Handle: {get_resource: NovaCompute0CompletionHandle}
-      Count: '1'
-      Timeout: '1800'
-  NovaCompute0CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute0:
-    type: OS::Nova::Server
-    properties:
-      image:
-        get_param: ComputeImage
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute0Key
-          secret_access_key:
-            get_attr: [ NovaCompute0Key, SecretAccessKey ]
-          stack_name: {get_param: 'AWS::StackName'}
-          path: NovaCompute0Config.Metadata
-  NovaCompute0Config:
-    type: AWS::AutoScaling::LaunchConfiguration
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute0CompletionHandle
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute0Key
-          secret_access_key:
-            get_attr: [ NovaCompute0Key, SecretAccessKey ]
-          stack_name: {get_param: 'AWS::StackName'}
-          path: NovaCompute0Config.Metadata
-      neutron:
-        ovs:
-          local_ip: {get_attr: [NovaCompute0, networks, ctlplane, 0]}
-      rabbit:
-        username: {get_param: RabbitUserName}
-        password: {get_param: RabbitPassword}
-
diff --git a/examples/scale_map.yaml b/examples/scale_map.yaml
deleted file mode 100644 (file)
index 08bcbf7..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Resources:
-  ComputeUser:
-    Type: AWS::IAM::User
-    Properties:
-      Policies: [ { Ref: ComputeAccessPolicy } ]
-  GlobalAccessPolicy:
-    Type: OS::Heat::AccessPolicy
-  NovaCompute0Key:
-    Type: FileInclude
-    Path: examples/scale_map2.yaml
-    SubKey: Resources.NovaCompute0Key
-  NovaCompute0CompletionCondition:
-    Type: FileInclude
-    Path: examples/scale_map2.yaml
-    SubKey: Resources.NovaCompute0CompletionCondition
-  NovaCompute0CompletionHandle:
-    Type: FileInclude
-    Path: examples/scale_map2.yaml
-    SubKey: Resources.NovaCompute0CompletionHandle
-  NovaCompute0Config:
-    Type: FileInclude
-    Path: examples/scale_map2.yaml
-    SubKey: Resources.NovaCompute0Config
-    Parameters:
-      AllHosts:
-        Fn::Join:
-        - "\n"
-        - Merge::Map:
-            NovaCompute0:
-              Fn::Join:
-              - ' '
-              - - Fn::Select:
-                  - 0
-                  - Fn::Select:
-                    - ctlplane
-                    - Fn::GetAtt:
-                      - NovaCompute0
-                      - networks
-                - Fn::Select:
-                  - name
-                  - Fn::GetAtt:
-                    - NovaCompute0
-                    - show
-                - Fn::Join:
-                  - '.'
-                  - - Fn::Select:
-                      - name
-                      - Fn::GetAtt:
-                        - NovaCompute0
-                        - show
-                    - 'local'
-  NovaCompute0:
-    Type: FileInclude
-    Path: examples/scale_map2.yaml
-    SubKey: Resources.NovaCompute0
diff --git a/examples/scale_map2.yaml b/examples/scale_map2.yaml
deleted file mode 100644 (file)
index 7e5c839..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
-  AllHosts:
-    Type: String
-  ComputeImage:
-    Type: String
-Resources:
-  ComputeAccessPolicy:
-    Type: OS::Heat::AccessPolicy
-    Properties:
-      AllowedResources: [ NovaCompute0 ]
-  NovaCompute0Key:
-    Type: AWS::IAM::AccessKey
-    Properties:
-      UserName:
-        Ref: ComputeUser
-  NovaCompute0CompletionCondition:
-    Type: AWS::CloudFormation::WaitCondition
-    DependsOn: notcompute
-    Properties:
-      Handle: {Ref: NovaCompute0CompletionHandle}
-      Count: '1'
-      Timeout: '1800'
-  NovaCompute0CompletionHandle:
-    Type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute0:
-    Type: OS::Nova::Server
-    Properties:
-      image:
-        Ref: ComputeImage
-    Metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute0Key
-          secret_access_key:
-            Fn::GetAtt: [ NovaCompute0Key, SecretAccessKey ]
-          stack_name: {Ref: 'AWS::StackName'}
-          path: NovaCompute0Config.Metadata
-  NovaCompute0Config:
-    Type: AWS::AutoScaling::LaunchConfiguration
-    Metadata:
-      completion-handle:
-        Ref: NovaCompute0CompletionHandle
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute0Key
-          secret_access_key:
-            Fn::GetAtt: [ NovaCompute0Key, SecretAccessKey ]
-          stack_name: {Ref: 'AWS::StackName'}
-          path: NovaCompute0Config.Metadata
-      hosts:
-        Ref: AllHosts
diff --git a/examples/scale_map2_hot.yaml b/examples/scale_map2_hot.yaml
deleted file mode 100644 (file)
index 1d7dc5f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-heat_template_version: 2014-10-16
-parameters:
-  AllHosts:
-    type: string
-  ComputeImage:
-    type: string
-resources:
-  ComputeAccessPolicy:
-    type: OS::Heat::AccessPolicy
-    properties:
-      AllowedResources: [ NovaCompute0 ]
-  NovaCompute0Key:
-    type: AWS::IAM::AccessKey
-    properties:
-      UserName:
-        get_param: ComputeUser
-  NovaCompute0CompletionCondition:
-    type: AWS::CloudFormation::WaitCondition
-    depends_on: notcompute
-    properties:
-      Handle: {get_resource: NovaCompute0CompletionHandle}
-      Count: '1'
-      Timeout: '1800'
-  NovaCompute0CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute0:
-    type: OS::Nova::Server
-    properties:
-      image:
-        get_param: ComputeImage
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute0Key
-          secret_access_key:
-            get_attr: [ NovaCompute0Key, SecretAccessKey ]
-          stack_name: {get_param: 'AWS::StackName'}
-          path: NovaCompute0Config.Metadata
-  NovaCompute0Config:
-    type: AWS::AutoScaling::LaunchConfiguration
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute0CompletionHandle
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute0Key
-          secret_access_key:
-            get_attr: [ NovaCompute0Key, SecretAccessKey ]
-          stack_name: {get_param: 'AWS::StackName'}
-          path: NovaCompute0Config.Metadata
-      hosts:
-        get_param: AllHosts
diff --git a/examples/scale_map_hot.yaml b/examples/scale_map_hot.yaml
deleted file mode 100644 (file)
index 4a6d684..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-heat_template_version: 2014-10-16
-resources:
-  ComputeUser:
-    type: AWS::IAM::User
-    properties:
-      Policies: [ { get_param: ComputeAccessPolicy } ]
-  GlobalAccessPolicy:
-    type: OS::Heat::AccessPolicy
-  NovaCompute0Key:
-    type: FileInclude
-    Path: examples/scale_map2_hot.yaml
-    SubKey: resources.NovaCompute0Key
-  NovaCompute0CompletionCondition:
-    type: FileInclude
-    Path: examples/scale_map2_hot.yaml
-    SubKey: resources.NovaCompute0CompletionCondition
-  NovaCompute0CompletionHandle:
-    type: FileInclude
-    Path: examples/scale_map2_hot.yaml
-    SubKey: resources.NovaCompute0CompletionHandle
-  NovaCompute0Config:
-    type: FileInclude
-    Path: examples/scale_map2_hot.yaml
-    SubKey: resources.NovaCompute0Config
-    parameters:
-      AllHosts:
-        list_join:
-        - "\n"
-        - Merge::Map:
-            NovaCompute0:
-              list_join:
-              - ' '
-              - - {get_attr: [NovaCompute0, networks, ctlplane, 0]}
-                - {get_attr: [NovaCompute0, show, name]}
-                - list_join:
-                  - '.'
-                  - - {get_attr: [NovaCompute0, show, name]}
-                    - 'local'
-  NovaCompute0:
-    type: FileInclude
-    Path: examples/scale_map2_hot.yaml
-    SubKey: resources.NovaCompute0
diff --git a/examples/scale_map_result.yaml b/examples/scale_map_result.yaml
deleted file mode 100644 (file)
index c461783..0000000
+++ /dev/null
@@ -1,367 +0,0 @@
-Description: examples/scale_map.yaml
-HeatTemplateFormatVersion: '2012-12-12'
-Resources:
-  ComputeUser:
-    Properties:
-      Policies:
-      - Ref: ComputeAccessPolicy
-    Type: AWS::IAM::User
-  GlobalAccessPolicy:
-    Type: OS::Heat::AccessPolicy
-  NovaCompute0:
-    Metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute0Key
-          path: NovaCompute0Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute0Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-    Properties:
-      image:
-        Ref: ComputeImage
-    Type: OS::Nova::Server
-  NovaCompute0CompletionCondition:
-    DependsOn: notcompute
-    Properties:
-      Count: '1'
-      Handle:
-        Ref: NovaCompute0CompletionHandle
-      Timeout: '1800'
-    Type: AWS::CloudFormation::WaitCondition
-  NovaCompute0CompletionHandle:
-    Type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute0Config:
-    Metadata:
-      completion-handle:
-        Ref: NovaCompute0CompletionHandle
-      hosts:
-        Fn::Join:
-        - '
-
-          '
-        - - Fn::Join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - Fn::GetAtt:
-                    - NovaCompute0
-                    - networks
-              - Fn::Select:
-                - name
-                - Fn::GetAtt:
-                  - NovaCompute0
-                  - show
-              - Fn::Join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - Fn::GetAtt:
-                      - NovaCompute0
-                      - show
-                  - local
-          - Fn::Join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - Fn::GetAtt:
-                    - NovaCompute1
-                    - networks
-              - Fn::Select:
-                - name
-                - Fn::GetAtt:
-                  - NovaCompute1
-                  - show
-              - Fn::Join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - Fn::GetAtt:
-                      - NovaCompute1
-                      - show
-                  - local
-          - Fn::Join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - Fn::GetAtt:
-                    - NovaCompute2
-                    - networks
-              - Fn::Select:
-                - name
-                - Fn::GetAtt:
-                  - NovaCompute2
-                  - show
-              - Fn::Join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - Fn::GetAtt:
-                      - NovaCompute2
-                      - show
-                  - local
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute0Key
-          path: NovaCompute0Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute0Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-    Type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute0Key:
-    Properties:
-      UserName:
-        Ref: ComputeUser
-    Type: AWS::IAM::AccessKey
-  NovaCompute1:
-    Metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute1Key
-          path: NovaCompute1Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute1Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-    Properties:
-      image:
-        Ref: ComputeImage
-    Type: OS::Nova::Server
-  NovaCompute1CompletionCondition:
-    DependsOn: notcompute
-    Properties:
-      Count: '1'
-      Handle:
-        Ref: NovaCompute1CompletionHandle
-      Timeout: '1800'
-    Type: AWS::CloudFormation::WaitCondition
-  NovaCompute1CompletionHandle:
-    Type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute1Config:
-    Metadata:
-      completion-handle:
-        Ref: NovaCompute1CompletionHandle
-      hosts:
-        Fn::Join:
-        - '
-
-          '
-        - - Fn::Join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - Fn::GetAtt:
-                    - NovaCompute0
-                    - networks
-              - Fn::Select:
-                - name
-                - Fn::GetAtt:
-                  - NovaCompute0
-                  - show
-              - Fn::Join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - Fn::GetAtt:
-                      - NovaCompute0
-                      - show
-                  - local
-          - Fn::Join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - Fn::GetAtt:
-                    - NovaCompute1
-                    - networks
-              - Fn::Select:
-                - name
-                - Fn::GetAtt:
-                  - NovaCompute1
-                  - show
-              - Fn::Join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - Fn::GetAtt:
-                      - NovaCompute1
-                      - show
-                  - local
-          - Fn::Join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - Fn::GetAtt:
-                    - NovaCompute2
-                    - networks
-              - Fn::Select:
-                - name
-                - Fn::GetAtt:
-                  - NovaCompute2
-                  - show
-              - Fn::Join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - Fn::GetAtt:
-                      - NovaCompute2
-                      - show
-                  - local
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute1Key
-          path: NovaCompute1Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute1Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-    Type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute1Key:
-    Properties:
-      UserName:
-        Ref: ComputeUser
-    Type: AWS::IAM::AccessKey
-  NovaCompute2:
-    Metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute2Key
-          path: NovaCompute2Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute2Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-    Properties:
-      image:
-        Ref: ComputeImage
-    Type: OS::Nova::Server
-  NovaCompute2CompletionCondition:
-    DependsOn: notcompute
-    Properties:
-      Count: '1'
-      Handle:
-        Ref: NovaCompute2CompletionHandle
-      Timeout: '1800'
-    Type: AWS::CloudFormation::WaitCondition
-  NovaCompute2CompletionHandle:
-    Type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute2Config:
-    Metadata:
-      completion-handle:
-        Ref: NovaCompute2CompletionHandle
-      hosts:
-        Fn::Join:
-        - '
-
-          '
-        - - Fn::Join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - Fn::GetAtt:
-                    - NovaCompute0
-                    - networks
-              - Fn::Select:
-                - name
-                - Fn::GetAtt:
-                  - NovaCompute0
-                  - show
-              - Fn::Join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - Fn::GetAtt:
-                      - NovaCompute0
-                      - show
-                  - local
-          - Fn::Join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - Fn::GetAtt:
-                    - NovaCompute1
-                    - networks
-              - Fn::Select:
-                - name
-                - Fn::GetAtt:
-                  - NovaCompute1
-                  - show
-              - Fn::Join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - Fn::GetAtt:
-                      - NovaCompute1
-                      - show
-                  - local
-          - Fn::Join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - Fn::GetAtt:
-                    - NovaCompute2
-                    - networks
-              - Fn::Select:
-                - name
-                - Fn::GetAtt:
-                  - NovaCompute2
-                  - show
-              - Fn::Join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - Fn::GetAtt:
-                      - NovaCompute2
-                      - show
-                  - local
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute2Key
-          path: NovaCompute2Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute2Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-    Type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute2Key:
-    Properties:
-      UserName:
-        Ref: ComputeUser
-    Type: AWS::IAM::AccessKey
diff --git a/examples/scale_map_result_hot.yaml b/examples/scale_map_result_hot.yaml
deleted file mode 100644 (file)
index 4e65723..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-description: examples/scale_map_hot.yaml
-heat_template_version: '2014-10-16'
-resources:
-  ComputeUser:
-    properties:
-      Policies:
-      - get_param: ComputeAccessPolicy
-    type: AWS::IAM::User
-  GlobalAccessPolicy:
-    type: OS::Heat::AccessPolicy
-  NovaCompute0:
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute0Key
-          path: NovaCompute0Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute0Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    properties:
-      image:
-        get_param: ComputeImage
-    type: OS::Nova::Server
-  NovaCompute0CompletionCondition:
-    depends_on: notcompute
-    properties:
-      Count: '1'
-      Handle:
-        get_resource: NovaCompute0CompletionHandle
-      Timeout: '1800'
-    type: AWS::CloudFormation::WaitCondition
-  NovaCompute0CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute0Config:
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute0CompletionHandle
-      hosts:
-        list_join:
-        - '
-
-          '
-        - - list_join:
-            - ' '
-            - - get_attr:
-                - NovaCompute0
-                - networks
-                - ctlplane
-                - 0
-              - get_attr:
-                - NovaCompute0
-                - show
-                - name
-              - list_join:
-                - .
-                - - get_attr:
-                    - NovaCompute0
-                    - show
-                    - name
-                  - local
-          - list_join:
-            - ' '
-            - - get_attr:
-                - NovaCompute1
-                - networks
-                - ctlplane
-                - 0
-              - get_attr:
-                - NovaCompute1
-                - show
-                - name
-              - list_join:
-                - .
-                - - get_attr:
-                    - NovaCompute1
-                    - show
-                    - name
-                  - local
-          - list_join:
-            - ' '
-            - - get_attr:
-                - NovaCompute2
-                - networks
-                - ctlplane
-                - 0
-              - get_attr:
-                - NovaCompute2
-                - show
-                - name
-              - list_join:
-                - .
-                - - get_attr:
-                    - NovaCompute2
-                    - show
-                    - name
-                  - local
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute0Key
-          path: NovaCompute0Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute0Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute0Key:
-    properties:
-      UserName:
-        get_param: ComputeUser
-    type: AWS::IAM::AccessKey
-  NovaCompute1:
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute1Key
-          path: NovaCompute1Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute1Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    properties:
-      image:
-        get_param: ComputeImage
-    type: OS::Nova::Server
-  NovaCompute1CompletionCondition:
-    depends_on: notcompute
-    properties:
-      Count: '1'
-      Handle:
-        get_resource: NovaCompute1CompletionHandle
-      Timeout: '1800'
-    type: AWS::CloudFormation::WaitCondition
-  NovaCompute1CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute1Config:
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute1CompletionHandle
-      hosts:
-        list_join:
-        - '
-
-          '
-        - - list_join:
-            - ' '
-            - - get_attr:
-                - NovaCompute0
-                - networks
-                - ctlplane
-                - 0
-              - get_attr:
-                - NovaCompute0
-                - show
-                - name
-              - list_join:
-                - .
-                - - get_attr:
-                    - NovaCompute0
-                    - show
-                    - name
-                  - local
-          - list_join:
-            - ' '
-            - - get_attr:
-                - NovaCompute1
-                - networks
-                - ctlplane
-                - 0
-              - get_attr:
-                - NovaCompute1
-                - show
-                - name
-              - list_join:
-                - .
-                - - get_attr:
-                    - NovaCompute1
-                    - show
-                    - name
-                  - local
-          - list_join:
-            - ' '
-            - - get_attr:
-                - NovaCompute2
-                - networks
-                - ctlplane
-                - 0
-              - get_attr:
-                - NovaCompute2
-                - show
-                - name
-              - list_join:
-                - .
-                - - get_attr:
-                    - NovaCompute2
-                    - show
-                    - name
-                  - local
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute1Key
-          path: NovaCompute1Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute1Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute1Key:
-    properties:
-      UserName:
-        get_param: ComputeUser
-    type: AWS::IAM::AccessKey
-  NovaCompute2:
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute2Key
-          path: NovaCompute2Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute2Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    properties:
-      image:
-        get_param: ComputeImage
-    type: OS::Nova::Server
-  NovaCompute2CompletionCondition:
-    depends_on: notcompute
-    properties:
-      Count: '1'
-      Handle:
-        get_resource: NovaCompute2CompletionHandle
-      Timeout: '1800'
-    type: AWS::CloudFormation::WaitCondition
-  NovaCompute2CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute2Config:
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute2CompletionHandle
-      hosts:
-        list_join:
-        - '
-
-          '
-        - - list_join:
-            - ' '
-            - - get_attr:
-                - NovaCompute0
-                - networks
-                - ctlplane
-                - 0
-              - get_attr:
-                - NovaCompute0
-                - show
-                - name
-              - list_join:
-                - .
-                - - get_attr:
-                    - NovaCompute0
-                    - show
-                    - name
-                  - local
-          - list_join:
-            - ' '
-            - - get_attr:
-                - NovaCompute1
-                - networks
-                - ctlplane
-                - 0
-              - get_attr:
-                - NovaCompute1
-                - show
-                - name
-              - list_join:
-                - .
-                - - get_attr:
-                    - NovaCompute1
-                    - show
-                    - name
-                  - local
-          - list_join:
-            - ' '
-            - - get_attr:
-                - NovaCompute2
-                - networks
-                - ctlplane
-                - 0
-              - get_attr:
-                - NovaCompute2
-                - show
-                - name
-              - list_join:
-                - .
-                - - get_attr:
-                    - NovaCompute2
-                    - show
-                    - name
-                  - local
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute2Key
-          path: NovaCompute2Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute2Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute2Key:
-    properties:
-      UserName:
-        get_param: ComputeUser
-    type: AWS::IAM::AccessKey
diff --git a/examples/scale_map_result_hot_blacklist.yaml b/examples/scale_map_result_hot_blacklist.yaml
deleted file mode 100644 (file)
index decb0d5..0000000
+++ /dev/null
@@ -1,367 +0,0 @@
-description: examples/scale_map_hot.yaml
-heat_template_version: '2013-05-23'
-resources:
-  ComputeUser:
-    properties:
-      Policies:
-      - get_param: ComputeAccessPolicy
-    type: AWS::IAM::User
-  GlobalAccessPolicy:
-    type: OS::Heat::AccessPolicy
-  NovaCompute0:
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute0Key
-          path: NovaCompute0Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute0Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    properties:
-      image:
-        get_param: ComputeImage
-    type: OS::Nova::Server
-  NovaCompute0CompletionCondition:
-    depends_on: notcompute
-    properties:
-      Count: '1'
-      Handle:
-        get_resource: NovaCompute0CompletionHandle
-      Timeout: '1800'
-    type: AWS::CloudFormation::WaitCondition
-  NovaCompute0CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute0Config:
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute0CompletionHandle
-      hosts:
-        list_join:
-        - '
-
-          '
-        - - list_join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute0
-                    - networks
-              - Fn::Select:
-                - name
-                - get_attr:
-                  - NovaCompute0
-                  - show
-              - list_join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - get_attr:
-                      - NovaCompute0
-                      - show
-                  - local
-          - list_join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute3
-                    - networks
-              - Fn::Select:
-                - name
-                - get_attr:
-                  - NovaCompute3
-                  - show
-              - list_join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - get_attr:
-                      - NovaCompute3
-                      - show
-                  - local
-          - list_join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute4
-                    - networks
-              - Fn::Select:
-                - name
-                - get_attr:
-                  - NovaCompute4
-                  - show
-              - list_join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - get_attr:
-                      - NovaCompute4
-                      - show
-                  - local
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute0Key
-          path: NovaCompute0Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute0Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute0Key:
-    properties:
-      UserName:
-        get_param: ComputeUser
-    type: AWS::IAM::AccessKey
-  NovaCompute3:
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute3Key
-          path: NovaCompute3Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute3Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    properties:
-      image:
-        get_param: ComputeImage
-    type: OS::Nova::Server
-  NovaCompute3CompletionCondition:
-    depends_on: notcompute
-    properties:
-      Count: '1'
-      Handle:
-        get_resource: NovaCompute3CompletionHandle
-      Timeout: '1800'
-    type: AWS::CloudFormation::WaitCondition
-  NovaCompute3CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute3Config:
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute3CompletionHandle
-      hosts:
-        list_join:
-        - '
-
-          '
-        - - list_join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute0
-                    - networks
-              - Fn::Select:
-                - name
-                - get_attr:
-                  - NovaCompute0
-                  - show
-              - list_join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - get_attr:
-                      - NovaCompute0
-                      - show
-                  - local
-          - list_join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute3
-                    - networks
-              - Fn::Select:
-                - name
-                - get_attr:
-                  - NovaCompute3
-                  - show
-              - list_join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - get_attr:
-                      - NovaCompute3
-                      - show
-                  - local
-          - list_join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute4
-                    - networks
-              - Fn::Select:
-                - name
-                - get_attr:
-                  - NovaCompute4
-                  - show
-              - list_join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - get_attr:
-                      - NovaCompute4
-                      - show
-                  - local
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute3Key
-          path: NovaCompute3Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute3Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute3Key:
-    properties:
-      UserName:
-        get_param: ComputeUser
-    type: AWS::IAM::AccessKey
-  NovaCompute4:
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute4Key
-          path: NovaCompute4Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute4Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    properties:
-      image:
-        get_param: ComputeImage
-    type: OS::Nova::Server
-  NovaCompute4CompletionCondition:
-    depends_on: notcompute
-    properties:
-      Count: '1'
-      Handle:
-        get_resource: NovaCompute4CompletionHandle
-      Timeout: '1800'
-    type: AWS::CloudFormation::WaitCondition
-  NovaCompute4CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute4Config:
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute4CompletionHandle
-      hosts:
-        list_join:
-        - '
-
-          '
-        - - list_join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute0
-                    - networks
-              - Fn::Select:
-                - name
-                - get_attr:
-                  - NovaCompute0
-                  - show
-              - list_join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - get_attr:
-                      - NovaCompute0
-                      - show
-                  - local
-          - list_join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute3
-                    - networks
-              - Fn::Select:
-                - name
-                - get_attr:
-                  - NovaCompute3
-                  - show
-              - list_join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - get_attr:
-                      - NovaCompute3
-                      - show
-                  - local
-          - list_join:
-            - ' '
-            - - Fn::Select:
-                - 0
-                - Fn::Select:
-                  - ctlplane
-                  - get_attr:
-                    - NovaCompute4
-                    - networks
-              - Fn::Select:
-                - name
-                - get_attr:
-                  - NovaCompute4
-                  - show
-              - list_join:
-                - .
-                - - Fn::Select:
-                    - name
-                    - get_attr:
-                      - NovaCompute4
-                      - show
-                  - local
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute4Key
-          path: NovaCompute4Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute4Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute4Key:
-    properties:
-      UserName:
-        get_param: ComputeUser
-    type: AWS::IAM::AccessKey
diff --git a/examples/scale_result.yaml b/examples/scale_result.yaml
deleted file mode 100644 (file)
index 5b28684..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-Description: examples/scale1.yaml
-HeatTemplateFormatVersion: '2012-12-12'
-Resources:
-  ComputeUser:
-    Properties:
-      Policies:
-      - Ref: ComputeAccessPolicy
-    Type: AWS::IAM::User
-  GlobalAccessPolicy:
-    Type: OS::Heat::AccessPolicy
-  NovaCompute0:
-    Metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute0Key
-          path: NovaCompute0Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute0Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-    Properties:
-      image:
-        Ref: ComputeImage
-    Type: OS::Nova::Server
-  NovaCompute0CompletionCondition:
-    DependsOn: notcompute
-    Properties:
-      Count: '1'
-      Handle:
-        Ref: NovaCompute0CompletionHandle
-      Timeout: '1800'
-    Type: AWS::CloudFormation::WaitCondition
-  NovaCompute0CompletionHandle:
-    Type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute0Config:
-    Metadata:
-      completion-handle:
-        Ref: NovaCompute0CompletionHandle
-      neutron:
-        ovs:
-          local_ip:
-            Fn::Select:
-            - 0
-            - Fn::Select:
-              - ctlplane
-              - Fn::GetAtt:
-                - NovaCompute0
-                - networks
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute0Key
-          path: NovaCompute0Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute0Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-      rabbit:
-        password: guest
-        username: guest
-    Type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute0Key:
-    Properties:
-      UserName:
-        Ref: ComputeUser
-    Type: AWS::IAM::AccessKey
-  NovaCompute1:
-    Metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute1Key
-          path: NovaCompute1Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute1Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-    Properties:
-      image:
-        Ref: ComputeImage
-    Type: OS::Nova::Server
-  NovaCompute1CompletionCondition:
-    DependsOn: notcompute
-    Properties:
-      Count: '1'
-      Handle:
-        Ref: NovaCompute1CompletionHandle
-      Timeout: '1800'
-    Type: AWS::CloudFormation::WaitCondition
-  NovaCompute1CompletionHandle:
-    Type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute1Config:
-    Metadata:
-      completion-handle:
-        Ref: NovaCompute1CompletionHandle
-      neutron:
-        ovs:
-          local_ip:
-            Fn::Select:
-            - 0
-            - Fn::Select:
-              - ctlplane
-              - Fn::GetAtt:
-                - NovaCompute1
-                - networks
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute1Key
-          path: NovaCompute1Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute1Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-      rabbit:
-        password: guest
-        username: guest
-    Type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute1Key:
-    Properties:
-      UserName:
-        Ref: ComputeUser
-    Type: AWS::IAM::AccessKey
-  NovaCompute2:
-    Metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute2Key
-          path: NovaCompute2Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute2Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-    Properties:
-      image:
-        Ref: ComputeImage
-    Type: OS::Nova::Server
-  NovaCompute2CompletionCondition:
-    DependsOn: notcompute
-    Properties:
-      Count: '1'
-      Handle:
-        Ref: NovaCompute2CompletionHandle
-      Timeout: '1800'
-    Type: AWS::CloudFormation::WaitCondition
-  NovaCompute2CompletionHandle:
-    Type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute2Config:
-    Metadata:
-      completion-handle:
-        Ref: NovaCompute2CompletionHandle
-      neutron:
-        ovs:
-          local_ip:
-            Fn::Select:
-            - 0
-            - Fn::Select:
-              - ctlplane
-              - Fn::GetAtt:
-                - NovaCompute2
-                - networks
-      os-collect-config:
-        cfn:
-          access_key_id:
-            Ref: NovaCompute2Key
-          path: NovaCompute2Config.Metadata
-          secret_access_key:
-            Fn::GetAtt:
-            - NovaCompute2Key
-            - SecretAccessKey
-          stack_name:
-            Ref: AWS::StackName
-      rabbit:
-        password: guest
-        username: guest
-    Type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute2Key:
-    Properties:
-      UserName:
-        Ref: ComputeUser
-    Type: AWS::IAM::AccessKey
diff --git a/examples/scale_result_hot.yaml b/examples/scale_result_hot.yaml
deleted file mode 100644 (file)
index a1b2709..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-description: examples/scale1_hot.yaml
-heat_template_version: '2014-10-16'
-resources:
-  ComputeUser:
-    properties:
-      Policies:
-      - get_param: ComputeAccessPolicy
-    type: AWS::IAM::User
-  GlobalAccessPolicy:
-    type: OS::Heat::AccessPolicy
-  NovaCompute0:
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute0Key
-          path: NovaCompute0Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute0Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    properties:
-      image:
-        get_param: ComputeImage
-    type: OS::Nova::Server
-  NovaCompute0CompletionCondition:
-    depends_on: notcompute
-    properties:
-      Count: '1'
-      Handle:
-        get_resource: NovaCompute0CompletionHandle
-      Timeout: '1800'
-    type: AWS::CloudFormation::WaitCondition
-  NovaCompute0CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute0Config:
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute0CompletionHandle
-      neutron:
-        ovs:
-          local_ip:
-            get_attr:
-            - NovaCompute0
-            - networks
-            - ctlplane
-            - 0
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute0Key
-          path: NovaCompute0Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute0Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-      rabbit:
-        password: guest
-        username: guest
-    type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute0Key:
-    properties:
-      UserName:
-        get_param: ComputeUser
-    type: AWS::IAM::AccessKey
-  NovaCompute1:
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute1Key
-          path: NovaCompute1Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute1Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    properties:
-      image:
-        get_param: ComputeImage
-    type: OS::Nova::Server
-  NovaCompute1CompletionCondition:
-    depends_on: notcompute
-    properties:
-      Count: '1'
-      Handle:
-        get_resource: NovaCompute1CompletionHandle
-      Timeout: '1800'
-    type: AWS::CloudFormation::WaitCondition
-  NovaCompute1CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute1Config:
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute1CompletionHandle
-      neutron:
-        ovs:
-          local_ip:
-            get_attr:
-            - NovaCompute1
-            - networks
-            - ctlplane
-            - 0
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute1Key
-          path: NovaCompute1Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute1Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-      rabbit:
-        password: guest
-        username: guest
-    type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute1Key:
-    properties:
-      UserName:
-        get_param: ComputeUser
-    type: AWS::IAM::AccessKey
-  NovaCompute2:
-    metadata:
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute2Key
-          path: NovaCompute2Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute2Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-    properties:
-      image:
-        get_param: ComputeImage
-    type: OS::Nova::Server
-  NovaCompute2CompletionCondition:
-    depends_on: notcompute
-    properties:
-      Count: '1'
-      Handle:
-        get_resource: NovaCompute2CompletionHandle
-      Timeout: '1800'
-    type: AWS::CloudFormation::WaitCondition
-  NovaCompute2CompletionHandle:
-    type: AWS::CloudFormation::WaitConditionHandle
-  NovaCompute2Config:
-    metadata:
-      completion-handle:
-        get_resource: NovaCompute2CompletionHandle
-      neutron:
-        ovs:
-          local_ip:
-            get_attr:
-            - NovaCompute2
-            - networks
-            - ctlplane
-            - 0
-      os-collect-config:
-        cfn:
-          access_key_id:
-            get_resource: NovaCompute2Key
-          path: NovaCompute2Config.Metadata
-          secret_access_key:
-            get_attr:
-            - NovaCompute2Key
-            - SecretAccessKey
-          stack_name:
-            get_param: AWS::StackName
-      rabbit:
-        password: guest
-        username: guest
-    type: AWS::AutoScaling::LaunchConfiguration
-  NovaCompute2Key:
-    properties:
-      UserName:
-        get_param: ComputeUser
-    type: AWS::IAM::AccessKey
diff --git a/examples/source.yaml b/examples/source.yaml
deleted file mode 100644 (file)
index 88f0bde..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
-  SourceImage:
-    Type: String
-    Default: my_image
-Resources:
-  A:
-    Type: OS::Nova::Server
-    Properties:
-      image: {Ref: SourceImage}
-  B:
-    Type: FileInclude
-    Path: examples/lib.yaml
-    SubKey: Resources.GenericB
-    Parameters:
-      ImportantValue: {'Fn::Join': [ '', ['one', 'two', 'three']]}
diff --git a/examples/source2.yaml b/examples/source2.yaml
deleted file mode 100644 (file)
index f59f85e..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-__include__:
-  path: examples/lib.yaml
-  params:
-    ImportantValue: Foo
diff --git a/examples/source2_hot.yaml b/examples/source2_hot.yaml
deleted file mode 100644 (file)
index e3861a6..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-__include__:
-  path: examples/lib_hot.yaml
-  params:
-    ImportantValue: Foo
diff --git a/examples/source2_lib_result.yaml b/examples/source2_lib_result.yaml
deleted file mode 100644 (file)
index 172dce0..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: examples/source2.yaml
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
-  BImage:
-    Type: String
-  ImportantValue:
-    Default: a_default
-    Type: String
-Resources:
-  GenericB:
-    Metadata:
-      my_meta: Foo
-    Properties:
-      image:
-        Ref: BImage
-    Type: OS::Nova::Server
diff --git a/examples/source2_lib_result_hot.yaml b/examples/source2_lib_result_hot.yaml
deleted file mode 100644 (file)
index 294fed8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-description: examples/source2_hot.yaml
-heat_template_version: '2014-10-16'
-parameters:
-  BImage:
-    type: string
-  ImportantValue:
-    default: a_default
-    type: string
-resources:
-  GenericB:
-    metadata:
-      my_meta: Foo
-    properties:
-      image:
-        get_param: BImage
-    type: OS::Nova::Server
diff --git a/examples/source_hot.yaml b/examples/source_hot.yaml
deleted file mode 100644 (file)
index 1531488..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-heat_template_version: 2014-10-16
-parameters:
-  SourceImage:
-    type: string
-    default: my_image
-resources:
-  A:
-    type: OS::Nova::Server
-    properties:
-      image: {get_param: SourceImage}
-  B:
-    type: FileInclude
-    Path: examples/lib_hot.yaml
-    SubKey: resources.GenericB
-    parameters:
-      ImportantValue: {"Fn::Join": [ '', ['one', 'two', 'three']]}
diff --git a/examples/source_include_subkey.yaml b/examples/source_include_subkey.yaml
deleted file mode 100644 (file)
index 37591d8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
-  Foo:
-    Type: String
-Resources:
-  __include__:
-    path: examples/lib.yaml
-    subkey: Resources
-    params:
-      BImage:
-        Ref: Foo
diff --git a/examples/source_include_subkey_hot.yaml b/examples/source_include_subkey_hot.yaml
deleted file mode 100644 (file)
index 8970db4..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-heat_template_version: 2014-10-16
-parameters:
-  Foo:
-    type: string
-resources:
-  __include__:
-    path: examples/lib_hot.yaml
-    subkey: resources
-    params:
-      BImage:
-        get_param: Foo
diff --git a/examples/source_include_subkey_result.yaml b/examples/source_include_subkey_result.yaml
deleted file mode 100644 (file)
index 641e814..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-Description: examples/source_include_subkey.yaml
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
-  Foo:
-    Type: String
-Resources:
-  GenericB:
-    Metadata:
-      my_meta:
-        Ref: ImportantValue
-    Properties:
-      image:
-        Ref: Foo
-    Type: OS::Nova::Server
diff --git a/examples/source_include_subkey_result_hot.yaml b/examples/source_include_subkey_result_hot.yaml
deleted file mode 100644 (file)
index ec3bfb6..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-description: examples/source_include_subkey_hot.yaml
-heat_template_version: '2014-10-16'
-parameters:
-  Foo:
-    type: string
-resources:
-  GenericB:
-    metadata:
-      my_meta:
-        get_param: ImportantValue
-    properties:
-      image:
-        get_param: Foo
-    type: OS::Nova::Server
diff --git a/examples/source_lib_result.yaml b/examples/source_lib_result.yaml
deleted file mode 100644 (file)
index 5844c81..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-Description: examples/source.yaml
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
-  SourceImage:
-    Default: my_image
-    Type: String
-Resources:
-  A:
-    Properties:
-      image:
-        Ref: SourceImage
-    Type: OS::Nova::Server
-  B:
-    Metadata:
-      my_meta:
-        Fn::Join:
-        - ''
-        - - one
-          - two
-          - three
-    Properties:
-      image:
-        Ref: BImage
-    Type: OS::Nova::Server
diff --git a/examples/source_lib_result_hot.yaml b/examples/source_lib_result_hot.yaml
deleted file mode 100644 (file)
index 0235f20..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-description: examples/source_hot.yaml
-heat_template_version: '2014-10-16'
-parameters:
-  SourceImage:
-    default: my_image
-    type: string
-resources:
-  A:
-    properties:
-      image:
-        get_param: SourceImage
-    type: OS::Nova::Server
-  B:
-    metadata:
-      my_meta:
-        list_join:
-        - ''
-        - - one
-          - two
-          - three
-    properties:
-      image:
-        get_param: BImage
-    type: OS::Nova::Server
index 3d4c772..eaeb7ef 100755 (executable)
@@ -8,6 +8,7 @@
 #   command_arguments - yum command arguments, defaults to ""
 
 echo "Started yum_update.sh on server $deploy_server_id at `date`"
+echo -n "false" > $heat_outputs_path.update_managed_packages
 
 if [[ -z "$update_identifier" ]]; then
     echo "Not running due to unset update_identifier"
@@ -20,6 +21,9 @@ mkdir -p $timestamp_dir
 # sanitise to remove unusual characters
 update_identifier=${update_identifier//[^a-zA-Z0-9-_]/}
 
+# seconds to wait for this node to rejoin the cluster after update
+cluster_start_timeout=360
+
 timestamp_file="$timestamp_dir/$update_identifier"
 if [[ -a "$timestamp_file" ]]; then
     echo "Not running for already-run timestamp \"$update_identifier\""
@@ -27,6 +31,28 @@ if [[ -a "$timestamp_file" ]]; then
 fi
 touch "$timestamp_file"
 
+command_arguments=${command_arguments:-}
+
+list_updates=$(yum list updates)
+
+if [[ "$list_updates" == "" ]]; then
+    echo "No packages require updating"
+    exit 0
+fi
+
+pacemaker_status=$(systemctl is-active pacemaker)
+
+if [[ "$pacemaker_status" == "active" ]] ; then
+    echo "Pacemaker running, stopping cluster node and doing full package update"
+    pcs cluster stop
+else
+    echo "Excluding upgrading packages that are handled by config management tooling"
+    command_arguments="$command_arguments --skip-broken"
+    for exclude in $(cat /var/lib/tripleo/installed-packages/* | sort -u); do
+        command_arguments="$command_arguments --exclude $exclude"
+    done
+fi
+
 command=${command:-update}
 full_command="yum -y $command $command_arguments"
 echo "Running: $full_command"
@@ -36,6 +62,27 @@ return_code=$?
 echo "$result"
 echo "yum return code: $return_code"
 
+if [[ "$pacemaker_status" == "active" ]] ; then
+    echo "Starting cluster node"
+    pcs cluster start
+
+    hostname=$(hostname -s)
+    tstart=$(date +%s)
+    while [[ "$(pcs status | grep "^Online" | grep -F -o $hostname)" == "" ]]; do
+        sleep 5
+        tnow=$(date +%s)
+        if (( tnow-tstart > cluster_start_timeout )) ; then
+            echo "ERROR $hostname failed to join cluster in $cluster_start_timeout seconds"
+            pcs status
+            exit 1
+        fi
+    done
+    pcs status
+
+else
+    echo -n "true" > $heat_outputs_path.update_managed_packages
+fi
+
 echo "Finished yum_update.sh on server $deploy_server_id at `date`"
 
 exit $return_code
index e918149..d313ca9 100644 (file)
@@ -20,7 +20,10 @@ resources:
       - name: command_arguments
         description: yum command arguments, defaults to ""
         default: ''
+      outputs:
+      - name: update_managed_packages
+        description: boolean value indicating whether to upgrade managed packages
 
 outputs:
   OS::stack_id:
-    value: {get_resource: config}
\ No newline at end of file
+    value: {get_resource: config}
diff --git a/nagios3.yaml b/nagios3.yaml
deleted file mode 100644 (file)
index e2ba8cc..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-# Copyright 2014 Hewlett-Packard Development Company, L.P.
-#
-# 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.
-#
-heat_template_version: 2013-05-23
-description: Deploy Nagios
-parameters:
-  adm_web_passwd:
-    type: string
-    description: Password for initial admin user
-    hidden: true
-  external_network:
-    type: string
-    description: Network to attach floating ips to.
-    default: ext-net
-  flavor:
-    type: string
-    description: What flavor to use for the nagios server.
-    default: m1.small
-  image:
-    type: string
-    description: Image for Nagios.
-    default: nagios
-  key_name:
-    type: string
-    description: What Nova SSH key to use for the nagios server.
-    default: default
-  monitor_networks:
-    type: json
-    description: Neutron networks to monitor.
-    default: []
-  nova_os_auth_url:
-    type: string
-    default: ''
-    description: URL for Keystone to access Nova.
-  nova_os_password:
-    type: string
-    hidden: true
-    description: password to present to nova_host_ip.
-    default: ''
-  nova_os_username:
-    type: string
-    description: username to present to nova_host_ip.
-    default: ''
-  nova_os_tenant_name:
-    type: string
-    description: tenant name to present to nova_host_ip.
-    default: ''
-  server_network:
-    type: string
-    description: Network id for server.
-    default: default-net
-resources:
-  nagios_config:
-    type: OS::Heat::StructuredConfig
-    properties:
-      config:
-        nagios3:
-          adm_web_passwd: { get_input: adm_web_passwd }
-          os_auth_url: { get_input: nova_os_auth_url }
-          os_password: { get_input: nova_os_password }
-          os_username: { get_input: nova_os_username }
-          os_tenant_name: { get_input: nova_os_tenant_name }
-          monitor_networks: { get_input: monitor_networks }
-        completion-signal: { get_input: deploy_signal_id }
-  nagios_security_group:
-    type: OS::Neutron::SecurityGroup
-    properties:
-      name: monitoring
-      rules:
-        - direction: ingress
-          port_range_max: 22
-          port_range_min: 22
-          protocol: tcp
-        - direction: ingress
-          port_range_max: 80
-          port_range_min: 80
-          protocol: tcp
-        - direction: ingress
-          protocol: icmp
-        - direction: egress
-          protocol: tcp
-        - direction: egress
-          protocol: udp
-        - direction: egress
-          protocol: icmp
-  nagios_net_port:
-    type: OS::Neutron::Port
-    properties:
-      network_id: { get_param: server_network }
-      security_groups: [ { get_resource: nagios_security_group } ]
-  nagios_server:
-    type: OS::Nova::Server
-    properties:
-      flavor: { get_param: flavor }
-      image: { get_param: image }
-      key_name: { get_param: key_name }
-      networks:
-        - network: { get_param: server_network }
-          port: { get_resource: nagios_net_port }
-      user_data_format: SOFTWARE_CONFIG
-      user_data: {get_resource: NodeUserData}
-
-  NodeUserData:
-    type: OS::TripleO::NodeUserData
-
-  nagios_floating_ip:
-    type: OS::Neutron::FloatingIP
-    properties:
-      floating_network_id: { get_param: external_network }
-      port_id: { get_resource: nagios_net_port }
-  nagios_deploy:
-    type: OS::Heat::StructuredDeployment
-    properties:
-      server: { get_resource: nagios_server }
-      config: { get_resource: nagios_config }
-      input_values:
-        adm_web_passwd: { get_param: adm_web_passwd }
-        nova_os_auth_url: { get_param: nova_os_auth_url }
-        nova_os_password: { get_param: nova_os_password }
-        nova_os_username: { get_param: nova_os_username }
-        nova_os_tenant_name: { get_param: nova_os_tenant_name }
-        monitor_networks: { get_param: monitor_networks }
-outputs:
-  nagios_address:
-    description: Address of Nagios admin interface.
-    value: { get_attr: [ nagios_floating_ip, floating_ip_address ] }
index 38b483b..52c8f89 100644 (file)
@@ -36,6 +36,10 @@ parameters:
   ControlPlaneDefaultRoute: # Override this via parameter_defaults
     description: The default route of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -52,6 +56,7 @@ resources:
               type: ovs_bridge
               name: {get_input: bridge_name}
               use_dhcp: false
+              dns_servers: {get_param: DnsServers}
               addresses:
                 -
                   ip_netmask:
index cffc06f..620d1f7 100644 (file)
@@ -49,6 +49,10 @@ parameters:
   ControlPlaneDefaultRoute: # Override this via parameter_defaults
     description: The default route of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -65,6 +69,7 @@ resources:
               type: interface
               name: nic1
               use_dhcp: false
+              dns_servers: {get_param: DnsServers}
               addresses:
                 -
                   ip_netmask:
index 894d598..f4c6de8 100644 (file)
@@ -53,6 +53,10 @@ parameters:
   ControlPlaneDefaultRoute: # Override this via parameter_defaults
     description: The default route of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -69,6 +73,7 @@ resources:
               type: interface
               name: nic1
               use_dhcp: false
+              dns_servers: {get_param: DnsServers}
               addresses:
                 -
                   ip_netmask:
index 7c79cd1..8cb3705 100644 (file)
@@ -53,6 +53,10 @@ parameters:
   ControlPlaneDefaultRoute: # Override this via parameter_defaults
     description: The default route of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -69,6 +73,7 @@ resources:
               type: interface
               name: nic1
               use_dhcp: false
+              dns_servers: {get_param: DnsServers}
               addresses:
                 -
                   ip_netmask:
index cd1961a..4290be2 100644 (file)
@@ -63,6 +63,10 @@ parameters:
     default: '24'
     description: The subnet CIDR of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -93,6 +97,7 @@ resources:
             -
               type: ovs_bridge
               name: {get_input: bridge_name}
+              dns_servers: {get_param: DnsServers}
               members:
                 -
                   type: ovs_bond
index f182bae..f6b2a69 100644 (file)
@@ -53,6 +53,10 @@ parameters:
   ControlPlaneDefaultRoute: # Override this via parameter_defaults
     description: The default route of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -69,6 +73,7 @@ resources:
               type: interface
               name: nic1
               use_dhcp: false
+              dns_servers: {get_param: DnsServers}
               addresses:
                 -
                   ip_netmask:
index ddb4163..5148c52 100644 (file)
@@ -44,6 +44,10 @@ parameters:
   ControlPlaneDefaultRoute: # Override this via parameter_defaults
     description: The default route of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -60,6 +64,7 @@ resources:
               type: ovs_bridge
               name: br-storage
               use_dhcp: false
+              dns_servers: {get_param: DnsServers}
               addresses:
                 -
                   ip_netmask:
index 4b2a575..e79a9f4 100644 (file)
@@ -48,6 +48,10 @@ parameters:
   ControlPlaneDefaultRoute: # Override this via parameter_defaults
     description: The default route of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -64,6 +68,7 @@ resources:
               type: ovs_bridge
               name: br-storage
               use_dhcp: false
+              dns_servers: {get_param: DnsServers}
               addresses:
                 -
                   ip_netmask:
index dc8d685..4e93b31 100644 (file)
@@ -48,6 +48,10 @@ parameters:
   ControlPlaneDefaultRoute: # Override this via parameter_defaults
     description: The default route of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -64,6 +68,7 @@ resources:
               type: ovs_bridge
               name: {get_input: bridge_name}
               use_dhcp: false
+              dns_servers: {get_param: DnsServers}
               addresses:
                 -
                   ip_netmask:
index c0f4132..3c536d6 100644 (file)
@@ -57,6 +57,10 @@ parameters:
     default: '24'
     description: The subnet CIDR of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -73,6 +77,7 @@ resources:
               type: ovs_bridge
               name: {get_input: bridge_name}
               use_dhcp: false
+              dns_servers: {get_param: DnsServers}
               addresses:
                 -
                   ip_netmask:
index 5a308df..83b3304 100644 (file)
@@ -48,6 +48,10 @@ parameters:
   ControlPlaneDefaultRoute: # Override this via parameter_defaults
     description: The default route of the control plane network.
     type: string
+  DnsServers: # Override this via parameter_defaults
+    default: []
+    description: A list of DNS servers (2 max for some implementations) that will be added to resolv.conf.
+    type: comma_delimited_list
   EC2MetadataIp: # Override this via parameter_defaults
     description: The IP address of the EC2 metadata server.
     type: string
@@ -64,6 +68,7 @@ resources:
               type: ovs_bridge
               name: br-storage
               use_dhcp: false
+              dns_servers: {get_param: DnsServers}
               addresses:
                 -
                   ip_netmask:
similarity index 100%
rename from compute.yaml
rename to os-apply-config/compute.yaml
index dd7e1a1..d6eb97f 100644 (file)
@@ -1,23 +1,23 @@
 resource_registry:
-  OS::TripleO::BlockStorage: cinder-storage.yaml
+  OS::TripleO::BlockStorage: os-apply-config/cinder-storage.yaml
   OS::TripleO::BlockStorage::Net::SoftwareConfig: net-config-noop.yaml
-  OS::TripleO::Compute: compute.yaml
+  OS::TripleO::Compute: os-apply-config/compute.yaml
   OS::TripleO::Compute::Net::SoftwareConfig: net-config-noop.yaml
   OS::TripleO::SoftwareDeployment: OS::Heat::StructuredDeployment
-  OS::TripleO::Controller: controller.yaml
+  OS::TripleO::Controller: os-apply-config/controller.yaml
   OS::TripleO::Controller::Net::SoftwareConfig: net-config-noop.yaml
-  OS::TripleO::ObjectStorage: swift-storage.yaml
+  OS::TripleO::ObjectStorage: os-apply-config/swift-storage.yaml
   OS::TripleO::ObjectStorage::Net::SoftwareConfig: net-config-noop.yaml
-  OS::TripleO::CephStorage: ceph-storage.yaml
+  OS::TripleO::CephStorage: os-apply-config/ceph-storage.yaml
   OS::TripleO::CephStorage::Net::SoftwareConfig: net-config-noop.yaml
-  OS::TripleO::ControllerPostDeployment: controller-post.yaml
-  OS::TripleO::ComputePostDeployment: compute-post.yaml
-  OS::TripleO::ObjectStoragePostDeployment: swift-storage-post.yaml
-  OS::TripleO::BlockStoragePostDeployment: cinder-storage-post.yaml
-  OS::TripleO::CephStoragePostDeployment: ceph-storage-post.yaml
-  OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig: swift-devices-and-proxy-config.yaml
-  OS::TripleO::CephClusterConfig::SoftwareConfig: ceph-cluster-config.yaml
-  OS::TripleO::AllNodes::SoftwareConfig: all-nodes-config.yaml
+  OS::TripleO::ControllerPostDeployment: os-apply-config/controller-post.yaml
+  OS::TripleO::ComputePostDeployment: os-apply-config/compute-post.yaml
+  OS::TripleO::ObjectStoragePostDeployment: os-apply-config/swift-storage-post.yaml
+  OS::TripleO::BlockStoragePostDeployment: os-apply-config/cinder-storage-post.yaml
+  OS::TripleO::CephStoragePostDeployment: os-apply-config/ceph-storage-post.yaml
+  OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig: os-apply-config/swift-devices-and-proxy-config.yaml
+  OS::TripleO::CephClusterConfig::SoftwareConfig: os-apply-config/ceph-cluster-config.yaml
+  OS::TripleO::AllNodes::SoftwareConfig: os-apply-config/all-nodes-config.yaml
   OS::TripleO::BootstrapNode::SoftwareConfig: bootstrap-config.yaml
   OS::TripleO::NodeUserData: firstboot/userdata_default.yaml
   OS::TripleO::NodeExtraConfigPost: extraconfig/post_deploy/default.yaml
@@ -31,7 +31,7 @@ resource_registry:
 
   # TripleO overcloud networks
   OS::TripleO::Network: network/networks.yaml
-  OS::TripleO::VipConfig: vip-config.yaml
+  OS::TripleO::VipConfig: os-apply-config/vip-config.yaml
 
   OS::TripleO::Network::External: network/noop.yaml
   OS::TripleO::Network::InternalApi: network/noop.yaml
@@ -73,4 +73,4 @@ resource_registry:
   OS::TripleO::Controller::Ports::RedisVipPort: network/ports/noop.yaml
 
   # validation resources
-  OS::TripleO::AllNodes::Validation: all-nodes-validation.yaml
+  OS::TripleO::AllNodes::Validation: os-apply-config/all-nodes-validation.yaml
index 4b065dd..7fdba56 100644 (file)
@@ -845,6 +845,7 @@ resources:
           ServiceNetMap: {get_param: ServiceNetMap}
           HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
           GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
+          GlanceRegistryVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
           MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
           KeystoneAdminApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
           KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
index 478cbf2..7529459 100644 (file)
@@ -139,6 +139,7 @@ resources:
             params:
               server: {get_param: NtpServer}
         enable_package_install: {get_param: EnablePackageInstall}
+        enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
         ceph_cluster_network: {get_attr: [NetIpSubnetMap, net_ip_subnet_map, {get_param: [ServiceNetMap, CephClusterNetwork]}]}
         ceph_public_network: {get_attr: [NetIpSubnetMap, net_ip_subnet_map, {get_param: [ServiceNetMap, CephPublicNetwork]}]}
 
@@ -169,6 +170,7 @@ resources:
               mapped_data:
                 ntp::servers: {get_input: ntp_servers}
                 tripleo::packages::enable_install: {get_input: enable_package_install}
+                tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
                 ceph::profile::params::cluster_network: {get_input: ceph_cluster_network}
                 ceph::profile::params::public_network: {get_input: ceph_public_network}
 
@@ -224,3 +226,4 @@ outputs:
       - ','
       - - {get_attr: [CephStorageDeployment, deploy_stdout]}
         - {get_attr: [CephStorageExtraConfigPre, deploy_stdout]}
+        - {get_param: UpdateIdentifier}
index bf024aa..972523a 100644 (file)
@@ -217,6 +217,7 @@ resources:
             params:
               server: {get_param: NtpServer}
         enable_package_install: {get_param: EnablePackageInstall}
+        enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
 
   # Map heat metadata into hiera datafiles
   BlockStorageConfig:
@@ -258,6 +259,7 @@ resources:
                 cinder::glance::glance_api_servers: {get_input: glance_api_servers}
                 ntp::servers: {get_input: ntp_servers}
                 tripleo::packages::enable_install: {get_input: enable_package_install}
+                tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
                 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
                 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
 
@@ -304,4 +306,8 @@ outputs:
     value: {get_attr: [StorageMgmtPort, ip_address]}
   config_identifier:
     description: identifier which changes if the node configuration may need re-applying
-    value: {get_attr: [BlockStorageDeployment, deploy_stdout]}
+    value:
+      list_join:
+        - ''
+        - - {get_attr: [BlockStorageDeployment, deploy_stdout]}
+          - {get_param: UpdateIdentifier}
index cac37d7..bdee93d 100644 (file)
@@ -360,6 +360,7 @@ resources:
             - all_nodes # provided by allNodesConfig
             - '"%{::osfamily}"'
             - common
+            - cisco_n1kv_data  # Optionally provided by ComputeExtraConfigPre
           datafiles:
             compute_extraconfig:
               mapped_data: {get_param: NovaComputeExtraConfig}
@@ -429,6 +430,7 @@ resources:
                 admin_password: {get_input: admin_password}
                 ntp::servers: {get_input: ntp_servers}
                 tripleo::packages::enable_install: {get_input: enable_package_install}
+                tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
 
   NovaComputeDeployment:
     type: OS::TripleO::SoftwareDeployment
@@ -544,6 +546,7 @@ resources:
             params:
               server: {get_param: NtpServer}
         enable_package_install: {get_param: EnablePackageInstall}
+        enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
 
   # Hook for site-specific additional pre-deployment config, e.g extra hieradata
   ComputeExtraConfigPre:
@@ -608,3 +611,4 @@ outputs:
       - ','
       - - {get_attr: [NovaComputeDeployment, deploy_stdout]}
         - {get_attr: [ComputeExtraConfigPre, deploy_stdout]}
+        - {get_param: UpdateIdentifier}
index bd9cfad..3b7ec7e 100644 (file)
@@ -505,6 +505,9 @@ parameters:
   GlanceApiVirtualIP:
     type: string
     default: ''
+  GlanceRegistryVirtualIP:
+    type: string
+    default: ''
   MysqlVirtualIP:
     type: string
     default: ''
@@ -888,6 +891,7 @@ resources:
         swift_min_part_hours: {get_param: SwiftMinPartHours}
         swift_mount_check: {get_param: SwiftMountCheck}
         enable_package_install: {get_param: EnablePackageInstall}
+        enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
         swift_proxy_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftProxyNetwork]}]}
         swift_management_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]}
         cinder_iscsi_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CinderIscsiNetwork]}]}
@@ -902,6 +906,7 @@ resources:
               - {get_param: GlanceApiVirtualIP}
               - ':'
               - {get_param: GlancePort}
+        glance_registry_host: {get_param: GlanceRegistryVirtualIP}
         heat_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
         keystone_public_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]}
         keystone_admin_api_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, KeystoneAdminApiNetwork]}]}
@@ -948,6 +953,7 @@ resources:
             - cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
             - neutron_bigswitch_data # Optionally provided by ControllerExtraConfigPre
             - neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
+            - cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
           datafiles:
             controller_extraconfig:
               mapped_data: {get_param: ControllerExtraConfig}
@@ -1019,7 +1025,7 @@ resources:
                 glance::api::bind_host: {get_input: glance_api_network}
                 glance::api::auth_uri: {get_input: keystone_auth_uri}
                 glance::api::identity_uri: {get_input: keystone_identity_uri}
-                glance::api::registry_host: {get_input: glance_registry_network}
+                glance::api::registry_host: {get_input: glance_registry_host}
                 glance::api::keystone_password: {get_input: glance_password}
                 glance::api::debug: {get_input: debug}
                 glance_notifier_strategy: {get_input: glance_notifier_strategy}
@@ -1028,7 +1034,7 @@ resources:
                 glance::api::database_connection: {get_input: glance_dsn}
                 glance::registry::keystone_password: {get_input: glance_password}
                 glance::registry::database_connection: {get_input: glance_dsn}
-                glance::registry::bind_host: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, GlanceRegistryNetwork]}]}
+                glance::registry::bind_host: {get_input: glance_registry_network}
                 glance::registry::auth_uri: {get_input: keystone_auth_uri}
                 glance::registry::identity_uri: {get_input: keystone_identity_uri}
                 glance::registry::debug: {get_input: debug}
@@ -1196,6 +1202,7 @@ resources:
                 tripleo::loadbalancer::control_virtual_interface: {get_input: control_virtual_interface}
                 tripleo::loadbalancer::public_virtual_interface: {get_input: public_virtual_interface}
                 tripleo::packages::enable_install: {get_input: enable_package_install}
+                tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
 
   # Hook for site-specific additional pre-deployment config, e.g extra hieradata
   ControllerExtraConfigPre:
@@ -1285,6 +1292,7 @@ outputs:
     description: identifier which changes if the controller configuration may need re-applying
     value:
       list_join:
-      - ','
-      - - {get_attr: [ControllerDeployment, deploy_stdout]}
-        - {get_attr: [ControllerExtraConfigPre, deploy_stdout]}
+        - ','
+        - - {get_attr: [ControllerDeployment, deploy_stdout]}
+          - {get_attr: [ControllerExtraConfigPre, deploy_stdout]}
+          - {get_param: UpdateIdentifier}
diff --git a/puppet/extraconfig/pre_deploy/controller/neutron-ml2-cisco-n1kv.yaml b/puppet/extraconfig/pre_deploy/controller/neutron-ml2-cisco-n1kv.yaml
new file mode 100644 (file)
index 0000000..5985116
--- /dev/null
@@ -0,0 +1,174 @@
+heat_template_version: 2015-04-30
+
+description: Configure hieradata for Cisco N1KV configuration
+
+parameters:
+  server:
+    description: ID of the controller node to apply this config to
+    type: string
+
+  # Config specific parameters, to be provided via parameter_defaults
+  N1000vVSMIP:
+    type: string
+    default: '192.0.2.50'
+  N1000vVSMDomainID:
+    type: number
+    default: 100
+  N1000vVSMIPV6:
+    type: string
+    default: '::1'
+  N1000vVEMHostMgmtIntf:
+    type: string
+    default: 'br-ex'
+  N1000vUplinkProfile:
+    type: string
+    default: '{eth1: system-uplink,}'
+  N1000vVtepConfig:
+    type: string
+    default: '{}'
+  N1000vVEMSource:
+    type: string
+    default: ''
+  N1000vVEMVersion:
+    type: string
+    default: ''
+  N1000vPortDB:
+    type: string
+    default: 'ovs'
+  N1000vVtepsInSameSub:
+    type: boolean
+    default: false
+  N1000vVEMFastpathFlood:
+    type: string
+    default: 'enable'
+#VSM Puppet Parameter
+  N1000vVSMSource:
+    type: string
+    default: ''
+  N1000vVSMVersion:
+    type: string
+    default: 'latest'
+  N1000vVSMHostMgmtIntf:
+    type: string
+    default: 'br-ex'
+  N1000vVSMRole:
+    type: string
+    default: 'primary'
+  N1000vVSMPassword:
+    type: string
+    default: 'Password'
+  N1000vMgmtNetmask:
+    type: string
+    default: '255.255.255.0'
+  N1000vMgmtGatewayIP:
+    type: string
+    default: '192.0.2.1'
+  N1000vPacemakerControl:
+    type: boolean
+    default: true
+  N1000vExistingBridge:
+    type: boolean
+    default: true
+#Plugin Parameters
+  N1000vVSMUser:
+    type: string
+    default: 'admin'
+  N1000vPollDuration:
+    type: number
+    default: 60
+  N1000vHttpPoolSize:
+    type: number
+    default: 5
+  N1000vHttpTimeout:
+    type: number
+    default: 15
+  N1000vSyncInterval:
+    type: number
+    default: 300
+  N1000vMaxVSMRetries:
+    type: number
+    default: 2
+
+resources:
+  CiscoN1kvConfig:
+    type: OS::Heat::StructuredConfig
+    properties:
+      group: os-apply-config
+      config:
+        hiera:
+          datafiles:
+            cisco_n1kv_data:
+              mapped_data:
+                #enable_cisco_n1kv: {get_input: EnableCiscoN1kv}
+                # VEM Parameters
+                n1kv_vem_source: {get_input: n1kv_vem_source}
+                n1kv_vem_version: {get_input: n1kv_vem_version}
+                neutron::agents::n1kv_vem::n1kv_vsm_ip: {get_input: n1kv_vsm_ip}
+                neutron::agents::n1kv_vem::n1kv_vsm_domain_id: {get_input: n1kv_vsm_domain_id}
+                neutron::agents::n1kv_vem::n1kv_vsm_ip_v6: {get_input: n1kv_vsm_ip_v6}
+                neutron::agents::n1kv_vem::host_mgmt_intf: {get_input: n1kv_vem_host_mgmt_intf}
+                neutron::agents::n1kv_vem::uplink_profile: {get_input: n1kv_vem_uplink_profile}
+                neutron::agents::n1kv_vem::vtep_config: {get_input: n1kv_vem_vtep_config}
+                neutron::agents::n1kv_vem::portdb: {get_input: n1kv_vem_portdb}
+                neutron::agents::n1kv_vem::vteps_in_same_subnet: {get_input: n1kv_vem_vteps_in_same_subnet}
+                neutron::agents::n1kv_vem::fastpath_flood: {get_input: n1kv_vem_fastpath_flood}
+                #VSM Parameter
+                n1kv_vsm_source: {get_input: n1kv_vsm_source}
+                n1kv_vsm_version: {get_input: n1kv_vsm_version}
+                n1k_vsm::phy_if_bridge: {get_input: n1kv_vsm_host_mgmt_intf}
+                n1k_vsm::vsm_role: {get_input: n1kv_vsm_role}
+                n1k_vsm::pacemaker_control: {get_input: n1kv_vsm_pacemaker_ctrl}
+                n1k_vsm::existing_bridge: {get_input: n1kv_vsm_existing_br}
+                n1k_vsm::vsm_admin_passwd: {get_input: n1kv_vsm_password}
+                n1k_vsm::vsm_domain_id: {get_input: n1kv_vsm_domain_id}
+                n1k_vsm::vsm_mgmt_ip: {get_input: n1kv_vsm_ip}
+                n1k_vsm::vsm_mgmt_netmask: {get_input: n1kv_vsm_mgmt_netmask}
+                n1k_vsm::vsm_mgmt_gateway: {get_input: n1kv_vsm_gateway_ip}
+                n1k_vsm::phy_gateway: {get_input: n1kv_vsm_gateway_ip}
+                # Cisco N1KV driver Parameters
+                neutron::plugins::ml2::cisco::nexus1000v::n1kv_vsm_ip: {get_input: n1kv_vsm_ip}
+                neutron::plugins::ml2::cisco::nexus1000v::n1kv_vsm_username: {get_input: n1kv_vsm_username}
+                neutron::plugins::ml2::cisco::nexus1000v::n1kv_vsm_password: {get_input: n1kv_vsm_password}
+                neutron::plugins::ml2::cisco::nexus1000v::poll_duration: {get_input: n1kv_vsm_poll_duration}
+                neutron::plugins::ml2::cisco::nexus1000v::http_pool_size: {get_input: n1kv_vsm_http_pool_size}
+                neutron::plugins::ml2::cisco::nexus1000v::http_timeout: {get_input: n1kv_vsm_http_timeout}
+                neutron::plugins::ml2::cisco::nexus1000v::n1kv_vsm_sync_interval: {get_input: n1kv_vsm_sync_interval}
+                neutron::plugins::ml2::cisco::nexus1000v::max_vsm_retries: {get_input: n1kv_max_vsm_retries}
+
+  CiscoN1kvDeployment:
+    type: OS::Heat::StructuredDeployment
+    properties:
+      config: {get_resource: CiscoN1kvConfig}
+      server: {get_param: server}
+      input_values:
+        n1kv_vsm_ip: {get_param: N1000vVSMIP}
+        n1kv_vsm_domain_id: {get_param: N1000vVSMDomainID}
+        n1kv_vsm_ip_v6: {get_param: N1000vVSMIPV6}
+        n1kv_vem_host_mgmt_intf: {get_param: N1000vVEMHostMgmtIntf}
+        n1kv_vem_uplink_profile: {get_param: N1000vUplinkProfile}
+        n1kv_vem_vtep_config: {get_param: N1000vVtepConfig}
+        n1kv_vem_source: {get_param: N1000vVEMSource}
+        n1kv_vem_version: {get_param: N1000vVEMVersion}
+        n1kv_vem_portdb: {get_param: N1000vPortDB}
+        n1kv_vem_vteps_in_same_subnet: {get_param: N1000vVtepsInSameSub}
+        n1kv_vem_fastpath_flood: {get_param: N1000vVEMFastpathFlood}
+        n1kv_vsm_source: {get_param: N1000vVSMSource}
+        n1kv_vsm_version: {get_param: N1000vVSMVersion}
+        n1kv_vsm_host_mgmt_intf: {get_param: N1000vVSMHostMgmtIntf}
+        n1kv_vsm_role: {get_param: N1000vVSMRole}
+        n1kv_vsm_password: {get_param: N1000vVSMPassword}
+        n1kv_vsm_mgmt_netmask: {get_param: N1000vMgmtNetmask}
+        n1kv_vsm_gateway_ip: {get_param: N1000vMgmtGatewayIP}
+        n1kv_vsm_pacemaker_ctrl: {get_param: N1000vPacemakerControl}
+        n1kv_vsm_existing_br: {get_param: N1000vExistingBridge}
+        n1kv_vsm_username: {get_param: N1000vVSMUser}
+        n1kv_vsm_poll_duration: {get_param: N1000vPollDuration}
+        n1kv_vsm_http_pool_size: {get_param: N1000vHttpPoolSize}
+        n1kv_vsm_http_timeout: {get_param: N1000vHttpTimeout}
+        n1kv_vsm_sync_interval: {get_param: N1000vSyncInterval}
+        n1kv_max_vsm_retries: {get_param: N1000vMaxVSMRetries}
+
+outputs:
+  deploy_stdout:
+    description: Deployment reference, used to trigger puppet apply on changes
+    value: {get_attr: [CiscoN1kvDeployment, deploy_stdout]}
index 3a37903..d4a0e81 100644 (file)
@@ -1,4 +1,7 @@
 # Hiera data for swift storage nodes
+swift::storage::all::incoming_chmod: 'Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r'
+swift::storage::all::outgoing_chmod: 'Du=rwx,g=rx,o=rx,Fu=rw,g=r,o=r'
+
 swift::storage::all::object_pipeline:
   - healthcheck
   - recon
@@ -15,4 +18,4 @@ swift::proxy::keystone::operator_roles:
   - swiftoperator
   - ResellerAdmin
 
-object_classes: []
\ No newline at end of file
+object_classes: []
index 6c5dda4..a88ca2d 100644 (file)
@@ -39,3 +39,4 @@ include ::ceph::profile::client
 include ::ceph::profile::osd
 
 hiera_include('ceph_classes')
+package_manifest{'/var/lib/tripleo/installed-packages/overcloud_ceph': ensure => present}
index e6fa947..a0ef701 100644 (file)
@@ -78,7 +78,16 @@ class { 'neutron::agents::ml2::ovs':
   tunnel_types    => split(hiera('neutron_tunnel_types'), ','),
 }
 
+if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+  class { 'neutron::agents::n1kv_vem':
+    n1kv_source          => hiera('n1kv_vem_source', undef),
+    n1kv_version         => hiera('n1kv_vem_version', undef),
+  }
+}
+
+
 include ::ceilometer
+include ::ceilometer::config
 include ::ceilometer::agent::compute
 include ::ceilometer::agent::auth
 
@@ -93,3 +102,4 @@ class { 'snmp':
 }
 
 hiera_include('compute_classes')
+package_manifest{'/var/lib/tripleo/installed-packages/overcloud_compute': ensure => present}
index fdb16ea..c857c5c 100644 (file)
@@ -245,6 +245,20 @@ if hiera('step') >= 3 {
     bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
     tunnel_types => split(hiera('neutron_tunnel_types'), ','),
   }
+  if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+    include neutron::plugins::ml2::cisco::nexus1000v
+
+    class { 'neutron::agents::n1kv_vem':
+      n1kv_source          => hiera('n1kv_vem_source', undef),
+      n1kv_version         => hiera('n1kv_vem_version', undef),
+    }
+
+    class { 'n1k_vsm':
+      n1kv_source       => hiera('n1kv_vsm_source', undef),
+      n1kv_version      => hiera('n1kv_vsm_version', undef),
+      pacemaker_control => false,
+    }
+  }
 
   if 'cisco_ucsm' in hiera('neutron_mechanism_drivers') {
     include ::neutron::plugins::ml2::cisco::ucsm
@@ -417,6 +431,7 @@ if hiera('step') >= 3 {
     }
   }
   include ::ceilometer
+  include ::ceilometer::config
   include ::ceilometer::api
   include ::ceilometer::agent::notification
   include ::ceilometer::agent::central
@@ -439,10 +454,17 @@ if hiera('step') >= 3 {
   include ::heat::engine
 
   # Horizon
+  if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+    $_profile_support = 'cisco'
+  } else {
+    $_profile_support = 'None'
+  }
+  $neutron_options   = {'profile_support' => $_profile_support }
   $vhost_params = { add_listen => false }
   class { 'horizon':
     cache_server_ip    => hiera('memcache_node_ips', '127.0.0.1'),
     vhost_extra_params => $vhost_params,
+    neutron_options    => $neutron_options,
   }
 
   $snmpd_user = hiera('snmpd_readonly_user_name')
@@ -462,3 +484,6 @@ if hiera('step') >= 3 {
 if hiera('step') >= 4 {
   include ::keystone::cron::token_flush
 } #END STEP 4
+
+$package_manifest_name = join(['/var/lib/tripleo/installed-packages/overcloud_controller', hiera('step')])
+package_manifest{$package_manifest_name: ensure => present}
index 7615290..5c220dc 100644 (file)
@@ -617,6 +617,19 @@ if hiera('step') >= 3 {
     include ::neutron::plugins::ml2::cisco::nexus
     include ::neutron::plugins::ml2::cisco::type_nexus_vxlan
   }
+  if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+    include neutron::plugins::ml2::cisco::nexus1000v
+
+    class { 'neutron::agents::n1kv_vem':
+      n1kv_source          => hiera('n1kv_vem_source', undef),
+      n1kv_version         => hiera('n1kv_vem_version', undef),
+    }
+
+    class { 'n1k_vsm':
+      n1kv_source       => hiera('n1kv_vsm_source', undef),
+      n1kv_version      => hiera('n1kv_vsm_version', undef),
+    }
+  }
 
   if hiera('neutron_enable_bigswitch_ml2', false) {
     include neutron::plugins::ml2::bigswitch::restproxy
@@ -801,6 +814,7 @@ if hiera('step') >= 3 {
     }
   }
   include ::ceilometer
+  include ::ceilometer::config
   class { '::ceilometer::api' :
     manage_service => false,
     enabled => false,
@@ -859,6 +873,12 @@ if hiera('step') >= 3 {
   # NOTE(gfidente): server-status can be consumed by the pacemaker resource agent
   include ::apache
   include ::apache::mod::status
+  if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+    $_profile_support = 'cisco'
+  } else {
+    $_profile_support = 'None'
+  }
+  $neutron_options   = {'profile_support' => $_profile_support }
   $vhost_params = {
     add_listen => false,
     priority   => 10,
@@ -867,6 +887,7 @@ if hiera('step') >= 3 {
     cache_server_ip    => hiera('memcache_node_ips', '127.0.0.1'),
     vhost_extra_params => $vhost_params,
     server_aliases     => $::hostname,
+    neutron_options    => $neutron_options,
   }
 
   $snmpd_user = hiera('snmpd_readonly_user_name')
@@ -1482,7 +1503,34 @@ if hiera('step') >= 4 {
         clone_params => "interleave=true",
     }
 
+    #VSM
+    if 'cisco_n1kv' in hiera('neutron_mechanism_drivers') {
+      pacemaker::resource::ocf { 'vsm-p' :
+        ocf_agent_name  => 'heartbeat:VirtualDomain',
+        resource_params => 'force_stop=true config=/var/spool/cisco/vsm/vsm_primary_deploy.xml',
+        require         => Class['n1k_vsm'],
+        meta_params     => 'resource-stickiness=INFINITY',
+      }
+      if str2bool(hiera('n1k_vsm::pacemaker_control', 'true')) {
+        pacemaker::resource::ocf { 'vsm-s' :
+          ocf_agent_name  => 'heartbeat:VirtualDomain',
+          resource_params => 'force_stop=true config=/var/spool/cisco/vsm/vsm_secondary_deploy.xml',
+          require         => Class['n1k_vsm'],
+          meta_params     => 'resource-stickiness=INFINITY',
+        }
+        pacemaker::constraint::colocation { 'vsm-colocation-contraint':
+          source  => "vsm-p",
+          target  => "vsm-s",
+          score   => "-INFINITY",
+          require => [Pacemaker::Resource::Ocf['vsm-p'],
+                      Pacemaker::Resource::Ocf['vsm-s']],
+        }
+      }
+    }
 
   }
 
 } #END STEP 4
+
+$package_manifest_name = join(['/var/lib/tripleo/installed-packages/overcloud_controller_pacemaker', hiera('step')])
+package_manifest{$package_manifest_name: ensure => present}
index 59db696..5f4b070 100644 (file)
@@ -48,4 +48,5 @@ class { 'snmp':
   snmpd_config => [ join(['rouser ', hiera('snmpd_readonly_user_name')]), 'proc  cron', 'includeAllDisks  10%', 'master agentx', 'trapsink localhost public', 'iquerySecName internalUser', 'rouser internalUser', 'defaultMonitors yes', 'linkUpDownNotifications yes' ],
 }
 
-hiera_include('object_classes')
\ No newline at end of file
+hiera_include('object_classes')
+package_manifest{'/var/lib/tripleo/installed-packages/overcloud_object': ensure => present}
index d1f6d6a..eaaed66 100644 (file)
@@ -52,4 +52,5 @@ class { 'snmp':
   snmpd_config => [ join(['rouser ', hiera('snmpd_readonly_user_name')]), 'proc  cron', 'includeAllDisks  10%', 'master agentx', 'trapsink localhost public', 'iquerySecName internalUser', 'rouser internalUser', 'defaultMonitors yes', 'linkUpDownNotifications yes' ],
 }
 
-hiera_include('volume_classes')
\ No newline at end of file
+hiera_include('volume_classes')
+package_manifest{'/var/lib/tripleo/installed-packages/overcloud_volume': ensure => present}
index 14fbafd..1897dcd 100644 (file)
@@ -90,3 +90,5 @@ class tripleo::ringbuilder (
 }
 
 include ::tripleo::ringbuilder
+
+package_manifest{'/var/lib/tripleo/installed-packages/ringbuilder': ensure => present}
index 5b7c28b..22ec609 100644 (file)
@@ -189,6 +189,7 @@ resources:
                 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
                 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
                 tripleo::packages::enable_install: {get_input: enable_package_install}
+                tripleo::packages::enable_upgrade: {get_input: enable_package_upgrade}
 
 
   SwiftStorageHieraDeploy:
@@ -212,6 +213,7 @@ resources:
             params:
               server: {get_param: NtpServer}
         enable_package_install: {get_param: EnablePackageInstall}
+        enable_package_upgrade: {get_attr: [UpdateDeployment, update_managed_packages]}
         swift_management_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]}
 
   # Hook for site-specific additional pre-deployment config,
@@ -264,4 +266,8 @@ outputs:
     value: {get_attr: [StorageMgmtPort, ip_address]}
   config_identifier:
     description: identifier which changes if the node configuration may need re-applying
-    value: {get_attr: [SwiftStorageHieraDeploy, deploy_stdout]}
+    value:
+      list_join:
+        - ','
+        - - {get_attr: [SwiftStorageHieraDeploy, deploy_stdout]}
+          - {get_param: UpdateIdentifier}
index f765a7d..7b192c4 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -2,7 +2,7 @@
 name = tripleo-heat-templates
 summary = Heat templates for deploying OpenStack with OpenStack.
 description-file =
-    README.md
+    README.rst
 author = OpenStack
 author_email = openstack-dev@lists.openstack.org
 license = Apache License (2.0)