helmfile/pkg/kubedog/options.go

59 lines
1.0 KiB
Go

package kubedog
import (
"time"
"github.com/helmfile/helmfile/pkg/resource"
)
type TrackMode string
const (
TrackModeHelm TrackMode = "helm"
TrackModeHelmLegacy TrackMode = "helm-legacy"
TrackModeKubedog TrackMode = "kubedog"
)
type TrackOptions struct {
Timeout time.Duration
Logs bool
LogsSince time.Duration
Filter *resource.FilterConfig
QPS float32
Burst int
}
func NewTrackOptions() *TrackOptions {
return &TrackOptions{
Timeout: 5 * time.Minute,
LogsSince: 10 * time.Minute,
QPS: 100,
Burst: 200,
}
}
func (o *TrackOptions) WithTimeout(timeout time.Duration) *TrackOptions {
o.Timeout = timeout
return o
}
func (o *TrackOptions) WithLogs(logs bool) *TrackOptions {
o.Logs = logs
return o
}
func (o *TrackOptions) WithFilterConfig(config *resource.FilterConfig) *TrackOptions {
o.Filter = config
return o
}
func (o *TrackOptions) WithQPS(qps float32) *TrackOptions {
o.QPS = qps
return o
}
func (o *TrackOptions) WithBurst(burst int) *TrackOptions {
o.Burst = burst
return o
}