| /* |
| Copyright 2019 The Kubernetes Authors. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| package config |
| |
| import ( |
| metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
| ) |
| |
| // NodeLifecycleControllerConfiguration contains elements describing NodeLifecycleController. |
| type NodeLifecycleControllerConfiguration struct { |
| // If set to true enables NoExecute Taints and will evict all not-tolerating |
| // Pod running on Nodes tainted with this kind of Taints. |
| EnableTaintManager bool |
| // nodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is healthy |
| NodeEvictionRate float32 |
| // secondaryNodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy |
| SecondaryNodeEvictionRate float32 |
| // nodeStartupGracePeriod is the amount of time which we allow starting a node to |
| // be unresponsive before marking it unhealthy. |
| NodeStartupGracePeriod metav1.Duration |
| // nodeMontiorGracePeriod is the amount of time which we allow a running node to be |
| // unresponsive before marking it unhealthy. Must be N times more than kubelet's |
| // nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet |
| // to post node status. |
| NodeMonitorGracePeriod metav1.Duration |
| // podEvictionTimeout is the grace period for deleting pods on failed nodes. |
| PodEvictionTimeout metav1.Duration |
| // secondaryNodeEvictionRate is implicitly overridden to 0 for clusters smaller than or equal to largeClusterSizeThreshold |
| LargeClusterSizeThreshold int32 |
| // Zone is treated as unhealthy in nodeEvictionRate and secondaryNodeEvictionRate when at least |
| // unhealthyZoneThreshold (no less than 3) of Nodes in the zone are NotReady |
| UnhealthyZoneThreshold float32 |
| } |