A small GitOps daemon written in Rust. Watches git repositories for changes on a configured reference or semver tag pattern, pulls those changes, and executes a configured command.
Before building, install the following system libraries (Ubuntu/Debian):
sudo apt install pkg-config libssl-dev libgit2-devAlso requires the Rust toolchain:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -ycargo build --releasekip reads config from (in order of precedence):
--config-path <path>flagKIP_CONFIGenvironment variable/etc/kip/config.tomland all*.tomlfiles under/etc/kip/conf.d/
[[watcher]]
name = "my-terraform"
repo = "https://github.com/example/infra"
reference = "v1.*" # exact ref, semver wildcard, or regex
dir = "/var/kip/infra" # where the repo is cloned and stored (required)
working_dir = "/var/kip/infra/env/prod" # cwd for the command (optional, defaults to dir)
interval = 60 # seconds between checks
command = "terraform apply --auto-approve"
[watcher.auth] # optional
username = "git"
token = "ghp_xxx"kip --config-path ./kip.toml