resonance

command module
v0.0.0-alpha9 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2023 License: GPL-3.0 Imports: 3 Imported by: 0

README

Latest Release Push Go Report Card codecov Go Reference

Status: experimental. Please check the roadmap. Help welcome 🙏!

resonance

A configuration management tool, somewhat similar to Ansible, Chef or Puppet, but with some notable features:

  • Stateful: Host state is persisted, enabling:
    • Detecting external changes that may break automation.
    • Deletion of resources that are not required anymore.
    • Automatic rollback on failures: apply all changes successfully or rollback to previous state.
  • Transactional resource changes.
    • Resources such as packages (eg: APT) can conflict if applied individually.
    • Resonance merges all of such resources and applies them together, preventing any conflicts.
  • Painless refresh.
    • In memory state (eg: a daemon) must be refreshed when its dependencies change (eg: its configuration file).
    • By simply declaring first the configuration then the service, the service will be automatically reloaded only when required.
    • Resources may subscribe to any resources it depends on:
      • Eg: an app service is dependant on any configuration file at /etc/app/**/*.conf.
      • It is not required to fiddle with multiple individual dependecies declaration.
    • No more "forgot to declare to restart service".
  • Painless dependencies.
    • Order in which resources are declared is used for applying them.
    • Merged resources are considered and do not break declared order.
  • Speed
    • All read-only checks are run in parallel.
    • All actions that can happen concurrently are done like so (eg: changing multiple files).

Install

Pick the latest release with:

GOARCH=$(case $(uname -m) in i[23456]86) echo 386;; x86_64) echo amd64;; armv6l|armv7l) echo arm;; aarch64) echo arm64;; *) echo Unknown machine $(uname -m) 1>&2 ; exit 1 ;; esac) && wget -O- https://github.com/fornellas/resonance/releases/latest/download/resonance.linux.$GOARCH.gz | gunzip > resonance && chmod 755 resonance
./resonance --help

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

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