summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.rst8
-rw-r--r--ci/environments/scenario002-multinode.yaml13
-rw-r--r--docker/services/gnocchi-api.yaml10
-rw-r--r--docker/services/multipathd.yaml10
-rw-r--r--docker/services/pacemaker/database/mysql.yaml23
-rw-r--r--environments/neutron-opendaylight-sriov.yaml28
-rw-r--r--environments/predictable-placement/custom-domain.yaml35
-rw-r--r--environments/services-docker/ironic.yaml2
-rw-r--r--extraconfig/nova_metadata/krb-service-principals.yaml4
-rw-r--r--extraconfig/tasks/tripleo_upgrade_node.sh3
-rw-r--r--firstboot/userdata_example.yaml3
-rw-r--r--overcloud.j2.yaml4
-rw-r--r--puppet/services/ceilometer-base.yaml2
-rw-r--r--puppet/services/database/redis.yaml3
-rw-r--r--puppet/services/haproxy-internal-tls-certmonger.yaml8
-rw-r--r--puppet/services/haproxy-public-tls-certmonger.yaml10
-rw-r--r--puppet/services/keystone.yaml4
-rw-r--r--puppet/services/neutron-plugin-ml2-odl.yaml2
-rw-r--r--puppet/services/nova-compute.yaml2
-rw-r--r--puppet/services/nova-conductor.yaml2
-rw-r--r--puppet/services/opendaylight-ovs.yaml46
-rw-r--r--releasenotes/notes/add-odl-sriov-env-e31982064c2bf646.yaml4
-rw-r--r--releasenotes/notes/odl-port-binding-d420cac81f714778.yaml9
-rw-r--r--sample-env-generator/predictable-placement.yaml15
-rwxr-xr-xtools/yaml-validate.py1
25 files changed, 220 insertions, 31 deletions
diff --git a/README.rst b/README.rst
index f670fa60..93c443bb 100644
--- a/README.rst
+++ b/README.rst
@@ -113,13 +113,13 @@ and should be executed according to the following table:
+----------------+-------------+-------------+-------------+-------------+-----------------+--------------+
| swift | | X | | | X | |
+----------------+-------------+-------------+-------------+-------------+-----------------+--------------+
-| aodh | X | | | | | |
+| aodh | X | X | | | | |
+----------------+-------------+-------------+-------------+-------------+-----------------+--------------+
-| ceilometer | X | | | | | |
+| ceilometer | X | X | | | | |
+----------------+-------------+-------------+-------------+-------------+-----------------+--------------+
-| gnocchi | X | | | | | |
+| gnocchi | rbd | swift | | | | |
+----------------+-------------+-------------+-------------+-------------+-----------------+--------------+
-| panko | X | | | | | |
+| panko | X | X | | | | |
+----------------+-------------+-------------+-------------+-------------+-----------------+--------------+
| barbican | | X | | | | |
+----------------+-------------+-------------+-------------+-------------+-----------------+--------------+
diff --git a/ci/environments/scenario002-multinode.yaml b/ci/environments/scenario002-multinode.yaml
index cdbcbfd6..513d3f71 100644
--- a/ci/environments/scenario002-multinode.yaml
+++ b/ci/environments/scenario002-multinode.yaml
@@ -5,6 +5,7 @@ resource_registry:
OS::TripleO::Services::Zaqar: ../../puppet/services/zaqar.yaml
OS::TripleO::Services::Ec2Api: ../../puppet/services/ec2-api.yaml
OS::TripleO::Services::RabbitMQ: ../../puppet/services/pacemaker/rabbitmq.yaml
+ OS::TripleO::Services::Redis: ../../puppet/services/pacemaker/database/redis.yaml
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
@@ -68,6 +69,18 @@ parameter_defaults:
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::Sshd
- OS::TripleO::Services::Iscsid
+ - OS::TripleO::Services::Redis
+ - OS::TripleO::Services::AodhApi
+ - OS::TripleO::Services::AodhEvaluator
+ - OS::TripleO::Services::AodhNotifier
+ - OS::TripleO::Services::AodhListener
+ - OS::TripleO::Services::CeilometerAgentCentral
+ - OS::TripleO::Services::CeilometerAgentIpmi
+ - OS::TripleO::Services::CeilometerAgentNotification
+ - OS::TripleO::Services::GnocchiApi
+ - OS::TripleO::Services::GnocchiMetricd
+ - OS::TripleO::Services::GnocchiStatsd
+ - OS::TripleO::Services::PankoApi
ControllerExtraConfig:
nova::compute::libvirt::services::libvirt_virt_type: qemu
nova::compute::libvirt::libvirt_virt_type: qemu
diff --git a/docker/services/gnocchi-api.yaml b/docker/services/gnocchi-api.yaml
index 5129b89f..41fe197b 100644
--- a/docker/services/gnocchi-api.yaml
+++ b/docker/services/gnocchi-api.yaml
@@ -39,6 +39,10 @@ parameters:
EnableInternalTLS:
type: boolean
default: false
+ NumberOfStorageSacks:
+ default: 128
+ description: Number of storage sacks to create.
+ type: number
conditions:
@@ -110,7 +114,11 @@ outputs:
-
- /var/lib/config-data/gnocchi/etc/gnocchi/:/etc/gnocchi/:ro
- /var/log/containers/gnocchi:/var/log/gnocchi
- command: "/usr/bin/bootstrap_host_exec gnocchi_api su gnocchi -s /bin/bash -c '/usr/bin/gnocchi-upgrade --skip-storage'"
+ command:
+ str_replace:
+ template: "/usr/bin/bootstrap_host_exec gnocchi_api su gnocchi -s /bin/bash -c /usr/bin/gnocchi-upgrade --sacks-number=SACK_NUM"
+ params:
+ SACK_NUM: {get_param: NumberOfStorageSacks}
step_4:
gnocchi_api:
image: *gnocchi_api_image
diff --git a/docker/services/multipathd.yaml b/docker/services/multipathd.yaml
index fc749f37..5e01558a 100644
--- a/docker/services/multipathd.yaml
+++ b/docker/services/multipathd.yaml
@@ -59,11 +59,11 @@ outputs:
kolla_config:
/var/lib/kolla/config_files/multipathd.json:
command: /usr/sbin/multipathd -d
- config_files:
- - source: "/var/lib/kolla/config_files/src-iscsid/*"
- dest: "/"
- merge: true
- preserve_properties: true
+ config_files:
+ - source: "/var/lib/kolla/config_files/src-iscsid/*"
+ dest: "/"
+ merge: true
+ preserve_properties: true
docker_config:
step_3:
multipathd:
diff --git a/docker/services/pacemaker/database/mysql.yaml b/docker/services/pacemaker/database/mysql.yaml
index f12852f8..3fb38349 100644
--- a/docker/services/pacemaker/database/mysql.yaml
+++ b/docker/services/pacemaker/database/mysql.yaml
@@ -32,6 +32,9 @@ parameters:
type: string
hidden: true
default: ''
+ MysqlClustercheckPassword:
+ type: string
+ hidden: true
RoleName:
default: ''
description: Role name on which the service is applied
@@ -118,7 +121,19 @@ outputs:
image: *mysql_image
net: host
# Kolla bootstraps aren't idempotent, explicitly checking if bootstrap was done
- command: ['bash', '-c', 'test -e /var/lib/mysql/mysql || kolla_start']
+ command:
+ - 'bash'
+ - '-ec'
+ -
+ list_join:
+ - "\n"
+ - - 'if [ -e /var/lib/mysql/mysql ]; then exit 0; fi'
+ - 'kolla_start'
+ - 'mysqld_safe --skip-networking --wsrep-on=OFF &'
+ - 'timeout ${DB_MAX_TIMEOUT} /bin/bash -c ''until mysqladmin -uroot -p"${DB_ROOT_PASSWORD}" ping 2>/dev/null; do sleep 1; done'''
+ - 'mysql -uroot -p"${DB_ROOT_PASSWORD}" -e "CREATE USER ''clustercheck''@''localhost'' IDENTIFIED BY ''${DB_CLUSTERCHECK_PASSWORD}'';"'
+ - 'mysql -uroot -p"${DB_ROOT_PASSWORD}" -e "GRANT PROCESS ON *.* TO ''clustercheck''@''localhost'' WITH GRANT OPTION;"'
+ - 'timeout ${DB_MAX_TIMEOUT} mysqladmin -uroot -p"${DB_ROOT_PASSWORD}" shutdown'
volumes: &mysql_volumes
list_concat:
- {get_attr: [ContainersCommon, volumes]}
@@ -131,6 +146,12 @@ outputs:
- KOLLA_BOOTSTRAP=True
# NOTE(mandre) skip wsrep cluster status check
- KOLLA_KUBERNETES=True
+ - DB_MAX_TIMEOUT=60
+ -
+ list_join:
+ - '='
+ - - 'DB_CLUSTERCHECK_PASSWORD'
+ - {get_param: MysqlClustercheckPassword}
-
list_join:
- '='
diff --git a/environments/neutron-opendaylight-sriov.yaml b/environments/neutron-opendaylight-sriov.yaml
new file mode 100644
index 00000000..5c0a0350
--- /dev/null
+++ b/environments/neutron-opendaylight-sriov.yaml
@@ -0,0 +1,28 @@
+# A Heat environment that can be used to deploy OpenDaylight with SRIOV
+resource_registry:
+ OS::TripleO::Services::NeutronOvsAgent: OS::Heat::None
+ OS::TripleO::Services::ComputeNeutronOvsAgent: OS::Heat::None
+ OS::TripleO::Services::ComputeNeutronCorePlugin: ../puppet/services/neutron-plugin-ml2.yaml
+ OS::TripleO::Services::NeutronCorePlugin: ../puppet/services/neutron-plugin-ml2-odl.yaml
+ OS::TripleO::Services::OpenDaylightApi: ../puppet/services/opendaylight-api.yaml
+ OS::TripleO::Services::OpenDaylightOvs: ../puppet/services/opendaylight-ovs.yaml
+ OS::TripleO::Services::NeutronSriovAgent: ../puppet/services/neutron-sriov-agent.yaml
+ OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
+
+parameter_defaults:
+ NeutronEnableForceMetadata: true
+ NeutronMechanismDrivers: ['sriovnicswitch','opendaylight_v2']
+ NeutronServicePlugins: 'odl-router_v2,trunk'
+
+ # Add PciPassthroughFilter to the scheduler default filters
+ #NovaSchedulerDefaultFilters: ['RetryFilter','AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter']
+ #NovaSchedulerAvailableFilters: ["nova.scheduler.filters.all_filters","nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter"]
+
+ #NeutronPhysicalDevMappings: "datacentre:ens20f2"
+
+ # Number of VFs that needs to be configured for a physical interface
+ #NeutronSriovNumVFs: "ens20f2:5"
+
+ #NovaPCIPassthrough:
+ # - devname: "ens20f2"
+ # physical_network: "datacentre"
diff --git a/environments/predictable-placement/custom-domain.yaml b/environments/predictable-placement/custom-domain.yaml
new file mode 100644
index 00000000..aacb677a
--- /dev/null
+++ b/environments/predictable-placement/custom-domain.yaml
@@ -0,0 +1,35 @@
+# *******************************************************************
+# This file was created automatically by the sample environment
+# generator. Developers should use `tox -e genconfig` to update it.
+# Users are recommended to make changes to a copy of the file instead
+# of the original, if any customizations are needed.
+# *******************************************************************
+# title: Custom Domain Name
+# description: |
+# This environment contains the parameters that need to be set in order to
+# use a custom domain name and have all of the various FQDNs reflect it.
+parameter_defaults:
+ # The DNS domain used for the hosts. This must match the overcloud_domain_name configured on the undercloud.
+ # Type: string
+ CloudDomain: localdomain
+
+ # The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
+ # Type: string
+ CloudName: overcloud.localdomain
+
+ # The DNS name of this cloud's provisioning network endpoint. E.g. 'ci-overcloud.ctlplane.tripleo.org'.
+ # Type: string
+ CloudNameCtlplane: overcloud.ctlplane.localdomain
+
+ # The DNS name of this cloud's internal API endpoint. E.g. 'ci-overcloud.internalapi.tripleo.org'.
+ # Type: string
+ CloudNameInternal: overcloud.internalapi.localdomain
+
+ # The DNS name of this cloud's storage endpoint. E.g. 'ci-overcloud.storage.tripleo.org'.
+ # Type: string
+ CloudNameStorage: overcloud.storage.localdomain
+
+ # The DNS name of this cloud's storage management endpoint. E.g. 'ci-overcloud.storagemgmt.tripleo.org'.
+ # Type: string
+ CloudNameStorageManagement: overcloud.storagemgmt.localdomain
+
diff --git a/environments/services-docker/ironic.yaml b/environments/services-docker/ironic.yaml
index e927ecb3..d98ca1d4 100644
--- a/environments/services-docker/ironic.yaml
+++ b/environments/services-docker/ironic.yaml
@@ -3,3 +3,5 @@ resource_registry:
OS::TripleO::Services::IronicConductor: ../../docker/services/ironic-conductor.yaml
OS::TripleO::Services::IronicPxe: ../../docker/services/ironic-pxe.yaml
OS::TripleO::Services::NovaIronic: ../../docker/services/nova-ironic.yaml
+parameter_defaults:
+ NovaSchedulerDiscoverHostsInCellsInterval: 15
diff --git a/extraconfig/nova_metadata/krb-service-principals.yaml b/extraconfig/nova_metadata/krb-service-principals.yaml
index 59b8e7f5..cdd4341a 100644
--- a/extraconfig/nova_metadata/krb-service-principals.yaml
+++ b/extraconfig/nova_metadata/krb-service-principals.yaml
@@ -32,8 +32,8 @@ parameters:
CloudNameCtlplane:
default: overcloud.ctlplane.localdomain
description: >
- The DNS name of this cloud's storage management endpoint. E.g.
- 'ci-overcloud.management.tripleo.org'.
+ The DNS name of this cloud's provisioning network endpoint. E.g.
+ 'ci-overcloud.ctlplane.tripleo.org'.
type: string
resources:
diff --git a/extraconfig/tasks/tripleo_upgrade_node.sh b/extraconfig/tasks/tripleo_upgrade_node.sh
index af49d49d..baf838e4 100644
--- a/extraconfig/tasks/tripleo_upgrade_node.sh
+++ b/extraconfig/tasks/tripleo_upgrade_node.sh
@@ -55,6 +55,9 @@ if [[ -n \$NOVA_COMPUTE ]]; then
log_debug "Stop and disable libvirtd service for upgrade to containers"
systemctl stop libvirtd
systemctl disable libvirtd
+ log_debug "Stop and disable openstack-nova-compute for upgrade to containers"
+ systemctl stop openstack-nova-compute
+ systemctl disable openstack-nova-compute
fi
# Apply puppet manifest to converge just right after the ${ROLE} upgrade
diff --git a/firstboot/userdata_example.yaml b/firstboot/userdata_example.yaml
index 2f03c83b..32da7eda 100644
--- a/firstboot/userdata_example.yaml
+++ b/firstboot/userdata_example.yaml
@@ -42,10 +42,9 @@ resources:
str_replace:
template: |
#!/bin/bash
- curl http://169.254.169.254/openstack/2012-08-10/meta_data.json -o /root/meta_data.json
mkdir -p /home/$user/.ssh
chmod 700 /home/$user/.ssh
- cat /root/meta_data.json | jq -r ".keys[0].data" > /home/$user/.ssh/authorized_keys
+ os-apply-config --key public-keys.0.openssh-key --type raw > /home/$user/.ssh/authorized_keys
chmod 600 /home/$user/.ssh/authorized_keys
chown -R $user:$user /home/$user/.ssh
params:
diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml
index 586c3971..2bfdf506 100644
--- a/overcloud.j2.yaml
+++ b/overcloud.j2.yaml
@@ -46,8 +46,8 @@ parameters:
CloudNameCtlplane:
default: overcloud.ctlplane.localdomain
description: >
- The DNS name of this cloud's storage management endpoint. E.g.
- 'ci-overcloud.management.tripleo.org'.
+ The DNS name of this cloud's provisioning network endpoint. E.g.
+ 'ci-overcloud.ctlplane.tripleo.org'.
type: string
ControlFixedIPs:
default: []
diff --git a/puppet/services/ceilometer-base.yaml b/puppet/services/ceilometer-base.yaml
index 9fc1530a..5cc020a9 100644
--- a/puppet/services/ceilometer-base.yaml
+++ b/puppet/services/ceilometer-base.yaml
@@ -51,6 +51,8 @@ parameters:
description: >
A list of publishers to put in event_pipeline.yaml. When the
collector is used, override this with notifier:// publisher.
+ If zaqar is enabled, you can also publish to a zaqar queue
+ by including "zaqar://?queue=queue_name" in this list.
Set ManageEventPipeline to true for override to take effect.
type: comma_delimited_list
ManagePipeline:
diff --git a/puppet/services/database/redis.yaml b/puppet/services/database/redis.yaml
index bd96823b..bdcc4fcd 100644
--- a/puppet/services/database/redis.yaml
+++ b/puppet/services/database/redis.yaml
@@ -77,3 +77,6 @@ outputs:
tags: step3
yum: name=redis state=latest
when: redis_enabled.rc != 0
+ - name: Start redis service
+ tags: step4
+ service: name=redis state=started
diff --git a/puppet/services/haproxy-internal-tls-certmonger.yaml b/puppet/services/haproxy-internal-tls-certmonger.yaml
index b6b4f270..3355a0d3 100644
--- a/puppet/services/haproxy-internal-tls-certmonger.yaml
+++ b/puppet/services/haproxy-internal-tls-certmonger.yaml
@@ -55,14 +55,16 @@ outputs:
config_settings:
generate_service_certificates: true
tripleo::haproxy::use_internal_certificates: true
+ tripleo::certmonger::haproxy_dirs::certificate_dir: '/etc/pki/tls/certs/haproxy'
+ tripleo::certmonger::haproxy_dirs::key_dir: '/etc/pki/tls/private/haproxy'
certificates_specs:
map_merge:
repeat:
template:
haproxy-NETWORK:
- service_pem: '/etc/pki/tls/certs/overcloud-haproxy-NETWORK.pem'
- service_certificate: '/etc/pki/tls/certs/overcloud-haproxy-NETWORK.crt'
- service_key: '/etc/pki/tls/private/overcloud-haproxy-NETWORK.key'
+ service_pem: '/etc/pki/tls/certs/haproxy/overcloud-haproxy-NETWORK.pem'
+ service_certificate: '/etc/pki/tls/certs/haproxy/overcloud-haproxy-NETWORK.crt'
+ service_key: '/etc/pki/tls/private/haproxy/overcloud-haproxy-NETWORK.key'
hostname: "%{hiera('cloud_name_NETWORK')}"
postsave_cmd: "" # TODO
principal: "haproxy/%{hiera('cloud_name_NETWORK')}"
diff --git a/puppet/services/haproxy-public-tls-certmonger.yaml b/puppet/services/haproxy-public-tls-certmonger.yaml
index e79d2aec..f1739f78 100644
--- a/puppet/services/haproxy-public-tls-certmonger.yaml
+++ b/puppet/services/haproxy-public-tls-certmonger.yaml
@@ -38,12 +38,14 @@ outputs:
service_name: haproxy_public_tls_certmonger
config_settings:
generate_service_certificates: true
- tripleo::haproxy::service_certificate: '/etc/pki/tls/certs/overcloud-haproxy-external.pem'
+ tripleo::haproxy::service_certificate: '/etc/pki/tls/certs/haproxy/overcloud-haproxy-external.pem'
+ tripleo::certmonger::haproxy_dirs::certificate_dir: '/etc/pki/tls/certs/haproxy'
+ tripleo::certmonger::haproxy_dirs::key_dir: '/etc/pki/tls/private/haproxy'
certificates_specs:
haproxy-external:
- service_pem: '/etc/pki/tls/certs/overcloud-haproxy-external.pem'
- service_certificate: '/etc/pki/tls/certs/overcloud-haproxy-external.crt'
- service_key: '/etc/pki/tls/private/overcloud-haproxy-external.key'
+ service_pem: '/etc/pki/tls/certs/haproxy/overcloud-haproxy-external.pem'
+ service_certificate: '/etc/pki/tls/certs/haproxy/overcloud-haproxy-external.crt'
+ service_key: '/etc/pki/tls/private/haproxy/overcloud-haproxy-external.key'
hostname: "%{hiera('cloud_name_external')}"
postsave_cmd: "" # TODO
principal: "haproxy/%{hiera('cloud_name_external')}"
diff --git a/puppet/services/keystone.yaml b/puppet/services/keystone.yaml
index 8796209b..218ba740 100644
--- a/puppet/services/keystone.yaml
+++ b/puppet/services/keystone.yaml
@@ -178,10 +178,10 @@ parameters:
Cron to purge expired tokens - Week Day
default: '*'
KeystoneCronTokenFlushMaxDelay:
- type: string
+ type: number
description: >
Cron to purge expired tokens - Max Delay
- default: '0'
+ default: 0
KeystoneCronTokenFlushDestination:
type: string
description: >
diff --git a/puppet/services/neutron-plugin-ml2-odl.yaml b/puppet/services/neutron-plugin-ml2-odl.yaml
index cc4cd8f4..68bba110 100644
--- a/puppet/services/neutron-plugin-ml2-odl.yaml
+++ b/puppet/services/neutron-plugin-ml2-odl.yaml
@@ -33,7 +33,7 @@ parameters:
OpenDaylightPortBindingController:
description: OpenDaylight port binding controller
type: string
- default: 'network-topology'
+ default: 'pseudo-agentdb-binding'
resources:
diff --git a/puppet/services/nova-compute.yaml b/puppet/services/nova-compute.yaml
index a12bfd0f..6e1f3f56 100644
--- a/puppet/services/nova-compute.yaml
+++ b/puppet/services/nova-compute.yaml
@@ -97,7 +97,7 @@ parameters:
UpgradeLevelNovaCompute:
type: string
description: Nova Compute upgrade level
- default: auto
+ default: ''
MigrationSshKey:
type: json
description: >
diff --git a/puppet/services/nova-conductor.yaml b/puppet/services/nova-conductor.yaml
index a6638be0..5abad452 100644
--- a/puppet/services/nova-conductor.yaml
+++ b/puppet/services/nova-conductor.yaml
@@ -45,7 +45,7 @@ parameters:
UpgradeLevelNovaCompute:
type: string
description: Nova Compute upgrade level
- default: auto
+ default: ''
conditions:
nova_workers_zero: {equals : [{get_param: NovaWorkers}, 0]}
diff --git a/puppet/services/opendaylight-ovs.yaml b/puppet/services/opendaylight-ovs.yaml
index 2027292c..139ab7c7 100644
--- a/puppet/services/opendaylight-ovs.yaml
+++ b/puppet/services/opendaylight-ovs.yaml
@@ -33,6 +33,28 @@ parameters:
Required for VLAN deployments. For example physnet1 -> eth1.
type: comma_delimited_list
default: "datacentre:br-ex"
+ HostAllowedNetworkTypes:
+ description: Allowed tenant network types for this OVS host. Note this can
+ vary per host or role to constrain which hosts nova instances
+ and networks are scheduled to.
+ type: comma_delimited_list
+ default: ['local', 'vlan', 'vxlan', 'gre']
+ OvsEnableDpdk:
+ description: Whether or not to configure enable DPDK in OVS
+ default: false
+ type: boolean
+ OvsVhostuserMode:
+ description: Specify the mode for OVS with vhostuser port creation. In
+ client mode, the hypervisor will be responsible for creating
+ vhostuser sockets. In server mode, OVS will create them.
+ type: string
+ default: "client"
+ constraints:
+ - allowed_values: [ 'client', 'server' ]
+ VhostuserSocketDir:
+ description: Specify the directory to use for vhostuser sockets
+ type: string
+ default: "/var/run/openvswitch"
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
@@ -71,6 +93,28 @@ resources:
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
+ # Merging role-specific parameters (RoleParameters) with the default parameters.
+ # RoleParameters will have the precedence over the default parameters.
+ RoleParametersValue:
+ type: OS::Heat::Value
+ properties:
+ type: json
+ value:
+ map_replace:
+ - map_replace:
+ - neutron::plugins::ovs::opendaylight::allowed_network_types: HostAllowedNetworkTypes
+ neutron::plugins::ovs::opendaylight::enable_dpdk: OvsEnableDpdk
+ neutron::plugins::ovs::opendaylight::vhostuser_socket_dir: VhostuserSocketDir
+ neutron::plugins::ovs::opendaylight::vhostuser_mode: OvsVhostuserMode
+ neutron::plugins::ovs::opendaylight::provider_mappings: OpenDaylightProviderMappings
+ - values: {get_param: [RoleParameters]}
+ - values:
+ HostAllowedNetworkTypes: {get_param: HostAllowedNetworkTypes}
+ OvsEnableDpdk: {get_param: OvsEnableDpdk}
+ VhostuserSocketDir: {get_param: VhostuserSocketDir}
+ OvsVhostuserMode: {get_param: OvsVhostuserMode}
+ OpenDaylightProviderMappings: {get_param: OpenDaylightProviderMappings}
+
outputs:
role_data:
description: Role data for the OpenDaylight service.
@@ -86,7 +130,6 @@ outputs:
opendaylight_check_url: {get_param: OpenDaylightCheckURL}
opendaylight::nb_connection_protocol: {get_param: OpenDaylightConnectionProtocol}
neutron::agents::ml2::ovs::local_ip: {get_param: [ServiceNetMap, NeutronTenantNetwork]}
- neutron::plugins::ovs::opendaylight::provider_mappings: {get_param: OpenDaylightProviderMappings}
tripleo.opendaylight_ovs.firewall_rules:
'118 neutron vxlan networks':
proto: 'udp'
@@ -94,6 +137,7 @@ outputs:
'136 neutron gre networks':
proto: 'gre'
- get_attr: [Ovs, role_data, config_settings]
+ - get_attr: [RoleParametersValue, value]
step_config: |
include tripleo::profile::base::neutron::plugins::ovs::opendaylight
upgrade_tasks:
diff --git a/releasenotes/notes/add-odl-sriov-env-e31982064c2bf646.yaml b/releasenotes/notes/add-odl-sriov-env-e31982064c2bf646.yaml
new file mode 100644
index 00000000..523377c2
--- /dev/null
+++ b/releasenotes/notes/add-odl-sriov-env-e31982064c2bf646.yaml
@@ -0,0 +1,4 @@
+---
+features:
+ - Adds new environment file for deploying SRIOV
+ with OpenDaylight.
diff --git a/releasenotes/notes/odl-port-binding-d420cac81f714778.yaml b/releasenotes/notes/odl-port-binding-d420cac81f714778.yaml
new file mode 100644
index 00000000..645f3c79
--- /dev/null
+++ b/releasenotes/notes/odl-port-binding-d420cac81f714778.yaml
@@ -0,0 +1,9 @@
+---
+fixes:
+ - Setting the port-binding to be pseudo-agentdb-binding.
+ Networking-odl no longer supports network-topology
+features:
+ - Enables per role configuration of per host
+ configuration which allows an operator to dedicate
+ different compute roles to different network or
+ port types in OpenDaylight deployments.
diff --git a/sample-env-generator/predictable-placement.yaml b/sample-env-generator/predictable-placement.yaml
index ffda7aca..3a971fbd 100644
--- a/sample-env-generator/predictable-placement.yaml
+++ b/sample-env-generator/predictable-placement.yaml
@@ -15,3 +15,18 @@ environments:
Note %index% is translated into the index of the node, e.g 0/1/2 etc
and %stackname% is replaced with OS::stack_name in the template below.
If you want to use the heat generated names, pass '' (empty string).
+ -
+ name: predictable-placement/custom-domain
+ title: Custom Domain Name
+ files:
+ overcloud.yaml:
+ parameters:
+ - CloudDomain
+ - CloudName
+ - CloudNameInternal
+ - CloudNameStorage
+ - CloudNameStorageManagement
+ - CloudNameCtlplane
+ description: |
+ This environment contains the parameters that need to be set in order to
+ use a custom domain name and have all of the various FQDNs reflect it.
diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py
index 3504620f..a096d69a 100755
--- a/tools/yaml-validate.py
+++ b/tools/yaml-validate.py
@@ -75,7 +75,6 @@ PARAMETER_DEFINITION_EXCLUSIONS = {'ManagementNetCidr': ['default'],
'NeutronBigswitchLLDPEnabled': ['default'],
'NeutronWorkers': ['description'],
'ServerMetadata': ['description'],
- 'UpgradeLevelNovaCompute': ['default'],
'server': ['description'],
'servers': ['description'],
'ExtraConfig': ['description'],