MCPcopy
hub / github.com/cortexlabs/cortex / UpdateMemoryCapacityConfigMap

Function UpdateMemoryCapacityConfigMap

pkg/operator/operator/memory_capacity.go:104–156  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

102}
103
104func UpdateMemoryCapacityConfigMap() (map[string]kresource.Quantity, error) {
105 primaryInstances := []string{}
106
107 minMemMap := map[string]kresource.Quantity{}
108 for _, ng := range config.ClusterConfig.NodeGroups {
109 instanceMetadata := aws.InstanceMetadatas[config.ClusterConfig.Region][ng.InstanceType]
110 minMemMap[ng.InstanceType] = instanceMetadata.Memory
111 primaryInstances = append(primaryInstances, ng.InstanceType)
112 }
113
114 nodeMemCapacityMap, err := getMemoryCapacityFromNodes(primaryInstances)
115 if err != nil {
116 return nil, err
117 }
118
119 previousMinMemMap, err := getMemoryCapacityFromConfigMap()
120 if err != nil {
121 return nil, err
122 }
123
124 configMapData := map[string]string{}
125 for _, primaryInstance := range primaryInstances {
126 minMem := minMemMap[primaryInstance]
127
128 if nodeMemCapacityMap[primaryInstance] != nil && minMem.Cmp(*nodeMemCapacityMap[primaryInstance]) > 0 {
129 minMem = *nodeMemCapacityMap[primaryInstance]
130 }
131
132 if previousMinMemMap[primaryInstance] != nil && minMem.Cmp(*previousMinMemMap[primaryInstance]) > 0 {
133 minMem = *previousMinMemMap[primaryInstance]
134 }
135
136 if previousMinMemMap[primaryInstance] == nil || minMem.Cmp(*previousMinMemMap[primaryInstance]) < 0 {
137 configMapData[_configKeyPrefix+primaryInstance] = minMem.String()
138 } else {
139 configMapData[_configKeyPrefix+primaryInstance] = previousMinMemMap[primaryInstance].String()
140 }
141
142 minMemMap[primaryInstance] = minMem
143 }
144
145 configMap := k8s.ConfigMap(&k8s.ConfigMapSpec{
146 Name: _memConfigMapName,
147 Data: configMapData,
148 })
149
150 _, err = config.K8s.ApplyConfigMap(configMap)
151 if err != nil {
152 return nil, err
153 }
154
155 return minMemMap, nil
156}

Callers 2

ValidateClusterAPIsFunction · 0.92
mainFunction · 0.92

Calls 5

ConfigMapFunction · 0.92
ApplyConfigMapMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected