...
1
16
17 package options
18
19 import (
20 "fmt"
21
22 "github.com/spf13/pflag"
23
24 cronjobconfig "k8s.io/kubernetes/pkg/controller/cronjob/config"
25 )
26
27
28 type CronJobControllerOptions struct {
29 *cronjobconfig.CronJobControllerConfiguration
30 }
31
32
33 func (o *CronJobControllerOptions) AddFlags(fs *pflag.FlagSet) {
34 if o == nil {
35 return
36 }
37
38 fs.Int32Var(&o.ConcurrentCronJobSyncs, "concurrent-cron-job-syncs", o.ConcurrentCronJobSyncs, "The number of cron job objects that are allowed to sync concurrently. Larger number = more responsive jobs, but more CPU (and network) load")
39 }
40
41
42 func (o *CronJobControllerOptions) ApplyTo(cfg *cronjobconfig.CronJobControllerConfiguration) error {
43 if o == nil {
44 return nil
45 }
46
47 cfg.ConcurrentCronJobSyncs = o.ConcurrentCronJobSyncs
48
49 return nil
50 }
51
52
53 func (o *CronJobControllerOptions) Validate() []error {
54 if o == nil {
55 return nil
56 }
57
58 errs := []error{}
59 if o.ConcurrentCronJobSyncs < 1 {
60 errs = append(errs, fmt.Errorf("concurrent-cron-job-syncs must be greater than 0, but got %d", o.ConcurrentCronJobSyncs))
61 }
62
63 return errs
64 }
65
View as plain text