An extensible tool to dynamically generate configs from SMD with Jinja 2 templating support.
Find a file
2024-03-07 16:59:47 -07:00
.gitignore Added .gitignore 2024-03-07 16:59:47 -07:00
LICENSE.md Initial commit 2024-03-07 16:56:45 -07:00
README.md Initial commit 2024-03-07 16:56:45 -07:00

OpenCHAMI Configurator

Configurator is a tool that fetchs data from an instance of SMD to generate commonly used config files.

Building and Usage

Configurator is built using Go:

go mod tidy && go build

To use the tool, run the following:

./configurator generate --config config.yaml --target dhcp:dnsmasq

This will generate a new DHCP dnsmasq config file based on the Jinja 2 template specified in the config file for "dnsmasq". The --target flag is set by passing an argument in the form of "type:template" to specify the type of config file being generate and the template file to use respectively. The configurator requires valid access token when making requests to an instance of SMD that has protected routes.

Configuration

Here is an example config file to start using configurator:

version: ""
smd-host: http://127.0.0.1
smd-port: 27779
access-token: 
templates:
  coredhcp: templates/dhcp/coredhcp.config.jinja
  dnsmasq: templates/dhcp/dnsmasq.conf.jinja
  syslog: templates/syslog.jinja
  ansible: templates/ansible
  powerman: templates/powerman
  conman: templates/conman

Known Issues

  • Adds a new OAuthClient with every token request

TODO