[openstack-dev] [Heat] OpenStack Heat template and CoreOS...

Steve Chien stvchien at gmail.com
Thu Oct 2 18:46:27 UTC 2014


  
  Currently, within our Icehouse Openstack environment, we are trying to see if we can 1) setup a cluster of CoreOS VMs by using the Heat template 2) invoking the fleetctl command to deploy the Docker containers to the newly setup CoreOS cluster by placing some instructions in the Heat template.

  Achieving the goal 1) is not tough and we can see some samples over the net too. For example, we can use the following template to setup a CoreOS-based VM successfully.

heat_template_version: 2013-05-23
description: >
  A simple Heat template to deploy CoreOS into an existing cluster.
parameters:
  network_id:
    type: string
    label: Network ID
    description: ID of existing Neutron network to use
    default: 632e1048-0164-41bd-9332-01c664eb475f
  image_id:
    type: string
    label: Glance Image ID
    description: ID of existing Glance image to use
    default: dfdd6317-5156-4e7d-96a1-f7ce76a43687
resources:
  instance0_port0:
    type: OS::Neutron::Port
    properties:
      admin_state_up: true
      network_id: { get_param: network_id }
      security_groups:
        - 435c19ea-64d0-47f9-97e6-bc04b98361eb
  instance0:
    type: OS::Nova::Server
    properties:
      name: coreos-test
      image: { get_param: image_id }
      flavor: m1.small
      networks:
        - port: { get_resource: instance0_port0 }
      key_name: mykey
      user_data_format: RAW
      user_data: |
        #cloud-config
        coreos:
          etcd:
            discovery: https://discovery.etcd.io/249d48e8dff562bdd8381177020ee405
            addr: $private_ipv4:4001
            peer-addr: $private_ipv4:7001
          units:
            - name: etcd.service
              command: start
            - name: fleet.service
              command: start

  Initially, we tried to achieve goal 2) by testing if we can send mime multi part user_data (the second part of the user_data will be a shell script that uses fleetctl command to deploy containers; if there is any synchronization / wait condition needs to be done, we can handle it there somehow too) to CoreOS cloud-init service. However, it seems like that CoreOS (at least Stable 410.1.0) cloud-init does not support mime multi part yet.

  Any other good way to achieve both goals 1) & 2)?

  Thanks!


More information about the OpenStack-dev mailing list