diff options
29 files changed, 362 insertions, 93 deletions
diff --git a/ceph-storage.yaml b/ceph-storage.yaml index 138e6ea5..2b44642b 100644 --- a/ceph-storage.yaml +++ b/ceph-storage.yaml @@ -39,6 +39,9 @@ parameters: description: > Setting to a previously unused value during stack-update will trigger package update on all nodes + Hostname: + type: string + default: '' # Defaults to Heat created hostname resources: CephStorage: @@ -52,6 +55,7 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} NodeUserData: type: OS::TripleO::NodeUserData diff --git a/cinder-storage.yaml b/cinder-storage.yaml index 9541ed1c..47a97081 100644 --- a/cinder-storage.yaml +++ b/cinder-storage.yaml @@ -106,6 +106,9 @@ parameters: description: > Setting to a previously unused value during stack-update will trigger package update on all nodes + Hostname: + type: string + default: '' # Defaults to Heat created hostname resources: BlockStorage: @@ -119,6 +122,7 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} NodeUserData: type: OS::TripleO::NodeUserData diff --git a/compute.yaml b/compute.yaml index abd59103..408e0f31 100644 --- a/compute.yaml +++ b/compute.yaml @@ -254,6 +254,9 @@ parameters: description: > Setting to a previously unused value during stack-update will trigger package update on all nodes + Hostname: + type: string + default: '' # Defaults to Heat created hostname resources: @@ -270,6 +273,7 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} NodeUserData: type: OS::TripleO::NodeUserData diff --git a/controller.yaml b/controller.yaml index 9fc91562..36bd77bc 100644 --- a/controller.yaml +++ b/controller.yaml @@ -71,11 +71,6 @@ parameters: default: true description: Whether to use Galera instead of regular MariaDB. type: boolean - EnablePacemaker: - default: false - description: If enabled services will be monitored by Pacemaker; it - will manage VIPs as well, in place of Keepalived. - type: boolean EnableCephStorage: default: false description: Whether to deploy Ceph Storage (OSD) on the Controller @@ -447,6 +442,9 @@ parameters: description: > Setting to a previously unused value during stack-update will trigger package update on all nodes + Hostname: + type: string + default: '' # Defaults to Heat created hostname resources: @@ -461,6 +459,7 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} NodeUserData: type: OS::TripleO::NodeUserData diff --git a/network/config/bond-with-vlans/ceph-storage.yaml b/network/config/bond-with-vlans/ceph-storage.yaml index 90617b30..3216018c 100644 --- a/network/config/bond-with-vlans/ceph-storage.yaml +++ b/network/config/bond-with-vlans/ceph-storage.yaml @@ -25,6 +25,20 @@ parameters: default: '' description: IP address/subnet on the tenant network type: string + BondInterfaceOvsOptions: + default: '' + description: The ovs_options string for the bond interface. Set things like + lacp=active and/or bond_mode=balance-slb using this option. + type: string + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number + resources: OsNetConfigImpl: @@ -36,7 +50,7 @@ resources: network_config: - type: ovs_bridge - name: {get_input: bridge_name} + name: br-storage use_dhcp: true members: - @@ -51,7 +65,7 @@ resources: - type: ovs_bond name: bond1 - ovs_options: vlan_mode=trunk trunks=10,20,30,40,50 + ovs_options: {get_param: BondInterfaceOvsOptions} members: - type: interface @@ -63,14 +77,14 @@ resources: - type: vlan device: bond1 - vlan_id: 30 + vlan_id: {get_param: StorageNetworkVlanID} addresses: - ip_netmask: {get_param: StorageIpSubnet} - type: vlan device: bond1 - vlan_id: 40 + vlan_id: {get_param: StorageMgmtNetworkVlanID} addresses: - ip_netmask: {get_param: StorageMgmtIpSubnet} diff --git a/network/config/bond-with-vlans/cinder-storage.yaml b/network/config/bond-with-vlans/cinder-storage.yaml index 95204d35..ef871549 100644 --- a/network/config/bond-with-vlans/cinder-storage.yaml +++ b/network/config/bond-with-vlans/cinder-storage.yaml @@ -25,6 +25,23 @@ parameters: default: '' description: IP address/subnet on the tenant network type: string + BondInterfaceOvsOptions: + default: '' + description: The ovs_options string for the bond interface. Set things like + lacp=active and/or bond_mode=balance-slb using this option. + type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number resources: OsNetConfigImpl: @@ -36,7 +53,7 @@ resources: network_config: - type: ovs_bridge - name: {get_input: bridge_name} + name: br-storage use_dhcp: true members: - @@ -51,7 +68,7 @@ resources: - type: ovs_bond name: bond1 - ovs_options: vlan_mode=trunk trunks=10,20,30,40,50 + ovs_options: {get_param: BondInterfaceOvsOptions} members: - type: interface @@ -63,21 +80,21 @@ resources: - type: vlan device: bond1 - vlan_id: 20 + vlan_id: {get_param: InternalApiNetworkVlanID} addresses: - ip_netmask: {get_param: InternalApiIpSubnet} - type: vlan device: bond1 - vlan_id: 30 + vlan_id: {get_param: StorageNetworkVlanID} addresses: - ip_netmask: {get_param: StorageIpSubnet} - type: vlan device: bond1 - vlan_id: 40 + vlan_id: {get_param: StorageMgmtNetworkVlanID} addresses: - ip_netmask: {get_param: StorageMgmtIpSubnet} diff --git a/network/config/bond-with-vlans/compute.yaml b/network/config/bond-with-vlans/compute.yaml index d7113c8c..25bb91cb 100644 --- a/network/config/bond-with-vlans/compute.yaml +++ b/network/config/bond-with-vlans/compute.yaml @@ -25,6 +25,23 @@ parameters: default: '' description: IP address/subnet on the tenant network type: string + BondInterfaceOvsOptions: + default: '' + description: The ovs_options string for the bond interface. Set things like + lacp=active and/or bond_mode=balance-slb using this option. + type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number resources: OsNetConfigImpl: @@ -51,7 +68,7 @@ resources: - type: ovs_bond name: bond1 - ovs_options: vlan_mode=trunk trunks=10,20,30,40,50 + ovs_options: {get_param: BondInterfaceOvsOptions} members: - type: interface @@ -63,21 +80,21 @@ resources: - type: vlan device: bond1 - vlan_id: 20 + vlan_id: {get_param: InternalApiNetworkVlanID} addresses: - ip_netmask: {get_param: InternalApiIpSubnet} - type: vlan device: bond1 - vlan_id: 30 + vlan_id: {get_param: StorageNetworkVlanID} addresses: - ip_netmask: {get_param: StorageIpSubnet} - type: vlan device: bond1 - vlan_id: 50 + vlan_id: {get_param: TenantNetworkVlanID} addresses: - ip_netmask: {get_param: TenantIpSubnet} diff --git a/network/config/bond-with-vlans/controller.yaml b/network/config/bond-with-vlans/controller.yaml index 478581c2..a28201d1 100644 --- a/network/config/bond-with-vlans/controller.yaml +++ b/network/config/bond-with-vlans/controller.yaml @@ -25,6 +25,31 @@ parameters: default: '' description: IP address/subnet on the tenant network type: string + BondInterfaceOvsOptions: + default: '' + description: The ovs_options string for the bond interface. Set things like + lacp=active and/or bond_mode=balance-slb using this option. + type: string + ExternalNetworkVlanID: + default: 10 + description: Vlan ID for the external network traffic. + type: number + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number resources: OsNetConfigImpl: @@ -51,7 +76,7 @@ resources: - type: ovs_bond name: bond1 - ovs_options: vlan_mode=trunk trunks=10,20,30,40,50 + ovs_options: {get_param: BondInterfaceOvsOptions} members: - type: interface @@ -63,35 +88,35 @@ resources: - type: vlan device: bond1 - vlan_id: 10 + vlan_id: {get_param: ExternalNetworkVlanID} addresses: - ip_netmask: {get_param: ExternalIpSubnet} - type: vlan device: bond1 - vlan_id: 20 + vlan_id: {get_param: InternalApiNetworkVlanID} addresses: - ip_netmask: {get_param: InternalApiIpSubnet} - type: vlan device: bond1 - vlan_id: 30 + vlan_id: {get_param: StorageNetworkVlanID} addresses: - ip_netmask: {get_param: StorageIpSubnet} - type: vlan device: bond1 - vlan_id: 40 + vlan_id: {get_param: StorageMgmtNetworkVlanID} addresses: - ip_netmask: {get_param: StorageMgmtIpSubnet} - type: vlan device: bond1 - vlan_id: 50 + vlan_id: {get_param: TenantNetworkVlanID} addresses: - ip_netmask: {get_param: TenantIpSubnet} diff --git a/network/config/bond-with-vlans/swift-storage.yaml b/network/config/bond-with-vlans/swift-storage.yaml index 337fef5b..b6cacc7e 100644 --- a/network/config/bond-with-vlans/swift-storage.yaml +++ b/network/config/bond-with-vlans/swift-storage.yaml @@ -25,6 +25,23 @@ parameters: default: '' description: IP address/subnet on the tenant network type: string + BondInterfaceOvsOptions: + default: '' + description: The ovs_options string for the bond interface. Set things like + lacp=active and/or bond_mode=balance-slb using this option. + type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number resources: OsNetConfigImpl: @@ -36,7 +53,7 @@ resources: network_config: - type: ovs_bridge - name: {get_input: bridge_name} + name: br-storage use_dhcp: true members: - @@ -51,7 +68,7 @@ resources: - type: ovs_bond name: bond1 - ovs_options: vlan_mode=trunk trunks=10,20,30,40,50 + ovs_options: {get_param: BondInterfaceOvsOptions} members: - type: interface @@ -63,21 +80,21 @@ resources: - type: vlan device: bond1 - vlan_id: 20 + vlan_id: {get_param: InternalApiNetworkVlanID} addresses: - ip_netmask: {get_param: InternalApiIpSubnet} - type: vlan device: bond1 - vlan_id: 30 + vlan_id: {get_param: StorageNetworkVlanID} addresses: - ip_netmask: {get_param: StorageIpSubnet} - type: vlan device: bond1 - vlan_id: 40 + vlan_id: {get_param: StorageMgmtNetworkVlanID} addresses: - ip_netmask: {get_param: StorageMgmtIpSubnet} diff --git a/network/config/single-nic-vlans/ceph-storage.yaml b/network/config/single-nic-vlans/ceph-storage.yaml index 0bc6253c..4a25f763 100644 --- a/network/config/single-nic-vlans/ceph-storage.yaml +++ b/network/config/single-nic-vlans/ceph-storage.yaml @@ -25,6 +25,14 @@ parameters: default: '' description: IP address/subnet on the tenant network type: string + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number resources: OsNetConfigImpl: @@ -36,26 +44,23 @@ resources: network_config: - type: ovs_bridge - name: {get_input: bridge_name} + name: br-storage use_dhcp: true members: - type: interface name: nic1 - ovs_options: vlan_mode=trunk trunks=10,20,30,40,50 # force the MAC address of the bridge to this interface primary: true - type: vlan - device: bond1 - vlan_id: 30 + vlan_id: {get_param: StorageNetworkVlanID} addresses: - ip_netmask: {get_param: StorageIpSubnet} - type: vlan - device: bond1 - vlan_id: 40 + vlan_id: {get_param: StorageMgmtNetworkVlanID} addresses: - ip_netmask: {get_param: StorageMgmtIpSubnet} diff --git a/network/config/single-nic-vlans/cinder-storage.yaml b/network/config/single-nic-vlans/cinder-storage.yaml index 1ca239c1..397b1ecd 100644 --- a/network/config/single-nic-vlans/cinder-storage.yaml +++ b/network/config/single-nic-vlans/cinder-storage.yaml @@ -25,6 +25,18 @@ parameters: default: '' description: IP address/subnet on the tenant network type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number resources: OsNetConfigImpl: @@ -36,33 +48,29 @@ resources: network_config: - type: ovs_bridge - name: {get_input: bridge_name} + name: br-storage use_dhcp: true members: - type: interface name: nic1 - ovs_options: vlan_mode=trunk trunks=10,20,30,40,50 # force the MAC address of the bridge to this interface primary: true - type: vlan - device: bond1 - vlan_id: 20 + vlan_id: {get_param: InternalApiNetworkVlanID} addresses: - ip_netmask: {get_param: InternalApiIpSubnet} - type: vlan - device: bond1 - vlan_id: 30 + vlan_id: {get_param: StorageNetworkVlanID} addresses: - ip_netmask: {get_param: StorageIpSubnet} - type: vlan - device: bond1 - vlan_id: 40 + vlan_id: {get_param: StorageMgmtNetworkVlanID} addresses: - ip_netmask: {get_param: StorageMgmtIpSubnet} diff --git a/network/config/single-nic-vlans/compute.yaml b/network/config/single-nic-vlans/compute.yaml index 93fe0b50..c73aed5e 100644 --- a/network/config/single-nic-vlans/compute.yaml +++ b/network/config/single-nic-vlans/compute.yaml @@ -25,6 +25,18 @@ parameters: default: '' description: IP address/subnet on the tenant network type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number resources: OsNetConfigImpl: @@ -42,24 +54,23 @@ resources: - type: interface name: nic1 - ovs_options: vlan_mode=trunk trunks=10,20,30,40,50 # force the MAC address of the bridge to this interface primary: true - type: vlan - vlan_id: 20 + vlan_id: {get_param: InternalApiNetworkVlanID} addresses: - ip_netmask: {get_param: InternalApiIpSubnet} - type: vlan - vlan_id: 30 + vlan_id: {get_param: StorageNetworkVlanID} addresses: - ip_netmask: {get_param: StorageIpSubnet} - type: vlan - vlan_id: 50 + vlan_id: {get_param: TenantNetworkVlanID} addresses: - ip_netmask: {get_param: TenantIpSubnet} diff --git a/network/config/single-nic-vlans/controller.yaml b/network/config/single-nic-vlans/controller.yaml index 5e1d5d44..ca0cbcad 100644 --- a/network/config/single-nic-vlans/controller.yaml +++ b/network/config/single-nic-vlans/controller.yaml @@ -25,6 +25,26 @@ parameters: default: '' description: IP address/subnet on the tenant network type: string + ExternalNetworkVlanID: + default: 10 + description: Vlan ID for the external network traffic. + type: number + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number + TenantNetworkVlanID: + default: 50 + description: Vlan ID for the tenant network traffic. + type: number resources: OsNetConfigImpl: @@ -42,36 +62,35 @@ resources: - type: interface name: nic1 - ovs_options: vlan_mode=trunk trunks=10,20,30,40,50 # force the MAC address of the bridge to this interface primary: true - type: vlan - vlan_id: 10 + vlan_id: {get_param: ExternalNetworkVlanID} addresses: - ip_netmask: {get_param: ExternalIpSubnet} - type: vlan - vlan_id: 20 + vlan_id: {get_param: InternalApiNetworkVlanID} addresses: - ip_netmask: {get_param: InternalApiIpSubnet} - type: vlan - vlan_id: 30 + vlan_id: {get_param: StorageNetworkVlanID} addresses: - ip_netmask: {get_param: StorageIpSubnet} - type: vlan - vlan_id: 40 + vlan_id: {get_param: StorageMgmtNetworkVlanID} addresses: - ip_netmask: {get_param: StorageMgmtIpSubnet} - type: vlan - vlan_id: 50 + vlan_id: {get_param: TenantNetworkVlanID} addresses: - ip_netmask: {get_param: TenantIpSubnet} diff --git a/network/config/single-nic-vlans/swift-storage.yaml b/network/config/single-nic-vlans/swift-storage.yaml index b2477175..f033ced7 100644 --- a/network/config/single-nic-vlans/swift-storage.yaml +++ b/network/config/single-nic-vlans/swift-storage.yaml @@ -25,6 +25,18 @@ parameters: default: '' description: IP address/subnet on the tenant network type: string + InternalApiNetworkVlanID: + default: 20 + description: Vlan ID for the internal_api network traffic. + type: number + StorageNetworkVlanID: + default: 30 + description: Vlan ID for the storage network traffic. + type: number + StorageMgmtNetworkVlanID: + default: 40 + description: Vlan ID for the storage mgmt network traffic. + type: number resources: OsNetConfigImpl: @@ -36,33 +48,29 @@ resources: network_config: - type: ovs_bridge - name: {get_input: bridge_name} + name: br-storage use_dhcp: true members: - type: interface name: nic1 - ovs_options: vlan_mode=trunk trunks=10,20,30,40,50 # force the MAC address of the bridge to this interface primary: true - type: vlan - device: bond1 - vlan_id: 20 + vlan_id: {get_param: InternalApiNetworkVlanID} addresses: - ip_netmask: {get_param: InternalApiIpSubnet} - type: vlan - device: bond1 - vlan_id: 30 + vlan_id: {get_param: StorageNetworkVlanID} addresses: - ip_netmask: {get_param: StorageIpSubnet} - type: vlan - device: bond1 - vlan_id: 40 + vlan_id: {get_param: StorageMgmtNetworkVlanID} addresses: - ip_netmask: {get_param: StorageMgmtIpSubnet} diff --git a/network/external.yaml b/network/external.yaml index e9aa5b32..bf4bdfe7 100644 --- a/network/external.yaml +++ b/network/external.yaml @@ -33,7 +33,10 @@ parameters: default: external_subnet description: The name of the external subnet in Neutron. type: string - + ExternalAllocationPools: + default: [{'start': '10.0.0.4', 'end': '10.0.0.250'}] + description: Ip allocation pool range for the external network. + type: json resources: ExternalNetwork: @@ -51,6 +54,7 @@ resources: enable_dhcp: {get_param: ExternalNetEnableDHCP} name: {get_param: ExternalSubnetName} network: {get_resource: ExternalNetwork} + allocation_pools: {get_param: ExternalAllocationPools} outputs: OS::stack_id: diff --git a/network/internal_api.yaml b/network/internal_api.yaml index 5abfb117..c7e822e9 100644 --- a/network/internal_api.yaml +++ b/network/internal_api.yaml @@ -33,6 +33,10 @@ parameters: default: internal_api_subnet description: The name of the internal API subnet in Neutron. type: string + InternalApiAllocationPools: + default: [{'start': '172.16.2.4', 'end': '172.16.2.250'}] + description: Ip allocation pool range for the internal API network. + type: json resources: InternalApiNetwork: @@ -50,6 +54,7 @@ resources: enable_dhcp: {get_param: InternalApiNetEnableDHCP} name: {get_param: InternalApiSubnetName} network: {get_resource: InternalApiNetwork} + allocation_pools: {get_param: InternalApiAllocationPools} outputs: OS::stack_id: diff --git a/network/storage.yaml b/network/storage.yaml index 1f60adf4..d403f9e5 100644 --- a/network/storage.yaml +++ b/network/storage.yaml @@ -33,6 +33,10 @@ parameters: default: storage_subnet description: The name of the storage subnet in Neutron. type: string + StorageAllocationPools: + default: [{'start': '172.16.1.4', 'end': '172.16.1.250'}] + description: Ip allocation pool range for the storage network. + type: json resources: StorageNetwork: @@ -50,6 +54,7 @@ resources: enable_dhcp: {get_param: StorageNetEnableDHCP} name: {get_param: StorageSubnetName} network: {get_resource: StorageNetwork} + allocation_pools: {get_param: StorageAllocationPools} outputs: OS::stack_id: diff --git a/network/storage_mgmt.yaml b/network/storage_mgmt.yaml index e97d4364..d0c919b5 100644 --- a/network/storage_mgmt.yaml +++ b/network/storage_mgmt.yaml @@ -33,6 +33,10 @@ parameters: default: storage_mgmt_subnet description: The name of the Storage management subnet in Neutron. type: string + StorageMgmtAllocationPools: + default: [{'start': '172.16.3.4', 'end': '172.16.3.250'}] + description: Ip allocation pool range for the storage mgmt network. + type: json resources: StorageMgmtNetwork: @@ -50,6 +54,7 @@ resources: enable_dhcp: {get_param: StorageMgmtNetEnableDHCP} name: {get_param: StorageMgmtSubnetName} network: {get_resource: StorageMgmtNetwork} + allocation_pools: {get_param: StorageMgmtAllocationPools} outputs: OS::stack_id: diff --git a/network/tenant.yaml b/network/tenant.yaml index db7f99f3..055b87b8 100644 --- a/network/tenant.yaml +++ b/network/tenant.yaml @@ -33,6 +33,10 @@ parameters: default: tenant_subnet description: The name of the tenant subnet in Neutron. type: string + TenantAllocationPools: + default: [{'start': '172.16.0.4', 'end': '172.16.0.250'}] + description: Ip allocation pool range for the tenant network. + type: json resources: TenantNetwork: @@ -50,6 +54,7 @@ resources: enable_dhcp: {get_param: TenantNetEnableDHCP} name: {get_param: TenantSubnetName} network: {get_resource: TenantNetwork} + allocation_pools: {get_param: TenantAllocationPools} outputs: OS::stack_id: diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml index 213dfc59..c9041c6b 100644 --- a/overcloud-resource-registry-puppet.yaml +++ b/overcloud-resource-registry-puppet.yaml @@ -2,7 +2,7 @@ resource_registry: OS::TripleO::BlockStorage: puppet/cinder-storage-puppet.yaml OS::TripleO::BlockStorage::Net::SoftwareConfig: net-config-noop.yaml OS::TripleO::Compute: puppet/compute-puppet.yaml - OS::TripleO::Compute::Net::SoftwareConfig: net-config-bridge.yaml + OS::TripleO::Compute::Net::SoftwareConfig: net-config-noop.yaml OS::TripleO::SoftwareDeployment: OS::Heat::StructuredDeployment OS::TripleO::Controller: puppet/controller-puppet.yaml OS::TripleO::Controller::Net::SoftwareConfig: net-config-bridge.yaml diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml index 89bc97e5..d3035246 100644 --- a/overcloud-without-mergepy.yaml +++ b/overcloud-without-mergepy.yaml @@ -267,11 +267,6 @@ parameters: default: true description: Whether to use Galera instead of regular MariaDB. type: boolean - EnablePacemaker: - default: false - description: If enabled services will be monitored by Pacemaker; it - will manage VIPs as well, in place of Keepalived. - type: boolean ControllerEnableCephStorage: default: false description: Whether to deploy Ceph Storage (OSD) on the Controller @@ -509,6 +504,7 @@ parameters: HeatApiNetwork: internal_api NovaApiNetwork: internal_api NovaMetadataNetwork: internal_api + NovaVncProxyNetwork: internal_api SwiftMgmtNetwork: storage_mgmt SwiftProxyNetwork: storage HorizonNetwork: internal_api @@ -562,7 +558,32 @@ parameters: constraints: - custom_constraint: nova.flavor -# Identifiers to trigger tasks on nodes + # 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: + 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%' + + # Identifiers to trigger tasks on nodes UpdateIdentifier: default: '' type: string @@ -570,6 +591,8 @@ parameters: Setting to a previously unused value during stack-update will trigger package update on all nodes + + resources: HeatAuthEncryptionKey: @@ -608,7 +631,6 @@ resources: ControllerExtraConfig: {get_param: controllerExtraConfig} Debug: {get_param: Debug} EnableGalera: {get_param: EnableGalera} - EnablePacemaker: {get_param: EnablePacemaker} EnableCephStorage: {get_param: ControllerEnableCephStorage} EnableSwiftStorage: {get_param: ControllerEnableSwiftStorage} ExtraConfig: {get_param: ExtraConfig} @@ -682,6 +704,11 @@ resources: KeystonePublicApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, KeystonePublicApiNetwork]}]} NeutronApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, NeutronApiNetwork]}]} UpdateIdentifier: {get_param: UpdateIdentifier} + Hostname: + str_replace: + template: {get_param: ControllerHostnameFormat} + params: + '%stackname%': {get_param: 'OS::stack_name'} Compute: type: OS::Heat::ResourceGroup @@ -740,6 +767,11 @@ resources: SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword} ServiceNetMap: {get_param: ServiceNetMap} UpdateIdentifier: {get_param: UpdateIdentifier} + Hostname: + str_replace: + template: {get_param: ComputeHostnameFormat} + params: + '%stackname%': {get_param: 'OS::stack_name'} BlockStorage: type: OS::Heat::ResourceGroup @@ -765,6 +797,11 @@ resources: RabbitClientPort: {get_param: RabbitClientPort} NtpServer: {get_param: NtpServer} UpdateIdentifier: {get_param: UpdateIdentifier} + Hostname: + str_replace: + template: {get_param: BlockStorageHostnameFormat} + params: + '%stackname%': {get_param: 'OS::stack_name'} ObjectStorage: type: OS::Heat::ResourceGroup @@ -784,6 +821,12 @@ resources: Replicas: { get_param: SwiftReplicas} NtpServer: {get_param: NtpServer} UpdateIdentifier: {get_param: UpdateIdentifier} + ServiceNetMap: {get_param: ServiceNetMap} + Hostname: + str_replace: + template: {get_param: ObjectStorageHostnameFormat} + params: + '%stackname%': {get_param: 'OS::stack_name'} CephStorage: type: OS::Heat::ResourceGroup @@ -799,6 +842,11 @@ resources: NtpServer: {get_param: NtpServer} ServiceNetMap: {get_param: ServiceNetMap} UpdateIdentifier: {get_param: UpdateIdentifier} + Hostname: + str_replace: + template: {get_param: CephStorageHostnameFormat} + params: + '%stackname%': {get_param: 'OS::stack_name'} ControllerIpListMap: type: OS::TripleO::Network::Ports::NetIpListMap diff --git a/puppet/ceph-storage-puppet.yaml b/puppet/ceph-storage-puppet.yaml index 1ab381af..2250f429 100644 --- a/puppet/ceph-storage-puppet.yaml +++ b/puppet/ceph-storage-puppet.yaml @@ -39,6 +39,9 @@ parameters: description: > Setting to a previously unused value during stack-update will trigger package update on all nodes + Hostname: + type: string + default: '' # Defaults to Heat created hostname resources: CephStorage: @@ -52,6 +55,7 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} NodeUserData: type: OS::TripleO::NodeUserData @@ -86,6 +90,7 @@ resources: CephStorageDeployment: type: OS::Heat::StructuredDeployment + depends_on: NetworkDeployment properties: config: {get_resource: CephStorageConfig} server: {get_resource: CephStorage} @@ -138,7 +143,7 @@ outputs: hosts_entry: value: str_replace: - template: "IP HOST" + template: "IP HOST.localdomain HOST" params: IP: {get_attr: [CephStorage, networks, ctlplane, 0]} HOST: {get_attr: [CephStorage, name]} diff --git a/puppet/cinder-storage-puppet.yaml b/puppet/cinder-storage-puppet.yaml index 74df116a..88618e53 100644 --- a/puppet/cinder-storage-puppet.yaml +++ b/puppet/cinder-storage-puppet.yaml @@ -117,6 +117,9 @@ parameters: description: > Setting to a previously unused value during stack-update will trigger package update on all nodes + Hostname: + type: string + default: '' # Defaults to Heat created hostname resources: BlockStorage: @@ -130,6 +133,7 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} NodeUserData: type: OS::TripleO::NodeUserData @@ -164,6 +168,7 @@ resources: BlockStorageDeployment: type: OS::Heat::StructuredDeployment + depends_on: NetworkDeployment properties: server: {get_resource: BlockStorage} config: {get_resource: BlockStorageConfig} @@ -189,7 +194,6 @@ resources: params: server: {get_param: NtpServer} enable_package_install: {get_param: EnablePackageInstall} - signal_transport: NO_SIGNAL # Map heat metadata into hiera datafiles BlockStorageConfig: @@ -243,7 +247,7 @@ outputs: hosts_entry: value: str_replace: - template: "IP HOST" + template: "IP HOST.localdomain HOST" params: IP: {get_attr: [BlockStorage, networks, ctlplane, 0]} HOST: {get_attr: [BlockStorage, name]} diff --git a/puppet/compute-puppet.yaml b/puppet/compute-puppet.yaml index 12e701dd..ed897a43 100644 --- a/puppet/compute-puppet.yaml +++ b/puppet/compute-puppet.yaml @@ -258,6 +258,9 @@ parameters: description: > Setting to a previously unused value during stack-update will trigger package update on all nodes + Hostname: + type: string + default: '' # Defaults to Heat created hostname resources: @@ -274,6 +277,7 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} NodeUserData: type: OS::TripleO::NodeUserData @@ -310,7 +314,6 @@ resources: NetworkDeployment: type: OS::TripleO::SoftwareDeployment properties: - signal_transport: NO_SIGNAL config: {get_resource: NetworkConfig} server: {get_resource: NovaCompute} input_values: @@ -338,8 +341,6 @@ resources: raw_data: {get_file: hieradata/ceph.yaml} compute: raw_data: {get_file: hieradata/compute.yaml} - oac_data: - nova::compute::vncserver_proxyclient_address: local-ipv4 mapped_data: nova::debug: {get_input: debug} nova::rabbit_userid: {get_input: rabbit_username} @@ -352,6 +353,7 @@ resources: nova::compute::vncproxy_host: {get_input: nova_public_ip} nova_enable_rbd_backend: {get_input: nova_enable_rbd_backend} nova_password: {get_input: nova_password} + nova::compute::vncserver_proxyclient_address: {get_input: nova_vnc_proxyclient_address} ceilometer::debug: {get_input: debug} ceilometer::rabbit_userid: {get_input: rabbit_username} ceilometer::rabbit_password: {get_input: rabbit_password} @@ -394,8 +396,8 @@ resources: NovaComputeDeployment: type: OS::TripleO::SoftwareDeployment + depends_on: NetworkDeployment properties: - signal_transport: NO_SIGNAL config: {get_resource: NovaComputeConfig} server: {get_resource: NovaCompute} input_values: @@ -406,6 +408,7 @@ resources: nova_api_host: {get_param: NovaApiHost} nova_password: {get_param: NovaPassword} nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend} + nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]} ceilometer_metering_secret: {get_param: CeilometerMeteringSecret} ceilometer_password: {get_param: CeilometerPassword} ceilometer_compute_agent: {get_param: CeilometerComputeAgent} @@ -505,7 +508,7 @@ outputs: Server's IP address and hostname in the /etc/hosts format value: str_replace: - template: "IP HOST" + template: "IP HOST.localdomain HOST" params: IP: {get_attr: [NovaCompute, networks, ctlplane, 0]} HOST: {get_attr: [NovaCompute, name]} diff --git a/puppet/controller-puppet.yaml b/puppet/controller-puppet.yaml index 05bd27ab..67a11f00 100644 --- a/puppet/controller-puppet.yaml +++ b/puppet/controller-puppet.yaml @@ -76,11 +76,6 @@ parameters: default: true description: Whether to use Galera instead of regular MariaDB. type: boolean - EnablePacemaker: - default: false - description: If enabled services will be monitored by Pacemaker; it - will manage VIPs as well, in place of Keepalived. - type: boolean EnableCephStorage: default: false description: Whether to deploy Ceph Storage (OSD) on the Controller @@ -460,6 +455,9 @@ parameters: description: > Setting to a previously unused value during stack-update will trigger package update on all nodes + Hostname: + type: string + default: '' # Defaults to Heat created hostname resources: @@ -474,6 +472,7 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} NodeUserData: type: OS::TripleO::NodeUserData @@ -533,7 +532,6 @@ resources: NetworkDeployment: type: OS::TripleO::SoftwareDeployment properties: - signal_transport: NO_SIGNAL config: {get_resource: NetworkConfig} server: {get_resource: Controller} input_values: @@ -542,8 +540,8 @@ resources: ControllerDeployment: type: OS::TripleO::SoftwareDeployment + depends_on: NetworkDeployment properties: - signal_transport: NO_SIGNAL config: {get_resource: ControllerConfig} server: {get_resource: Controller} input_values: @@ -1040,7 +1038,7 @@ outputs: Server's IP address and hostname in the /etc/hosts format value: str_replace: - template: IP HOST CLOUDNAME + template: IP HOST.localdomain HOST CLOUDNAME params: IP: {get_attr: [Controller, networks, ctlplane, 0]} HOST: {get_attr: [Controller, name]} diff --git a/puppet/hieradata/controller.yaml b/puppet/hieradata/controller.yaml index 4a506239..99ec0e91 100644 --- a/puppet/hieradata/controller.yaml +++ b/puppet/hieradata/controller.yaml @@ -88,6 +88,8 @@ pacemaker::corosync::manage_fw: false # horizon horizon::allowed_hosts: '*' +horizon::django_session_engine: 'django.contrib.sessions.backends.cache' + mysql::server::manage_config_file: true diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp index b5bed6dc..4ef395f2 100644 --- a/puppet/manifests/overcloud_controller_pacemaker.pp +++ b/puppet/manifests/overcloud_controller_pacemaker.pp @@ -718,7 +718,11 @@ if hiera('step') >= 3 { enabled => false, } - # Horizon + # httpd/apache and horizon + include ::apache + class { '::apache::mod::status': + allow_from => ['127.0.0.1'], + } $vhost_params = { add_listen => false } class { 'horizon': cache_server_ip => hiera('memcache_node_ips', '127.0.0.1'), @@ -1293,6 +1297,12 @@ if hiera('step') >= 4 { Pacemaker::Resource::Service[$::ceilometer::params::agent_notification_service_name]], } + # Horizon + pacemaker::resource::service { $::horizon::params::http_service: + clone_params => "interleave=true", + } + + } } #END STEP 4 diff --git a/puppet/swift-storage-puppet.yaml b/puppet/swift-storage-puppet.yaml index 2268f41f..15481032 100644 --- a/puppet/swift-storage-puppet.yaml +++ b/puppet/swift-storage-puppet.yaml @@ -57,6 +57,14 @@ parameters: description: > Setting to a previously unused value during stack-update will trigger package update on all nodes + ServiceNetMap: + default: {} + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. + type: json + Hostname: + type: string + default: '' # Defaults to Heat created hostname resources: @@ -70,6 +78,7 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} NodeUserData: type: OS::TripleO::NodeUserData @@ -96,6 +105,13 @@ resources: StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]} StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]} + NetIpMap: + type: OS::TripleO::Network::Ports::NetIpMap + properties: + InternalApiIp: {get_attr: [InternalApiPort, ip_address]} + StorageIp: {get_attr: [StoragePort, ip_address]} + StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]} + NetworkDeployment: type: OS::TripleO::SoftwareDeployment properties: @@ -111,6 +127,8 @@ resources: hierarchy: - heat_config_%{::deploy_config_name} - object + - swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig + - all_nodes # provided by allNodesConfig - '"%{::osfamily}"' - common datafiles: @@ -118,29 +136,29 @@ resources: raw_data: {get_file: hieradata/common.yaml} object: raw_data: {get_file: hieradata/object.yaml} - oac_data: # data we map in from other OAC configurations - tripleo::ringbuilder::devices: swift.devices mapped_data: # data supplied directly to this deployment configuration, etc swift::swift_hash_suffix: { get_input: swift_hash_suffix } tripleo::ringbuilder::part_power: { get_input: swift_part_power } tripleo::ringbuilder::replicas: {get_input: swift_replicas } # Swift - swift::storage::all::storage_local_net_ip: {get_input: local_ip} + swift::storage::all::storage_local_net_ip: {get_input: swift_management_network} swift_mount_check: {get_input: swift_mount_check } tripleo::ringbuilder::min_part_hours: { get_input: swift_min_part_hours } ntp::servers: {get_input: ntp_servers} # NOTE(dprince): build_ring support is currently not wired in. # See: https://review.openstack.org/#/c/109225/ tripleo::ringbuilder::build_ring: True + snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name} + snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password} enable_package_install: {get_input: enable_package_install} SwiftStorageHieraDeploy: type: OS::Heat::StructuredDeployment + depends_on: NetworkDeployment properties: server: {get_resource: SwiftStorage} config: {get_resource: SwiftStorageHieraConfig} - signal_transport: NO_SIGNAL input_values: local_ip: {get_attr: [SwiftStorage, networks, ctlplane, 0]} snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName} @@ -156,6 +174,7 @@ resources: params: server: {get_param: NtpServer} enable_package_install: {get_param: EnablePackageInstall} + swift_management_network: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]} UpdateConfig: type: OS::TripleO::Tasks::PackageUpdate @@ -173,7 +192,7 @@ outputs: hosts_entry: value: str_replace: - template: "IP HOST" + template: "IP HOST.localdomain HOST" params: IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]} HOST: {get_attr: [SwiftStorage, name]} @@ -187,7 +206,7 @@ outputs: str_replace: template: 'r1z1-IP:%PORT%/d1' params: - IP: {get_attr: [SwiftStorage, networks, ctlplane, 0]} + IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]} internal_api_ip_address: description: IP address of the server in the internal_api network value: {get_attr: [InternalApiPort, ip_address]} diff --git a/swift-storage.yaml b/swift-storage.yaml index c2819349..466f2fbb 100644 --- a/swift-storage.yaml +++ b/swift-storage.yaml @@ -88,6 +88,9 @@ parameters: description: > Setting to a previously unused value during stack-update will trigger package update on all nodes + Hostname: + type: string + default: '' # Defaults to Heat created hostname resources: SwiftConfig: @@ -118,6 +121,7 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG user_data: {get_resource: NodeUserData} + name: {get_param: Hostname} NodeUserData: type: OS::TripleO::NodeUserData |