gofigure

module
v0.0.0-...-3da3ec5 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2020 License: Apache-2.0

README

gofigure

GoDoc Go Report Card

GoFigure is a configuration management tool with remote agents written in golang, and communication using GRPC. Because it communicates over GRPC, any protocol-buffered language is supported as a client. The reference client is written in golang.

Primary design goals:

  • Speed
  • Testability
  • Proper variable management
  • Prevent user error (force best practices)
  • Flexibility
  • Simplicity

GoFigure is still in development, but has most major features completed. Use caution if deploying to a production environment.

There are two main libraries in gofigure:

Minion

Minion is the remote agent of gofigure. It listens for incoming client connections to tell it what to do.

Master

Master is a reference client. You don't have to use it, but if you're writing your client in golang, it has several helpful functions.

If using the reference client, you can easily build a single binary with both the master and minion, and can use the built in Bootstrap function to start the remote minions over SSH. If using some other client, you will need to handle this yourself.

Connection example with reference client:

var gofigureClient *Client
creds, err := credentials.Load(caFile, certFile, keyFile)
if err != nil {
    return gofigureClient, err
}
conn, err := master.ConnectGRPC("123.123.123.123:10000", grpc.WithTransportCredentials(creds))
if err != nil {
    return gofigureClient, err
}
return &master.Client{GofigureClient: pb.NewGofigureClient(conn)}, nil

Directories

Path Synopsis
cmd
Package credentials is a helper for loading x509 certificate files into GRPC transport credentials.
Package credentials is a helper for loading x509 certificate files into GRPC transport credentials.
Package master is the gofigure reference client library with helper functions.
Package master is the gofigure reference client library with helper functions.
Package minion implements the remote side of the gofigure configuration management tool.
Package minion implements the remote side of the gofigure configuration management tool.

Jump to

Keyboard shortcuts

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