Skip to content
Snippets Groups Projects
gc_HOT.yaml 11.2 KiB
Newer Older
---
heat_template_version: 2013-05-23
description: "A simple template to boot a cluster of desktops (LoginNode, ManagementNodes and Desktop Nodes)"
# avz parameters disabled. they are working but I want just more options than monash-02. I would like to have a parameter that says "I don't care"
#This requires gc_secgroups to be called beforehand

parameters:
  ubuntu_1804_image_id:
    type: string
    label: Image ID
    description: Ubuntu Image
    default: 99d9449a-084f-4901-8bd8-c04aebd589ca
  centos_7_image_id:
    type: string
    label: Image ID
    description: Centos Image
    default: c47c3acb-9657-4243-9e14-e6c676157e3b #with NetworkManager
Andreas Hamacher's avatar
Andreas Hamacher committed
  rhel_77_image_id:
    type: string
    label: Image ID
    description: Rhel Image
    default: 19993115-ad60-4979-bdfb-67ae7a77e40c
  ssh_key:
    type: string
    default: gc_key
  avz:
    type: string
    default: monash-02
  project_name:
    type: string
  NetID:
    type: string
    default: Classic Provider
  Flavour:
    type: string
Andreas Hamacher's avatar
Andreas Hamacher committed
    default: m3.xsmall
  SlurmSecGroupID:
    type: string
    label: Resource ID
    default: 6e7a09b0-981c-424f-a9b7-9fd4f4d8f416
  NFSSecGroupID:
    type: string
    label: Resource ID
    default: b07a75a3-830c-4778-96c6-8a3732ec7d6c
  MySQLSecGroupID:
    type: string
    label: Resource ID
    default: 4478f245-de5c-4177-bcbd-6fa661032cbe
  SSHMonashSecGroupID:
    type: string
    label: Resource ID
    default: c15081f4-c756-4c57-b8cf-388dd7fdbcd4
  HTTPsSecGroupID:
    type: string
    label: Resource ID
    default: 2d4510c3-ae73-44ea-9700-b6f0a00bf7aa
  PublicSSHSecGroupID:
    type: string
    label: Resource ID
    default: 8a029c04-08ce-40f1-a705-d45a2077e27d
  LDAPSecGroupID:
    type: string
    label: Resource ID
    default: 070a32e2-858b-462a-b2b5-b3a92eec2669
Andreas Hamacher's avatar
Andreas Hamacher committed
  SYSLOGSecGroupID:
    type: string
    label: Resource ID
    default: 1de45b93-e5f6-4838-94f7-fc307752d6cb

  SQLNode0:
   type: "OS::Nova::Server"
   properties:
    name:
     list_join: [ '-', [ { get_param: "OS::stack_name" }, 'sql0' ]]
    availability_zone: { get_param: avz }
Andreas Hamacher's avatar
Andreas Hamacher committed
    flavor: m3.xsmall
    image: { get_param: centos_7_image_id }
Andreas Hamacher's avatar
Andreas Hamacher committed
    security_groups: [ { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: MySQLSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ]
Andreas Hamacher's avatar
Andreas Hamacher committed
     ansible_host_groups: [ SQLNodes, NFSNodes, LDAPServer, CentosNodes, LogNodes ]
Andreas Hamacher's avatar
Andreas Hamacher committed
     ansible_ssh_user: ec2-user
     project_name: { get_param: project_name }
    networks:
      - network: { get_param: NetID }

  NFSVolume:
   type: OS::Cinder::Volume
   properties:
    availability_zone: { get_param: avz }
    size: 1
    name: nfsvol
  NFSVolumeAttachment:
   type: "OS::Cinder::VolumeAttachment"
   properties:
    volume_id: { get_resource: NFSVolume }
    instance_uuid: { get_resource: SQLNode0 }

  SLURMSTATEVolume:
   type: OS::Cinder::Volume
   properties:
    availability_zone: { get_param: avz }
    size: 1
    name: slurmstate
  SLURMSTATEVolumeAttachment:
   type: "OS::Cinder::VolumeAttachment"
   properties:
    volume_id: { get_resource: SLURMSTATEVolume }
    instance_uuid: { get_resource: SQLNode0 }

  DBVolume:
   type: OS::Cinder::Volume
   properties:
    availability_zone: { get_param: avz }
    size: 10
    name: dbvol
  DBVolumeAttachment:
   type: "OS::Cinder::VolumeAttachment"
   properties:
    volume_id: { get_resource: DBVolume }
    instance_uuid: { get_resource: SQLNode0 }

  MgmtNodesCentos7:
      type: My::Server::MgmtNode
      properties:
        #avz: { get_param: avz }
        image: { get_param: centos_7_image_id }
        ansible_ssh_user: ec2-user
Andreas Hamacher's avatar
Andreas Hamacher committed
        ansible_host_groups: [ ManagementNodes, CentosNodes ]
        mynodename:
         list_join: [ '-', [ { get_param: "OS::stack_name" }, 'mgmt%index%' ]]
        ssh_key: { get_param: ssh_key }
Andreas Hamacher's avatar
Andreas Hamacher committed
        security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: MySQLSecGroupID }, { get_param: SYSLOGSecGroupID } ]
Jafar Lie's avatar
Jafar Lie committed
        project_name: { get_param: project_name }
Jafar Lie's avatar
Jafar Lie committed

Jafar Lie's avatar
Jafar Lie committed
  MgmtNodesU:
   type: "OS::Heat::ResourceGroup"
   properties:
Andreas Hamacher's avatar
Andreas Hamacher committed
    count: 1
Jafar Lie's avatar
Jafar Lie committed
    resource_def:
      type: My::Server::MgmtNode
      properties:
        #avz: { get_param: avz }
        image: { get_param: ubuntu_1804_image_id }
        ansible_ssh_user: ubuntu
Andreas Hamacher's avatar
Andreas Hamacher committed
        ansible_host_groups: [ ManagementNodes, UbuntuNodes ]
Jafar Lie's avatar
Jafar Lie committed
        mynodename:
Jafar Lie's avatar
Jafar Lie committed
         list_join: [ '-', [ { get_param: "OS::stack_name" }, 'mgmtU%index%' ]]
Jafar Lie's avatar
Jafar Lie committed
        ssh_key: { get_param: ssh_key }
Andreas Hamacher's avatar
Andreas Hamacher committed
        security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: MySQLSecGroupID }, { get_param: SYSLOGSecGroupID } ]
  LoginNodesC:
    count: 1
    resource_def:
     type: "OS::Nova::Server"
     properties:
      #availability_zone: { get_param: avz }
      flavor: m3.xsmall
      image: { get_param: centos_7_image_id }
      key_name: { get_param: ssh_key }
      name:
       list_join: [ '-', [ { get_param: "OS::stack_name" }, 'login%index%' ]]
Andreas Hamacher's avatar
Andreas Hamacher committed
      security_groups: [ default, { get_param: PublicSSHSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ]
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_host_groups: [ LoginNodes, CentosNodes ]
       ansible_ssh_user: ec2-user
       project_name: { get_param: project_name }
      networks:
       - network: { get_param: NetID }
Andreas Hamacher's avatar
Andreas Hamacher committed
  LoginNodesU:
   type: "OS::Heat::ResourceGroup"
   properties:
Andreas Hamacher's avatar
Andreas Hamacher committed
    resource_def:
     type: "OS::Nova::Server"
     properties:
      #availability_zone: { get_param: avz }
Andreas Hamacher's avatar
Andreas Hamacher committed
      flavor: m3.xsmall
Andreas Hamacher's avatar
Andreas Hamacher committed
      image: { get_param: ubuntu_1804_image_id }
      key_name: { get_param: ssh_key }
      name:
       list_join: [ '-', [ { get_param: "OS::stack_name" }, 'loginU%index%' ]]
Andreas Hamacher's avatar
Andreas Hamacher committed
      security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ]
Andreas Hamacher's avatar
Andreas Hamacher committed
      metadata:
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_host_groups: [ LoginNodes, UbuntuNodes ]
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_ssh_user: ubuntu
       project_name: { get_param: project_name }
      networks:
Andreas Hamacher's avatar
Andreas Hamacher committed
       - network: { get_param: NetID }

  DesktopNodes:
   type: "OS::Heat::ResourceGroup"
   properties:
    count: 0
    resource_def:
     type: "OS::Nova::Server"
     properties:
      #availability_zone: { get_param: avz }
      flavor: m3.xsmall
      image: { get_param: centos_7_image_id }
      key_name: { get_param: ssh_key }
      name:
       list_join: [ '-', [ { get_param: "OS::stack_name" }, 'desktopc%index%' ]]
Andreas Hamacher's avatar
Andreas Hamacher committed
      security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ]
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_host_groups: [ DesktopNodes, VisNodes, ComputeNodes, CentosNodes ]
       ansible_ssh_user: ec2-user
       project_name: { get_param: project_name }
      networks:
       - network: { get_param: NetID }

  ComputeNodesU:
    count: 0
    resource_def:
     type: "OS::Nova::Server"
     properties:
      #availability_zone: { get_param: avz }
      flavor: m3.xsmall
      image: { get_param: ubuntu_1804_image_id }
Andreas Hamacher's avatar
Andreas Hamacher committed
       list_join: [ '-', [ { get_param: "OS::stack_name" }, 'computeU%index%' ]]
Andreas Hamacher's avatar
Andreas Hamacher committed
      security_groups: [ default, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: SSHMonashSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ]
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_host_groups: [ ComputeNodes, UbuntuNodes ]
       ansible_ssh_user: ubuntu
       project_name: { get_param: project_name }
      networks:
       - network: { get_param: NetID }

  ComputeNodesCentos7:
Andreas Hamacher's avatar
Andreas Hamacher committed
   type: "OS::Heat::ResourceGroup"
   properties:
    count: 1
Andreas Hamacher's avatar
Andreas Hamacher committed
    resource_def:
     type: "OS::Nova::Server"
     properties:
      #availability_zone: { get_param: avz }
Andreas Hamacher's avatar
Andreas Hamacher committed
      flavor: m3.xsmall
Andreas Hamacher's avatar
Andreas Hamacher committed
      image: { get_param: centos_7_image_id }
      key_name: { get_param: ssh_key }
      name:
       list_join: [ '-', [ { get_param: "OS::stack_name" }, 'computec7%index%' ]]
Andreas Hamacher's avatar
Andreas Hamacher committed
      security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ]
Andreas Hamacher's avatar
Andreas Hamacher committed
      metadata:
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_host_groups: [ ComputeNodes, CentosNodes ]
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_ssh_user: ec2-user
       project_name: { get_param: project_name }
      networks:
       - network: { get_param: NetID }

  UbuntuDesktopNodes:
   type: "OS::Heat::ResourceGroup"
   properties:
    resource_def:
     type: "OS::Nova::Server"
     properties:
      #availability_zone: { get_param: avz }
Jafar Lie's avatar
Jafar Lie committed
      flavor: mon.c10r35.gpu-k2
      image: { get_param: ubuntu_1804_image_id }
      key_name: { get_param: ssh_key }
      name:
Jafar Lie's avatar
Jafar Lie committed
       list_join: [ '-', [ { get_param: "OS::stack_name" }, 'gpudesktopu%index%' ]]
Andreas Hamacher's avatar
Andreas Hamacher committed
      security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ]
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_host_groups: [ DesktopNodes, GPU, ComputeNodes, VisNodes, UbuntuNodes ]
       ansible_ssh_user: ubuntu
       project_name: { get_param: project_name }
      networks:
       - network: { get_param: NetID }

  CentosDesktopNodes:
   type: "OS::Heat::ResourceGroup"
   properties:
Andreas Hamacher's avatar
Andreas Hamacher committed
    count: 0
    resource_def:
     type: "OS::Nova::Server"
     properties:
      #availability_zone: { get_param: avz }
      flavor: mon.c10r35.gpu-k2
      image: { get_param: centos_7_image_id }
      key_name: { get_param: ssh_key }
      name:
Andreas Hamacher's avatar
Andreas Hamacher committed
       list_join: [ '-', [ { get_param: "OS::stack_name" }, 'gpudesktopc%index%' ]]
Andreas Hamacher's avatar
Andreas Hamacher committed
      security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: SYSLOGSecGroupID } ]
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_host_groups: [ DesktopNodes, GPU, ComputeNodes, K1, VisNodes, CentosNodes ]
       ansible_ssh_user: ec2-user
       project_name: { get_param: project_name }
      networks:
       - network: { get_param: NetID }

Andreas Hamacher's avatar
Andreas Hamacher committed
  ComputeNodeRHEL:
   type: "OS::Heat::ResourceGroup"
   properties:
Andreas Hamacher's avatar
Andreas Hamacher committed
    count: 0
Andreas Hamacher's avatar
Andreas Hamacher committed
    resource_def:
     type: "OS::Nova::Server"
     properties:
      #availability_zone: { get_param: avz }
      flavor: m3.xsmall
      image: { get_param: rhel_77_image_id }
      key_name: { get_param: ssh_key }
      name:
       list_join: [ '-', [ { get_param: "OS::stack_name" }, 'computerhel%index%' ]]
Andreas Hamacher's avatar
Andreas Hamacher committed
      security_groups: [ default, { get_param: SSHMonashSecGroupID }, { get_param: SlurmSecGroupID }, { get_param: NFSSecGroupID }, { get_param: LDAPSecGroupID }, { get_param: SYSLOGSecGroupID } ]
Andreas Hamacher's avatar
Andreas Hamacher committed
      metadata:
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_host_groups: [ DGXRHELNodes, RedhatNodes ]
Andreas Hamacher's avatar
Andreas Hamacher committed
       ansible_ssh_user: cloud-user
       project_name: { get_param: project_name }
      networks:
       - network: { get_param: NetID }