diff --git a/cluster-autoscaler/cloudprovider/gce/gce_manager.go b/cluster-autoscaler/cloudprovider/gce/gce_manager.go index 35caf937d24c..afb285324980 100644 --- a/cluster-autoscaler/cloudprovider/gce/gce_manager.go +++ b/cluster-autoscaler/cloudprovider/gce/gce_manager.go @@ -455,13 +455,19 @@ func (m *gceManagerImpl) fetchAutoMigs() error { return err } else { // Skip migs whose instance templates don't have the corresponding config labels + var labelMismatch bool for k, v := range cfg.Labels { if instanceTemplate.Properties.Labels[k] != v { klog.V(4).Infof("Instance template %s missing label %s=%s.\nIgnoring mig %s", instanceTemplate.Name, k, v, mig.GceRef().Name) - continue + labelMismatch = true + break } } + if labelMismatch { + continue + } + // Update the min size of mig config based on labels in the instance template if val, ok := instanceTemplate.Properties.Labels[migAutoDiscovererKeyMinNodes]; ok { if m, err := strconv.Atoi(val); err != nil { @@ -479,6 +485,12 @@ func (m *gceManagerImpl) fetchAutoMigs() error { cfg.MaxSize = m } } + + // Rebuild the mig with updated min and max sizes + mig, err = m.buildMigFromAutoCfg(link, cfg) + if err != nil { + return err + } } }