Merge "Prepare reno for TripleO Pike RC1"
authorJenkins <jenkins@review.openstack.org>
Sat, 19 Aug 2017 03:14:49 +0000 (03:14 +0000)
committerGerrit Code Review <review@openstack.org>
Sat, 19 Aug 2017 03:14:49 +0000 (03:14 +0000)
24 files changed:
capabilities-map.yaml
ci/environments/multinode-containers.yaml
ci/environments/multinode.yaml
ci/environments/multinode_major_upgrade.yaml
ci/environments/scenario001-multinode-containers.yaml
ci/environments/scenario002-multinode-containers.yaml
docker/services/ceph-ansible/ceph-base.yaml
docker/services/pacemaker/cinder-backup.yaml
docker/services/pacemaker/cinder-volume.yaml
docker/services/pacemaker/database/mysql.yaml
docker/services/pacemaker/database/redis.yaml
docker/services/pacemaker/haproxy.yaml
docker/services/pacemaker/manila-share.yaml
docker/services/pacemaker/rabbitmq.yaml
environments/cinder-dellemc-unity-config.yaml [new file with mode: 0644]
extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration
overcloud-resource-registry-puppet.j2.yaml
puppet/services/cinder-backend-dellemc-unity.yaml [new file with mode: 0644]
puppet/services/neutron-metadata.yaml
puppet/services/nova-metadata.yaml
releasenotes/notes/unity_cinder_e9872898724a11e7.yaml [new file with mode: 0644]
releasenotes/notes/workaround-unset-fqdn-for-rhel-reg-be9c4620146096be.yaml [new file with mode: 0644]
roles/Controller.yaml
roles_data.yaml

index fdf2ad6..91daa68 100644 (file)
@@ -312,6 +312,13 @@ topics:
               Enables a Cinder Dell EMC Storage Center ISCSI backend
             requires:
               - overcloud-resource-registry-puppet.yaml
+          - file: environments/cinder-dellemc-unity-config.yaml
+            title: Cinder Dell EMC Unity backend
+            description: >
+              Enables a Cinder Dell EMC Unity backend,
+              configured via puppet
+            requires:
+              - overcloud-resource-registry-puppet.yaml
           - file: environments/cinder-hpelefthand-config.yaml
             title: Cinder HPELeftHandISCSI backend
             description: >
index 7768c4f..651aaf4 100644 (file)
@@ -52,9 +52,6 @@ parameter_defaults:
     - OS::TripleO::Services::NovaMetadata
     - OS::TripleO::Services::NovaScheduler
     - OS::TripleO::Services::Ntp
-    - OS::TripleO::Services::SwiftProxy
-    - OS::TripleO::Services::SwiftStorage
-    - OS::TripleO::Services::SwiftRingBuilder
     - OS::TripleO::Services::Snmp
     - OS::TripleO::Services::Timezone
     - OS::TripleO::Services::TripleoPackages
@@ -75,3 +72,4 @@ parameter_defaults:
   SwiftCeilometerPipelineEnabled: False
   Debug: True
   NotificationDriver: 'noop'
+  GlanceBackend: 'file'
index 2b25e58..f945a02 100644 (file)
@@ -48,9 +48,6 @@ parameter_defaults:
     - OS::TripleO::Services::NovaMetadata
     - OS::TripleO::Services::NovaScheduler
     - OS::TripleO::Services::Ntp
-    - OS::TripleO::Services::SwiftProxy
-    - OS::TripleO::Services::SwiftStorage
-    - OS::TripleO::Services::SwiftRingBuilder
     - OS::TripleO::Services::Snmp
     - OS::TripleO::Services::Timezone
     - OS::TripleO::Services::NovaCompute
@@ -72,3 +69,4 @@ parameter_defaults:
   SwiftCeilometerPipelineEnabled: False
   Debug: True
   NotificationDriver: 'noop'
+  GlanceBackend: 'file'
index d8f7141..8130134 100644 (file)
@@ -32,9 +32,6 @@ parameter_defaults:
     - OS::TripleO::Services::HeatApiCfn
     - OS::TripleO::Services::HeatApiCloudwatch
     - OS::TripleO::Services::HeatEngine
-    - OS::TripleO::Services::SwiftProxy
-    - OS::TripleO::Services::SwiftStorage
-    - OS::TripleO::Services::SwiftRingBuilder
     - OS::TripleO::Services::SaharaApi
     - OS::TripleO::Services::SaharaEngine
     - OS::TripleO::Services::MySQL
@@ -68,3 +65,4 @@ parameter_defaults:
   SwiftCeilometerPipelineEnabled: False
   Debug: True
   NotificationDriver: 'noop'
+  GlanceBackend: 'file'
index a3bc8fc..edc03d6 100644 (file)
@@ -7,9 +7,9 @@ resource_registry:
   OS::TripleO::Controller::Net::SoftwareConfig: ../common/net-config-multinode.yaml
   OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode.yaml
   # TODO deploy ceph with ceph-ansible: https://review.openstack.org/#/c/465066/
-  OS::TripleO::Services::CephMon: ../../puppet/services/ceph-mon.yaml
-  OS::TripleO::Services::CephOSD: ../../puppet/services/ceph-osd.yaml
-  OS::TripleO::Services::CephClient: ../../puppet/services/ceph-client.yaml
+  OS::TripleO::Services::CephMon: ../../docker/services/ceph-ansible/ceph-mon.yaml
+  OS::TripleO::Services::CephOSD: ../../docker/services/ceph-ansible/ceph-osd.yaml
+  OS::TripleO::Services::CephClient: ../../docker/services/ceph-ansible/ceph-client.yaml
   OS::TripleO::Services::PankoApi: ../../docker/services/panko-api.yaml
   OS::TripleO::Services::Collectd: ../../docker/services/collectd.yaml
   OS::TripleO::Services::Tacker: ../../docker/services/tacker.yaml
@@ -99,9 +99,19 @@ parameter_defaults:
   Debug: true
   #NOTE(gfidente): not great but we need this to deploy on ext4
   #http://docs.ceph.com/docs/jewel/rados/configuration/filesystem-recommendations/
-  ExtraConfig:
-    ceph::profile::params::osd_max_object_name_len: 256
-    ceph::profile::params::osd_max_object_namespace_len: 64
+  CephAnsibleDisksConfig:
+    devices:
+      - /dev/loop3
+    journal_size: 512
+    journal_collocation: true
+  CephAnsibleExtraConfig:
+    ceph_conf_overrides:
+      global:
+        osd_pool_default_size: 1
+        osd_pool_default_pg_num: 32
+        osd_max_object_name_len: 256
+        osd_max_object_namespace_len: 64
+  CephAnsibleSkipTags: ''
   #NOTE: These ID's and keys should be regenerated for
   # a production deployment. What is here is suitable for
   # developer and CI testing only.
index d300f77..fe06ef6 100644 (file)
@@ -8,7 +8,10 @@ resource_registry:
   OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode.yaml
   # TODO: Barbican is not yet containerized: https://review.openstack.org/#/c/474327
   # OS::TripleO::Services::BarbicanApi: ../../docker/services/barbican-api.yaml
-  OS::TripleO::Services::Zaqar: ../../docker/services/zaqar.yaml
+  OS::TripleO::Services::BarbicanApi: ../../puppet/services/barbican-api.yaml
+  # TODO: Zaqar doesn't work when containerized
+  # https://bugs.launchpad.net/tripleo/+bug/1710959
+  OS::TripleO::Services::Zaqar: ../../puppet/services/zaqar.yaml
   OS::TripleO::Services::Ec2Api: ../../docker/services/ec2-api.yaml
   # NOTE: This is needed because of upgrades from Ocata to Pike. We
   # deploy the initial environment with Ocata templates, and
index e65c503..72ab53d 100644 (file)
@@ -42,6 +42,10 @@ parameters:
     type: json
     description: Extra vars for the ceph-ansible playbook
     default: {}
+  CephAnsibleSkipTags:
+    type: string
+    description: List of ceph-ansible tags to skip
+    default: 'package-install,with_pkg'
   CephClusterFSID:
     type: string
     description: The Ceph cluster FSID. Must be a UUID.
@@ -154,10 +158,12 @@ outputs:
           - name: ceph_base_ansible_workflow
             workflow: { get_param: CephAnsibleWorkflowName }
             input:
+              ansible_skip_tags: {get_param: CephAnsibleSkipTags}
               ceph_ansible_extra_vars: {get_param: CephAnsibleExtraConfig}
               ceph_ansible_playbook: {get_param: CephAnsiblePlaybook}
       config_settings:
         ceph_common_ansible_vars:
+          ireallymeanit: 'yes'
           fsid: { get_param: CephClusterFSID }
           docker: true
           ceph_docker_registry: {get_attr: [DockerImageUrlParts, value, host]}
index c6a80ef..c2117c0 100644 (file)
@@ -76,7 +76,13 @@ outputs:
       config_settings:
         map_merge:
           - get_attr: [CinderBackupBase, role_data, config_settings]
-          - tripleo::profile::pacemaker::cinder::backup_bundle::cinder_backup_docker_image: &cinder_backup_image {get_param: DockerCinderBackupImage}
+          - tripleo::profile::pacemaker::cinder::backup_bundle::cinder_backup_docker_image: &cinder_backup_image_pcmklatest
+              list_join:
+                - ':'
+                - - yaql:
+                      data: {get_param: DockerCinderBackupImage}
+                      expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0]
+                  - 'pcmklatest'
             cinder::backup::manage_service: false
             cinder::backup::enabled: false
       step_config: ""
@@ -102,10 +108,33 @@ outputs:
               owner: cinder:cinder
               recurse: true
       docker_config:
+        step_1:
+          cinder_backup_image_tag:
+            start_order: 1
+            detach: false
+            net: host
+            user: root
+            command:
+              - '/bin/bash'
+              - '-c'
+              - str_replace:
+                  template:
+                    "/usr/bin/docker tag 'CINDERBACKUP_IMAGE' 'CINDERBACKUP_IMAGE_PCMKLATEST'"
+                  params:
+                    CINDERBACKUP_IMAGE: {get_param: DockerCinderBackupImage}
+                    CINDERBACKUP_IMAGE_PCMKLATEST: *cinder_backup_image_pcmklatest
+            image: {get_param: DockerCinderBackupImage}
+            volumes:
+              - /etc/hosts:/etc/hosts:ro
+              - /etc/localtime:/etc/localtime:ro
+              - /dev/shm:/dev/shm:rw
+              - /etc/sysconfig/docker:/etc/sysconfig/docker:ro
+              - /usr/bin:/usr/bin:ro
+              - /var/run/docker.sock:/var/run/docker.sock:rw
         step_3:
           cinder_backup_init_logs:
             start_order: 0
-            image: *cinder_backup_image
+            image: {get_param: DockerCinderBackupImage}
             privileged: false
             user: root
             volumes:
@@ -129,7 +158,7 @@ outputs:
                   params:
                     TAGS: 'pacemaker::resource::bundle,pacemaker::property,pacemaker::constraint::location'
                     CONFIG: 'include ::tripleo::profile::base::pacemaker;include ::tripleo::profile::pacemaker::cinder::backup_bundle'
-            image: *cinder_backup_image
+            image: {get_param: DockerCinderBackupImage}
             volumes:
               - /etc/hosts:/etc/hosts:ro
               - /etc/localtime:/etc/localtime:ro
index 3c1b7a7..a4f6951 100644 (file)
@@ -69,7 +69,13 @@ outputs:
       config_settings:
         map_merge:
           - get_attr: [CinderBase, role_data, config_settings]
-          - tripleo::profile::pacemaker::cinder::volume_bundle::cinder_volume_docker_image: &cinder_volume_image {get_param: DockerCinderVolumeImage}
+          - tripleo::profile::pacemaker::cinder::volume_bundle::cinder_volume_docker_image: &cinder_volume_image_pcmklatest
+              list_join:
+                - ':'
+                - - yaql:
+                      data: {get_param: DockerCinderVolumeImage}
+                      expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0]
+                  - 'pcmklatest'
             cinder::volume::manage_service: false
             cinder::volume::enabled: false
             cinder::host: hostgroup
@@ -93,10 +99,33 @@ outputs:
               owner: cinder:cinder
               recurse: true
       docker_config:
+        step_1:
+          cinder_volume_image_tag:
+            start_order: 1
+            detach: false
+            net: host
+            user: root
+            command:
+              - '/bin/bash'
+              - '-c'
+              - str_replace:
+                  template:
+                    "/usr/bin/docker tag 'CINDERVOLUME_IMAGE' 'CINDERVOLUME_IMAGE_PCMKLATEST'"
+                  params:
+                    CINDERVOLUME_IMAGE: {get_param: DockerCinderVolumeImage}
+                    CINDERVOLUME_IMAGE_PCMKLATEST: *cinder_volume_image_pcmklatest
+            image: {get_param: DockerCinderVolumeImage}
+            volumes:
+              - /etc/hosts:/etc/hosts:ro
+              - /etc/localtime:/etc/localtime:ro
+              - /dev/shm:/dev/shm:rw
+              - /etc/sysconfig/docker:/etc/sysconfig/docker:ro
+              - /usr/bin:/usr/bin:ro
+              - /var/run/docker.sock:/var/run/docker.sock:rw
         step_3:
           cinder_volume_init_logs:
             start_order: 0
-            image: *cinder_volume_image
+            image: {get_param: DockerCinderVolumeImage}
             privileged: false
             user: root
             volumes:
@@ -120,7 +149,7 @@ outputs:
                   params:
                     TAGS: 'pacemaker::resource::bundle,pacemaker::property,pacemaker::constraint::location'
                     CONFIG: 'include ::tripleo::profile::base::pacemaker;include ::tripleo::profile::pacemaker::cinder::volume_bundle'
-            image: *cinder_volume_image
+            image: {get_param: DockerCinderVolumeImage}
             volumes:
               - /etc/hosts:/etc/hosts:ro
               - /etc/localtime:/etc/localtime:ro
index 8ba7d72..3de1696 100644 (file)
@@ -79,7 +79,13 @@ outputs:
       config_settings:
         map_merge:
           - {get_attr: [MysqlPuppetBase, role_data, config_settings]}
-          - tripleo::profile::pacemaker::database::mysql_bundle::mysql_docker_image: &mysql_image {get_param: DockerMysqlImage}
+          - tripleo::profile::pacemaker::database::mysql_bundle::mysql_docker_image: &mysql_image_pcmklatest
+              list_join:
+                - ':'
+                - - yaql:
+                      data: {get_param: DockerMysqlImage}
+                      expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0]
+                  - 'pcmklatest'
             tripleo::profile::pacemaker::database::mysql_bundle::control_port: 3123
             tripleo.mysql.firewall_rules:
               '104 mysql galera-bundle':
@@ -141,7 +147,7 @@ outputs:
           mysql_data_ownership:
             start_order: 0
             detach: false
-            image: *mysql_image
+            image: {get_param: DockerMysqlImage}
             net: host
             user: root
             # Kolla does only non-recursive chown
@@ -151,7 +157,7 @@ outputs:
           mysql_bootstrap:
             start_order: 1
             detach: false
-            image: *mysql_image
+            image: {get_param: DockerMysqlImage}
             net: host
             # Kolla bootstraps aren't idempotent, explicitly checking if bootstrap was done
             command:
@@ -196,6 +202,28 @@ outputs:
                           passwords:
                             - {get_param: MysqlRootPassword}
                             - {get_param: [DefaultPasswords, mysql_root_password]}
+          mysql_image_tag:
+            start_order: 2
+            detach: false
+            net: host
+            user: root
+            command:
+              - '/bin/bash'
+              - '-c'
+              - str_replace:
+                  template:
+                    "/usr/bin/docker tag 'MYSQL_IMAGE' 'MYSQL_IMAGE_PCMKLATEST'"
+                  params:
+                    MYSQL_IMAGE: {get_param: DockerMysqlImage}
+                    MYSQL_IMAGE_PCMKLATEST: *mysql_image_pcmklatest
+            image: {get_param: DockerMysqlImage}
+            volumes:
+              - /etc/hosts:/etc/hosts:ro
+              - /etc/localtime:/etc/localtime:ro
+              - /dev/shm:/dev/shm:rw
+              - /etc/sysconfig/docker:/etc/sysconfig/docker:ro
+              - /usr/bin:/usr/bin:ro
+              - /var/run/docker.sock:/var/run/docker.sock:rw
         step_2:
           mysql_init_bundle:
             start_order: 1
@@ -214,7 +242,7 @@ outputs:
                   params:
                     TAGS: 'pacemaker::resource::bundle,pacemaker::property,pacemaker::resource::ocf,pacemaker::constraint::order,pacemaker::constraint::colocation,galera_ready,mysql_database,mysql_grant,mysql_user'
                     CONFIG: 'include ::tripleo::profile::base::pacemaker;include ::tripleo::profile::pacemaker::database::mysql_bundle'
-            image: *mysql_image
+            image: {get_param: DockerMysqlImage}
             volumes:
               - /etc/hosts:/etc/hosts:ro
               - /etc/localtime:/etc/localtime:ro
index 75b6d65..0b8aa04 100644 (file)
@@ -60,7 +60,13 @@ outputs:
           - redis::service_manage: false
             redis::notify_service: false
             redis::managed_by_cluster_manager: true
-            tripleo::profile::pacemaker::database::redis_bundle::redis_docker_image: &redis_image {get_param: DockerRedisImage}
+            tripleo::profile::pacemaker::database::redis_bundle::redis_docker_image: &redis_image_pcmklatest
+              list_join:
+                - ':'
+                - - yaql:
+                      data: {get_param: DockerRedisImage}
+                      expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0]
+                  - 'pcmklatest'
             tripleo::profile::pacemaker::database::redis_bundle::control_port: 3124
             tripleo.redis.firewall_rules:
               '108 redis-bundle':
@@ -104,6 +110,29 @@ outputs:
               owner: redis:redis
               recurse: true
       docker_config:
+        step_1:
+          redis_image_tag:
+            start_order: 1
+            detach: false
+            net: host
+            user: root
+            command:
+              - '/bin/bash'
+              - '-c'
+              - str_replace:
+                  template:
+                    "/usr/bin/docker tag 'REDIS_IMAGE' 'REDIS_IMAGE_PCMKLATEST'"
+                  params:
+                    REDIS_IMAGE: {get_param: DockerRedisImage}
+                    REDIS_IMAGE_PCMKLATEST: *redis_image_pcmklatest
+            image: {get_param: DockerRedisImage}
+            volumes:
+              - /etc/hosts:/etc/hosts:ro
+              - /etc/localtime:/etc/localtime:ro
+              - /dev/shm:/dev/shm:rw
+              - /etc/sysconfig/docker:/etc/sysconfig/docker:ro
+              - /usr/bin:/usr/bin:ro
+              - /var/run/docker.sock:/var/run/docker.sock:rw
         step_2:
           redis_init_bundle:
             start_order: 2
index 5ba54f8..2e5c742 100644 (file)
@@ -92,6 +92,13 @@ outputs:
             tripleo::profile::pacemaker::haproxy_bundle::internal_keys_directory: {get_param: HAProxyInternalTLSKeysDirectory}
             # disable the use CRL file until we can restart the container when the file expires
             tripleo::haproxy::crl_file: null
+            tripleo::profile::pacemaker::haproxy_bundle::haproxy_docker_image: &haproxy_image_pcmklatest
+              list_join:
+                - ':'
+                - - yaql:
+                      data: {get_param: DockerHAProxyImage}
+                      expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0]
+                  - 'pcmklatest'
       step_config: ""
       service_config_settings: {get_attr: [HAProxyBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
@@ -142,6 +149,30 @@ outputs:
               perm: '0600'
               optional: true
       docker_config:
+        step_1:
+          haproxy_image_tag:
+            start_order: 1
+            detach: false
+            net: host
+            user: root
+            command:
+              - '/bin/bash'
+              - '-c'
+              - str_replace:
+                  template:
+                    "/usr/bin/docker tag 'HAPROXY_IMAGE' 'HAPROXY_IMAGE_PCMKLATEST'"
+                  params:
+                    HAPROXY_IMAGE: {get_param: DockerHAProxyImage}
+                    HAPROXY_IMAGE_PCMKLATEST: *haproxy_image_pcmklatest
+            image: {get_param: DockerHAProxyImage}
+            volumes:
+              - /etc/hosts:/etc/hosts:ro
+              - /etc/localtime:/etc/localtime:ro
+              - /dev/shm:/dev/shm:rw
+              - /etc/sysconfig/docker:/etc/sysconfig/docker:ro
+              - /usr/bin:/usr/bin:ro
+              - /var/run/docker.sock:/var/run/docker.sock:rw
+            image: {get_param: DockerHAProxyImage}
         step_2:
           haproxy_init_bundle:
             start_order: 3
@@ -165,7 +196,7 @@ outputs:
                         - ';'
                         - - 'include ::tripleo::profile::base::pacemaker'
                           - 'include ::tripleo::profile::pacemaker::haproxy_bundle'
-            image: *haproxy_image
+            image: {get_param: DockerHAProxyImage}
             volumes:
               list_concat:
                 - *deployed_cert_mount
index 7103ba8..c88737a 100644 (file)
@@ -59,7 +59,13 @@ outputs:
       config_settings:
         map_merge:
           - get_attr: [ManilaBase, role_data, config_settings]
-          - tripleo::profile::pacemaker::manila::share_bundle::manila_share_docker_image: &manila_share_image {get_param: DockerManilaShareImage}
+          - tripleo::profile::pacemaker::manila::share_bundle::manila_share_docker_image: &manila_share_image_pcmklatest
+              list_join:
+                - ':'
+                - - yaql:
+                      data: {get_param: DockerManilaShareImage}
+                      expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0]
+                  - 'pcmklatest'
             manila::share::manage_service: false
             manila::share::enabled: false
             manila::host: hostgroup
@@ -93,10 +99,33 @@ outputs:
               owner: manila:manila
               recurse: true
       docker_config:
+        step_1:
+          manila_share_image_tag:
+            start_order: 1
+            detach: false
+            net: host
+            user: root
+            command:
+              - '/bin/bash'
+              - '-c'
+              - str_replace:
+                  template:
+                    "/usr/bin/docker tag 'MANILASHARE_IMAGE' 'MANILASHARE_IMAGE_PCMKLATEST'"
+                  params:
+                    MANILASHARE_IMAGE: {get_param: DockerManilaShareImage}
+                    MANILASHARE_IMAGE_PCMKLATEST: *manila_share_image_pcmklatest
+            image: {get_param: DockerManilaShareImage}
+            volumes:
+              - /etc/hosts:/etc/hosts:ro
+              - /etc/localtime:/etc/localtime:ro
+              - /dev/shm:/dev/shm:rw
+              - /etc/sysconfig/docker:/etc/sysconfig/docker:ro
+              - /usr/bin:/usr/bin:ro
+              - /var/run/docker.sock:/var/run/docker.sock:rw
         step_3:
           manila_share_init_logs:
             start_order: 0
-            image: *manila_share_image
+            image: {get_param: DockerManilaShareImage}
             privileged: false
             user: root
             volumes:
@@ -120,7 +149,7 @@ outputs:
                   params:
                     TAGS: 'pacemaker::resource::bundle,pacemaker::property,pacemaker::constraint::location'
                     CONFIG: 'include ::tripleo::profile::base::pacemaker;include ::tripleo::profile::pacemaker::manila::share_bundle'
-            image: *manila_share_image
+            image: {get_param: DockerManilaShareImage}
             volumes:
               - /etc/hosts:/etc/hosts:ro
               - /etc/localtime:/etc/localtime:ro
index d8e50af..ba1abaf 100644 (file)
@@ -62,7 +62,13 @@ outputs:
         map_merge:
           - {get_attr: [RabbitmqBase, role_data, config_settings]}
           - rabbitmq::service_manage: false
-            tripleo::profile::pacemaker::rabbitmq_bundle::rabbitmq_docker_image: &rabbitmq_image {get_param: DockerRabbitmqImage}
+            tripleo::profile::pacemaker::rabbitmq_bundle::rabbitmq_docker_image: &rabbitmq_image_pcmklatest
+              list_join:
+                - ':'
+                - - yaql:
+                      data: {get_param: DockerRabbitmqImage}
+                      expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0]
+                  - 'pcmklatest'
             tripleo::profile::pacemaker::rabbitmq_bundle::control_port: 3122
             tripleo.rabbitmq.firewall_rules:
               '109 rabbitmq-bundle':
@@ -118,7 +124,7 @@ outputs:
         step_1:
           rabbitmq_bootstrap:
             start_order: 0
-            image: *rabbitmq_image
+            image: {get_param: DockerRabbitmqImage}
             net: host
             privileged: false
             volumes:
@@ -141,6 +147,28 @@ outputs:
                           passwords:
                             - {get_param: RabbitCookie}
                             - {get_param: [DefaultPasswords, rabbit_cookie]}
+          rabbitmq_image_tag:
+            start_order: 1
+            detach: false
+            net: host
+            user: root
+            command:
+              - '/bin/bash'
+              - '-c'
+              - str_replace:
+                  template:
+                    "/usr/bin/docker tag 'RABBITMQ_IMAGE' 'RABBITMQ_IMAGE_PCMKLATEST'"
+                  params:
+                    RABBITMQ_IMAGE: {get_param: DockerRabbitmqImage}
+                    RABBITMQ_IMAGE_PCMKLATEST: *rabbitmq_image_pcmklatest
+            image: {get_param: DockerRabbitmqImage}
+            volumes:
+              - /etc/hosts:/etc/hosts:ro
+              - /etc/localtime:/etc/localtime:ro
+              - /dev/shm:/dev/shm:rw
+              - /etc/sysconfig/docker:/etc/sysconfig/docker:ro
+              - /usr/bin:/usr/bin:ro
+              - /var/run/docker.sock:/var/run/docker.sock:rw
         step_2:
           rabbitmq_init_bundle:
             start_order: 0
@@ -159,7 +187,7 @@ outputs:
                   params:
                     TAGS: 'pacemaker::resource::bundle,pacemaker::property,pacemaker::resource::ocf,pacemaker::constraint::order,pacemaker::constraint::colocation'
                     CONFIG: 'include ::tripleo::profile::base::pacemaker;include ::tripleo::profile::pacemaker::rabbitmq_bundle'
-            image: *rabbitmq_image
+            image: {get_param: DockerRabbitmqImage}
             volumes:
               - /etc/hosts:/etc/hosts:ro
               - /etc/localtime:/etc/localtime:ro
diff --git a/environments/cinder-dellemc-unity-config.yaml b/environments/cinder-dellemc-unity-config.yaml
new file mode 100644 (file)
index 0000000..c67c91c
--- /dev/null
@@ -0,0 +1,14 @@
+# A Heat environment file which can be used to enable a
+# Cinder Dell EMC Unity backend, configured via puppet
+resource_registry:
+  OS::TripleO::Services::CinderBackendDellEMCUnity: ../puppet/services/cinder-backend-dellemc-unity.yaml
+
+parameter_defaults:
+  CinderEnableDellEMCUnityBackend: true
+  CinderDellEMCUnityBackendName: 'tripleo_dellemc_unity'
+  CinderDellEMCUnitySanIp: ''
+  CinderDellEMCUnitySanLogin: 'Admin'
+  CinderDellEMCUnitySanPassword: ''
+  CinderDellEMCUnityStorageProtocol: 'iSCSI'
+  CinderDellEMCUnityIoPorts: ''
+  CinderDellEMCUnityStoragePoolNames: ''
index d14ed73..487857e 100644 (file)
@@ -235,11 +235,25 @@ case "${REG_METHOD:-}" in
         if [ "$satellite_version" = "6" ]; then
             repos="$repos --enable ${satellite_repo}"
             curl --retry ${retry_max_count} --retry-delay 10 --max-time 30 -L -k -O "$REG_SAT_URL/pub/katello-ca-consumer-latest.noarch.rpm"
+
+            # https://bugs.launchpad.net/tripleo/+bug/1711435
+            # Delete the /etc/rhsm/facts directory entirely so that the
+            # %post script from katello-ca-consumer does not override the
+            # hostname with $(hostname -f) if there is no fqdn set
+            fqdn=$(hostname -f)
+            if [ "$fqdn" = "localhost" -o "$fqdn" = "localhost.localdomain" ]; then
+                rm -rf /etc/rhsm/facts
+            fi
+
             rpm -Uvh katello-ca-consumer-latest.noarch.rpm || true
             retry subscription-manager register $opts
             retry subscription-manager $repos
             retry yum install -y katello-agent || true # needed for errata reporting to satellite6
             katello-package-upload
+
+            # https://bugs.launchpad.net/tripleo/+bug/1711435
+            # recreate the facts dir just in case we rm'd it earlier
+            mkdir -p /etc/rhsm/facts
         else
             pushd /usr/share/rhn/
             curl --retry ${retry_max_count} --retry-delay 10 --max-time 30 -k -O $REG_SAT_URL/pub/RHN-ORG-TRUSTED-SSL-CERT
index 2a9f9d7..7bcc6d8 100644 (file)
@@ -263,6 +263,7 @@ resource_registry:
   OS::TripleO::Services::NeutronML2FujitsuFossw: OS::Heat::None
   OS::TripleO::Services::CinderBackendDellPs: OS::Heat::None
   OS::TripleO::Services::CinderBackendDellSc: OS::Heat::None
+  OS::TripleO::Services::CinderBackendDellEMCUnity: OS::Heat::None
   OS::TripleO::Services::CinderBackendNetApp: OS::Heat::None
   OS::TripleO::Services::CinderBackendScaleIO: OS::Heat::None
   OS::TripleO::Services::CinderBackendVRTSHyperScale: OS::Heat::None
diff --git a/puppet/services/cinder-backend-dellemc-unity.yaml b/puppet/services/cinder-backend-dellemc-unity.yaml
new file mode 100644 (file)
index 0000000..c8b8bd8
--- /dev/null
@@ -0,0 +1,85 @@
+# Copyright (c) 2016-2017 Dell Inc, or its subsidiaries.
+#
+# 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: pike
+
+description: >
+  Openstack Cinder Dell EMC Unity backend
+
+parameters:
+  CinderEnableDellEMCUnityBackend:
+    type: boolean
+    default: true
+  CinderDellEMCUnityBackendName:
+    type: string
+    default: 'tripleo_dellemc_unity'
+  CinderDellEMCUnitySanIp:
+    type: string
+  CinderDellEMCUnitySanLogin:
+    type: string
+    default: 'Admin'
+  CinderDellEMCUnitySanPassword:
+    type: string
+    hidden: true
+  CinderDellEMCUnityStorageProtocol:
+    type: string
+    default: 'iSCSI'
+  CinderDellEMCUnityIoPorts:
+    type: string
+    default: ''
+  CinderDellEMCUnityStoragePoolNames:
+    type: string
+    default: ''
+  ServiceData:
+    default: {}
+    description: Dictionary packing service data
+    type: json
+  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
+  DefaultPasswords:
+    default: {}
+    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
+  EndpointMap:
+    default: {}
+    type: json
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+
+outputs:
+  role_data:
+    description: Role data for the Cinder Dell EMC Storage Center backend.
+    value:
+      service_name: cinder_backend_dellemc_unity
+      config_settings:
+                tripleo::profile::base::cinder::volume::cinder_enable_dellemc_unity_backend: {get_param: CinderEnableDellEMCUnityBackend}
+                cinder::backend::dellemc_unity::volume_backend_name: {get_param: CinderDellEMCUnityBackendName}
+                cinder::backend::dellemc_unity::san_ip: {get_param: CinderDellEMCUnitySanIp}
+                cinder::backend::dellemc_unity::san_login: {get_param: CinderDellEMCUnitySanLogin}
+                cinder::backend::dellemc_unity::san_password: {get_param: CinderDellEMCUnitySanPassword}
+                cinder::backend::dellemc_unity::storage_protocol: {get_param: CinderDellEMCUnityStorageProtocol}
+                cinder::backend::dellemc_unity::unity_io_ports: {get_param: CinderDellEMCUnityIoPorts}
+                cinder::backend::dellemc_unity::unity_storage_pool_names: {get_param: CinderDellEMCUnityStoragePoolNames}
+      step_config: |
+        include ::tripleo::profile::base::cinder::volume
index 81f12f0..30f3477 100644 (file)
@@ -57,10 +57,15 @@ parameters:
     default:
       tag: openstack.neutron.agent.metadata
       path: /var/log/neutron/metadata-agent.log
+  EnableInternalTLS:
+    type: boolean
+    default: false
 
 conditions:
   neutron_workers_unset: {equals : [{get_param: NeutronWorkers}, '']}
 
+  internal_tls_enabled: {equals: [{get_param: EnableInternalTLS}, true]}
+
 resources:
 
   NeutronBase:
@@ -90,6 +95,17 @@ outputs:
             neutron::agents::metadata::auth_url: { get_param: [EndpointMap, KeystoneInternal, uri_no_suffix] }
             neutron::agents::metadata::auth_tenant: 'service'
             neutron::agents::metadata::metadata_ip: "%{hiera('nova_metadata_vip')}"
+            neutron::agents::metadata::metadata_host:
+              str_replace:
+                template:
+                  "%{hiera('cloud_name_$NETWORK')}"
+                params:
+                  $NETWORK: {get_param: [ServiceNetMap, NovaMetadataNetwork]}
+            neutron::agents::metadata::metadata_protocol:
+              if:
+              - internal_tls_enabled
+              - 'https'
+              - 'http'
           -
             if:
             - neutron_workers_unset
index ca9eed0..3ac5f30 100644 (file)
@@ -34,10 +34,26 @@ parameters:
     default: 0
     description: Number of workers for Nova services.
     type: number
+  EnableInternalTLS:
+    type: boolean
+    default: false
 
 conditions:
   nova_workers_zero: {equals : [{get_param: NovaWorkers}, 0]}
 
+  use_tls_proxy: {equals : [{get_param: EnableInternalTLS}, true]}
+
+resources:
+
+  TLSProxyBase:
+    type: OS::TripleO::Services::TLSProxyBase
+    properties:
+      ServiceData: {get_param: ServiceData}
+      ServiceNetMap: {get_param: ServiceNetMap}
+      DefaultPasswords: {get_param: DefaultPasswords}
+      EndpointMap: {get_param: EndpointMap}
+      EnableInternalTLS: {get_param: EnableInternalTLS}
+
 outputs:
   role_data:
     description: Role data for the Nova Metadata service.
@@ -45,10 +61,29 @@ outputs:
       service_name: nova_metadata
       config_settings:
         map_merge:
-        - nova::api::metadata_listen: {get_param: [ServiceNetMap, NovaMetadataNetwork]}
+        - get_attr: [TLSProxyBase, role_data, config_settings]
+        - nova::api::metadata_listen:
+            if:
+            - use_tls_proxy
+            - 'localhost'
+            - {get_param: [ServiceNetMap, NovaMetadataNetwork]}
         -
           if:
           - nova_workers_zero
           - {}
           - nova::api::metadata_workers: {get_param: NovaWorkers}
+        -
+          if:
+          - use_tls_proxy
+          - tripleo::profile::base::nova::api::metadata_tls_proxy_bind_ip:
+              get_param: [ServiceNetMap, NovaMetadataNetwork]
+            tripleo::profile::base::nova::api::metadata_tls_proxy_fqdn:
+              str_replace:
+                template:
+                  "%{hiera('fqdn_$NETWORK')}"
+                params:
+                  $NETWORK: {get_param: [ServiceNetMap, NovaMetadataNetwork]}
+          - {}
       step_config: ""
+      metadata_settings:
+        get_attr: [TLSProxyBase, role_data, metadata_settings]
diff --git a/releasenotes/notes/unity_cinder_e9872898724a11e7.yaml b/releasenotes/notes/unity_cinder_e9872898724a11e7.yaml
new file mode 100644 (file)
index 0000000..f2edb9f
--- /dev/null
@@ -0,0 +1,4 @@
+---
+features:
+  - |
+    Add support for Dell EMC Unity cinder driver
diff --git a/releasenotes/notes/workaround-unset-fqdn-for-rhel-reg-be9c4620146096be.yaml b/releasenotes/notes/workaround-unset-fqdn-for-rhel-reg-be9c4620146096be.yaml
new file mode 100644 (file)
index 0000000..04b21fb
--- /dev/null
@@ -0,0 +1,8 @@
+---
+fixes:
+  - Workaround systems getting registered as "localhost" during
+    RHEL registration if they don't have a fqdn set by first
+    rm'ing the /etc/rhsm/facts directory. When the directory does not
+    exist, the katello-rshm-consumer which runs when installing
+    the katello-ca-consumer will not set the hostname.override fact to
+    "localhost". See https://bugs.launchpad.net/tripleo/+bug/1711435
index 224d135..3d9173c 100644 (file)
@@ -44,6 +44,7 @@
     - OS::TripleO::Services::CinderApi
     - OS::TripleO::Services::CinderBackendDellPs
     - OS::TripleO::Services::CinderBackendDellSc
+    - OS::TripleO::Services::CinderBackendDellEMCUnity
     - OS::TripleO::Services::CinderBackendNetApp
     - OS::TripleO::Services::CinderBackendScaleIO
     - OS::TripleO::Services::CinderBackendVRTSHyperScale
index 8f67099..bde656f 100644 (file)
@@ -47,6 +47,7 @@
     - OS::TripleO::Services::CinderApi
     - OS::TripleO::Services::CinderBackendDellPs
     - OS::TripleO::Services::CinderBackendDellSc
+    - OS::TripleO::Services::CinderBackendDellEMCUnity
     - OS::TripleO::Services::CinderBackendNetApp
     - OS::TripleO::Services::CinderBackendScaleIO
     - OS::TripleO::Services::CinderBackendVRTSHyperScale