Allow 'ctlplane' to be used within Net IP Maps
[apex-tripleo-heat-templates.git] / overcloud-without-mergepy.yaml
index e1f2405..cdfe61d 100644 (file)
@@ -42,6 +42,10 @@ parameters:
     default: ''
     description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
     type: string
+  CinderEnableNfsBackend:
+    default: false
+    description: Whether to enable or not the NFS backend for Cinder
+    type: boolean
   CinderEnableIscsiBackend:
     default: true
     description: Whether to enable or not the Iscsi backend for Cinder
@@ -148,6 +152,18 @@ parameters:
         The tunnel types for the Neutron tenant network. To specify multiple
         values, use a comma separated string, like so: 'gre,vxlan'
     type: string
+  NeutronTunnelIdRanges:
+    description: |
+        Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
+        of GRE tunnel IDs that are available for tenant network allocation
+    default: ["1:1000", ]
+    type: comma_delimited_list
+  NeutronVniRanges:
+    description: |
+        Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
+        of VXLAN VNI IDs that are available for tenant network allocation
+    default: ["1:1000", ]
+    type: comma_delimited_list
   NeutronMechanismDrivers:
     default: 'openvswitch'
     description: |
@@ -174,17 +190,16 @@ parameters:
   NtpServer:
     type: string
     default: ''
+  MongoDbNoJournal:
+    default: false
+    description: Should MongoDb journaling be disabled
+    type: boolean
   PublicVirtualFixedIPs:
     default: []
     description: >
         Control the IP allocation for the PublicVirtualInterface port. E.g.
         [{'ip_address':'1.2.3.4'}]
     type: json
-  PublicVirtualNetwork:
-    default: 'ctlplane'
-    type: string
-    description: >
-        Neutron network to allocate public virtual IP port on.
   RabbitCookieSalt:
     type: string
     default: unset
@@ -233,6 +248,18 @@ parameters:
     default: 5000
     description: The size of the loopback file used by the cinder LVM driver.
     type: number
+  CinderNfsMountOptions:
+    default: ''
+    description: >
+      Mount options for NFS mounts used by Cinder NFS backend. Effective
+      when CinderEnableNfsBackend is true.
+    type: string
+  CinderNfsServers:
+    default: ''
+    description: >
+      NFS servers used by Cinder NFS backend. Effective when
+      CinderEnableNfsBackend is true.
+    type: comma_delimited_list
   CinderPassword:
     default: unset
     description: The password for the cinder service account, used by cinder-api.
@@ -284,40 +311,9 @@ parameters:
   ExtraConfig:
     default: {}
     description: |
-      Additional configuration to inject into the cluster. The JSON should have
-      the following structure:
-        {"FILEKEY":
-          {"config":
-            [{"section": "SECTIONNAME",
-              "values":
-                [{"option": "OPTIONNAME",
-                  "value": "VALUENAME"
-                 }
-                ]
-             }
-            ]
-          }
-        }
-      For instance:
-        {"nova":
-          {"config":
-            [{"section": "default",
-              "values":
-                [{"option": "force_config_drive",
-                  "value": "always"
-                 }
-                ]
-             },
-             {"section": "cells",
-              "values":
-                [{"option": "driver",
-                  "value": "nova.cells.rpc_driver.CellsRPCDriver"
-                 }
-                ]
-             }
-            ]
-          }
-        }
+      Additional configuration to inject into the cluster. The format required
+      may be implementation specific, e.g puppet hieradata.  Any role specific
+      ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
     type: json
   FencingConfig:
     default: {}
@@ -403,6 +399,16 @@ parameters:
     description: Keystone key for signing tokens.
     type: string
     hidden: true
+  KeystoneNotificationDriver:
+    description: Comma-separated list of Oslo notification drivers used by Keystone
+    default: ['messaging']
+    type: comma_delimited_list
+  KeystoneNotificationFormat:
+    description: The Keystone notification format
+    default: 'basic'
+    type: string
+    constraints:
+      - allowed_values: [ 'basic', 'cadf' ]
   MysqlInnodbBufferPoolSize:
     description: >
         Specifies the size of the buffer pool in megabytes. Setting to
@@ -413,7 +419,7 @@ parameters:
   MysqlMaxConnections:
     description: Configures MySQL max_connections config setting
     type: number
-    default: 1024
+    default: 4096
   NeutronDnsmasqOptions:
     default: 'dhcp-option-force=26,1400'
     description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead.
@@ -577,6 +583,12 @@ parameters:
     type: string
     constraints:
       - custom_constraint: nova.flavor
+  BlockStorageExtraConfig:
+    default: {}
+    description: |
+      BlockStorage specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
 
 # Object storage specific parameters
   ObjectStorageCount:
@@ -590,6 +602,13 @@ parameters:
   SwiftStorageImage:
     default: overcloud-swift-storage
     type: string
+  ObjectStorageExtraConfig:
+    default: {}
+    description: |
+      ObjectStorage specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
+
 
 # Ceph storage specific parameters
   CephStorageCount:
@@ -604,6 +623,12 @@ parameters:
     type: string
     constraints:
       - custom_constraint: nova.flavor
+  CephStorageExtraConfig:
+    default: {}
+    description: |
+      CephStorage specific configuration to inject into the cluster. Same
+      structure as ExtraConfig.
+    type: json
 
   # Hostname format for each role
   # Note %index% is translated into the index of the node, e.g 0/1/2 etc
@@ -703,8 +728,11 @@ resources:
           CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
           CeilometerPassword: {get_param: CeilometerPassword}
           CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
+          CinderNfsMountOptions: {get_param: CinderNfsMountOptions}
+          CinderNfsServers: {get_param: CinderNfsServers}
           CinderPassword: {get_param: CinderPassword}
           CinderISCSIHelper: {get_param: CinderISCSIHelper}
+          CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
           CinderEnableIscsiBackend: {get_param: CinderEnableIscsiBackend}
           CinderEnableRbdBackend: {get_param: CinderEnableRbdBackend}
           CloudName: {get_param: CloudName}
@@ -736,6 +764,8 @@ resources:
           KeystoneSigningKey: {get_param: KeystoneSigningKey}
           KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
           KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
+          KeystoneNotificationDriver: {get_param: KeystoneNotificationDriver}
+          KeystoneNotificationFormat: {get_param: KeystoneNotificationFormat}
           MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
           MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
           MysqlMaxConnections: {get_param: MysqlMaxConnections}
@@ -762,6 +792,7 @@ resources:
           NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
           NovaPassword: {get_param: NovaPassword}
           NtpServer: {get_param: NtpServer}
+          MongoDbNoJournal: {get_param: MongoDbNoJournal}
           PcsdPassword: {get_resource: PcsdPassword}
           PublicVirtualInterface: {get_param: PublicVirtualInterface}
           RabbitPassword: {get_param: RabbitPassword}
@@ -782,7 +813,7 @@ resources:
           SwiftPassword: {get_param: SwiftPassword}
           SwiftReplicas: { get_param: SwiftReplicas}
           VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
-          PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]} # deprecated. Use per service VIP settings instead now.
+          PublicVirtualIP: {get_attr: [PublicVirtualIP, ip_address]}
           ServiceNetMap: {get_param: ServiceNetMap}
           HeatApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, HeatApiNetwork]}]}
           GlanceApiVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, GlanceApiNetwork]}]}
@@ -809,6 +840,7 @@ resources:
           CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
           CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
           CeilometerPassword: {get_param: CeilometerPassword}
+          CinderEnableNfsBackend: {get_param: CinderEnableNfsBackend}
           Debug: {get_param: Debug}
           ExtraConfig: {get_param: ExtraConfig}
           Flavor: {get_param: OvercloudComputeFlavor}
@@ -842,7 +874,7 @@ resources:
           NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
           NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
           NovaEnableRbdBackend: {get_param: NovaEnableRbdBackend}
-          NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
+          NovaPublicIP: {get_attr: [PublicVirtualIP, ip_address]}
           NovaPassword: {get_param: NovaPassword}
           NtpServer: {get_param: NtpServer}
           RabbitHost: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
@@ -895,6 +927,8 @@ resources:
                 '%stackname%': {get_param: 'OS::stack_name'}
           ServiceNetMap: {get_param: ServiceNetMap}
           MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, MysqlNetwork]}]}
+          ExtraConfig: {get_param: ExtraConfig}
+          BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
 
   ObjectStorage:
     type: OS::Heat::ResourceGroup
@@ -921,6 +955,8 @@ resources:
               template: {get_param: ObjectStorageHostnameFormat}
               params:
                 '%stackname%': {get_param: 'OS::stack_name'}
+          ExtraConfig: {get_param: ExtraConfig}
+          ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
 
   CephStorage:
     type: OS::Heat::ResourceGroup
@@ -942,10 +978,13 @@ resources:
               template: {get_param: CephStorageHostnameFormat}
               params:
                 '%stackname%': {get_param: 'OS::stack_name'}
+          ExtraConfig: {get_param: ExtraConfig}
+          CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
 
   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]}
@@ -1018,15 +1057,15 @@ resources:
       PortName: redis_virtual_ip
       NetworkName: {get_param: [ServiceNetMap, RedisNetwork]}
 
-  # same as external
+  # The public VIP is on the External net, falls back to ctlplane
   PublicVirtualIP:
-    type: OS::Neutron::Port
     depends_on: Networks
+    type: OS::TripleO::Controller::Ports::ExternalPort
     properties:
-      name: public_virtual_ip
-      network: {get_param: PublicVirtualNetwork}
-      fixed_ips: {get_param: PublicVirtualFixedIPs}
-      replacement_policy: AUTO
+      ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+      ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
+      PortName: public_virtual_ip
+      FixedIPs: {get_param: PublicVirtualFixedIPs}
 
   InternalApiVirtualIP:
     depends_on: Networks
@@ -1052,7 +1091,8 @@ resources:
   VipMap:
     type: OS::TripleO::Network::Ports::NetIpMap
     properties:
-      ExternalIp: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
+      ControlPlaneIp: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+      ExternalIp: {get_attr: [PublicVirtualIP, ip_address]}
       InternalApiIp: {get_attr: [InternalApiVirtualIP, ip_address]}
       StorageIp: {get_attr: [StorageVirtualIP, ip_address]}
       StorageMgmtIp: {get_attr: [StorageMgmtVirtualIP, ip_address]}
@@ -1085,7 +1125,7 @@ resources:
         rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, RabbitMqNetwork]}]}
         # direct configuration of Virtual IPs for each network
         control_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
-        public_virtual_ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
+        public_virtual_ip: {get_attr: [PublicVirtualIP, ip_address]}
         internal_api_virtual_ip: {get_attr: [InternalApiVirtualIP, ip_address]}
         storage_virtual_ip: {get_attr: [StorageVirtualIP, ip_address]}
         storage_mgmt_virtual_ip: {get_attr: [StorageMgmtVirtualIP, ip_address]}
@@ -1244,11 +1284,11 @@ outputs:
       list_join:
       - ''
       - - http://
-        - {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
+        - {get_attr: [PublicVirtualIP, ip_address]}
         - :5000/v2.0/
   PublicVip:
     description: Controller VIP for public API endpoints
-    value: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
+    value: {get_attr: [PublicVirtualIP, ip_address]}
   CeilometerInternalVip:
     description: VIP for Ceilometer API internal endpoint
     value: {get_attr: [VipMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}