/
events.go
55 lines (45 loc) · 2.33 KB
/
events.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package automation
import (
"github.com/pulumi/pulumi/sdk/v3/go/auto/events"
log "github.com/sirupsen/logrus"
)
func CollectEvents(eventChannel <-chan events.EngineEvent) {
for {
var event events.EngineEvent
var ok bool
createLogger := log.WithFields(log.Fields{"event": "CREATING"})
completeLogger := log.WithFields(log.Fields{"event": "COMPLETE"})
event, ok = <-eventChannel
if !ok {
return
}
if event.ResourcePreEvent != nil {
switch event.ResourcePreEvent.Metadata.Type {
case "aws:ecr/repository:Repository":
createLogger.WithFields(log.Fields{"resource": event.ResourcePreEvent.Metadata.Type}).Info("Creating ECR repository")
case "kubernetes:core/v1:Namespace":
createLogger.WithFields(log.Fields{"resource": event.ResourcePreEvent.Metadata.Type}).Info("Creating Kubernetes Namespace")
case "kubernetes:core/v1:Service":
createLogger.WithFields(log.Fields{"resource": event.ResourcePreEvent.Metadata.Type}).Info("Creating Kubernetes Service")
case "kubernetes:apps/v1:Deployment":
createLogger.WithFields(log.Fields{"resource": event.ResourcePreEvent.Metadata.Type}).Info("Creating Kubernetes Deployment")
case "docker:image:Image":
createLogger.WithFields(log.Fields{"resource": event.ResourcePreEvent.Metadata.Type}).Info("Creating Docker Image")
}
}
if event.ResOutputsEvent != nil {
switch event.ResOutputsEvent.Metadata.Type {
case "aws:ecr/repository:Repository":
completeLogger.WithFields(log.Fields{"name": event.ResOutputsEvent.Metadata.New.Outputs["repositoryUrl"], "resource": event.ResOutputsEvent.Metadata.Type}).Info("Created ECR repository")
case "kubernetes:core/v1:Namespace":
completeLogger.WithFields(log.Fields{"resource": event.ResOutputsEvent.Metadata.Type}).Info("Created Kubernetes Namespace")
case "kubernetes:core/v1:Service":
completeLogger.WithFields(log.Fields{"resource": event.ResOutputsEvent.Metadata.Type}).Info("Created Kubernetes Service")
case "kubernetes:apps/v1:Deployment":
completeLogger.WithFields(log.Fields{"resource": event.ResOutputsEvent.Metadata.Type}).Info("Created Kubernetes Deployment")
case "docker:image:Image":
completeLogger.WithFields(log.Fields{"name": event.ResOutputsEvent.Metadata.New.Outputs["baseImageName"], "resource": event.ResOutputsEvent.Metadata.Type}).Info("Created Docker Image")
}
}
}
}