Simple binary to sync a Git repository with an etcd config. Built and tested with Go 1.4+
docker pull djaque/git2etcd
go get github.com/djaque/git2etcd
Key | Description | Default |
---|---|---|
host.listen |
Host to listen to | "" |
host.port |
Port to listen to | "4242" |
host.hook |
Name of the Webhook endpoint | "hook" |
repo.url |
URL of the repo to sync | "https://github.com/djaque/git2etcd.git" |
repo.branch |
Branch of the repo to sync | "master" |
repo.path |
Path where to clone the repo | "data/" |
repo.synccycle |
Number of seconds between 2 automatic syncs (if 0, never syncs) | 3600 |
etcd.hosts |
List of etcd hosts | ["http://127.0.0.1:2379"] |
auth.type |
Type of authentication for Git | n/a |
auth.ssh.key |
Path to the SSH private key (if ssh auth type) |
n/a |
auth.ssh.public |
Path to the SSH public key (if ssh auth type) |
n/a |
auth.http.username |
Username (if http auth type) |
n/a |
auth.http.password |
Password (if http auth type) |
n/a |
You can use a JSON config file that you would put either in current folder or in a folder you can precise with the -conf_dir
flag.
{
"host": {
"listen": "",
"port": "4242",
"hook": "hook"
},
"repo": {
"url": "git@github.com:djaque/git2etcd.git",
"branch": "master",
"path": "/opt/git2etcd/repo"
},
"etcd": {
"hosts": [
"http://127.0.0.1:2379"
]
},
"auth": {
"type": "ssh",
"ssh": {
"key": "/home/user/.ssh/id_rsa"
}
}
}
I don't speak JSON !
Well, you can use TOML, YAML, HCL ...
Who needs a file when you can use environment variables ? host.port
can be G2E_HOST_POST
and so on.
We'd love to get your feedback with issues or even pull requests.