Skip to content

Commit 5095b62

Browse files
committed
read min and max values from nodepool tags for oci autodiscovery
1 parent 7b9cb8c commit 5095b62

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

cluster-autoscaler/cloudprovider/oci/nodepools/oci_manager.go

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ func CreateNodePoolManager(cloudConfigPath string, nodeGroupAutoDiscoveryList []
9090
var err error
9191
var configProvider common.ConfigurationProvider
9292

93+
// enable SDK to look up the IMDS endpoint to figure out the right realmDomain
94+
common.EnableInstanceMetadataServiceLookup()
95+
9396
if os.Getenv(ipconsts.OciUseWorkloadIdentityEnvVar) == "true" {
9497
klog.Info("using workload identity provider")
9598
configProvider, err = auth.OkeWorkloadIdentityConfigurationProvider()
@@ -214,21 +217,34 @@ func autoDiscoverNodeGroups(m *ociManagerImpl, okeClient okeClient, nodeGroup no
214217
if validateNodepoolTags(nodeGroup.tags, nodePoolSummary.FreeformTags, nodePoolSummary.DefinedTags) {
215218
nodepool := &nodePool{}
216219
nodepool.id = *nodePoolSummary.Id
217-
nodepool.minSize = nodeGroup.minSize
218-
nodepool.maxSize = nodeGroup.maxSize
220+
// set minSize-maxSize from nodepool free form tags, or else use nodeGroupAutoDiscovery configuration
221+
nodepool.minSize = getIntFromMap(nodePoolSummary.FreeformTags, "minSize", nodeGroup.minSize)
222+
nodepool.maxSize = getIntFromMap(nodePoolSummary.FreeformTags, "maxSize", nodeGroup.maxSize)
219223

220224
nodepool.manager = nodeGroup.manager
221225
nodepool.kubeClient = nodeGroup.kubeClient
222226

223227
m.staticNodePools[nodepool.id] = nodepool
224-
klog.V(5).Infof("auto discovered nodepool in compartment : %s , nodepoolid: %s", nodeGroup.compartmentId, nodepool.id)
228+
klog.V(4).Infof("auto discovered nodepool in compartment : %s , nodepoolid: %s ,minSize: %d, maxSize:%d", nodeGroup.compartmentId, nodepool.id, nodepool.minSize, nodepool.maxSize)
225229
} else {
226230
klog.Warningf("nodepool ignored as the tags do not satisfy the requirement : %s , %v, %v", *nodePoolSummary.Id, nodePoolSummary.FreeformTags, nodePoolSummary.DefinedTags)
227231
}
228232
}
229233
return true, nil
230234
}
231235

236+
func getIntFromMap(m map[string]string, key string, defaultValue int) int {
237+
value, ok := m[key]
238+
if !ok {
239+
return defaultValue
240+
}
241+
i, err := strconv.Atoi(value)
242+
if err != nil {
243+
return defaultValue
244+
}
245+
return i
246+
}
247+
232248
func validateNodepoolTags(nodeGroupTags map[string]string, freeFormTags map[string]string, definedTags map[string]map[string]interface{}) bool {
233249
if nodeGroupTags != nil {
234250
for tagKey, tagValue := range nodeGroupTags {

0 commit comments

Comments
 (0)