1 /* 2 Copyright 2019 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package config 18 19 import ( 20 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 21 ) 22 23 // NodeLifecycleControllerConfiguration contains elements describing NodeLifecycleController. 24 type NodeLifecycleControllerConfiguration struct { 25 // nodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is healthy 26 NodeEvictionRate float32 27 // secondaryNodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy 28 SecondaryNodeEvictionRate float32 29 // nodeStartupGracePeriod is the amount of time which we allow starting a node to 30 // be unresponsive before marking it unhealthy. 31 NodeStartupGracePeriod metav1.Duration 32 // NodeMonitorGracePeriod is the amount of time which we allow a running node to be 33 // unresponsive before marking it unhealthy. Must be N times more than kubelet's 34 // nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet 35 // to post node status. 36 NodeMonitorGracePeriod metav1.Duration 37 // secondaryNodeEvictionRate is implicitly overridden to 0 for clusters smaller than or equal to largeClusterSizeThreshold 38 LargeClusterSizeThreshold int32 39 // Zone is treated as unhealthy in nodeEvictionRate and secondaryNodeEvictionRate when at least 40 // unhealthyZoneThreshold (no less than 3) of Nodes in the zone are NotReady 41 UnhealthyZoneThreshold float32 42 } 43