Skip to content

Commit 72b21dc

Browse files
committed
Update memory capacity calculation
1 parent 268b19f commit 72b21dc

File tree

2 files changed

+18
-17
lines changed

2 files changed

+18
-17
lines changed

pkg/operator/operator/memory_capacity.go

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -98,29 +98,30 @@ func getMemoryCapacityFromConfigMap() (*kresource.Quantity, error) {
9898
return &mem, nil
9999
}
100100

101-
func updateMemoryCapacityConfigMap() (*kresource.Quantity, error) {
102-
memFromConfig := config.Cluster.InstanceMetadata.Memory
103-
memFromNodes, err := getMemoryCapacityFromNodes()
101+
func updateMemoryCapacityConfigMap() (kresource.Quantity, error) {
102+
awsAdvertisedMem := config.Cluster.InstanceMetadata.Memory
103+
104+
nodeMemCapacity, err := getMemoryCapacityFromNodes()
104105
if err != nil {
105-
return nil, err
106+
return kresource.Quantity{}, err
106107
}
107108

108-
memFromConfigMap, err := getMemoryCapacityFromConfigMap()
109+
previousMinMem, err := getMemoryCapacityFromConfigMap()
109110
if err != nil {
110-
return nil, err
111+
return kresource.Quantity{}, err
111112
}
112113

113-
minMem := k8s.QuantityPtr(memFromConfig.DeepCopy())
114+
minMem := awsAdvertisedMem
114115

115-
if memFromNodes != nil && minMem.Cmp(*memFromNodes) > 0 {
116-
minMem = memFromNodes
116+
if nodeMemCapacity != nil && minMem.Cmp(*nodeMemCapacity) > 0 {
117+
minMem = *nodeMemCapacity
117118
}
118119

119-
if memFromConfigMap != nil && minMem.Cmp(*memFromConfigMap) > 0 {
120-
minMem = memFromConfigMap
120+
if previousMinMem != nil && minMem.Cmp(*previousMinMem) > 0 {
121+
minMem = *previousMinMem
121122
}
122123

123-
if memFromConfigMap == nil || minMem.Cmp(*memFromConfigMap) != 0 {
124+
if previousMinMem == nil || minMem.Cmp(*previousMinMem) < 0 {
124125
configMap := k8s.ConfigMap(&k8s.ConfigMapSpec{
125126
Name: _memConfigMapName,
126127
Data: map[string]string{
@@ -130,7 +131,7 @@ func updateMemoryCapacityConfigMap() (*kresource.Quantity, error) {
130131

131132
_, err := config.K8s.ApplyConfigMap(configMap)
132133
if err != nil {
133-
return nil, err
134+
return kresource.Quantity{}, err
134135
}
135136
}
136137

pkg/operator/operator/validations.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func ValidateClusterAPIs(apis []userconfig.API, projectFiles spec.ProjectFiles)
102102
return nil
103103
}
104104

105-
func validateK8s(api *userconfig.API, virtualServices []istioclientnetworking.VirtualService, maxMem *kresource.Quantity) error {
105+
func validateK8s(api *userconfig.API, virtualServices []istioclientnetworking.VirtualService, maxMem kresource.Quantity) error {
106106
if err := validateK8sCompute(api.Compute, maxMem); err != nil {
107107
return errors.Wrap(err, api.Identify(), userconfig.ComputeKey)
108108
}
@@ -114,7 +114,7 @@ func validateK8s(api *userconfig.API, virtualServices []istioclientnetworking.Vi
114114
return nil
115115
}
116116

117-
func validateK8sCompute(compute *userconfig.Compute, maxMem *kresource.Quantity) error {
117+
func validateK8sCompute(compute *userconfig.Compute, maxMem kresource.Quantity) error {
118118
maxMem.Sub(_cortexMemReserve)
119119

120120
maxCPU := config.Cluster.InstanceMetadata.CPU
@@ -183,9 +183,9 @@ func findDuplicateEndpoints(apis []userconfig.API) []userconfig.API {
183183
return nil
184184
}
185185

186-
func getValidationK8sResources() ([]istioclientnetworking.VirtualService, *kresource.Quantity, error) {
186+
func getValidationK8sResources() ([]istioclientnetworking.VirtualService, kresource.Quantity, error) {
187187
var virtualServices []istioclientnetworking.VirtualService
188-
var maxMem *kresource.Quantity
188+
var maxMem kresource.Quantity
189189

190190
err := parallel.RunFirstErr(
191191
func() error {

0 commit comments

Comments
 (0)