Merge pull request #230 from tayzlor/marathon-event-stream
Use event stream API instead of event subscriptions
This commit is contained in:
commit
11781087ca
4 changed files with 8 additions and 23 deletions
1
cmd.go
1
cmd.go
|
@ -126,7 +126,6 @@ func init() {
|
||||||
traefikCmd.PersistentFlags().StringVar(&arguments.Marathon.Filename, "marathon.filename", "", "Override default configuration template. For advanced users :)")
|
traefikCmd.PersistentFlags().StringVar(&arguments.Marathon.Filename, "marathon.filename", "", "Override default configuration template. For advanced users :)")
|
||||||
traefikCmd.PersistentFlags().StringVar(&arguments.Marathon.Endpoint, "marathon.endpoint", "http://127.0.0.1:8080", "Marathon server endpoint. You can also specify multiple endpoint for Marathon")
|
traefikCmd.PersistentFlags().StringVar(&arguments.Marathon.Endpoint, "marathon.endpoint", "http://127.0.0.1:8080", "Marathon server endpoint. You can also specify multiple endpoint for Marathon")
|
||||||
traefikCmd.PersistentFlags().StringVar(&arguments.Marathon.Domain, "marathon.domain", "", "Default domain used")
|
traefikCmd.PersistentFlags().StringVar(&arguments.Marathon.Domain, "marathon.domain", "", "Default domain used")
|
||||||
traefikCmd.PersistentFlags().StringVar(&arguments.Marathon.NetworkInterface, "marathon.networkInterface", "eth0", "Network interface used to call Marathon web services. Needed in case of multiple network interfaces")
|
|
||||||
|
|
||||||
traefikCmd.PersistentFlags().BoolVar(&arguments.consul, "consul", false, "Enable Consul backend")
|
traefikCmd.PersistentFlags().BoolVar(&arguments.consul, "consul", false, "Enable Consul backend")
|
||||||
traefikCmd.PersistentFlags().BoolVar(&arguments.Consul.Watch, "consul.watch", true, "Watch provider")
|
traefikCmd.PersistentFlags().BoolVar(&arguments.Consul.Watch, "consul.watch", true, "Watch provider")
|
||||||
|
|
|
@ -151,7 +151,6 @@ Flags:
|
||||||
--marathon.domain string Default domain used
|
--marathon.domain string Default domain used
|
||||||
--marathon.endpoint string Marathon server endpoint. You can also specify multiple endpoint for Marathon (default "http://127.0.0.1:8080")
|
--marathon.endpoint string Marathon server endpoint. You can also specify multiple endpoint for Marathon (default "http://127.0.0.1:8080")
|
||||||
--marathon.filename string Override default configuration template. For advanced users :)
|
--marathon.filename string Override default configuration template. For advanced users :)
|
||||||
--marathon.networkInterface string Network interface used to call Marathon web services. Needed in case of multiple network interfaces (default "eth0")
|
|
||||||
--marathon.watch Watch provider (default true)
|
--marathon.watch Watch provider (default true)
|
||||||
--maxIdleConnsPerHost int If non-zero, controls the maximum idle (keep-alive) to keep per-host. If zero, DefaultMaxIdleConnsPerHost is used
|
--maxIdleConnsPerHost int If non-zero, controls the maximum idle (keep-alive) to keep per-host. If zero, DefaultMaxIdleConnsPerHost is used
|
||||||
--providersThrottleDuration duration Backends throttle duration: minimum duration between 2 events from providers before applying a new configuration. It avoids unnecessary reloads if multiples events are sent in a short amount of time. (default 2s)
|
--providersThrottleDuration duration Backends throttle duration: minimum duration between 2 events from providers before applying a new configuration. It avoids unnecessary reloads if multiples events are sent in a short amount of time. (default 2s)
|
||||||
|
@ -640,12 +639,6 @@ Træfɪk can be configured to use Marathon as a backend configuration:
|
||||||
#
|
#
|
||||||
endpoint = "http://127.0.0.1:8080"
|
endpoint = "http://127.0.0.1:8080"
|
||||||
|
|
||||||
# Network interface used to call Marathon web services. Needed in case of multiple network interfaces.
|
|
||||||
# Optional
|
|
||||||
# Default: "eth0"
|
|
||||||
#
|
|
||||||
networkInterface = "eth0"
|
|
||||||
|
|
||||||
# Enable watch Marathon changes
|
# Enable watch Marathon changes
|
||||||
#
|
#
|
||||||
# Optional
|
# Optional
|
||||||
|
|
|
@ -17,13 +17,12 @@ import (
|
||||||
|
|
||||||
// Marathon holds configuration of the Marathon provider.
|
// Marathon holds configuration of the Marathon provider.
|
||||||
type Marathon struct {
|
type Marathon struct {
|
||||||
BaseProvider `mapstructure:",squash"`
|
BaseProvider `mapstructure:",squash"`
|
||||||
Endpoint string
|
Endpoint string
|
||||||
Domain string
|
Domain string
|
||||||
NetworkInterface string
|
Basic *MarathonBasic
|
||||||
Basic *MarathonBasic
|
TLS *tls.Config
|
||||||
TLS *tls.Config
|
marathonClient marathon.Marathon
|
||||||
marathonClient marathon.Marathon
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MarathonBasic holds basic authentication specific configurations
|
// MarathonBasic holds basic authentication specific configurations
|
||||||
|
@ -42,7 +41,7 @@ type lightMarathonClient interface {
|
||||||
func (provider *Marathon) Provide(configurationChan chan<- types.ConfigMessage) error {
|
func (provider *Marathon) Provide(configurationChan chan<- types.ConfigMessage) error {
|
||||||
config := marathon.NewDefaultConfig()
|
config := marathon.NewDefaultConfig()
|
||||||
config.URL = provider.Endpoint
|
config.URL = provider.Endpoint
|
||||||
config.EventsInterface = provider.NetworkInterface
|
config.EventsTransport = marathon.EventsTransportSSE
|
||||||
if provider.Basic != nil {
|
if provider.Basic != nil {
|
||||||
config.HTTPBasicAuthUser = provider.Basic.HTTPBasicAuthUser
|
config.HTTPBasicAuthUser = provider.Basic.HTTPBasicAuthUser
|
||||||
config.HTTPBasicPassword = provider.Basic.HTTPBasicPassword
|
config.HTTPBasicPassword = provider.Basic.HTTPBasicPassword
|
||||||
|
@ -61,7 +60,7 @@ func (provider *Marathon) Provide(configurationChan chan<- types.ConfigMessage)
|
||||||
update := make(marathon.EventsChannel, 5)
|
update := make(marathon.EventsChannel, 5)
|
||||||
if provider.Watch {
|
if provider.Watch {
|
||||||
if err := client.AddEventsListener(update, marathon.EVENTS_APPLICATIONS); err != nil {
|
if err := client.AddEventsListener(update, marathon.EVENTS_APPLICATIONS); err != nil {
|
||||||
log.Errorf("Failed to register for subscriptions, %s", err)
|
log.Errorf("Failed to register for events, %s", err)
|
||||||
} else {
|
} else {
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
|
|
|
@ -206,12 +206,6 @@
|
||||||
#
|
#
|
||||||
# endpoint = "http://127.0.0.1:8080"
|
# endpoint = "http://127.0.0.1:8080"
|
||||||
|
|
||||||
# Network interface used to call Marathon web services. Needed in case of multiple network interfaces.
|
|
||||||
# Optional
|
|
||||||
# Default: "eth0"
|
|
||||||
#
|
|
||||||
# networkInterface = "eth0"
|
|
||||||
|
|
||||||
# Enable watch Marathon changes
|
# Enable watch Marathon changes
|
||||||
#
|
#
|
||||||
# Optional
|
# Optional
|
||||||
|
|
Loading…
Add table
Reference in a new issue