All Projects → asteris-llc → Converge

asteris-llc / Converge

Licence: other
A powerful and easy-to-use configuration management system.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Converge

Doact
A Terraform module for hosting your own runner for CI/CD on Digital Ocean to run jobs in your GitHub Actions workflows. 🚀
Stars: ✭ 42 (-83.46%)
Mutual labels:  hcl, devops
Terraform Eks
Terraform for AWS EKS
Stars: ✭ 82 (-67.72%)
Mutual labels:  hcl, devops
Grpcc
A gRPC cli interface for easy testing against gRPC servers
Stars: ✭ 1,078 (+324.41%)
Mutual labels:  grpc, devops
Platform As Code Example
Platform as Code - Example
Stars: ✭ 28 (-88.98%)
Mutual labels:  hcl, devops
Terraform Aws Eks
Deploy a full EKS cluster with Terraform
Stars: ✭ 125 (-50.79%)
Mutual labels:  hcl, devops
Ebs bckup
Stars: ✭ 32 (-87.4%)
Mutual labels:  hcl, devops
Terraform Aws Couchbase
Reusable infrastructure modules for running Couchbase on AWS
Stars: ✭ 73 (-71.26%)
Mutual labels:  hcl, devops
Terratag
Terratag is a CLI tool that enables users of Terraform to automatically create and maintain tags across their entire set of AWS, Azure, and GCP resources
Stars: ✭ 385 (+51.57%)
Mutual labels:  hcl, devops
Terraform
Terraform automation for Cloud
Stars: ✭ 121 (-52.36%)
Mutual labels:  hcl, devops
Config Lint
Command line tool to validate configuration files
Stars: ✭ 118 (-53.54%)
Mutual labels:  hcl, devops
Terraform Modules
Terraform Modules
Stars: ✭ 25 (-90.16%)
Mutual labels:  hcl, devops
Terraform Aws Cloudtrail Cloudwatch Alarms
Terraform module for creating alarms for tracking important changes and occurrences from cloudtrail.
Stars: ✭ 170 (-33.07%)
Mutual labels:  hcl, devops
Terraform Aws Secure Baseline
Terraform module to set up your AWS account with the secure baseline configuration based on CIS Amazon Web Services Foundations and AWS Foundational Security Best Practices.
Stars: ✭ 596 (+134.65%)
Mutual labels:  hcl, devops
K8s Digitalocean Terraform
Deploy latest Kubernetes cluster on DigitalOcean using Terraform
Stars: ✭ 33 (-87.01%)
Mutual labels:  hcl, devops
Intro To Terraform
Sample code for the blog post series "A Comprehensive Guide to Terraform."
Stars: ✭ 550 (+116.54%)
Mutual labels:  hcl, devops
Terraform Modules
Reusable Terraform modules
Stars: ✭ 63 (-75.2%)
Mutual labels:  hcl, devops
Launcher
Osquery launcher, autoupdater, and packager
Stars: ✭ 346 (+36.22%)
Mutual labels:  grpc, devops
Threatmapper
Identify vulnerabilities in running containers, images, hosts and repositories
Stars: ✭ 361 (+42.13%)
Mutual labels:  hcl, devops
Ecs Pipeline
☁️ 🐳 ⚡️ 🚀 Create environment and deployment pipelines to ECS Fargate with CodePipeline, CodeBuild and Github using Terraform
Stars: ✭ 85 (-66.54%)
Mutual labels:  hcl, devops
Vishwakarma
Terraform modules to create a self-hosting Kubernetes cluster on opinionated Cloud Platform.
Stars: ✭ 127 (-50%)
Mutual labels:  hcl, devops

This project is no longer actively maintained.

Converge Logo

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.
  • Resources to make changes on your system: docker images and containers, users and groups, systemd, and more. The Resource Reference at converge.aster.is has a complete list of resources and their configuration settings.
  • A powerful graph engine that automatically generates dependencies and runs tasks in parallel.
  • API-first communication using grpc.
  • Module verification: only run trusted modules.

Converge Graph

Slack Status Code Climate

Table of Contents

Installation

The install-converge.sh script will download and install the converge binary to your /usr/local/bin/ directory:

sudo ./install-converge.sh -v 0.4.0

The same installation script is available at get.converge.sh:

curl get.converge.sh | sudo bash -

You can also use go get:

go get github.com/asteris-llc/converge

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

Documentation

Comprehensive documentation can be found at converge.aster.is.

You can learn more about Converge from the following blog posts and presentations:

Usage

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

Continuous Integration and Testing

We use Wercker for CI with a custom base image. The Dockerfile for that image can be found at /ci/Dockerfile in the root of the project, and is pushed as asteris/converge-ci. You can test Converge in the container with the following invocation:

docker run -i \
           -t \
           --rm \
           --volume $(pwd):/go/src/github.com/asteris-llc/converge \
           asteris/converge-ci \
           /bin/bash -c 'cd /go/src/github.com/asteris-llc/converge; make test'

Benchmarks are run with make bench, and fuzzing is run with make fuzzing/{target}.

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].