readme: updated example to use coredhcp and other changes
This commit is contained in:
parent
40c8564681
commit
b858ff3fe5
1 changed files with 13 additions and 24 deletions
37
README.md
37
README.md
|
|
@ -4,7 +4,7 @@ The `configurator` is an extensible tool that is capable of dynamically generati
|
||||||
|
|
||||||
## Building and Usage
|
## Building and Usage
|
||||||
|
|
||||||
The `configurator` is built using standard `go` build tools. The project separates the client and server components using build tags. To get started, clone the project, download the dependencies, and build the project:
|
The `configurator` is built using standard `go` build tools. The project separates the client, server, and generator components using build tags. To get started, clone the project, download the dependencies, and build the project:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/OpenCHAMI/configurator.git
|
git clone https://github.com/OpenCHAMI/configurator.git
|
||||||
|
|
@ -23,20 +23,20 @@ After you build the program, run the following command to use the tool:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export ACCESS_TOKEN=eyJhbGciOiJIUzI1NiIs...
|
export ACCESS_TOKEN=eyJhbGciOiJIUzI1NiIs...
|
||||||
./configurator generate --config config.yaml --target dnsmasq -o dnsmasq.conf --cacert configurator.pem
|
./configurator generate --config config.yaml --target coredhcp -o coredhcp.conf --cacert ochami.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
This will generate a new `dnsmasq` config file based on the Jinja 2 template specified in the config file for "dnsmasq". The files will be written to `dnsmasq.conf` as specified with the `-o/--output` flag. The `--target` flag specifies the type of config file to generate by its name (see the [`Creating Generator Plugins`](#creating-generator-plugins) section for details).
|
This will generate a new `coredhcp` config file based on the Jinja 2 template specified in the config file for "coredhcp". The files will be written to `coredhcp.conf` as specified with the `-o/--output` flag. The `--target` flag specifies the type of config file to generate by its name (see the [`Creating Generator Plugins`](#creating-generator-plugins) section for details).
|
||||||
|
|
||||||
In other words, there should be an entry in the config file that looks like this:
|
In other words, there should be an entry in the config file that looks like this:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
...
|
...
|
||||||
targets:
|
targets:
|
||||||
dnsmasq:
|
coredhcp:
|
||||||
plugin: "lib/dnsmasq.so" # optional, if we want to use a plugin instead
|
plugin: "lib/coredhcp.so" # optional, if we want to use an external plugin instead
|
||||||
templates:
|
templates:
|
||||||
- templates/dnsmasq.j2
|
- templates/coredhcp.j2
|
||||||
...
|
...
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
@ -57,9 +57,9 @@ Once the server is up and listening for HTTP requests, you can try making a requ
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export ACCESS_TOKEN=eyJhbGciOiJIUzI1NiIs...
|
export ACCESS_TOKEN=eyJhbGciOiJIUzI1NiIs...
|
||||||
curl http://127.0.0.1:3334/generate?target=dnsmasq -X GET -H "Authorization: Bearer $ACCESS_TOKEN" --cacert configurator.pem
|
curl http://127.0.0.1:3334/generate?target=dnsmasq -X GET -H "Authorization: Bearer $ACCESS_TOKEN" --cacert ochami.pem
|
||||||
# ...or...
|
# ...or...
|
||||||
./configurator fetch --target dnsmasq --host http://127.0.0.1:3334 --cacert configurator.pem
|
./configurator fetch --target dnsmasq --host http://127.0.0.1:3334 --cacert ochami.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
This will do the same thing as the `generate` subcommand, but through a GET request where the file contents is returned in the response. The access token is only required if the `CONFIGURATOR_JWKS_URL` environment variable is set when starting the server with `serve`. The `ACCESS_TOKEN` environment variable is passed to `curl` using the `Authorization` header and expects a token as a JWT.
|
This will do the same thing as the `generate` subcommand, but through a GET request where the file contents is returned in the response. The access token is only required if the `CONFIGURATOR_JWKS_URL` environment variable is set when starting the server with `serve`. The `ACCESS_TOKEN` environment variable is passed to `curl` using the `Authorization` header and expects a token as a JWT.
|
||||||
|
|
@ -84,7 +84,7 @@ Then, run the Docker container similarly to running the binary.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export ACCESS_TOKEN=eyJhbGciOiJIUzI1NiIs...
|
export ACCESS_TOKEN=eyJhbGciOiJIUzI1NiIs...
|
||||||
docker run ghcr.io/openchami/configurator:latest configurator generate --config config.yaml --target dnsmasq -o dnsmasq.conf --cacert configurator.pem
|
docker run ghcr.io/openchami/configurator:latest configurator generate --config config.yaml --target coredhcp -o coredhcp.conf --cacert configurator.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
### Creating Generator Plugins
|
### Creating Generator Plugins
|
||||||
|
|
@ -177,25 +177,15 @@ server: # Server-related parameters when using as service
|
||||||
uri: ""
|
uri: ""
|
||||||
retries: 5
|
retries: 5
|
||||||
smd: # SMD-related parameters
|
smd: # SMD-related parameters
|
||||||
host: http://127.0.0.1
|
host: http://127.0.0.1:27779
|
||||||
port: 27779
|
|
||||||
plugins: # path to plugin directories
|
plugins: # path to plugin directories
|
||||||
- "lib/"
|
- "lib/"
|
||||||
targets: # targets to call with --target flag
|
targets: # targets to call with --target flag
|
||||||
dnsmasq:
|
coredhcp:
|
||||||
templates:
|
templates:
|
||||||
- templates/dnsmasq.jinja
|
- templates/coredhcp.j2
|
||||||
warewulf:
|
|
||||||
templates: # files using Jinja templating
|
|
||||||
- templates/warewulf/vnfs/dhcpd-template.jinja
|
|
||||||
- templates/warewulf/vnfs/dnsmasq-template.jinja
|
|
||||||
files: # files to be copied without templating
|
files: # files to be copied without templating
|
||||||
- templates/warewulf/defaults/provision.jinja
|
- extra/nodes.conf
|
||||||
- templates/warewulf/defaults/node.jinja
|
|
||||||
- templates/warewulf/filesystem/examples/*
|
|
||||||
- templates/warewulf/vnfs/*
|
|
||||||
- templates/warewulf/bootstrap.jinja
|
|
||||||
- templates/warewulf/database.jinja
|
|
||||||
targets: # additional targets to run (does not run recursively)
|
targets: # additional targets to run (does not run recursively)
|
||||||
- dnsmasq
|
- dnsmasq
|
||||||
```
|
```
|
||||||
|
|
@ -210,7 +200,6 @@ The `configurator` project includes a collection of tests focused on verifying p
|
||||||
go test ./tests/generate_test.go --tags=all
|
go test ./tests/generate_test.go --tags=all
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Known Issues
|
## Known Issues
|
||||||
|
|
||||||
- Adds a new `OAuthClient` with every token request
|
- Adds a new `OAuthClient` with every token request
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue