Axiomatic is a GitHub webhook handler that launches dir2consul as a Nomad batch job.
Axiomatic uses environment variables to override the default configuration values. The Nomad job definition for the Axiomatic service should be adjusted to set these variables.
- AXIOMATIC_GITHUB_SECRET (required) is the secret token for validating webhook requests. There is no default value, only sorrow.
- AXIOMATIC_IP is the IP address to bind. Default =
127.0.0.1
- AXIOMATIC_PORT is the port number to bind. Default =
8181
- AXIOMATIC_SSH_PRIV_KEY (required) is the private ssh key used for cloning repositories. It must be base64 encoded.
- AXIOMATIC_SSH_PUB_KEY (required) is the public ssh key used for cloning repositories.
- NOMAD_ADDR is the address of the Nomad server. Default =
http://127.0.0.1:4646
- NOMAD_NAMESPACE is the target namespace for queries and actions. Default =
default
- NOMAD_REGION is region of the Nomad servers to forward commands.
- NOMAD_TOKEN is the SecretID of an ACL token to use to authenticate API requests.
Axiomatic passes environment variables, beginning with "CONSUL_" or "D2C_", through to dir2consul. This provides a convenient way to configure the dir2consul batch jobs launched by Axiomatic.
Axiomatic requires no installation. It ships as a Docker container meant for running as a service.
#> nomad job plan axiomatic.nomad
#> nomad job run -check-index 0 axiomatic.nomad
- Open the Settings tab for your repo and choose "Deploy keys" in the menu
- Add the ssh public key as a repository deploy key
- Open the Settings tab for your repo and choose "Webhooks" in the menu
- Press the "Add webhook" button
- Enter your Axiomatic service URL in the Payload URL field. E.g.
https://axiomatic.example.com/webhook
- Enter your Axiomatic github secret in the Secret field
- Press the "Add webhook" button
Service health can be confirmed by making a web request to the '/health' path of the service.
The following diagram depicts the sequence of the interactions between Axiomatic and related services.
Please follow the Conventional Commits specification for your commit messages. Commit type options include: feat, fix, build, chore, ci, docs, style, refactor, perf, and test.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Jim Razmus II
This project is licensed under the MIT License - see the LICENSE.txt file for details.