forked from grafana/loki
-
Notifications
You must be signed in to change notification settings - Fork 1
/
helm.go
91 lines (84 loc) · 1.93 KB
/
helm.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package sizing
type Pod struct {
Replicas int `json:"replicas"`
Rate int `json:"rate"`
CPU struct {
Request float64 `json:"request"`
Limit float64 `json:"limit"`
} `json:"cpu"`
Memory struct {
Request int `json:"request"`
Limit int `json:"limit"`
} `json:"memory"`
}
type Loki struct {
AuthEnabled bool `json:"auth_enabled"`
}
type Read struct {
Replicas int `json:"replicas"`
Resources Resources `json:"resources"`
}
type Write struct {
Replicas int `json:"replicas"`
Resources Resources `json:"resources"`
}
type Resources struct {
Requests struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
} `json:"requests"`
Limits struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
} `json:"limits"`
}
type Values struct {
Loki Loki `json:"loki"`
Read Read `json:"read"`
Write Write `json:"write"`
}
func constructHelmValues(cluster ClusterSize, nodeType NodeType) Values {
return Values{
Loki: Loki{
AuthEnabled: false,
},
Read: Read{
Replicas: cluster.TotalReadReplicas,
Resources: Resources{
Requests: struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
}{
CPU: nodeType.readPod.cpuRequest,
Memory: nodeType.readPod.memoryRequest,
},
Limits: struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
}{
CPU: nodeType.readPod.cpuLimit,
Memory: nodeType.readPod.memoryLimit,
},
},
},
Write: Write{
Replicas: cluster.TotalWriteReplicas,
Resources: Resources{
Requests: struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
}{
CPU: nodeType.writePod.cpuRequest,
Memory: nodeType.writePod.memoryRequest,
},
Limits: struct {
CPU float64 `json:"cpu"`
Memory int `json:"memory"`
}{
CPU: nodeType.writePod.cpuLimit,
Memory: nodeType.writePod.memoryLimit,
},
},
},
}
}