0.4.0
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 usermove_dir
to move contents of a users home directory if it changesskel_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