Allow to separate Horizon from Neutron
[apex-tripleo-heat-templates.git] / puppet / objectstorage-role.yaml
index 49b2704..1633134 100644 (file)
@@ -1,4 +1,4 @@
-heat_template_version: 2016-10-14
+heat_template_version: ocata
 description: 'OpenStack swift storage node configured by Puppet'
 parameters:
   OvercloudSwiftStorageFlavor:
@@ -102,10 +102,19 @@ parameters:
   MonitoringSubscriptions:
     type: comma_delimited_list
     default: []
+  ServiceMetadataSettings:
+    type: json
+    default: {}
   ConfigCommand:
     type: string
     description: Command which will be run whenever configuration data changes
     default: os-refresh-config --timeout 14400
+  UpgradeInitCommand:
+    type: string
+    description: |
+      Command or script snippet to run on all overcloud nodes to
+      initialize the upgrade process. E.g. a repository switch.
+    default: ''
 
 resources:
 
@@ -131,6 +140,7 @@ resources:
         map_merge:
           - {get_param: ServerMetadata}
           - {get_param: SwiftStorageServerMetadata}
+          - {get_param: ServiceMetadataSettings}
       scheduler_hints: {get_param: ObjectStorageSchedulerHints}
 
   # Combine the NodeAdminUserData and NodeUserData mime archives
@@ -142,6 +152,8 @@ resources:
         type: multipart
       - config: {get_resource: NodeUserData}
         type: multipart
+      - config: {get_resource: RoleUserData}
+        type: multipart
 
   # Creates the "heat-admin" user if configured via the environment
   # Should return a OS::Heat::MultipartMime reference via OS::stack_id
@@ -153,6 +165,11 @@ resources:
   NodeUserData:
     type: OS::TripleO::NodeUserData
 
+  # For optional operator role-specific userdata
+  # Should return a OS::Heat::MultipartMime reference via OS::stack_id
+  RoleUserData:
+    type: OS::TripleO::ObjectStorage::NodeUserData
+
   ExternalPort:
     type: OS::TripleO::SwiftStorage::Ports::ExternalPort
     properties:
@@ -319,14 +336,41 @@ resources:
             - - {get_attr: [SwiftStorage, name]}
               - ctlplane
 
+  PreNetworkConfig:
+    type: OS::TripleO::ObjectStorage::PreNetworkConfig
+    properties:
+      server: {get_resource: SwiftStorage}
+
   NetworkDeployment:
     type: OS::TripleO::SoftwareDeployment
+    depends_on: PreNetworkConfig
     properties:
       name: NetworkDeployment
       config: {get_resource: NetworkConfig}
       server: {get_resource: SwiftStorage}
       actions: {get_param: NetworkDeploymentActions}
 
+  SwiftStorageUpgradeInitConfig:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: script
+      config:
+        list_join:
+        - ''
+        - - "#!/bin/bash\n\n"
+          - "if [[ -f /etc/resolv.conf.save ]] ; then rm /etc/resolv.conf.save; fi\n\n"
+          - get_param: UpgradeInitCommand
+
+  # Note we may be able to make this conditional on UpgradeInitCommandNotEmpty
+  # but https://bugs.launchpad.net/heat/+bug/1649900 needs fixing first
+  SwiftStorageUpgradeInitDeployment:
+    type: OS::Heat::SoftwareDeployment
+    depends_on: NetworkDeployment
+    properties:
+      name: SwiftStorageUpgradeInitDeployment
+      server: {get_resource: SwiftStorage}
+      config: {get_resource: SwiftStorageUpgradeInitConfig}
+
   SwiftStorageHieraConfig:
     type: OS::Heat::StructuredConfig
     properties:
@@ -366,7 +410,7 @@ resources:
 
   SwiftStorageHieraDeploy:
     type: OS::Heat::StructuredDeployment
-    depends_on: NetworkDeployment
+    depends_on: SwiftStorageUpgradeInitDeployment
     properties:
       name: SwiftStorageHieraDeploy
       server: {get_resource: SwiftStorage}