FIX: docker registry notifications bulk events can include different type events
parent
2175a981a3
commit
1dccced20d
|
@ -225,7 +225,15 @@ func setupProviders(k8sImplementer kubernetes.Implementer, sender notification.S
|
||||||
"error": err,
|
"error": err,
|
||||||
}).Fatal("main.setupProviders: failed to create kubernetes provider")
|
}).Fatal("main.setupProviders: failed to create kubernetes provider")
|
||||||
}
|
}
|
||||||
go k8sProvider.Start()
|
go func() {
|
||||||
|
err := k8sProvider.Start()
|
||||||
|
if err != nil {
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"error": err,
|
||||||
|
}).Fatal("kubernetes provider stopped with an error")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
enabledProviders = append(enabledProviders, k8sProvider)
|
enabledProviders = append(enabledProviders, k8sProvider)
|
||||||
|
|
||||||
if os.Getenv(EnvHelmProvider) == "1" {
|
if os.Getenv(EnvHelmProvider) == "1" {
|
||||||
|
@ -233,7 +241,15 @@ func setupProviders(k8sImplementer kubernetes.Implementer, sender notification.S
|
||||||
helmImplementer := helm.NewHelmImplementer(tillerAddr)
|
helmImplementer := helm.NewHelmImplementer(tillerAddr)
|
||||||
helmProvider := helm.NewProvider(helmImplementer, sender, approvalsManager)
|
helmProvider := helm.NewProvider(helmImplementer, sender, approvalsManager)
|
||||||
|
|
||||||
go helmProvider.Start()
|
go func() {
|
||||||
|
err := helmProvider.Start()
|
||||||
|
if err != nil {
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"error": err,
|
||||||
|
}).Fatal("helm provider stopped with an error")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
enabledProviders = append(enabledProviders, helmProvider)
|
enabledProviders = append(enabledProviders, helmProvider)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,7 +269,15 @@ func setupTriggers(ctx context.Context, providers provider.Providers, approvalsM
|
||||||
ApprovalManager: approvalsManager,
|
ApprovalManager: approvalsManager,
|
||||||
})
|
})
|
||||||
|
|
||||||
go whs.Start()
|
go func() {
|
||||||
|
err := whs.Start()
|
||||||
|
if err != nil {
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"error": err,
|
||||||
|
"port": types.KeelDefaultPort,
|
||||||
|
}).Fatal("trigger server stopped")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
// checking whether pubsub (GCR) trigger is enabled
|
// checking whether pubsub (GCR) trigger is enabled
|
||||||
if os.Getenv(EnvTriggerPubSub) != "" {
|
if os.Getenv(EnvTriggerPubSub) != "" {
|
||||||
|
|
|
@ -2,7 +2,6 @@ package http
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -99,18 +98,18 @@ func (s *TriggerServer) registryNotificationHandler(resp http.ResponseWriter, re
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"event": rn,
|
||||||
|
}).Debug("registryNotificationHandler: received event, looking for a push tag")
|
||||||
|
|
||||||
for _, e := range rn.Events {
|
for _, e := range rn.Events {
|
||||||
|
|
||||||
if e.Action != "push" {
|
if e.Action != "push" {
|
||||||
// ignoring non-push events
|
continue
|
||||||
resp.WriteHeader(200)
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if e.Target.Tag == "" {
|
if e.Target.Tag == "" {
|
||||||
resp.WriteHeader(http.StatusBadRequest)
|
continue
|
||||||
fmt.Fprintf(resp, "tag cannot be empty")
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dockerURL := e.Request.Host + "/" + e.Target.Repository
|
dockerURL := e.Request.Host + "/" + e.Target.Repository
|
||||||
|
@ -122,10 +121,16 @@ func (s *TriggerServer) registryNotificationHandler(resp http.ResponseWriter, re
|
||||||
event.Repository.Tag = e.Target.Tag
|
event.Repository.Tag = e.Target.Tag
|
||||||
event.Repository.Digest = e.Target.Digest
|
event.Repository.Digest = e.Target.Digest
|
||||||
|
|
||||||
|
log.WithFields(log.Fields{
|
||||||
|
"action": e.Action,
|
||||||
|
"tag": e.Target.Tag,
|
||||||
|
"repository": dockerURL,
|
||||||
|
"digest": e.Target.Digest,
|
||||||
|
}).Debug("registryNotificationHandler: got registry notification, processing")
|
||||||
|
|
||||||
s.trigger(event)
|
s.trigger(event)
|
||||||
|
|
||||||
newRegistryNotificationWebhooksCounter.With(prometheus.Labels{"image": event.Repository.Name}).Inc()
|
newRegistryNotificationWebhooksCounter.With(prometheus.Labels{"image": event.Repository.Name}).Inc()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue