Merge "Do not set cluster in maintenance mode during split stack upgrade" into stable...
authorZuul <zuul@review.openstack.org>
Thu, 9 Nov 2017 08:25:43 +0000 (08:25 +0000)
committerGerrit Code Review <review@openstack.org>
Thu, 9 Nov 2017 08:25:43 +0000 (08:25 +0000)
ci/environments/scenario001-multinode-containers.yaml
common/deploy-steps-tasks.yaml
docker/docker-puppet.py
docker/services/cinder-volume.yaml
docker/services/nova-compute.yaml
puppet/services/gnocchi-metricd.yaml

index 546e4c4..082541c 100644 (file)
@@ -29,7 +29,9 @@ resource_registry:
   # FIXME(mandre) fluentd container image missing from tripleomaster registry
   # https://bugs.launchpad.net/tripleo/+bug/1721723
   # OS::TripleO::Services::FluentdClient: ../../docker/services/fluentd-client.yaml
-  OS::TripleO::Services::FluentdClient: ../../puppet/services/logging/fluentd-client.yaml
+  # FIXME(mandre/bandini) mixing BM fluentd and containers is problematic
+  # https://bugs.launchpad.net/tripleo/+bug/1726891
+  # OS::TripleO::Services::FluentdClient: ../../puppet/services/logging/fluentd-client.yaml
   OS::TripleO::Services::SensuClient: ../../docker/services/sensu-client.yaml
   # Some infra instances don't pass the ping test but are otherwise working.
   # Since the OVB jobs also test this functionality we can shut it off here.
@@ -98,7 +100,9 @@ parameter_defaults:
     - OS::TripleO::Services::Congress
     - OS::TripleO::Services::TripleoPackages
     - OS::TripleO::Services::TripleoFirewall
-    - OS::TripleO::Services::FluentdClient
+    # FIXME(mandre/bandini) mixing BM fluentd and containers is problematic
+    # https://bugs.launchpad.net/tripleo/+bug/1726891
+    #- OS::TripleO::Services::FluentdClient
     - OS::TripleO::Services::SensuClient
     - OS::TripleO::Services::Iscsid
 
index 785095b..79a8bc8 100644 (file)
       command: >-
         puppet apply {{ host_puppet_config_debug|default('') }}
         --modulepath=/etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
+        --detailed-exitcodes
         --logdest syslog --logdest console --color=false
         /var/lib/tripleo-config/puppet_step_config.pp
-      changed_when: false
+      changed_when: outputs.rc == 2
       check_mode: no
       register: outputs
       failed_when: false
       no_log: true
     - debug: var=(outputs.stderr|default('')).split('\n')|union(outputs.stdout_lines|default([]))
       when: outputs is defined
-      failed_when: outputs|failed
+      failed_when: outputs.rc not in [0, 2]
     ######################################
     # Generate config via docker-puppet.py
     ######################################
index 533ed07..d12e055 100755 (executable)
@@ -225,8 +225,14 @@ def mp_puppet_config((config_volume, puppet_tags, manifest, config_image, volume
         touch /tmp/the_origin_of_time
         sync
 
+        set +e
         FACTER_hostname=$HOSTNAME FACTER_uuid=docker /usr/bin/puppet apply \
-        --color=false --logdest syslog --logdest console $TAGS /etc/config.pp
+        --detailed-exitcodes --color=false --logdest syslog --logdest console $TAGS /etc/config.pp
+        rc=$?
+        set -e
+        if [ $rc -ne 2 -a $rc -ne 0 ]; then
+            exit $rc
+        fi
 
         # Disables archiving
         if [ -z "$NO_ARCHIVE" ]; then
@@ -307,7 +313,9 @@ def mp_puppet_config((config_volume, puppet_tags, manifest, config_image, volume
         subproc = subprocess.Popen(dcmd, stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE, env=env)
         cmd_stdout, cmd_stderr = subproc.communicate()
-        if subproc.returncode != 0:
+        # puppet with --detailed-exitcodes will return 0 for success and no changes
+        # and 2 for success and resource changes. Other numbers are failures
+        if subproc.returncode not in [0, 2]:
             log.error('Failed running docker-puppet.py for %s' % config_volume)
             if cmd_stdout:
                 log.error(cmd_stdout)
@@ -355,7 +363,7 @@ returncodes = list(p.map(mp_puppet_config, process_map))
 config_volumes = [pm[0] for pm in process_map]
 success = True
 for returncode, config_volume in zip(returncodes, config_volumes):
-    if returncode != 0:
+    if returncode not in [0, 2]:
         log.error('ERROR configuring %s' % config_volume)
         success = False
 
index d8a93b1..46873ea 100644 (file)
@@ -125,6 +125,7 @@ outputs:
         step_4:
           cinder_volume:
             image: *cinder_volume_image
+            ipc: host
             net: host
             privileged: true
             restart: always
index 883f438..5163a38 100644 (file)
@@ -115,6 +115,7 @@ outputs:
         step_4:
           nova_compute:
             image: &nova_compute_image {get_param: DockerNovaComputeImage}
+            ipc: host
             net: host
             privileged: true
             user: nova
index d45d140..1918c6e 100644 (file)
@@ -37,6 +37,10 @@ parameters:
     default: '%{::os_workers}'
     description: Number of workers for Gnocchi MetricD
     type: string
+  MetricProcessingDelay:
+    default: 30
+    description: Delay between processing metrics.
+    type: number
 
 resources:
   GnocchiServiceBase:
@@ -59,6 +63,7 @@ outputs:
         map_merge:
           - get_attr: [GnocchiServiceBase, role_data, config_settings]
           - gnocchi::metricd::workers: {get_param: GnocchiMetricdWorkers}
+            gnocchi::metricd::metric_processing_delay: {get_param: MetricProcessingDelay}
       step_config: |
         include ::tripleo::profile::base::gnocchi::metricd
       upgrade_tasks: