asteris-llc/converge

View on GitHub
docs/content/release-notes/0.5.0.md

Summary

Maintainability
Test Coverage
---
title: "0.5.0"
date: "2016-12-29"
slug: "0-5-0"

menu:
  main:
    parent: "release-notes"
    identifier: 0.5.0
    weight: -050

---

## Release Date

2016-12-29 0.5.0

## Features

This release includes new modules and general usability enhancements for users
and module authors.

### Remove Vendoring

For converge 0.5.0 we have removed the `vendor` directory from the converge
repository.  `glide install` will now run as part of the build process to ensure
all dependencies are installed.

### Demo Applications

A demo of using converge for a kubernetes deployment was added in [524](https://github.com/asteris-llc/converge/pull/524).

### Module Improvements

#### File Fetch

File download and verification support has been added via [#543](https://github.com/asteris-llc/converge/pull/543).

```hcl
file.fetch "consul.zip" {
  source      = "https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip"
  destination = "/tmp/consul.zip"
  hash_type   = "sha256"
  hash        = "abdf0e1856292468e2c9971420d73b805e93888e006c76324ae39416edcf0627"
}
```

#### File Owner

File ownership can now be changed with the `file.owner` module added via [#549](https://github.com/asteris-llc/converge/pull/549).

```hcl
file.owner "owner-test" {
  destination = "dir"
  group       = "root"
  user        = "root"
  verbose     = true
  recursive   = true
}
```

### Usability Enhancements

#### Better Cascading Error Output

Modules with failing dependencies are now summarized at the end of a run via [516](https://github.com/asteris-llc/converge/pull/516).

```
root/task.directory:
 Error: exec: "blah": executable file not found in $PATH
 Messages:
 Has Changes: no
 Changes: No changes

Errors:
 * root/task.directory: exec: "blah": executable file not found in $PATH

Failed due to failing dependency:
 * root/task.key: error in dependency "root/task.directory"
 * root/task.csr: error in dependency "root/task.key"
 * root/task.crt: error in dependency "root/task.csr"

Summary: 1 errors, 0 changes, 3 dependency errors
```

#### Resource Name Restrictions

As of [535](https://github.com/asteris-llc/converge/pull/535) resource names are
now restricted to strings consisting of letters, numbers, dots `.` and dashes
`-`.  Unicode letter characters are supported.

#### Diff Output During Application

As of [533](https://github.com/asteris-llc/converge/pull/533) diff outputs
should be displayed when running `apply`.

### Engine Improvements

### Module API Enhancements

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

#### Explicit Value Exports

As of [533](https://github.com/asteris-llc/converge/pull/533) the `export` and
`re-export-as` tags are supported for `resource.Resource` types in modules.
These tags are now required to make fields available for `lookup`.

#### New Module Author Idioms

As of [533](https://github.com/asteris-llc/converge/pull/533) resource types in
modules should not embed `resource.Status`.  The `Check` and `Apply` functions
should no longer return the resource itself but instead a generated task status.

## Bug Fixes

Converge 0.5.0 introduces a multitiude of bugfixes and stability improvements.
Please refer to the [changelog](https://github.com/asteris-llc/converge/blob/master/CHANGELOG.md) for
a detailed report.

## Support

We provide support via [the Converge Slack team](http://converge-slack.aster.is/) and through [GitHub issues](https://github.com/asteris-llc/converge/issues)