diff --git a/README.md b/README.md index 26cf902..3cee886 100644 --- a/README.md +++ b/README.md @@ -4,24 +4,42 @@ git-sync is a simple command that pulls a git repository into a local directory. It is a perfect "sidecar" container in Kubernetes - it can periodically pull files down from a repository so that an application can consume them. -git-sync can pull one time, or on a regular interval. It can pull from the HEAD -of a branch, or from a git tag, or from a specific git hash. It will only +git-sync can pull one time, or on a regular interval. It can pull from the +HEAD of a branch, from a git tag, or from a specific git hash. It will only re-pull if the target of the run has changed in the upstream repository. When it re-pulls, it updates the destination directory atomically. In order to do this, it uses a git worktree in a subdirectory of the `--root` and flips a symlink. -git-sync can also be configured to make webhook call upon sucessful git repo syncronisation. The call is made when right after the symlink is updated. +git-sync can pull over HTTP(S) (with authentication or not) or SSH. -## Usage +git-sync can also be configured to make a webhook call upon successful git repo +synchronization. The call is made after the symlink is updated. + +## Building it ``` # build the container make container REGISTRY=registry VERSION=tag +``` +``` # build the container behind a proxy -make container REGISTRY=registry VERSION=tag HTTP_PROXY=http://: HTTPS_PROXY=https://: +make container REGISTRY=registry VERSION=tag \ + HTTP_PROXY=http://: \ + HTTPS_PROXY=https://: +``` +``` +# build the container for an OS/arch other than the current (e.g. you are on +# MacOS and want to run on Linux) +make container REGISTRY=registry VERSION=tag \ + GOOS=linux GOARCH=amd64 +``` + +## Usage + +``` # run the container docker run -d \ -v /tmp/git-data:/tmp/git \ @@ -38,6 +56,7 @@ docker run -d \ ``` ## Webhooks + Webhooks are executed asynchronously from the main git-sync process. If a `webhook-url` is configured, when a change occurs to the local git checkout a call is sent using the method defined in `webhook-method` (default to `POST`). git-sync will continually attempt this webhook call until it succeeds (based on `webhook-success-status`). @@ -56,4 +75,5 @@ docker run -d \ --wait=30 --webhook-url="http://localhost:9090/-/reload" ``` + [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/git-sync/README.md?pixel)]() diff --git a/go.mod b/go.mod index 9b29ddf..5947f42 100644 --- a/go.mod +++ b/go.mod @@ -6,3 +6,5 @@ require ( github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect github.com/prometheus/client_golang v0.9.2 ) + +go 1.13