converge

command module
v0.0.0-...-215933a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 7, 2016 License: Apache-2.0 Imports: 1 Imported by: 0

README

Converge

Converge is a configuration management tool that makes it easy to manage servers, laptops and other devices.

Key features:

  • Easy to install and run. A single binary and configuration file is all you need.
  • A powerful graph engine that automatically generates dependencies and runs tasks in parallel.
  • API-first communication using grpc.
  • Module verification: only run trusted modules.

Slack Status Code Climate

Table of Contents

Installation

go get github.com/asteris-llc/converge

or download a release for your platform from the releases page on Github.

Usage

See the docs! It's pretty reasonable, though. Here's a summary:

Converge uses HCL for syntax. HCL is a superset of JSON that looks (and acts) quite a bit nicer.

The basic unit of composition in converge is the module. Modules have parameters and contain resources. Creating a module looks something like this:

# write "hello world" to disk
param "message" {
  default = "Hello, World in {{param `filename`}}"
}

param "filename" {
  default = "test.txt"
}

file.content "render" {
  destination = "{{param `filename`}}"
  content     = "{{param `message`}}"
}

Invoke this with converge apply --local samples/fileContent.hcl to place a test file on your system. You can also converge plan --local samples/fileContent.hcl to see what changes will be made before you apply them.

Development

Tools

For linting, you'll need:

tool go get
golint github.com/golang/lint/golint
go tool vet (built in)
gosimple honnef.co/go/simple/cmd/gosimple
unconvert github.com/mdempsky/unconvert
structcheck github.com/opennota/check/cmd/structcheck
varcheck github.com/opennota/check/cmd/varcheck
aligncheck github.com/opennota/check/cmd/aligncheck
gas github.com/HewlettPackard/gas
RPC

You'll need:

  • Google's protobuf compiler, 3.0 or above.
  • The go protoc plugin: go get -a github.com/golang/protobuf/protoc-gen-go
  • The grpc gateway plugin(s): go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger

License

Converge is licensed under the Apache 2.0 license. See LICENSE for full details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
helpers
Package prettyprinters provides a general interface and concrete implementations for implementing prettyprinters.
Package prettyprinters provides a general interface and concrete implementations for implementing prettyprinters.
graphviz
Package graphviz provides a concrete prettyprinters.DigraphPrettyPrinter implementation for rendering directed graphs as Graphviz-compatible dot source files.
Package graphviz provides a concrete prettyprinters.DigraphPrettyPrinter implementation for rendering directed graphs as Graphviz-compatible dot source files.
graphviz/providers
Package providers contains an implementation of specific Graphviz PrintProviders that can be used for generating graphs.
Package providers contains an implementation of specific Graphviz PrintProviders that can be used for generating graphs.
jsonl
Package jsonl implements a pretty printer for JSONL format (jsonlines.org)
Package jsonl implements a pretty printer for JSONL format (jsonlines.org)
tmpltools
Package tmpltools provides extensions to 'text/template' that are useful for prettyprinter formatting.
Package tmpltools provides extensions to 'text/template' that are useful for prettyprinter formatting.
extensions
Package extensions defines custom extensions to the go text templating language.
Package extensions defines custom extensions to the go text templating language.
extensions/platform
Package platform queries the underlying operating system
Package platform queries the underlying operating system
rpc
pb
Package pb is a generated protocol buffer package.
Package pb is a generated protocol buffer package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL