Skip to content

0.4.0

Compare
Choose a tag to compare
@arichardet arichardet released this 22 Nov 16:12
· 395 commits to master since this release

This is the final release for Converge 0.4.0. Please refer to the release notes (also included below) for changes and the 0.4.0 documentation for usage.

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