aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--network/service_net_map.yaml2
-rw-r--r--overcloud-resource-registry-puppet.yaml2
-rw-r--r--overcloud.j2.yaml336
-rw-r--r--puppet/ceph-storage.yaml12
-rw-r--r--puppet/cinder-storage.yaml12
-rw-r--r--puppet/compute.yaml7
-rw-r--r--puppet/controller.yaml7
-rw-r--r--puppet/services/keystone.yaml12
-rw-r--r--puppet/services/manila-api.yaml1
-rw-r--r--puppet/services/neutron-api.yaml2
-rw-r--r--puppet/services/neutron-base.yaml7
-rw-r--r--puppet/services/neutron-ovs-agent.yaml2
-rw-r--r--puppet/services/neutron-ovs-dpdk-agent.yaml2
-rw-r--r--puppet/services/neutron-plugin-ml2.yaml2
-rw-r--r--puppet/services/nova-compute.yaml2
-rw-r--r--puppet/services/nova-vnc-proxy.yaml (renamed from puppet/services/nova-vncproxy.yaml)11
-rw-r--r--puppet/services/pacemaker/nova-vnc-proxy.yaml (renamed from puppet/services/pacemaker/nova-vncproxy.yaml)4
-rw-r--r--puppet/swift-storage.yaml12
-rw-r--r--roles_data.yaml12
19 files changed, 140 insertions, 307 deletions
diff --git a/network/service_net_map.yaml b/network/service_net_map.yaml
index 5f22ce43..6e5c2449 100644
--- a/network/service_net_map.yaml
+++ b/network/service_net_map.yaml
@@ -30,6 +30,8 @@ parameters:
ManilaApiNetwork: internal_api
NeutronApiNetwork: internal_api
HeatApiNetwork: internal_api
+ HeatApiCfnNetwork: internal_api
+ HeatApiCloudwatchNetwork: internal_api
NovaApiNetwork: internal_api
NovaMetadataNetwork: internal_api
NovaVncProxyNetwork: internal_api
diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml
index 44c70f7a..d5fdaa09 100644
--- a/overcloud-resource-registry-puppet.yaml
+++ b/overcloud-resource-registry-puppet.yaml
@@ -190,7 +190,7 @@ resource_registry:
OS::TripleO::Services::NovaApi: puppet/services/nova-api.yaml
OS::TripleO::Services::NovaScheduler: puppet/services/nova-scheduler.yaml
OS::TripleO::Services::NovaConsoleauth: puppet/services/nova-consoleauth.yaml
- OS::TripleO::Services::NovaVncproxy: puppet/services/nova-vncproxy.yaml
+ OS::TripleO::Services::NovaVncProxy: puppet/services/nova-vnc-proxy.yaml
OS::TripleO::Services::NovaCompute: puppet/services/nova-compute.yaml
OS::TripleO::Services::NovaLibvirt: puppet/services/nova-libvirt.yaml
OS::TripleO::Services::Ntp: puppet/services/time/ntp.yaml
diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml
index 20d6488d..88a91e38 100644
--- a/overcloud.j2.yaml
+++ b/overcloud.j2.yaml
@@ -99,15 +99,8 @@ parameters:
the overcloud. It's accessible via the Nova metadata API.
type: json
- # Controller-specific params
- ControllerCount:
- type: number
- default: 1
-
# Compute-specific params
- ComputeCount:
- type: number
- default: 1
+# FIXME(shardy) handle these deprecated names as they don't match compute.yaml
HypervisorNeutronPhysicalBridge:
default: 'br-ex'
description: >
@@ -122,7 +115,7 @@ parameters:
# Jinja loop for Role in role_data.yaml
{% for role in roles %}
- # Resources generated for {{role.name}} Role
+ # Parameters generated for {{role.name}} Role
{{role.name}}Services:
description: A list of service resources (configured in the Heat
resource_registry) which represent nested stacks
@@ -131,47 +124,32 @@ parameters:
{% if role.ServicesDefault %}
default: {{role.ServicesDefault}}
{% endif %}
-{% endfor %}
-
-# Block storage specific parameters
- BlockStorageCount:
- type: number
- default: 0
-
-# Object storage specific parameters
- ObjectStorageCount:
- type: number
- default: 0
-# Ceph storage specific parameters
- CephStorageCount:
+ {{role.name}}Count:
+ description: Number of {{role.name}} nodes to deploy
type: number
- default: 0
+ {% if role.CountDefault %}
+ default: {{role.CountDefault}}
+ {% endif %}
- # Hostname format for each role
- # 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).
- ControllerHostnameFormat:
- type: string
- description: Format for Controller node hostnames
- default: '%stackname%-controller-%index%'
- ComputeHostnameFormat:
- type: string
- description: Format for Compute node hostnames
- default: '%stackname%-novacompute-%index%'
- BlockStorageHostnameFormat:
+ {{role.name}}HostnameFormat:
type: string
- description: Format for BlockStorage node hostnames
- default: '%stackname%-blockstorage-%index%'
- ObjectStorageHostnameFormat:
- type: string
- description: Format for SwiftStorage node hostnames
- default: '%stackname%-objectstorage-%index%'
- CephStorageHostnameFormat:
- type: string
- description: Format for CephStorage node hostnames
- default: '%stackname%-cephstorage-%index%'
+ description: >
+ Format for {{role.name}} 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
+ {% if role.HostnameFormatDefault %}
+ default: "{{role.HostnameFormatDefault}}"
+ {% endif %}
+
+ {{role.name}}RemovalPolicies:
+ default: []
+ type: json
+ description: >
+ List of resources to be removed from {{role.name}} ResourceGroup when
+ doing an update which requires removal of specific resources.
+ Example format ComputeRemovalPolicies: [{'resource_list': ['0']}]
+{% endfor %}
# Identifiers to trigger tasks on nodes
UpdateIdentifier:
@@ -187,41 +165,6 @@ parameters:
Setting this to a unique value will re-run any deployment tasks which
perform configuration on a Heat stack-update.
- # If you want to remove a specific node from a resource group, you can pass
- # the node name or id as a <Group>RemovalPolicies parameter, for example:
- # ComputeRemovalPolicies: [{'resource_list': ['0']}]
- ControllerRemovalPolicies:
- default: []
- type: json
- description: >
- List of resources to be removed from ControllerResourceGroup when
- doing an update which requires removal of specific resources.
- ComputeRemovalPolicies:
- default: []
- type: json
- description: >
- List of resources to be removed from ComputeResourceGroup when
- doing an update which requires removal of specific resources.
- BlockStorageRemovalPolicies:
- default: []
- type: json
- description: >
- List of resources to be removed from BlockStorageResourceGroup when
- doing an update which requires removal of specific resources.
- ObjectStorageRemovalPolicies:
- default: []
- type: json
- description: >
- List of resources to be removed from ObjectStorageResourceGroup when
- doing an update which requires removal of specific resources.
- CephStorageRemovalPolicies:
- default: []
- type: json
- description: >
- List of resources to be removed from CephStorageResourceGroup when
- doing an update which requires removal of specific resources.
-
-
resources:
HeatAuthEncryptionKey:
@@ -282,228 +225,47 @@ resources:
config: {get_resource: AllNodesValidationConfig}
servers: {get_attr: [{{role.name}}, attributes, nova_server_resource]}
-{% endfor %}
-
- Controller:
- type: OS::Heat::ResourceGroup
- depends_on: Networks
+ {{role.name}}IpListMap:
+ type: OS::TripleO::Network::Ports::NetIpListMap
properties:
- count: {get_param: ControllerCount}
- removal_policies: {get_param: ControllerRemovalPolicies}
- resource_def:
- type: OS::TripleO::Controller
- properties:
- CloudDomain: {get_param: CloudDomain}
- ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
- EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
- Hostname:
- str_replace:
- template: {get_param: ControllerHostnameFormat}
- params:
- '%stackname%': {get_param: 'OS::stack_name'}
- NodeIndex: '%index%'
- ServiceConfigSettings:
- map_merge:
- - get_attr: [ControllerServiceChain, role_data, config_settings]
- - get_attr: [ControllerServiceChain, role_data, global_config_settings]
- - get_attr: [ComputeServiceChain, role_data, global_config_settings]
- - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
- - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
- - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
- - get_attr: [ControllerServiceChain, role_data, global_config_settings]
- ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
- MonitoringSubscriptions: {get_attr: [ControllerServiceChain, role_data, monitoring_subscriptions]}
-
- Compute:
+ ControlPlaneIpList: {get_attr: [{{role.name}}, ip_address]}
+ ExternalIpList: {get_attr: [{{role.name}}, external_ip_address]}
+ InternalApiIpList: {get_attr: [{{role.name}}, internal_api_ip_address]}
+ StorageIpList: {get_attr: [{{role.name}}, storage_ip_address]}
+ StorageMgmtIpList: {get_attr: [{{role.name}}, storage_mgmt_ip_address]}
+ TenantIpList: {get_attr: [{{role.name}}, tenant_ip_address]}
+ ManagementIpList: {get_attr: [{{role.name}}, management_ip_address]}
+ EnabledServices: {get_attr: [{{role.name}}ServiceChain, role_data, service_names]}
+ ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
+ ServiceHostnameList: {get_attr: [{{role.name}}, hostname]}
+
+ {{role.name}}:
type: OS::Heat::ResourceGroup
depends_on: Networks
properties:
- count: {get_param: ComputeCount}
- removal_policies: {get_param: ComputeRemovalPolicies}
+ count: {get_param: {{role.name}}Count}
+ removal_policies: {get_param: {{role.name}}RemovalPolicies}
resource_def:
- type: OS::TripleO::Compute
+ type: OS::TripleO::{{role.name}}
properties:
CloudDomain: {get_param: CloudDomain}
- NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
- NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
Hostname:
str_replace:
- template: {get_param: ComputeHostnameFormat}
+ template: {get_param: {{role.name}}HostnameFormat}
params:
'%stackname%': {get_param: 'OS::stack_name'}
NodeIndex: '%index%'
ServiceConfigSettings:
map_merge:
- - get_attr: [ComputeServiceChain, role_data, config_settings]
- - get_attr: [ControllerServiceChain, role_data, global_config_settings]
- - get_attr: [ComputeServiceChain, role_data, global_config_settings]
- - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
- - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
- - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
- ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
- MonitoringSubscriptions: {get_attr: [ComputeServiceChain, role_data, monitoring_subscriptions]}
-
- BlockStorage:
- type: OS::Heat::ResourceGroup
- depends_on: Networks
- properties:
- count: {get_param: BlockStorageCount}
- removal_policies: {get_param: BlockStorageRemovalPolicies}
- resource_def:
- type: OS::TripleO::BlockStorage
- properties:
- UpdateIdentifier: {get_param: UpdateIdentifier}
- Hostname:
- str_replace:
- template: {get_param: BlockStorageHostnameFormat}
- params:
- '%stackname%': {get_param: 'OS::stack_name'}
- ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
- CloudDomain: {get_param: CloudDomain}
- ServerMetadata: {get_param: ServerMetadata}
- NodeIndex: '%index%'
- ServiceConfigSettings:
- map_merge:
- - get_attr: [BlockStorageServiceChain, role_data, config_settings]
- - get_attr: [ControllerServiceChain, role_data, global_config_settings]
- - get_attr: [ComputeServiceChain, role_data, global_config_settings]
- - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
- - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
- - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
- ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
- MonitoringSubscriptions: {get_attr: [BlockStorageServiceChain, role_data, monitoring_subscriptions]}
-
- ObjectStorage:
- type: OS::Heat::ResourceGroup
- depends_on: Networks
- properties:
- count: {get_param: ObjectStorageCount}
- removal_policies: {get_param: ObjectStorageRemovalPolicies}
- resource_def:
- type: OS::TripleO::ObjectStorage
- properties:
- UpdateIdentifier: {get_param: UpdateIdentifier}
- ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
- Hostname:
- str_replace:
- template: {get_param: ObjectStorageHostnameFormat}
- params:
- '%stackname%': {get_param: 'OS::stack_name'}
- CloudDomain: {get_param: CloudDomain}
- ServerMetadata: {get_param: ServerMetadata}
- NodeIndex: '%index%'
- ServiceConfigSettings:
- map_merge:
- - get_attr: [ObjectStorageServiceChain, role_data, config_settings]
- - get_attr: [ControllerServiceChain, role_data, global_config_settings]
- - get_attr: [ComputeServiceChain, role_data, global_config_settings]
- - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
- - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
- - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
- ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
- MonitoringSubscriptions: {get_attr: [ObjectStorageServiceChain, role_data, monitoring_subscriptions]}
-
- CephStorage:
- type: OS::Heat::ResourceGroup
- depends_on: Networks
- properties:
- count: {get_param: CephStorageCount}
- removal_policies: {get_param: CephStorageRemovalPolicies}
- resource_def:
- type: OS::TripleO::CephStorage
- properties:
- ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
- UpdateIdentifier: {get_param: UpdateIdentifier}
- Hostname:
- str_replace:
- template: {get_param: CephStorageHostnameFormat}
- params:
- '%stackname%': {get_param: 'OS::stack_name'}
- CloudDomain: {get_param: CloudDomain}
- ServerMetadata: {get_param: ServerMetadata}
- NodeIndex: '%index%'
- ServiceConfigSettings:
- map_merge:
- - get_attr: [CephStorageServiceChain, role_data, config_settings]
- - get_attr: [ControllerServiceChain, role_data, global_config_settings]
- - get_attr: [ComputeServiceChain, role_data, global_config_settings]
- - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
- - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
- - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
- ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]}
- MonitoringSubscriptions: {get_attr: [CephStorageServiceChain, role_data, monitoring_subscriptions]}
-
- ControllerIpListMap:
- type: OS::TripleO::Network::Ports::NetIpListMap
- properties:
- ControlPlaneIpList: {get_attr: [Controller, ip_address]}
- ExternalIpList: {get_attr: [Controller, external_ip_address]}
- InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]}
- StorageIpList: {get_attr: [Controller, storage_ip_address]}
- StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
- TenantIpList: {get_attr: [Controller, tenant_ip_address]}
- ManagementIpList: {get_attr: [Controller, management_ip_address]}
- EnabledServices: {get_attr: [ControllerServiceChain, role_data, service_names]}
- ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
- ServiceHostnameList: {get_attr: [Controller, hostname]}
-
- ComputeIpListMap:
- type: OS::TripleO::Network::Ports::NetIpListMap
- properties:
- ControlPlaneIpList: {get_attr: [Compute, ip_address]}
- ExternalIpList: {get_attr: [Compute, external_ip_address]}
- InternalApiIpList: {get_attr: [Compute, internal_api_ip_address]}
- StorageIpList: {get_attr: [Compute, storage_ip_address]}
- StorageMgmtIpList: {get_attr: [Compute, storage_mgmt_ip_address]}
- TenantIpList: {get_attr: [Compute, tenant_ip_address]}
- ManagementIpList: {get_attr: [Compute, management_ip_address]}
- EnabledServices: {get_attr: [ComputeServiceChain, role_data, service_names]}
- ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
- ServiceHostnameList: {get_attr: [Compute, hostname]}
-
- BlockStorageIpListMap:
- type: OS::TripleO::Network::Ports::NetIpListMap
- properties:
- ControlPlaneIpList: {get_attr: [BlockStorage, ip_address]}
- ExternalIpList: {get_attr: [BlockStorage, external_ip_address]}
- InternalApiIpList: {get_attr: [BlockStorage, internal_api_ip_address]}
- StorageIpList: {get_attr: [BlockStorage, storage_ip_address]}
- StorageMgmtIpList: {get_attr: [BlockStorage, storage_mgmt_ip_address]}
- TenantIpList: {get_attr: [BlockStorage, tenant_ip_address]}
- ManagementIpList: {get_attr: [BlockStorage, management_ip_address]}
- EnabledServices: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
- ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
- ServiceHostnameList: {get_attr: [BlockStorage, hostname]}
-
- ObjectStorageIpListMap:
- type: OS::TripleO::Network::Ports::NetIpListMap
- properties:
- ControlPlaneIpList: {get_attr: [ObjectStorage, ip_address]}
- ExternalIpList: {get_attr: [ObjectStorage, external_ip_address]}
- InternalApiIpList: {get_attr: [ObjectStorage, internal_api_ip_address]}
- StorageIpList: {get_attr: [ObjectStorage, storage_ip_address]}
- StorageMgmtIpList: {get_attr: [ObjectStorage, storage_mgmt_ip_address]}
- TenantIpList: {get_attr: [ObjectStorage, tenant_ip_address]}
- ManagementIpList: {get_attr: [ObjectStorage, management_ip_address]}
- EnabledServices: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
- ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
- ServiceHostnameList: {get_attr: [ObjectStorage, hostname]}
-
- CephStorageIpListMap:
- type: OS::TripleO::Network::Ports::NetIpListMap
- properties:
- ControlPlaneIpList: {get_attr: [CephStorage, ip_address]}
- ExternalIpList: {get_attr: [CephStorage, external_ip_address]}
- InternalApiIpList: {get_attr: [CephStorage, internal_api_ip_address]}
- StorageIpList: {get_attr: [CephStorage, storage_ip_address]}
- StorageMgmtIpList: {get_attr: [CephStorage, storage_mgmt_ip_address]}
- TenantIpList: {get_attr: [CephStorage, tenant_ip_address]}
- ManagementIpList: {get_attr: [CephStorage, management_ip_address]}
- EnabledServices: {get_attr: [CephStorageServiceChain, role_data, service_names]}
- ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
- ServiceHostnameList: {get_attr: [CephStorage, hostname]}
+ - get_attr: [{{role.name}}ServiceChain, role_data, config_settings]
+ {% for r in roles %}
+ - get_attr: [{{r.name}}ServiceChain, role_data, global_config_settings]
+ {% endfor %}
+ ServiceNames: {get_attr: [{{role.name}}ServiceChain, role_data, service_names]}
+ MonitoringSubscriptions: {get_attr: [{{role.name}}ServiceChain, role_data, monitoring_subscriptions]}
+{% endfor %}
allNodesConfig:
type: OS::TripleO::AllNodes::SoftwareConfig
diff --git a/puppet/ceph-storage.yaml b/puppet/ceph-storage.yaml
index 5ba2c298..62748f94 100644
--- a/puppet/ceph-storage.yaml
+++ b/puppet/ceph-storage.yaml
@@ -27,6 +27,11 @@ parameters:
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry.
type: json
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
UpdateIdentifier:
default: ''
type: string
@@ -323,6 +328,7 @@ outputs:
STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
TENANTIP TENANTHOST.DOMAIN TENANTHOST
MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
+ CTLPLANEIP CTLPLANEHOST.DOMAIN CTLPLANEHOST
params:
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephStorageHostnameResolveNetwork]}]}
DOMAIN: {get_param: CloudDomain}
@@ -363,6 +369,12 @@ outputs:
- '.'
- - {get_attr: [CephStorage, name]}
- management
+ CTLPLANEIP: {get_attr: [CephStorage, networks, ctlplane, 0]}
+ CTLPLANEHOST:
+ list_join:
+ - '.'
+ - - {get_attr: [CephStorage, name]}
+ - ctlplane
nova_server_resource:
description: Heat resource handle for the ceph storage server
value:
diff --git a/puppet/cinder-storage.yaml b/puppet/cinder-storage.yaml
index 699a0969..f5118c2c 100644
--- a/puppet/cinder-storage.yaml
+++ b/puppet/cinder-storage.yaml
@@ -48,6 +48,11 @@ parameters:
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry.
type: json
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
NetworkDeploymentActions:
type: comma_delimited_list
description: >
@@ -313,6 +318,7 @@ outputs:
STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
TENANTIP TENANTHOST.DOMAIN TENANTHOST
MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
+ CTLPLANEIP CTLPLANEHOST.DOMAIN CTLPLANEHOST
params:
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
DOMAIN: {get_param: CloudDomain}
@@ -353,6 +359,12 @@ outputs:
- '.'
- - {get_attr: [BlockStorage, name]}
- management
+ CTLPLANEIP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
+ CTLPLANEHOST:
+ list_join:
+ - '.'
+ - - {get_attr: [BlockStorage, name]}
+ - ctlplane
nova_server_resource:
description: Heat resource handle for the block storage server
value:
diff --git a/puppet/compute.yaml b/puppet/compute.yaml
index e74d1a54..05b8d065 100644
--- a/puppet/compute.yaml
+++ b/puppet/compute.yaml
@@ -373,6 +373,7 @@ outputs:
STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
TENANTIP TENANTHOST.DOMAIN TENANTHOST
MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
+ CTLPLANEIP CTLPLANEHOST.DOMAIN CTLPLANEHOST
params:
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
DOMAIN: {get_param: CloudDomain}
@@ -413,6 +414,12 @@ outputs:
- '.'
- - {get_attr: [NovaCompute, name]}
- management
+ CTLPLANEIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+ CTLPLANEHOST:
+ list_join:
+ - '.'
+ - - {get_attr: [NovaCompute, name]}
+ - ctlplane
nova_server_resource:
description: Heat resource handle for the Nova compute server
value:
diff --git a/puppet/controller.yaml b/puppet/controller.yaml
index a18d00d7..33ed51c0 100644
--- a/puppet/controller.yaml
+++ b/puppet/controller.yaml
@@ -416,6 +416,7 @@ outputs:
STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
TENANTIP TENANTHOST.DOMAIN TENANTHOST
MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
+ CTLPLANEIP CTLPLANEHOST.DOMAIN CTLPLANEHOST
params:
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
DOMAIN: {get_param: CloudDomain}
@@ -456,6 +457,12 @@ outputs:
- '.'
- - {get_attr: [Controller, name]}
- management
+ CTLPLANEIP: {get_attr: [Controller, networks, ctlplane, 0]}
+ CTLPLANEHOST:
+ list_join:
+ - '.'
+ - - {get_attr: [Controller, name]}
+ - ctlplane
nova_server_resource:
description: Heat resource handle for the Nova compute server
value:
diff --git a/puppet/services/keystone.yaml b/puppet/services/keystone.yaml
index 79033047..b321ecbe 100644
--- a/puppet/services/keystone.yaml
+++ b/puppet/services/keystone.yaml
@@ -87,6 +87,12 @@ parameters:
MonitoringSubscriptionKeystone:
default: 'overcloud-kestone'
type: string
+ KeystoneCredential0:
+ type: string
+ description: The first Keystone credential key. Must be a valid key.
+ KeystoneCredential1:
+ type: string
+ description: The second Keystone credential key. Must be a valid key.
resources:
@@ -121,6 +127,12 @@ outputs:
keystone_ssl_certificate: {get_param: KeystoneSSLCertificate}
keystone_ssl_certificate_key: {get_param: KeystoneSSLCertificateKey}
keystone::enable_proxy_headers_parsing: true
+ keystone::enable_credential_setup: true
+ keystone::credential_keys:
+ '/etc/keystone/credential-keys/0':
+ content: {get_param: KeystoneCredential0}
+ '/etc/keystone/credential-keys/1':
+ content: {get_param: KeystoneCredential1}
keystone::debug: {get_param: Debug}
keystone::db::mysql::password: {get_param: AdminToken}
keystone::rabbit_userid: {get_param: RabbitUserName}
diff --git a/puppet/services/manila-api.yaml b/puppet/services/manila-api.yaml
index 2e43730d..1513ab31 100644
--- a/puppet/services/manila-api.yaml
+++ b/puppet/services/manila-api.yaml
@@ -66,6 +66,7 @@ outputs:
# internal_api_uri -> [IP]
# internal_api_subnet - > IP/CIDR
manila::api::bind_host: {get_param: [ServiceNetMap, ManilaApiNetwork]}
+ manila::api::enable_proxy_headers_parsing: true
step_config: |
include ::tripleo::profile::base::manila::api
diff --git a/puppet/services/neutron-api.yaml b/puppet/services/neutron-api.yaml
index 72ae7d9c..e4ca489a 100644
--- a/puppet/services/neutron-api.yaml
+++ b/puppet/services/neutron-api.yaml
@@ -75,7 +75,7 @@ outputs:
config_settings:
map_merge:
- get_attr: [NeutronBase, role_data, config_settings]
- neutron::server::database_connection:
+ - neutron::server::database_connection:
list_join:
- ''
- - {get_param: [EndpointMap, MysqlInternal, protocol]}
diff --git a/puppet/services/neutron-base.yaml b/puppet/services/neutron-base.yaml
index 4eb417c0..32d50d41 100644
--- a/puppet/services/neutron-base.yaml
+++ b/puppet/services/neutron-base.yaml
@@ -50,13 +50,16 @@ parameters:
to false may result in configuration remnants after updates/upgrades.
NeutronGlobalPhysnetMtu:
type: number
- default: 1500
+ default: 1496
description: |
MTU of the underlying physical network. Neutron uses this value to
calculate MTU for all virtual network components. For flat and VLAN
networks, neutron uses this value without modification. For overlay
networks such as VXLAN, neutron automatically subtracts the overlay
- protocol overhead from this value.
+ protocol overhead from this value. The default value of 1496 is
+ currently in effect to compensate for some additional overhead when
+ deploying with some network configurations (e.g. network isolation over
+ single network interfaces)
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
diff --git a/puppet/services/neutron-ovs-agent.yaml b/puppet/services/neutron-ovs-agent.yaml
index 080cd1c3..ade322ed 100644
--- a/puppet/services/neutron-ovs-agent.yaml
+++ b/puppet/services/neutron-ovs-agent.yaml
@@ -83,7 +83,7 @@ outputs:
config_settings:
map_merge:
- get_attr: [NeutronBase, role_data, config_settings]
- neutron::agents::ml2::ovs::l2_population: {get_param: NeutronEnableL2Pop}
+ - neutron::agents::ml2::ovs::l2_population: {get_param: NeutronEnableL2Pop}
neutron::agents::ml2::ovs::enable_distributed_routing: {get_param: NeutronEnableDVR}
neutron::agents::ml2::ovs::arp_responder: {get_param: NeutronEnableARPResponder}
neutron::agents::ml2::ovs::bridge_mappings:
diff --git a/puppet/services/neutron-ovs-dpdk-agent.yaml b/puppet/services/neutron-ovs-dpdk-agent.yaml
index 8ee98a3d..cc772c9d 100644
--- a/puppet/services/neutron-ovs-dpdk-agent.yaml
+++ b/puppet/services/neutron-ovs-dpdk-agent.yaml
@@ -65,7 +65,7 @@ outputs:
config_settings:
map_merge:
- get_attr: [NeutronOvsAgent, role_data, config_settings]
- neutron::agents::ml2::ovs::enable_dpdk: true
+ - neutron::agents::ml2::ovs::enable_dpdk: true
neutron::agents::ml2::ovs::datapath_type: {get_param: NeutronDatapathType}
neutron::agents::ml2::ovs::vhostuser_socket_dir: {get_param: NeutronVhostuserSocketDir}
vswitch::dpdk::core_list: {get_param: NeutronDpdkCoreList}
diff --git a/puppet/services/neutron-plugin-ml2.yaml b/puppet/services/neutron-plugin-ml2.yaml
index 5dbae3dc..17e8bca1 100644
--- a/puppet/services/neutron-plugin-ml2.yaml
+++ b/puppet/services/neutron-plugin-ml2.yaml
@@ -33,7 +33,7 @@ parameters:
default: 'datacentre'
description: If set, flat networks to configure in neutron plugins.
NeutronPluginExtensions:
- default: "qos,port_security"
+ default: "qos,port_security,trunk"
description: |
Comma-separated list of extensions enabled for the Neutron plugin.
type: comma_delimited_list
diff --git a/puppet/services/nova-compute.yaml b/puppet/services/nova-compute.yaml
index ccdcb52f..d1d7ae60 100644
--- a/puppet/services/nova-compute.yaml
+++ b/puppet/services/nova-compute.yaml
@@ -128,7 +128,7 @@ outputs:
# internal_api_uri -> [IP]
# internal_api_subnet - > IP/CIDR
nova::compute::vncserver_proxyclient_address: {get_param: [ServiceNetMap, NovaVncProxyNetwork]}
- nova::compute::vncproxy_host: {get_param: [EndpointMap, NovaPublic, host]}
+ nova::compute::vncproxy_host: {get_param: [EndpointMap, NovaPublic, host_nobrackets]}
step_config: |
# TODO(emilien): figure how to deal with libvirt profile.
# We'll probably treat it like we do with Neutron plugins.
diff --git a/puppet/services/nova-vncproxy.yaml b/puppet/services/nova-vnc-proxy.yaml
index ce15fccc..899fa353 100644
--- a/puppet/services/nova-vncproxy.yaml
+++ b/puppet/services/nova-vnc-proxy.yaml
@@ -34,21 +34,14 @@ outputs:
role_data:
description: Role data for the Nova Vncproxy service.
value:
- service_name: nova_vncproxy
+ service_name: nova_vnc_proxy
monitoring_subscription: {get_param: MonitoringSubscriptionNovaVNCProxy}
config_settings:
map_merge:
- get_attr: [NovaBase, role_data, config_settings]
- nova::vncproxy::enabled: true
nova::vncproxy::common::vncproxy_protocol: {get_param: [EndpointMap, NovaVNCProxyPublic, protocol]}
- # Remove brackets that may come if the IP address is IPv6.
- # For DNS names and IPv4, this will just get NovaVNCProxyPublic
- nova::vncproxy::common::vncproxy_host:
- str_replace:
- template: {get_param: [EndpointMap, NovaVNCProxyPublic, host]}
- params:
- '[': ''
- ']': ''
+ nova::vncproxy::common::vncproxy_host: {get_param: [EndpointMap, NovaVNCProxyPublic, host_nobrackets]}
nova::vncproxy::common::vncproxy_port: {get_param: [EndpointMap, NovaVNCProxyPublic, port]}
# NOTE: bind IP is found in Heat replacing the network name with the local node IP
# for the given network; replacement examples (eg. for internal_api):
diff --git a/puppet/services/pacemaker/nova-vncproxy.yaml b/puppet/services/pacemaker/nova-vnc-proxy.yaml
index 0ec5de68..d0c4f1d0 100644
--- a/puppet/services/pacemaker/nova-vncproxy.yaml
+++ b/puppet/services/pacemaker/nova-vnc-proxy.yaml
@@ -22,7 +22,7 @@ parameters:
resources:
NovaVncproxyBase:
- type: ../nova-vncproxy.yaml
+ type: ../nova-vnc-proxy.yaml
properties:
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
@@ -32,7 +32,7 @@ outputs:
role_data:
description: Role data for the Nova Vncproxy role.
value:
- service_name: nova_vncproxy
+ service_name: nova_vnc_proxy
monitoring_subscription: {get_attr: [NovaVncproxyBase, role_data, monitoring_subscription]}
config_settings:
map_merge:
diff --git a/puppet/swift-storage.yaml b/puppet/swift-storage.yaml
index c414d8e9..9eb66314 100644
--- a/puppet/swift-storage.yaml
+++ b/puppet/swift-storage.yaml
@@ -27,6 +27,11 @@ parameters:
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry.
type: json
+ EndpointMap:
+ default: {}
+ description: Mapping of service endpoint -> protocol. Typically set
+ via parameter_defaults in the resource registry.
+ type: json
Hostname:
type: string
default: '' # Defaults to Heat created hostname
@@ -312,6 +317,7 @@ outputs:
STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
TENANTIP TENANTHOST.DOMAIN TENANTHOST
MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
+ CTLPLANEIP CTLPLANEHOST.DOMAIN CTLPLANEHOST
params:
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ObjectStorageHostnameResolveNetwork]}]}
DOMAIN: {get_param: CloudDomain}
@@ -352,6 +358,12 @@ outputs:
- '.'
- - {get_attr: [SwiftStorage, name]}
- management
+ CTLPLANEIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
+ CTLPLANEHOST:
+ list_join:
+ - '.'
+ - - {get_attr: [SwiftStorage, name]}
+ - ctlplane
nova_server_resource:
description: Heat resource handle for the swift storage server
value:
diff --git a/roles_data.yaml b/roles_data.yaml
index 6ce74fdc..db0004c3 100644
--- a/roles_data.yaml
+++ b/roles_data.yaml
@@ -1,4 +1,6 @@
- name: Controller
+ CountDefault: 1
+ HostnameFormatDefault: '%stackname%-controller-%index%'
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephMon
@@ -34,7 +36,7 @@
- OS::TripleO::Services::NovaApi
- OS::TripleO::Services::NovaScheduler
- OS::TripleO::Services::NovaConsoleauth
- - OS::TripleO::Services::NovaVncproxy
+ - OS::TripleO::Services::NovaVncProxy
- OS::TripleO::Services::Ntp
- OS::TripleO::Services::SwiftProxy
- OS::TripleO::Services::SwiftStorage
@@ -69,6 +71,8 @@
- OS::TripleO::Services::VipHosts
- name: Compute
+ CountDefault: 1
+ HostnameFormatDefault: '%stackname%-novacompute-%index%'
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephClient
@@ -92,6 +96,8 @@
- OS::TripleO::Services::VipHosts
- name: BlockStorage
+ CountDefault: 0
+ HostnameFormatDefault: '%stackname%-blockstorage-%index%'
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CinderVolume
@@ -105,6 +111,8 @@
- OS::TripleO::Services::VipHosts
- name: ObjectStorage
+ CountDefault: 0
+ HostnameFormatDefault: '%stackname%-objectstorage-%index%'
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::Kernel
@@ -119,6 +127,8 @@
- OS::TripleO::Services::VipHosts
- name: CephStorage
+ CountDefault: 0
+ HostnameFormatDefault: '%stackname%-cephstorage-%index%'
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephOSD