diff options
-rw-r--r-- | ci/environments/scenario002-multinode-containers.yaml | 4 | ||||
-rw-r--r-- | ci/environments/scenario002-multinode.yaml | 4 | ||||
-rw-r--r-- | docker/services/ceph-ansible/ceph-base.yaml | 20 | ||||
-rw-r--r-- | docker/services/glance-api.yaml | 23 | ||||
-rw-r--r-- | docker/services/memcached.yaml | 10 | ||||
-rw-r--r-- | environments/composable-roles/standalone.yaml | 12 | ||||
-rw-r--r-- | extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration | 2 | ||||
-rw-r--r-- | puppet/role.role.j2.yaml | 2 | ||||
-rw-r--r-- | puppet/services/neutron-lbaas.yaml | 3 | ||||
-rw-r--r-- | puppet/services/rabbitmq.yaml | 2 | ||||
-rw-r--r-- | releasenotes/notes/ceph-pools-with-ceph-ansible-f82425e585f90ef6.yaml | 17 | ||||
-rw-r--r-- | sample-env-generator/composable-roles.yaml | 25 | ||||
-rwxr-xr-x | tools/yaml-validate.py | 5 |
13 files changed, 94 insertions, 35 deletions
diff --git a/ci/environments/scenario002-multinode-containers.yaml b/ci/environments/scenario002-multinode-containers.yaml index bec5f48e..534f8294 100644 --- a/ci/environments/scenario002-multinode-containers.yaml +++ b/ci/environments/scenario002-multinode-containers.yaml @@ -9,7 +9,6 @@ resource_registry: OS::TripleO::Services::BarbicanApi: ../../docker/services/barbican-api.yaml OS::TripleO::Services::Zaqar: ../../docker/services/zaqar.yaml OS::TripleO::Services::Ec2Api: ../../docker/services/ec2-api.yaml - OS::TripleO::Services::MongoDb: ../../docker/services/database/mongodb.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. OS::TripleO::AllNodes::Validation: ../common/all-nodes-validation-disabled.yaml @@ -58,7 +57,6 @@ parameter_defaults: - OS::TripleO::Services::SwiftStorage - OS::TripleO::Services::SwiftRingBuilder - OS::TripleO::Services::BarbicanApi - - OS::TripleO::Services::MongoDb - OS::TripleO::Services::Zaqar - OS::TripleO::Services::Ec2Api - OS::TripleO::Services::TripleoPackages @@ -69,5 +67,7 @@ parameter_defaults: nova::compute::libvirt::services::libvirt_virt_type: qemu nova::compute::libvirt::libvirt_virt_type: qemu Debug: true + ZaqarMessageStore: 'swift' + ZaqarManagementStore: 'sqlalchemy' SwiftCeilometerPipelineEnabled: false NotificationDriver: 'noop' diff --git a/ci/environments/scenario002-multinode.yaml b/ci/environments/scenario002-multinode.yaml index 6c7f4ebb..2f731ce9 100644 --- a/ci/environments/scenario002-multinode.yaml +++ b/ci/environments/scenario002-multinode.yaml @@ -9,7 +9,6 @@ resource_registry: OS::TripleO::Services::HAproxy: ../../puppet/services/pacemaker/haproxy.yaml OS::TripleO::Services::Pacemaker: ../../puppet/services/pacemaker.yaml OS::TripleO::Services::MySQL: ../../puppet/services/pacemaker/database/mysql.yaml - OS::TripleO::Services::MongoDb: ../../puppet/services/database/mongodb.yaml OS::TripleO::Services::CinderBackup: ../../puppet/services/pacemaker/cinder-backup.yaml OS::TripleO::Services::CinderVolume: ../../puppet/services/pacemaker/cinder-volume.yaml OS::TripleO::Services::Keepalived: OS::Heat::None @@ -63,7 +62,6 @@ parameter_defaults: - OS::TripleO::Services::SwiftStorage - OS::TripleO::Services::SwiftRingBuilder - OS::TripleO::Services::BarbicanApi - - OS::TripleO::Services::MongoDb - OS::TripleO::Services::Zaqar - OS::TripleO::Services::Ec2Api - OS::TripleO::Services::TripleoPackages @@ -86,5 +84,7 @@ parameter_defaults: nova::compute::libvirt::services::libvirt_virt_type: qemu nova::compute::libvirt::libvirt_virt_type: qemu Debug: true + ZaqarMessageStore: 'swift' + ZaqarManagementStore: 'sqlalchemy' SwiftCeilometerPipelineEnabled: false NotificationDriver: 'noop' diff --git a/docker/services/ceph-ansible/ceph-base.yaml b/docker/services/ceph-ansible/ceph-base.yaml index 8cc81fb0..4674ec14 100644 --- a/docker/services/ceph-ansible/ceph-base.yaml +++ b/docker/services/ceph-ansible/ceph-base.yaml @@ -73,15 +73,9 @@ parameters: description: > It can be used to override settings for one of the predefined pools, or to create additional ones. Example: - { - "volumes": { - "size": 5, - "pg_num": 128, - "pgp_num": 128 - } - } - default: {} - type: json + [{"name": "volumes", "pg_num": 64, "rule_name": ""}] + default: [] + type: comma_delimited_list CinderRbdPoolName: default: volumes type: string @@ -225,13 +219,7 @@ outputs: - {get_param: NovaRbdPoolName} - {get_param: GlanceRbdPoolName} - {get_param: GnocchiRbdPoolName} - - repeat: - template: - name: <%pool%> - pg_num: {get_param: CephPoolDefaultPgNum} - rule_name: "" - for_each: - <%pool%>: {get_param: CephPools} + - {get_param: CephPools} openstack_keys: &openstack_keys - name: list_join: diff --git a/docker/services/glance-api.yaml b/docker/services/glance-api.yaml index e1a3827a..1a6f5c77 100644 --- a/docker/services/glance-api.yaml +++ b/docker/services/glance-api.yaml @@ -48,6 +48,16 @@ parameters: default: false description: Remove package if the service is being disabled during upgrade type: boolean + GlanceNfsShare: + default: '' + description: > + NFS share to mount for image storage (when GlanceNfsEnabled is true) + type: string + GlanceNfsOptions: + default: 'intr,context=system_u:object_r:glance_var_lib_t:s0' + description: > + NFS mount options for image storage (when GlanceNfsEnabled is true) + type: string conditions: @@ -108,6 +118,10 @@ outputs: dest: "/etc/ceph/" merge: true preserve_properties: true + permissions: + - path: /var/lib/glance + owner: glance:glance + recurse: true /var/lib/kolla/config_files/glance_api_tls_proxy.json: command: /usr/sbin/httpd -DFOREGROUND config_files: @@ -182,6 +196,15 @@ outputs: - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS - {} host_prep_tasks: + - name: Mount NFS on host + vars: + nfs_backend_enable: {get_param: GlanceNfsEnabled} + mount: name=/var/lib/glance src="{{item.NFS_SHARE}}" fstype=nfs4 opts="{{item.NFS_OPTIONS}}" state=mounted + with_items: + - NFS_SHARE: {get_param: GlanceNfsShare} + NFS_OPTIONS: {get_param: GlanceNfsOptions} + when: + - nfs_backend_enable - name: create persistent logs directory file: path: "{{ item }}" diff --git a/docker/services/memcached.yaml b/docker/services/memcached.yaml index 817f9ec7..67b84249 100644 --- a/docker/services/memcached.yaml +++ b/docker/services/memcached.yaml @@ -94,7 +94,15 @@ outputs: - - /var/lib/config-data/memcached/etc/sysconfig/memcached:/etc/sysconfig/memcached:ro - /var/log/containers/memcached:/var/log/ - command: ['/bin/bash', '-c', 'source /etc/sysconfig/memcached; /usr/bin/memcached -p ${PORT} -u ${USER} -m ${CACHESIZE} -c ${MAXCONN} $OPTIONS'] + # NOTE: We're adding the log redirection here, even though should + # already be part of the options. This is because the redirection + # via the options is not working and ends up being passed as a + # parameter to the memcached command (which it silently ignores). + # Thus the need for the explicit redirection here. The redirection + # will be removed from the $OPTIONS, which is done via the puppet + # module, but we'll only be able to do this once the following pull + # request merges: https://github.com/saz/puppet-memcached/pull/88 + command: ['/bin/bash', '-c', 'source /etc/sysconfig/memcached; /usr/bin/memcached -p ${PORT} -u ${USER} -m ${CACHESIZE} -c ${MAXCONN} $OPTIONS >> /var/log/memcached.log 2>&1'] upgrade_tasks: - name: Stop and disable memcached service tags: step2 diff --git a/environments/composable-roles/standalone.yaml b/environments/composable-roles/standalone.yaml index 3305c9ed..c12d72de 100644 --- a/environments/composable-roles/standalone.yaml +++ b/environments/composable-roles/standalone.yaml @@ -30,13 +30,13 @@ parameter_defaults: # Type: string ComputeHostnameFormat: '%stackname%-novacompute-%index%' - # Number of Controller nodes to deploy + # Number of ControllerOpenstack nodes # Type: number - ControllerCount: 3 + ControllerOpenstackCount: 3 - # Format for Controller node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud + # Format for ControllerOpenstack node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud # Type: string - ControllerHostnameFormat: '%stackname%-controller-%index%' + ControllerOpenstackHostnameFormat: '%stackname%-controller-%index%' # Number of Database nodes # Type: number @@ -66,9 +66,9 @@ parameter_defaults: # Type: string OvercloudComputeFlavor: compute - # Name of the flavor for Controller nodes + # Name of the flavor for ControllerOpenstack nodes # Type: string - OvercloudControllerFlavor: control + OvercloudControllerOpenstackFlavor: control # Name of the flavor for Database nodes # Type: string diff --git a/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration b/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration index d754aafd..c7d0b231 100644 --- a/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration +++ b/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration @@ -247,7 +247,7 @@ case "${REG_METHOD:-}" in 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 + yum install -y katello-agent || true # needed for errata reporting to satellite6 katello-package-upload # https://bugs.launchpad.net/tripleo/+bug/1711435 diff --git a/puppet/role.role.j2.yaml b/puppet/role.role.j2.yaml index 15da1773..d53afd04 100644 --- a/puppet/role.role.j2.yaml +++ b/puppet/role.role.j2.yaml @@ -565,6 +565,7 @@ resources: - bootstrap_node # provided by allNodesConfig - all_nodes # provided by allNodesConfig - vip_data # provided by allNodesConfig + - net_ip_map - '"%{::osfamily}"' # The following are required for compatibility with the Controller role # where some vendor integrations added hieradata via ExtraConfigPre @@ -578,6 +579,7 @@ resources: service_names: service_names: {get_param: ServiceNames} sensu::subscriptions: {get_param: MonitoringSubscriptions} + net_ip_map: {get_attr: [NetIpMap, net_ip_map]} service_configs: map_replace: - {get_param: ServiceConfigSettings} diff --git a/puppet/services/neutron-lbaas.yaml b/puppet/services/neutron-lbaas.yaml index ec477ddc..a2c1a2ae 100644 --- a/puppet/services/neutron-lbaas.yaml +++ b/puppet/services/neutron-lbaas.yaml @@ -73,3 +73,6 @@ outputs: service_config_settings: neutron_api: neutron::server::service_providers: {get_param: NeutronServiceProviders} + horizon: + horizon::neutron_options: + enable_lb: True diff --git a/puppet/services/rabbitmq.yaml b/puppet/services/rabbitmq.yaml index a1a60201..879af2a1 100644 --- a/puppet/services/rabbitmq.yaml +++ b/puppet/services/rabbitmq.yaml @@ -41,7 +41,7 @@ parameters: RabbitFDLimit: default: 65536 description: Configures RabbitMQ FD limit - type: string + type: number RabbitIPv6: default: false description: Enable IPv6 in RabbitMQ diff --git a/releasenotes/notes/ceph-pools-with-ceph-ansible-f82425e585f90ef6.yaml b/releasenotes/notes/ceph-pools-with-ceph-ansible-f82425e585f90ef6.yaml new file mode 100644 index 00000000..63e6f212 --- /dev/null +++ b/releasenotes/notes/ceph-pools-with-ceph-ansible-f82425e585f90ef6.yaml @@ -0,0 +1,17 @@ +--- +upgrade: + - | + The format to use for the CephPools parameter needs to be updated into the + form expected by ceph-ansible. For example, for a new pool named `mypool` + it should change from: + { "mypool": { "size": 3, "pg_num": 128, "pgp_num": 128 } } + into: + [ { "name": "mypool", "pg_num": 128, "rule_name": "" } ] + The first is a map where each key is a pool name and its value the pool + properties, the second is a list where each item describes all properties + of a pool, including its name. +other: + - | + With the migration from puppet-ceph to ceph-ansible for the deployment + of Ceph, the format of CephPools parameter changes because the two tools + use a different format to represent the list of additional pools to create. diff --git a/sample-env-generator/composable-roles.yaml b/sample-env-generator/composable-roles.yaml index 91d6060f..2c929a4b 100644 --- a/sample-env-generator/composable-roles.yaml +++ b/sample-env-generator/composable-roles.yaml @@ -89,10 +89,8 @@ environments: files: overcloud.yaml: parameters: - - ControllerHostnameFormat - ComputeHostnameFormat - CephStorageHostnameFormat - - ControllerCount - ComputeCount - CephStorageCount puppet/services/time/ntp.yaml: @@ -100,19 +98,21 @@ environments: - NtpServer sample-env-generator/composable-roles.yaml: parameters: + - ControllerOpenstackHostnameFormat - DnsServers + - ControllerOpenstackCount - DatabaseCount - MessagingCount - NetworkerCount - - OvercloudControllerFlavor + - OvercloudControllerOpenstackFlavor - OvercloudComputeFlavor - OvercloudCephStorageFlavor - OvercloudDatabaseFlavor - OvercloudMessagingFlavor - OvercloudNetworkerFlavor sample_values: - ControllerCount: 3 - OvercloudControllerFlavor: control + ControllerOpenstackCount: 3 + OvercloudControllerOpenstackFlavor: control ComputeCount: 1 OvercloudComputeFlavor: compute CephStorageCount: 1 @@ -135,6 +135,10 @@ parameters: description: DNS servers to use for the Overcloud type: comma_delimited_list # Dynamic vars based on roles + ControllerOpenstackCount: + default: 0 + description: Number of ControllerOpenstack nodes + type: number DatabaseCount: default: 0 description: Number of Database nodes @@ -147,10 +151,21 @@ parameters: default: 0 description: Number of Networker nodes type: number + ControllerOpenstackHostnameFormat: + type: string + description: > + Format for ControllerOpenstack node hostnames + Note %index% is translated into the index of the node, e.g 0/1/2 etc + and %stackname% is replaced with the stack name e.g overcloud + default: "%stackname%-controller-%index%" OvercloudControllerFlavor: default: control description: Name of the flavor for Controller nodes type: string + OvercloudControllerOpenstackFlavor: + default: control + description: Name of the flavor for ControllerOpenstack nodes + type: string OvercloudComputeFlavor: default: compute description: Name of the flavor for Compute nodes diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py index c3229621..76f856db 100755 --- a/tools/yaml-validate.py +++ b/tools/yaml-validate.py @@ -46,7 +46,10 @@ OPTIONAL_DOCKER_PUPPET_CONFIG_SECTIONS = [ 'puppet_tags', 'volumes' ] # consistency across files on. This should only contain parameters whose # definition we cannot change for backwards compatibility reasons. New # parameters to the templates should not be added to this list. -PARAMETER_DEFINITION_EXCLUSIONS = {'ManagementNetCidr': ['default'], +PARAMETER_DEFINITION_EXCLUSIONS = {'CephPools': ['description', + 'type', + 'default'], + 'ManagementNetCidr': ['default'], 'ManagementAllocationPools': ['default'], 'ExternalNetCidr': ['default'], 'ExternalAllocationPools': ['default'], |