Watchtower HTTP API based updates (#432)

* Added HTTP API trigger to update running images

* Adds HTTP API authentication token parameter and handling

* Exposes port 8080 in Dockerfile to allow inter-container update triggering via HTTP API

* Fixes codacy issue

* Adds API usage doc

* Fix grammar

* Moves api logic to a package of its own

* Makes WT exit if token has not been set in HTTP API mode

* Adds lock to prevent concurrent updates when in HTTP API mode

Co-authored-by: Simon Aronsson <simme@arcticbit.se>
This commit is contained in:
Victor Moura 2020-04-20 11:17:14 -03:00 committed by GitHub
parent 557f4abcb4
commit 0217e116c4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 143 additions and 0 deletions

View file

@ -113,6 +113,18 @@ func RegisterSystemFlags(rootCmd *cobra.Command) {
"",
viper.GetBool("WATCHTOWER_LIFECYCLE_HOOKS"),
"Enable the execution of commands triggered by pre- and post-update lifecycle hooks")
flags.BoolP(
"http-api",
"",
viper.GetBool("WATCHTOWER_HTTP_API"),
"Runs Watchtower in HTTP API mode, so that image updates must to be triggered by a request")
flags.StringP(
"http-api-token",
"",
viper.GetString("WATCHTOWER_HTTP_API_TOKEN"),
"Sets an authentication token to HTTP API requests.")
}
// RegisterNotificationFlags that are used by watchtower to send notifications