diff --git a/k8s/crds/kops.k8s.io_clusters.yaml b/k8s/crds/kops.k8s.io_clusters.yaml index ac2acd8038..f55aacc91c 100644 --- a/k8s/crds/kops.k8s.io_clusters.yaml +++ b/k8s/crds/kops.k8s.io_clusters.yaml @@ -944,6 +944,9 @@ spec: items: type: string type: array + eventTTL: + description: Amount of time to retain Kubernetes events + type: string experimentalEncryptionProviderConfig: description: ExperimentalEncryptionProviderConfig enables encryption at rest for secrets. diff --git a/pkg/apis/kops/componentconfig.go b/pkg/apis/kops/componentconfig.go index 6008f291ab..df54a79f8d 100644 --- a/pkg/apis/kops/componentconfig.go +++ b/pkg/apis/kops/componentconfig.go @@ -450,6 +450,9 @@ type KubeAPIServerConfig struct { // CPURequest, cpu request compute resource for api server. Defaults to "150m" CPURequest string `json:"cpuRequest,omitempty"` + + // Amount of time to retain Kubernetes events + EventTTL *metav1.Duration `json:"eventTTL,omitempty" flag:"event-ttl"` } // KubeControllerManagerConfig is the configuration for the controller diff --git a/pkg/apis/kops/v1alpha1/componentconfig.go b/pkg/apis/kops/v1alpha1/componentconfig.go index ab8178350e..19b9da1a9b 100644 --- a/pkg/apis/kops/v1alpha1/componentconfig.go +++ b/pkg/apis/kops/v1alpha1/componentconfig.go @@ -450,6 +450,9 @@ type KubeAPIServerConfig struct { // CPURequest, cpu request compute resource for api server. Defaults to "150m" CPURequest string `json:"cpuRequest,omitempty"` + + // Amount of time to retain Kubernetes events + EventTTL *metav1.Duration `json:"eventTTL,omitempty" flag:"event-ttl"` } // KubeControllerManagerConfig is the configuration for the controller diff --git a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go index e319c61e63..0b43c04b39 100644 --- a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go @@ -3231,6 +3231,7 @@ func autoConvert_v1alpha1_KubeAPIServerConfig_To_kops_KubeAPIServerConfig(in *Ku out.ServiceAccountIssuer = in.ServiceAccountIssuer out.APIAudiences = in.APIAudiences out.CPURequest = in.CPURequest + out.EventTTL = in.EventTTL return nil } @@ -3328,6 +3329,7 @@ func autoConvert_kops_KubeAPIServerConfig_To_v1alpha1_KubeAPIServerConfig(in *ko out.ServiceAccountIssuer = in.ServiceAccountIssuer out.APIAudiences = in.APIAudiences out.CPURequest = in.CPURequest + out.EventTTL = in.EventTTL return nil } diff --git a/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go index 147ee56c97..713bea1939 100644 --- a/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go @@ -2004,6 +2004,11 @@ func (in *KubeAPIServerConfig) DeepCopyInto(out *KubeAPIServerConfig) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.EventTTL != nil { + in, out := &in.EventTTL, &out.EventTTL + *out = new(v1.Duration) + **out = **in + } return } diff --git a/pkg/apis/kops/v1alpha2/componentconfig.go b/pkg/apis/kops/v1alpha2/componentconfig.go index 98d54d18b7..6b264f7bfc 100644 --- a/pkg/apis/kops/v1alpha2/componentconfig.go +++ b/pkg/apis/kops/v1alpha2/componentconfig.go @@ -450,6 +450,9 @@ type KubeAPIServerConfig struct { // CPURequest, cpu request compute resource for api server. Defaults to "150m" CPURequest string `json:"cpuRequest,omitempty"` + + // Amount of time to retain Kubernetes events + EventTTL *metav1.Duration `json:"eventTTL,omitempty" flag:"event-ttl"` } // KubeControllerManagerConfig is the configuration for the controller diff --git a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go index 40a5694a77..23fc14d5b1 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go @@ -3501,6 +3501,7 @@ func autoConvert_v1alpha2_KubeAPIServerConfig_To_kops_KubeAPIServerConfig(in *Ku out.ServiceAccountIssuer = in.ServiceAccountIssuer out.APIAudiences = in.APIAudiences out.CPURequest = in.CPURequest + out.EventTTL = in.EventTTL return nil } @@ -3598,6 +3599,7 @@ func autoConvert_kops_KubeAPIServerConfig_To_v1alpha2_KubeAPIServerConfig(in *ko out.ServiceAccountIssuer = in.ServiceAccountIssuer out.APIAudiences = in.APIAudiences out.CPURequest = in.CPURequest + out.EventTTL = in.EventTTL return nil } diff --git a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go index 9be776681e..527cb5f600 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go @@ -2075,6 +2075,11 @@ func (in *KubeAPIServerConfig) DeepCopyInto(out *KubeAPIServerConfig) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.EventTTL != nil { + in, out := &in.EventTTL, &out.EventTTL + *out = new(v1.Duration) + **out = **in + } return } diff --git a/pkg/apis/kops/zz_generated.deepcopy.go b/pkg/apis/kops/zz_generated.deepcopy.go index 2b9deb8a11..d5b2005e58 100644 --- a/pkg/apis/kops/zz_generated.deepcopy.go +++ b/pkg/apis/kops/zz_generated.deepcopy.go @@ -2257,6 +2257,11 @@ func (in *KubeAPIServerConfig) DeepCopyInto(out *KubeAPIServerConfig) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.EventTTL != nil { + in, out := &in.EventTTL, &out.EventTTL + *out = new(v1.Duration) + **out = **in + } return } diff --git a/pkg/flagbuilder/buildflags_test.go b/pkg/flagbuilder/buildflags_test.go index 0ba474a370..57fac29cac 100644 --- a/pkg/flagbuilder/buildflags_test.go +++ b/pkg/flagbuilder/buildflags_test.go @@ -220,6 +220,12 @@ func TestBuildAPIServerFlags(t *testing.T) { }, Expected: "--authorization-webhook-cache-unauthorized-ttl=10s --insecure-port=0 --secure-port=0", }, + { + Config: &kops.KubeAPIServerConfig{ + EventTTL: &metav1.Duration{Duration: 3 * time.Hour}, + }, + Expected: "--event-ttl=3h0m0s --insecure-port=0 --secure-port=0", + }, } for _, test := range grid {