summaryrefslogtreecommitdiffstats
path: root/environments/mongodb-nojournal.yaml
blob: 92cef5321bf65f8d1a6b09b028df873ac3f19669 (plain)
1
2
3
4
5
# A Heat environment file which can be used to disable journal in MongoDb.
# Since, when journaling is enabled, MongoDb will create big journal file
# it can take time. In a CI environment for example journaling is not necessary.
parameter_defaults:
  MongoDbNoJournal: true
9' href='#n339'>339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361
heat_template_version: 2014-10-16

description: >
  OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.

parameters:
  AdminPassword:
    default: unset
    description: The password for the keystone admin account, used for monitoring, querying neutron etc.
    type: string
    hidden: true
  CeilometerComputeAgent:
    description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
    type: string
    default: ''
    constraints:
    - allowed_values: ['', Present]
  CeilometerDSN:
    type: string
  CeilometerMeteringSecret:
    default: unset
    description: Secret shared by the ceilometer services.
    type: string
    hidden: true
  CeilometerPassword:
    default: unset
    description: The password for the ceilometer service account.
    type: string
    hidden: true
  Debug:
    default: ''
    description: Set to True to enable debugging on all services.
    type: string
  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"
                 }
                ]
             }
            ]
          }
        }
    type: json
  Flavor:
    description: Flavor for the nova compute node
    type: string
    constraints:
      - custom_constraint: nova.flavor
  GlanceHost:
    type: string
    default: ''  # Has to be here because of the ignored empty value bug
  GlancePort:
    default: "9292"
    description: Glance port.
    type: string
  GlanceProtocol:
    default: http
    description: Protocol to use when connecting to glance, set to https for SSL.
    type: string
  Image:
    type: string
    default: overcloud-compute
    constraints:
      - custom_constraint: glance.image
  ImageUpdatePolicy:
    default: 'REBUILD_PRESERVE_EPHEMERAL'
    description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
    type: string
  KeyName:
    description: Name of an existing EC2 KeyPair to enable SSH access to the instances
    type: string
    default: default
    constraints:
      - custom_constraint: nova.keypair
  KeystoneHost:
    type: string
    default: ''
  NeutronBridgeMappings:
    description: >
      The OVS logical->physical bridge mappings to use. See the Neutron
      documentation for details. Defaults to mapping br-ex - the external
      bridge on hosts - to a physical name 'datacentre' which can be used
      to create provider networks (and we use this for the default floating
      network) - if changing this either use different post-install network
      scripts or be sure to keep 'datacentre' as a mapping network name.
    type: string
    default: ""
  NeutronEnableTunnelling:
    type: string
    default: "True"
  NeutronFlatNetworks:
    type: string
    default: ''
    description: >
      If set, flat networks to configure in neutron plugins.
  NeutronHost:
    type: string
    default: ''  # Has to be here because of the ignored empty value bug
  NeutronNetworkType:
    type: string
    description: The tenant network type for Neutron, either gre or vxlan.
    default: 'gre'
  NeutronNetworkVLANRanges:
    default: 'datacentre'
    description: >
      The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
      Neutron documentation for permitted values. Defaults to permitting any
      VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
    type: string
  NeutronPassword:
    default: unset
    description: The password for the neutron service account, used by neutron agents.
    type: string
    hidden: true
  NeutronPhysicalBridge:
    default: ''
    description: An OVS bridge to create for accessing external networks.
    type: string
  NeutronPublicInterface:
    default: nic1
    description: A port to add to the NeutronPhysicalBridge.
    type: string
  NeutronTunnelTypes:
    type: string
    description: |
        The tunnel types for the Neutron tenant network. To specify multiple
        values, use a comma separated string, like so: 'gre,vxlan'
    default: 'gre'
  NeutronPublicInterfaceRawDevice:
    default: ''
    type: string
  NeutronDVR:
    default: 'False'
    type: string
  NeutronMetadataProxySharedSecret:
    default: 'unset'
    description: Shared secret to prevent spoofing
    type: string
  NeutronMechanismDrivers:
    default: 'openvswitch'
    description: |
        The mechanism drivers for the Neutron tenant network. To specify multiple
        values, use a comma separated string, like so: 'openvswitch,l2_population'
    type: string
  NeutronAllowL3AgentFailover:
    default: 'True'
    description: Allow automatic l3-agent failover
    type: string
  NeutronAgentMode:
    default: 'dvr_snat'
    description: Agent mode for the neutron-l3-agent on the controller hosts
    type: string
  NovaApiHost:
    type: string
    default: ''  # Has to be here because of the ignored empty value bug
  NovaComputeDriver:
    type: string
    default: libvirt.LibvirtDriver
  NovaComputeExtraConfig:
    default: {}
    description: |
      NovaCompute specific configuration to inject into the cluster. Same
      structure as ExtraConfig.
    type: json
  NovaComputeLibvirtType:
    type: string
    default: ''
  NovaPassword:
    default: unset
    description: The password for the nova service account, used by nova-api.
    type: string
    hidden: true
  NovaPublicIP:
    type: string
    default: ''  # Has to be here because of the ignored empty value bug
  NtpServer:
    type: string
    default: ''
  RabbitHost:
    type: string
    default: ''  # Has to be here because of the ignored empty value bug
  RabbitPassword:
    default: guest
    description: The password for RabbitMQ
    type: string
    hidden: true
  RabbitUserName:
    default: guest
    description: The username for RabbitMQ
    type: string
  SnmpdReadonlyUserName:
    default: ro_snmp_user
    description: The user name for SNMPd with readonly rights running on all Overcloud nodes
    type: string
  SnmpdReadonlyUserPassword:
    default: unset
    description: The user password for SNMPd with readonly rights running on all Overcloud nodes
    type: string
    hidden: true


resources:

  NovaCompute:
    type: OS::Nova::Server
    properties:
      image:
        {get_param: Image}
      image_update_policy:
        get_param: ImageUpdatePolicy
      flavor: {get_param: Flavor}
      key_name: {get_param: KeyName}
      networks:
        - network: ctlplane
      user_data_format: SOFTWARE_CONFIG

  NetworkConfig:
    type: OS::TripleO::Net::SoftwareConfig

  NetworkDeployment:
    type: OS::TripleO::SoftwareDeployment
    properties:
      signal_transport: NO_SIGNAL
      config: {get_attr: [NetworkConfig, config_id]}
      server: {get_resource: NovaCompute}
      input_values:
        bridge_name: {get_param: NeutronPhysicalBridge}
        interface_name: {get_param: NeutronPublicInterface}

  NovaComputeConfig:
    type: OS::TripleO::Compute::SoftwareConfig
    properties:
      # allow configs to create sub-resources attached to the server
      server_id: {get_resource: NovaCompute}

  NovaComputeDeployment:
    type: OS::TripleO::SoftwareDeployment
    properties:
      signal_transport: NO_SIGNAL
      config: {get_attr: [NovaComputeConfig, config_id]}
      server: {get_resource: NovaCompute}
      input_values:
        debug: {get_param: Debug}
        nova_compute_driver: {get_param: NovaComputeDriver}
        nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
        nova_public_ip: {get_param: NovaPublicIP}
        nova_api_host: {get_param: NovaApiHost}
        nova_password: {get_param: NovaPassword}
        ceilometer_dsn: {get_param: CeilometerDSN}
        ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
        ceilometer_password: {get_param: CeilometerPassword}
        ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
        snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
        snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
        glance_host: {get_param: GlanceHost}
        glance_port: {get_param: GlancePort}
        glance_protocol: {get_param: GlanceProtocol}
        keystone_host: {get_param: KeystoneHost}
        neutron_flat_networks: {get_param: NeutronFlatNetworks}
        neutron_host: {get_param: NeutronHost}
        neutron_local_ip: {get_attr: [NovaCompute, networks, ctlplane, 0]}
        neutron_tenant_network_type: {get_param: NeutronNetworkType}
        neutron_tunnel_types: {get_param: NeutronTunnelTypes}
        neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
        neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
        neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
        neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
        neutron_public_interface: {get_param: NeutronPublicInterface}
        neutron_password: {get_param: NeutronPassword}
        neutron_agent_mode: {get_param: NeutronAgentMode}
        neutron_router_distributed: {get_param: NeutronDVR}
        neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
        neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
        neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
        neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
        admin_password: {get_param: AdminPassword}
        rabbit_host: {get_param: RabbitHost}
        rabbit_username: {get_param: RabbitUserName}
        rabbit_password: {get_param: RabbitPassword}
        ntp_server: {get_param: NtpServer}

  NovaComputePassthrough:
    type: OS::Heat::StructuredConfig
    properties:
      group: os-apply-config
      config: {get_input: passthrough_config}

  NovaComputePassthroughSpecific:
    type: OS::Heat::StructuredConfig
    properties:
      group: os-apply-config
      config: {get_input: passthrough_config_specific}

  NovaComputePassthroughDeployment:
    depends_on: [NovaComputeDeployment]
    type: OS::Heat::StructuredDeployment
    properties:
      config: {get_resource: NovaComputePassthrough}
      server: {get_resource: NovaCompute}
      signal_transport: NO_SIGNAL
      input_values:
        passthrough_config: {get_param: ExtraConfig}

  NovaComputePassthroughDeploymentSpecific:
    depends_on: [NovaComputePassthroughDeployment]
    type: OS::Heat::StructuredDeployment
    properties:
      config: {get_resource: NovaComputePassthroughSpecific}
      server: {get_resource: NovaCompute}
      signal_transport: NO_SIGNAL
      input_values:
        passthrough_config_specific: {get_param: NovaComputeExtraConfig}

outputs:
  ip_address:
    description: IP address of the server in the ctlplane network
    value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
  hostname:
    description: Hostname of the server
    value: {get_attr: [NovaCompute, name]}
  hosts_entry:
    description: >
      Server's IP address and hostname in the /etc/hosts format
    value:
      str_replace:
        template: "IP HOST HOST.novalocal"
        params:
          IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
          HOST: {get_attr: [NovaCompute, name]}
  nova_server_resource:
    description: Heat resource handle for the Nova compute server
    value:
      {get_resource: NovaCompute}