Skip to content

0.4.0-rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@rebeccaskinner rebeccaskinner released this 17 Nov 21:17
· 398 commits to master since this release

Release Date

2016-11-17 0.4.0-rc1

Features

This release includes a number of new and improved modules, several bugfixes in
the core engine, and enhancements to the internal API to ease the module
creation process.

Module Improvements

LVM

LVM volume creation has been added for Linux based systems
via #184.

lvm.volumegroup "vg-test" {
  name    = "test"
  devices = ["/dev/sda","/dev/sdb"]
}

lvm.logicalvolume "lv-test" {
  group   = "test"
  name    = "test"
  size    = "1G"
  depends = ["lvm.volumegroup.vg-test"]
}

filesystem "mnt-me" {
  device  = "/dev/mapper/test-test"
  mount   = "/mnt"
  fstype  = "ext3"
  depends = ["lvm.logicalvolume.lv-test"]
}

APT

Apt package installation has been added
via #461.

package.apt "mc" {
  group = "apt"
  name  = "mc"
  state = "present"
}

Docker Volume

Support for docker volumes has been added
via #453

docker.volume "elasticsearch" {
  name = "elasticsearch"

  labels {
    environment = "test"
  }

  state = "present"
  force = true
}

Docker Network

Support for docker networking has been added
via #477

docker.network "test-network" {
  name  = "test-network"
  state = "present"
  force = true

  labels {
    environment = "test"
  }

  options {
    "com.docker.network.bridge.enable_icc" = "true"
  }

  internal    = false
  ipv6        = false
  ipam_driver = "default"

  ipam_config {
    subnet  = "192.168.129.0/24"
    gateway = "192.168.129.1"

    aux_addresses {
      router  = "192.168.129.40"
      printer = "192.168.129.41"
    }
  }
}

User Module

Users can now be modified thanks
to #434. This change also
adds several new fields to the user module which can be used during user
creation or modification including:

  • create_home to create a home directory for a user
  • move_dir to move contents of a users home directory if it changes
  • skel_dir to specify a skeleton directory to use when creating a user

Engine Improvements

Module API Enhancements

The module authoring API has been updated to make it easier to develop modules.

Non-empty Struct Tags

Resources now support the nonempty struct tag as demonstrated by this snippet
from the user module:

type Preparer struct {
    // Username is the user login name.
    Username string `hcl:"username" required:"true" nonempty:"true"`

when nonempty:"true" is set, an error will be returned if the user sets the
value of a field to the zero value for it's type.

Time Duration Types

Resource structs may now use time.Duration as a field type. Duration strings
will be parsed as a time duration automatically; numeric values will be treated
as a time in seconds.

Bug Fixes

Please refer to the changelog for
a detailed report.

Support

We provide support via the Converge Slack team and through GitHub issues