github.com/kubewharf/katalyst-core@v0.5.3/pkg/config/controller/lifecycle.go (about) 1 /* 2 Copyright 2022 The Katalyst 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 controller 18 19 import ( 20 "time" 21 22 "k8s.io/apimachinery/pkg/labels" 23 ) 24 25 type CNRLifecycleConfig struct{} 26 27 type CNCLifecycleConfig struct{} 28 29 type HealthzConfig struct { 30 DryRun bool 31 NodeSelector labels.Selector 32 AgentSelector map[string]labels.Selector 33 34 // config for checking logic 35 CheckWindow time.Duration 36 UnhealthyPeriods time.Duration 37 AgentUnhealthyPeriods map[string]time.Duration 38 39 // config for handling logic 40 HandlePeriod time.Duration 41 AgentHandlers map[string]string 42 43 // config for disrupting logic 44 TaintQPS float32 45 EvictQPS float32 46 DisruptionTaintThreshold float32 47 DisruptionEvictThreshold float32 48 } 49 50 type LifeCycleConfig struct { 51 EnableHealthz bool 52 EnableCNCLifecycle bool 53 54 *CNRLifecycleConfig 55 *CNCLifecycleConfig 56 *HealthzConfig 57 } 58 59 func NewLifeCycleConfig() *LifeCycleConfig { 60 return &LifeCycleConfig{ 61 EnableHealthz: false, 62 EnableCNCLifecycle: true, 63 CNRLifecycleConfig: &CNRLifecycleConfig{}, 64 CNCLifecycleConfig: &CNCLifecycleConfig{}, 65 HealthzConfig: &HealthzConfig{}, 66 } 67 }