X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=overcloud-without-mergepy.yaml;h=10e8336394e1ea905ccb38ef18cf809a669b4d27;hb=4bc4171a151ebac2c9f1e42aed7dc23de844e429;hp=79d5d9fa8f032920926ad6d8a8f300824780ea88;hpb=c0328095f17796fb1b87a1da355f40dda10c06fe;p=apex-tripleo-heat-templates.git diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml index 79d5d9fa..10e83363 100644 --- a/overcloud-without-mergepy.yaml +++ b/overcloud-without-mergepy.yaml @@ -25,6 +25,23 @@ parameters: description: The password for the ceilometer service account. type: string hidden: true + # This has to be an UUID so for now we generate it outside the template + CephClusterFSID: + default: '' + type: string + description: The Ceph cluster FSID. + CephMonKey: + default: '' + description: The Ceph monitors key. + type: string + CephAdminKey: + default: '' + description: The Ceph admin client key. + type: string + CinderEnableIscsiBackend: + default: true + description: Whether to enable or not the Iscsi backend for Cinder + type: boolean CloudName: default: '' description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org @@ -195,7 +212,6 @@ parameters: type: string hidden: true - # Controller-specific params AdminToken: default: unset @@ -388,7 +404,7 @@ parameters: type: number SwiftReplicas: type: number - default: 1 + default: 3 description: How many replicas to use in the swift rings. # Compute-specific params @@ -468,6 +484,20 @@ parameters: default: overcloud-swift-storage type: string +# Ceph storage specific parameters + CephStorageCount: + type: number + default: 0 + CephStorageImage: + default: overcloud-ceph-storage + type: string + OvercloudCephStorageFlavor: + default: baremetal + description: Flavor for Ceph storage nodes to request when deploying. + type: string + constraints: + - custom_constraint: nova.flavor + resources: Controller: @@ -484,6 +514,7 @@ resources: CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize} CinderPassword: {get_param: CinderPassword} CinderISCSIHelper: {get_param: CinderISCSIHelper} + CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend} CloudName: {get_param: CloudName} ControlVirtualInterface: {get_param: ControlVirtualInterface} ControllerExtraConfig: {get_param: controllerExtraConfig} @@ -603,16 +634,17 @@ resources: resource_def: type: OS::TripleO::BlockStorage properties: - AdminPassword: {get_param: AdminPassword} Image: {get_param: BlockStorageImage} CinderISCSIHelper: {get_param: CinderISCSIHelper} CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize} - CinderPassword: {get_param: CinderPassword} + # Purpose of the dedicated BlockStorage nodes should be to use their local LVM + CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend} VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} KeyName: {get_param: KeyName} Flavor: {get_param: OvercloudBlockStorageFlavor} RabbitPassword: {get_param: RabbitPassword} RabbitUserName: {get_param: RabbitUserName} + NtpServer: {get_param: NtpServer} ObjectStorage: type: OS::Heat::ResourceGroup @@ -621,49 +653,37 @@ resources: resource_def: type: OS::TripleO::ObjectStorage properties: - ControllerIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} KeyName: {get_param: KeyName} - NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling} - NeutronNetworkType: {get_param: NeutronNetworkType} Flavor: {get_param: OvercloudSwiftStorageFlavor} HashSuffix: {get_param: SwiftHashSuffix} MountCheck: {get_param: SwiftMountCheck} MinPartHours: {get_param: SwiftMinPartHours} PartPower: {get_param: SwiftPartPower} - Password: {get_param: SwiftPassword} Image: {get_param: SwiftStorageImage} Replicas: { get_param: SwiftReplicas} + NtpServer: {get_param: NtpServer} + CephStorage: + type: OS::Heat::ResourceGroup + properties: + count: {get_param: CephStorageCount} + resource_def: + type: OS::TripleO::CephStorage + properties: + Image: {get_param: CephStorageImage} + KeyName: {get_param: KeyName} + Flavor: {get_param: OvercloudCephStorageFlavor} + NtpServer: {get_param: NtpServer} allNodesConfig: - type: OS::Heat::StructuredConfig + type: OS::TripleO::AllNodes::SoftwareConfig properties: - config: - completion-signal: {get_input: deploy_signal_id} - hosts: - list_join: - - "\n" - - - list_join: - - "\n" - - {get_attr: [Compute, hosts_entry]} - - list_join: - - "\n" - - {get_attr: [Controller, hosts_entry]} - - list_join: - - "\n" - - {get_attr: [BlockStorage, hosts_entry]} - - list_join: - - "\n" - - {get_attr: [ObjectStorage, hosts_entry]} - rabbit: - nodes: - list_join: - - ',' - - {get_attr: [Controller, hostname]} - sysctl: - net.ipv4.tcp_keepalive_time: 5 - net.ipv4.tcp_keepalive_probes: 5 - net.ipv4.tcp_keepalive_intvl: 1 + compute_hosts: {get_attr: [Compute, hosts_entry]} + controller_hosts: {get_attr: [Controller, hosts_entry]} + block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]} + object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]} + ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]} + controller_names: {get_attr: [Controller, hostname]} MysqlRootPassword: type: OS::Heat::RandomString @@ -698,53 +718,58 @@ resources: replacement_policy: AUTO ControllerBootstrapNodeConfig: - type: OS::Heat::StructuredConfig + type: OS::TripleO::BootstrapNode::SoftwareConfig properties: - group: os-apply-config - config: - bootstrap_host: - bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]} + bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]} ControllerBootstrapNodeDeployment: type: OS::Heat::StructuredDeployments properties: - config: {get_resource: ControllerBootstrapNodeConfig} + config: {get_attr: [ControllerBootstrapNodeConfig, config_id]} servers: {get_attr: [Controller, attributes, nova_server_resource]} signal_transport: NO_SIGNAL ControllerSwiftDeployment: type: OS::Heat::StructuredDeployments properties: - config: {get_resource: SwiftDevicesAndProxyConfig} + config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]} servers: {get_attr: [Controller, attributes, nova_server_resource]} signal_transport: NO_SIGNAL ObjectStorageSwiftDeployment: type: OS::Heat::StructuredDeployments properties: - config: {get_resource: SwiftDevicesAndProxyConfig} + config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]} servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]} signal_transport: NO_SIGNAL SwiftDevicesAndProxyConfig: - type: OS::Heat::StructuredConfig + type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig properties: - group: os-apply-config - config: - swift: - devices: - list_join: - - ", " - - - list_join: - - ", " - - {get_attr: [Controller, swift_device]} - - list_join: - - ", " - - {get_attr: [ObjectStorage, swift_device]} - proxy-memcache: - list_join: - - "," - - {get_attr: [Controller, swift_proxy_memcache]} + controller_swift_devices: {get_attr: [Controller, swift_device]} + object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]} + controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]} + + ControllerCephDeployment: + type: OS::Heat::StructuredDeployments + properties: + config: {get_attr: [CephClusterConfig, config_id]} + servers: {get_attr: [Controller, attributes, nova_server_resource]} + + CephStorageCephDeployment: + type: OS::Heat::StructuredDeployments + properties: + config: {get_attr: [CephClusterConfig, config_id]} + servers: {get_attr: [CephStorage, attributes, nova_server_resource]} + + CephClusterConfig: + type: OS::TripleO::CephClusterConfig::SoftwareConfig + properties: + ceph_fsid: {get_param: CephClusterFSID} + ceph_mon_key: {get_param: CephMonKey} + ceph_admin_key: {get_param: CephAdminKey} + ceph_mon_names: {get_attr: [Controller, hostname]} + ceph_mon_ips: {get_attr: [Controller, ip_address]} ControllerClusterConfig: type: OS::Heat::StructuredConfig @@ -771,15 +796,63 @@ resources: ControllerAllNodesDeployment: type: OS::Heat::StructuredDeployments properties: - config: {get_resource: allNodesConfig} + config: {get_attr: [allNodesConfig, config_id]} servers: {get_attr: [Controller, attributes, nova_server_resource]} ComputeAllNodesDeployment: type: OS::Heat::StructuredDeployments properties: - config: {get_resource: allNodesConfig} + config: {get_attr: [allNodesConfig, config_id]} + servers: {get_attr: [Compute, attributes, nova_server_resource]} + + BlockStorageAllNodesDeployment: + type: OS::Heat::StructuredDeployments + properties: + config: {get_attr: [allNodesConfig, config_id]} + servers: {get_attr: [BlockStorage, attributes, nova_server_resource]} + + ObjectStorageAllNodesDeployment: + type: OS::Heat::StructuredDeployments + properties: + config: {get_attr: [allNodesConfig, config_id]} + servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]} + + CephStorageAllNodesDeployment: + type: OS::Heat::StructuredDeployments + properties: + config: {get_attr: [allNodesConfig, config_id]} + servers: {get_attr: [CephStorage, attributes, nova_server_resource]} + + # Nested stack deployment runs after all other controller deployments + ControllerNodesPostDeployment: + type: OS::TripleO::ControllerPostDeployment + depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment, ControllerCephDeployment] + properties: + servers: {get_attr: [Controller, attributes, nova_server_resource]} + + ComputeNodesPostDeployment: + type: OS::TripleO::ComputePostDeployment + depends_on: ComputeAllNodesDeployment + properties: servers: {get_attr: [Compute, attributes, nova_server_resource]} + ObjectStorageNodesPostDeployment: + type: OS::TripleO::ObjectStoragePostDeployment + depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment] + properties: + servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]} + + BlockStorageNodesPostDeployment: + type: OS::TripleO::BlockStoragePostDeployment + depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment] + properties: + servers: {get_attr: [BlockStorage, attributes, nova_server_resource]} + + CephStorageNodesPostDeployment: + type: OS::TripleO::CephStoragePostDeployment + depends_on: [ControllerNodesPostDeployment, CephStorageCephDeployment, CephStorageAllNodesDeployment] + properties: + servers: {get_attr: [CephStorage, attributes, nova_server_resource]} outputs: KeystoneURL: