-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
68 lines (56 loc) · 1.69 KB
/
main.go
File metadata and controls
68 lines (56 loc) · 1.69 KB
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
56
57
58
59
60
61
62
63
64
65
66
67
68
package main
import (
"context"
"do-manager/manager"
"log"
"os"
"strconv"
"time"
)
func main() {
ctx := context.TODO()
digitalOceanToken, tokenFound := os.LookupEnv("DIGITALOCEAN_TOKEN")
registry, registryFound := os.LookupEnv("REGISTRY")
maxImageCount, maxImageCountFound := os.LookupEnv("MAX_IMAGE_COUNT")
percentageThreshold, percentageThresholdFound := os.LookupEnv("PERCENTAGE_THRESHOLD")
if !tokenFound {
log.Fatal("DIGITALOCEAN TOKEN NOT SET")
}
if !registryFound {
log.Fatal("REGISTRY NAME NOT SET")
}
if !maxImageCountFound {
log.Fatal("MAXIMUM IMAGE COUNT NOT SET")
}
if !percentageThresholdFound {
log.Fatal("PERCENTAGE THRESHOLD NOT SET")
}
waitPeriodStr, _ := os.LookupEnv("WAIT_PERIOD")
cleanupEnabledStr, _ := os.LookupEnv("CLEANUP_ENABLED")
// Convert max image count to int
maxImage, err := strconv.Atoi(maxImageCount)
if err != nil {
log.Fatal("INVALID MAX IMAGE COUNT PROVIDED. MUST BE A NUMBER")
}
percentage, err := strconv.Atoi(percentageThreshold)
if err != nil {
log.Fatal("INVALID PERCENTAGE THRESHOLD PROVIDED. MUST BE A NUMBER")
}
waitPeriod := 10 // default 10 minutes
if waitPeriodStr != "" {
wp, err := strconv.Atoi(waitPeriodStr)
if err != nil {
log.Fatal("INVALID WAIT PERIOD PROVIDED. MUST BE A NUMBER (minutes)")
}
waitPeriod = wp
}
cleanupEnabled := true // default: enabled
if cleanupEnabledStr != "" {
ce, err := strconv.ParseBool(cleanupEnabledStr)
if err != nil {
log.Fatal("INVALID CLEANUP_ENABLED PROVIDED. MUST BE A BOOLEAN (true/false)")
}
cleanupEnabled = ce
}
manager.RunContainerManager(ctx, digitalOceanToken, registry, maxImage, percentage, time.Duration(waitPeriod)*time.Minute, cleanupEnabled)
}