Remove duplicate docker/puppet services.yaml
authorSteven Hardy <shardy@redhat.com>
Thu, 8 Jun 2017 18:07:51 +0000 (19:07 +0100)
committerSteven Hardy <shardy@redhat.com>
Fri, 9 Jun 2017 16:10:43 +0000 (17:10 +0100)
Move to one common services.yaml not only reduces the duplication, but it
should improve performance for the docker/services.yaml case, because we were
creating two ResourceChains with $many services which we know can be really
slow (especially since we seem to be missing concurrent: true on one)

Change-Id: I76f188438bfc6449b152c2861d99738e6eb3c61b

common/README [new file with mode: 0644]
docker/services/services.yaml [deleted file]
environments/docker-services-tls-everywhere.yaml
environments/docker.yaml
overcloud-resource-registry-puppet.j2.yaml
services.yaml [moved from puppet/services/services.yaml with 88% similarity]
tools/yaml-validate.py

diff --git a/common/README b/common/README
new file mode 100644 (file)
index 0000000..6a52311
--- /dev/null
@@ -0,0 +1 @@
+This will contain some common templates but it needs to be added to the RPM spec first
diff --git a/docker/services/services.yaml b/docker/services/services.yaml
deleted file mode 100644 (file)
index 2ad3b63..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-heat_template_version: pike
-
-description: >
-  Utility stack to convert an array of services into a set of combined
-  role configs.
-
-parameters:
-  Services:
-    default: []
-    description: |
-        List nested stack service templates.
-    type: comma_delimited_list
-  ServiceNetMap:
-    default: {}
-    description: Mapping of service_name -> network name. Typically set
-                 via parameter_defaults in the resource registry.  This
-                 mapping overrides those in ServiceNetMapDefaults.
-    type: json
-  EndpointMap:
-    default: {}
-    description: Mapping of service endpoint -> protocol. Typically set
-                 via parameter_defaults in the resource registry.
-    type: json
-  DefaultPasswords:
-    default: {}
-    description: Mapping of service -> default password. Used to help
-                 pass top level passwords managed by Heat into services.
-    type: json
-  RoleName:
-    default: ''
-    description: Role name on which the service is applied
-    type: string
-  RoleParameters:
-    default: {}
-    description: Parameters specific to the role
-    type: json
-
-resources:
-
-  PuppetServices:
-    type: ../../puppet/services/services.yaml
-    properties:
-      Services: {get_param: Services}
-      ServiceNetMap: {get_param: ServiceNetMap}
-      EndpointMap: {get_param: EndpointMap}
-      DefaultPasswords: {get_param: DefaultPasswords}
-      RoleName: {get_param: RoleName}
-      RoleParameters: {get_param: RoleParameters}
-
-  ServiceChain:
-    type: OS::Heat::ResourceChain
-    properties:
-      resources: {get_param: Services}
-      concurrent: true
-      resource_properties:
-        ServiceNetMap: {get_param: ServiceNetMap}
-        EndpointMap: {get_param: EndpointMap}
-        DefaultPasswords: {get_param: DefaultPasswords}
-        RoleName: {get_param: RoleName}
-        RoleParameters: {get_param: RoleParameters}
-
-outputs:
-  role_data:
-    description: Combined Role data for this set of services.
-    value:
-      service_names:
-        {get_attr: [PuppetServices, role_data, service_names]}
-      monitoring_subscriptions:
-        {get_attr: [PuppetServices, role_data, monitoring_subscriptions]}
-      logging_sources:
-        {get_attr: [PuppetServices, role_data, logging_sources]}
-      logging_groups:
-        {get_attr: [PuppetServices, role_data, logging_groups]}
-      service_config_settings:
-        {get_attr: [PuppetServices, role_data, service_config_settings]}
-      config_settings:
-        {get_attr: [PuppetServices, role_data, config_settings]}
-      global_config_settings:
-        {get_attr: [PuppetServices, role_data, global_config_settings]}
-      step_config:
-        {get_attr: [ServiceChain, role_data, step_config]}
-      puppet_config: {get_attr: [ServiceChain, role_data, puppet_config]}
-      kolla_config:
-        map_merge: {get_attr: [ServiceChain, role_data, kolla_config]}
-      docker_config:
-        {get_attr: [ServiceChain, role_data, docker_config]}
-      docker_puppet_tasks:
-        {get_attr: [ServiceChain, role_data, docker_puppet_tasks]}
-      host_prep_tasks:
-        yaql:
-          # Note we use distinct() here to filter any identical tasks
-          expression: $.data.where($ != null).select($.get('host_prep_tasks')).where($ != null).flatten().distinct()
-          data: {get_attr: [ServiceChain, role_data]}
-      upgrade_tasks:
-        yaql:
-          # Note we use distinct() here to filter any identical tasks, e.g yum update for all services
-          expression: $.data.where($ != null).select($.get('upgrade_tasks')).where($ != null).flatten().distinct()
-          data: {get_attr: [ServiceChain, role_data]}
-      upgrade_batch_tasks:
-        yaql:
-          # Note we use distinct() here to filter any identical tasks, e.g yum update for all services
-          expression: $.data.where($ != null).select($.get('upgrade_batch_tasks')).where($ != null).flatten().distinct()
-          data: {get_attr: [ServiceChain, role_data]}
-      service_metadata_settings:
-        get_attr: [PuppetServices, role_data, service_metadata_settings]
index 2740664..f1e3d96 100644 (file)
@@ -35,8 +35,6 @@ resource_registry:
   OS::TripleO::PostDeploySteps: ../docker/post.yaml
   OS::TripleO::PostUpgradeSteps: ../docker/post-upgrade.yaml
 
-  OS::TripleO::Services: ../docker/services/services.yaml
-
 parameter_defaults:
   # Defaults to 'tripleoupstream'.  Specify a local docker registry
   # Example: 192.168.24.1:8787/tripleoupstream
index 2852794..bb1ebdc 100644 (file)
@@ -2,7 +2,6 @@ resource_registry:
   # This can be used when you don't want to run puppet on the host,
   # e.g atomic, but it has been replaced with OS::TripleO::Services::Docker
   # OS::TripleO::NodeUserData: ../docker/firstboot/setup_docker_host.yaml
-  OS::TripleO::Services::Docker: ../puppet/services/docker.yaml
   # The compute node still needs extra initialization steps
   OS::TripleO::Compute::NodeUserData: ../docker/firstboot/setup_docker_host.yaml
 
@@ -51,8 +50,6 @@ resource_registry:
   OS::TripleO::PostDeploySteps: ../docker/post.yaml
   OS::TripleO::PostUpgradeSteps: ../docker/post-upgrade.yaml
 
-  OS::TripleO::Services: ../docker/services/services.yaml
-
 parameter_defaults:
   # To specify a local docker registry, enable these
   # where 192.168.24.1 is the host running docker-distribution
index d4c301b..b266052 100644 (file)
@@ -106,7 +106,7 @@ resource_registry:
   OS::TripleO::UpgradeConfig: puppet/upgrade_config.yaml
 
   # services
-  OS::TripleO::Services: puppet/services/services.yaml
+  OS::TripleO::Services: services.yaml
   OS::TripleO::Services::Apache: puppet/services/apache.yaml
   OS::TripleO::Services::CACerts: puppet/services/ca-certs.yaml
   OS::TripleO::Services::CephMds: OS::Heat::None
similarity index 88%
rename from puppet/services/services.yaml
rename to services.yaml
index 0e7b6d2..724727b 100644 (file)
@@ -1,3 +1,4 @@
+#FIXME move into common when specfile adds it
 heat_template_version: pike
 
 description: >
@@ -127,3 +128,17 @@ outputs:
           expression: $.data.where($ != null).select($.get('upgrade_batch_tasks')).where($ != null).flatten().distinct()
           data: {get_attr: [ServiceChain, role_data]}
       service_metadata_settings: {get_attr: [ServiceServerMetadataHook, metadata]}
+
+      # Keys to support docker/services
+      puppet_config: {get_attr: [ServiceChain, role_data, puppet_config]}
+      kolla_config:
+        map_merge: {get_attr: [ServiceChain, role_data, kolla_config]}
+      docker_config:
+        {get_attr: [ServiceChain, role_data, docker_config]}
+      docker_puppet_tasks:
+        {get_attr: [ServiceChain, role_data, docker_puppet_tasks]}
+      host_prep_tasks:
+        yaql:
+          # Note we use distinct() here to filter any identical tasks
+          expression: $.data.where($ != null).select($.get('host_prep_tasks')).where($ != null).flatten().distinct()
+          data: {get_attr: [ServiceChain, role_data]}
index 92d76d2..0fd4bcc 100755 (executable)
@@ -219,12 +219,10 @@ def validate(filename):
 
         # qdr aliases rabbitmq service to provide alternative messaging backend
         if (filename.startswith('./puppet/services/') and
-                filename not in ['./puppet/services/services.yaml',
-                                 './puppet/services/qdr.yaml']):
+                filename not in ['./puppet/services/qdr.yaml']):
             retval = validate_service(filename, tpl)
 
-        if (filename.startswith('./docker/services/') and
-                filename != './docker/services/services.yaml'):
+        if filename.startswith('./docker/services/'):
             retval = validate_docker_service(filename, tpl)
 
         if filename.endswith('hyperconverged-ceph.yaml'):