Rename IgnoreTaints to StartupTaints & deprecate --ignore-taints flag
This commit is contained in:
parent
6bf31ca3f3
commit
f9d3185f16
|
|
@ -959,7 +959,7 @@ func (a *StaticAutoscaler) obtainNodeLists(cp cloudprovider.CloudProvider) ([]*a
|
|||
// our normal handling for booting up nodes deal with this.
|
||||
// TODO: Remove this call when we handle dynamically provisioned resources.
|
||||
allNodes, readyNodes = a.processors.CustomResourcesProcessor.FilterOutNodesWithUnreadyResources(a.AutoscalingContext, allNodes, readyNodes)
|
||||
allNodes, readyNodes = taints.FilterOutNodesWithIgnoredTaints(a.taintConfig.IgnoredTaints, allNodes, readyNodes)
|
||||
allNodes, readyNodes = taints.FilterOutNodesWithIgnoredTaints(a.taintConfig.StartupTaints, allNodes, readyNodes)
|
||||
return allNodes, readyNodes, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ var (
|
|||
regional = flag.Bool("regional", false, "Cluster is regional.")
|
||||
newPodScaleUpDelay = flag.Duration("new-pod-scale-up-delay", 0*time.Second, "Pods less than this old will not be considered for scale-up. Can be increased for individual pods through annotation 'cluster-autoscaler.kubernetes.io/pod-scale-up-delay'.")
|
||||
|
||||
ignoreTaintsFlag = multiStringFlag("ignore-taint", "Specifies a taint to ignore in node templates when considering to scale a node group")
|
||||
ignoreTaintsFlag = multiStringFlag("ignore-taint", "Specifies a taint to ignore in node templates when considering to scale a node group (Deprecated, use startup-taints instead)")
|
||||
startupTaintFlag = multiStringFlag("startup-taint", "Specifies a taint to ignore in node templates when considering to scale a node group (Equivalent to ignore-taint)")
|
||||
statusTaintsFlag = multiStringFlag("status-taint", "Specifies a taint to ignore in node templates when considering to scale a node group but nodes will not be treated as unready")
|
||||
balancingIgnoreLabelsFlag = multiStringFlag("balancing-ignore-label", "Specifies a label to ignore in addition to the basic and cloud-provider set of labels when comparing if two node groups are similar")
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ const (
|
|||
// StartupTaintPrefix (Same as IgnoreTaintPrefix) any taint starting with it will be filtered out from autoscaler template node.
|
||||
StartupTaintPrefix = "startup-taint.cluster-autoscaler.kubernetes.io/"
|
||||
|
||||
// DefaultStatusTaintPrefix any taint starting with it will be filtered out from autoscaler template node but unlike IgnoreTaintPrefix & StartTaintPrefix it should not be trated as unready.
|
||||
DefaultStatusTaintPrefix = "status-taint.cluster-autoscaler.kubernetes.io/"
|
||||
// StatusTaintPrefix any taint starting with it will be filtered out from autoscaler template node but unlike IgnoreTaintPrefix & StartupTaintPrefix it should not be trated as unready.
|
||||
StatusTaintPrefix = "status-taint.cluster-autoscaler.kubernetes.io/"
|
||||
|
||||
gkeNodeTerminationHandlerTaint = "cloud.google.com/impending-node-termination"
|
||||
|
||||
|
|
@ -61,16 +61,16 @@ type TaintKeySet map[string]bool
|
|||
|
||||
// TaintConfig is a config of taints that require special handling
|
||||
type TaintConfig struct {
|
||||
IgnoredTaints TaintKeySet
|
||||
StartupTaints TaintKeySet
|
||||
StatusTaints TaintKeySet
|
||||
}
|
||||
|
||||
// NewTaintConfig returns the taint config extracted from options
|
||||
func NewTaintConfig(opts config.AutoscalingOptions) TaintConfig {
|
||||
ignoredTaints := make(TaintKeySet)
|
||||
startupTaints := make(TaintKeySet)
|
||||
for _, taintKey := range opts.IgnoredTaints {
|
||||
klog.V(4).Infof("Ignoring taint %s on all NodeGroups", taintKey)
|
||||
ignoredTaints[taintKey] = true
|
||||
startupTaints[taintKey] = true
|
||||
}
|
||||
|
||||
statusTaints := make(TaintKeySet)
|
||||
|
|
@ -80,7 +80,7 @@ func NewTaintConfig(opts config.AutoscalingOptions) TaintConfig {
|
|||
}
|
||||
|
||||
return TaintConfig{
|
||||
IgnoredTaints: ignoredTaints,
|
||||
StartupTaints: startupTaints,
|
||||
StatusTaints: statusTaints,
|
||||
}
|
||||
}
|
||||
|
|
@ -348,7 +348,7 @@ func SanitizeTaints(taints []apiv1.Taint, taintConfig TaintConfig) []apiv1.Taint
|
|||
continue
|
||||
}
|
||||
|
||||
if _, exists := taintConfig.IgnoredTaints[taint.Key]; exists {
|
||||
if _, exists := taintConfig.StartupTaints[taint.Key]; exists {
|
||||
klog.V(4).Infof("Removing ignored taint %s, when creating template from node", taint.Key)
|
||||
continue
|
||||
}
|
||||
|
|
@ -362,7 +362,7 @@ func SanitizeTaints(taints []apiv1.Taint, taintConfig TaintConfig) []apiv1.Taint
|
|||
klog.V(4).Infof("Removing taint %s based on prefix, when creation template from node", taint.Key)
|
||||
continue
|
||||
}
|
||||
if strings.HasPrefix(taint.Key, DefaultStatusTaintPrefix) {
|
||||
if strings.HasPrefix(taint.Key, StatusTaintPrefix) {
|
||||
klog.V(4).Infof("Removing status taint %s, when creating template from node", taint.Key)
|
||||
continue
|
||||
}
|
||||
|
|
|
|||
|
|
@ -327,19 +327,19 @@ func TestFilterOutNodesWithIgnoredTaints(t *testing.T) {
|
|||
for name, tc := range map[string]struct {
|
||||
readyNodes int
|
||||
allNodes int
|
||||
ignoredTaints TaintKeySet
|
||||
startupTaints TaintKeySet
|
||||
node *apiv1.Node
|
||||
}{
|
||||
"empty ignored taints, no node": {
|
||||
readyNodes: 0,
|
||||
allNodes: 0,
|
||||
ignoredTaints: map[string]bool{},
|
||||
startupTaints: map[string]bool{},
|
||||
node: nil,
|
||||
},
|
||||
"one ignored taint, no node": {
|
||||
readyNodes: 0,
|
||||
allNodes: 0,
|
||||
ignoredTaints: map[string]bool{
|
||||
startupTaints: map[string]bool{
|
||||
"my-taint": true,
|
||||
},
|
||||
node: nil,
|
||||
|
|
@ -347,7 +347,7 @@ func TestFilterOutNodesWithIgnoredTaints(t *testing.T) {
|
|||
"one ignored taint, one ready untainted node": {
|
||||
readyNodes: 1,
|
||||
allNodes: 1,
|
||||
ignoredTaints: map[string]bool{
|
||||
startupTaints: map[string]bool{
|
||||
"my-taint": true,
|
||||
},
|
||||
node: &apiv1.Node{
|
||||
|
|
@ -366,7 +366,7 @@ func TestFilterOutNodesWithIgnoredTaints(t *testing.T) {
|
|||
"one ignored taint, one unready tainted node": {
|
||||
readyNodes: 0,
|
||||
allNodes: 1,
|
||||
ignoredTaints: map[string]bool{
|
||||
startupTaints: map[string]bool{
|
||||
"my-taint": true,
|
||||
},
|
||||
node: &apiv1.Node{
|
||||
|
|
@ -391,7 +391,7 @@ func TestFilterOutNodesWithIgnoredTaints(t *testing.T) {
|
|||
"no ignored taint, one node unready prefixed with ignore taint": {
|
||||
readyNodes: 0,
|
||||
allNodes: 1,
|
||||
ignoredTaints: map[string]bool{},
|
||||
startupTaints: map[string]bool{},
|
||||
node: &apiv1.Node{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "notReadyTainted",
|
||||
|
|
@ -414,7 +414,7 @@ func TestFilterOutNodesWithIgnoredTaints(t *testing.T) {
|
|||
"no ignored taint, one node unready prefixed with startup taint": {
|
||||
readyNodes: 0,
|
||||
allNodes: 1,
|
||||
ignoredTaints: map[string]bool{},
|
||||
startupTaints: map[string]bool{},
|
||||
node: &apiv1.Node{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "notReadyTainted",
|
||||
|
|
@ -437,7 +437,7 @@ func TestFilterOutNodesWithIgnoredTaints(t *testing.T) {
|
|||
"no ignored taint, two taints": {
|
||||
readyNodes: 1,
|
||||
allNodes: 1,
|
||||
ignoredTaints: map[string]bool{},
|
||||
startupTaints: map[string]bool{},
|
||||
node: &apiv1.Node{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "ReadyTainted",
|
||||
|
|
@ -468,7 +468,7 @@ func TestFilterOutNodesWithIgnoredTaints(t *testing.T) {
|
|||
if tc.node != nil {
|
||||
nodes = append(nodes, tc.node)
|
||||
}
|
||||
allNodes, readyNodes := FilterOutNodesWithIgnoredTaints(tc.ignoredTaints, nodes, nodes)
|
||||
allNodes, readyNodes := FilterOutNodesWithIgnoredTaints(tc.startupTaints, nodes, nodes)
|
||||
assert.Equal(t, tc.allNodes, len(allNodes))
|
||||
assert.Equal(t, tc.readyNodes, len(readyNodes))
|
||||
|
||||
|
|
@ -509,7 +509,7 @@ func TestSanitizeTaints(t *testing.T) {
|
|||
Effect: apiv1.TaintEffectNoSchedule,
|
||||
},
|
||||
{
|
||||
Key: DefaultStatusTaintPrefix + "some-taint",
|
||||
Key: StatusTaintPrefix + "some-taint",
|
||||
Value: "myValue",
|
||||
Effect: apiv1.TaintEffectNoSchedule,
|
||||
},
|
||||
|
|
@ -555,7 +555,7 @@ func TestSanitizeTaints(t *testing.T) {
|
|||
},
|
||||
}
|
||||
taintConfig := TaintConfig{
|
||||
IgnoredTaints: map[string]bool{"ignore-me": true},
|
||||
StartupTaints: map[string]bool{"ignore-me": true},
|
||||
StatusTaints: map[string]bool{"status-me": true},
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue