From 75fc2b1cf6d3b0276b0e8803bcd4af7cd4df4d3b Mon Sep 17 00:00:00 2001 From: David Ashpole Date: Mon, 16 Jun 2025 20:20:42 +0000 Subject: [PATCH] promote TracingConfiguration to v1 --- .../pkg/apis/apiserver/v1/register.go | 1 + .../apiserver/pkg/apis/apiserver/v1/types.go | 11 +++++++ .../apiserver/v1/zz_generated.conversion.go | 30 +++++++++++++++++++ .../apiserver/v1/zz_generated.deepcopy.go | 26 ++++++++++++++++ .../apiserver/tracing/tracing_test.go | 8 ++--- 5 files changed, 72 insertions(+), 4 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/register.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/register.go index af0a2193c07..ec48038dd7d 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/register.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/register.go @@ -50,6 +50,7 @@ func addKnownTypes(scheme *runtime.Scheme) error { &AuthenticationConfiguration{}, &AuthorizationConfiguration{}, &EncryptionConfiguration{}, + &TracingConfiguration{}, ) // also register into the v1 group as EncryptionConfig (due to a docs bug) scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: "", Version: "v1", Kind: "EncryptionConfig"}, &EncryptionConfiguration{}) diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/types.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/types.go index 891c2f58523..25c2d8f4b99 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/types.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/types.go @@ -19,6 +19,7 @@ package v1 import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + tracingapi "k8s.io/component-base/tracing/api/v1" ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -529,3 +530,13 @@ type WebhookMatchCondition struct { // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ Expression string `json:"expression"` } + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// TracingConfiguration provides versioned configuration for tracing clients. +type TracingConfiguration struct { + metav1.TypeMeta `json:",inline"` + + // Embed the component config tracing configuration struct + tracingapi.TracingConfiguration `json:",inline"` +} diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.conversion.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.conversion.go index 5cce5feef30..350455c38e7 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.conversion.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.conversion.go @@ -257,6 +257,16 @@ func RegisterConversions(s *runtime.Scheme) error { }); err != nil { return err } + if err := s.AddGeneratedConversionFunc((*TracingConfiguration)(nil), (*apiserver.TracingConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_TracingConfiguration_To_apiserver_TracingConfiguration(a.(*TracingConfiguration), b.(*apiserver.TracingConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*apiserver.TracingConfiguration)(nil), (*TracingConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_apiserver_TracingConfiguration_To_v1_TracingConfiguration(a.(*apiserver.TracingConfiguration), b.(*TracingConfiguration), scope) + }); err != nil { + return err + } if err := s.AddGeneratedConversionFunc((*UserValidationRule)(nil), (*apiserver.UserValidationRule)(nil), func(a, b interface{}, scope conversion.Scope) error { return Convert_v1_UserValidationRule_To_apiserver_UserValidationRule(a.(*UserValidationRule), b.(*apiserver.UserValidationRule), scope) }); err != nil { @@ -884,6 +894,26 @@ func Convert_apiserver_SecretboxConfiguration_To_v1_SecretboxConfiguration(in *a return autoConvert_apiserver_SecretboxConfiguration_To_v1_SecretboxConfiguration(in, out, s) } +func autoConvert_v1_TracingConfiguration_To_apiserver_TracingConfiguration(in *TracingConfiguration, out *apiserver.TracingConfiguration, s conversion.Scope) error { + out.TracingConfiguration = in.TracingConfiguration + return nil +} + +// Convert_v1_TracingConfiguration_To_apiserver_TracingConfiguration is an autogenerated conversion function. +func Convert_v1_TracingConfiguration_To_apiserver_TracingConfiguration(in *TracingConfiguration, out *apiserver.TracingConfiguration, s conversion.Scope) error { + return autoConvert_v1_TracingConfiguration_To_apiserver_TracingConfiguration(in, out, s) +} + +func autoConvert_apiserver_TracingConfiguration_To_v1_TracingConfiguration(in *apiserver.TracingConfiguration, out *TracingConfiguration, s conversion.Scope) error { + out.TracingConfiguration = in.TracingConfiguration + return nil +} + +// Convert_apiserver_TracingConfiguration_To_v1_TracingConfiguration is an autogenerated conversion function. +func Convert_apiserver_TracingConfiguration_To_v1_TracingConfiguration(in *apiserver.TracingConfiguration, out *TracingConfiguration, s conversion.Scope) error { + return autoConvert_apiserver_TracingConfiguration_To_v1_TracingConfiguration(in, out, s) +} + func autoConvert_v1_UserValidationRule_To_apiserver_UserValidationRule(in *UserValidationRule, out *apiserver.UserValidationRule, s conversion.Scope) error { out.Expression = in.Expression out.Message = in.Message diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.deepcopy.go index f8a6cbb9dfd..acb1b46ed2f 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1/zz_generated.deepcopy.go @@ -554,6 +554,32 @@ func (in *SecretboxConfiguration) DeepCopy() *SecretboxConfiguration { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TracingConfiguration) DeepCopyInto(out *TracingConfiguration) { + *out = *in + out.TypeMeta = in.TypeMeta + in.TracingConfiguration.DeepCopyInto(&out.TracingConfiguration) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingConfiguration. +func (in *TracingConfiguration) DeepCopy() *TracingConfiguration { + if in == nil { + return nil + } + out := new(TracingConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TracingConfiguration) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *UserValidationRule) DeepCopyInto(out *UserValidationRule) { *out = *in diff --git a/test/integration/apiserver/tracing/tracing_test.go b/test/integration/apiserver/tracing/tracing_test.go index 577cf5c3c01..03b27d251f7 100644 --- a/test/integration/apiserver/tracing/tracing_test.go +++ b/test/integration/apiserver/tracing/tracing_test.go @@ -88,7 +88,7 @@ resources: defer os.Remove(tracingConfigFile.Name()) if err := os.WriteFile(tracingConfigFile.Name(), []byte(fmt.Sprintf(` -apiVersion: apiserver.config.k8s.io/v1beta1 +apiVersion: apiserver.config.k8s.io/v1 kind: TracingConfiguration endpoint: %s`, listener.Addr().String())), os.FileMode(0755)); err != nil { t.Fatal(err) @@ -231,7 +231,7 @@ egressSelections: defer utiltesting.CloseAndRemove(t, tracingConfigFile) if err := os.WriteFile(tracingConfigFile.Name(), []byte(fmt.Sprintf(` -apiVersion: apiserver.config.k8s.io/v1beta1 +apiVersion: apiserver.config.k8s.io/v1 kind: TracingConfiguration endpoint: %s`, listener.Addr().String())), os.FileMode(0755)); err != nil { t.Fatal(err) @@ -273,7 +273,7 @@ func TestUnauthenticatedAPIServerTracing(t *testing.T) { defer os.Remove(tracingConfigFile.Name()) if err := os.WriteFile(tracingConfigFile.Name(), []byte(fmt.Sprintf(` -apiVersion: apiserver.config.k8s.io/v1beta1 +apiVersion: apiserver.config.k8s.io/v1 kind: TracingConfiguration endpoint: %s`, listener.Addr().String())), os.FileMode(0755)); err != nil { t.Fatal(err) @@ -342,7 +342,7 @@ func TestAPIServerTracing(t *testing.T) { }() if err := os.WriteFile(tracingConfigFile.Name(), []byte(fmt.Sprintf(` -apiVersion: apiserver.config.k8s.io/v1beta1 +apiVersion: apiserver.config.k8s.io/v1 kind: TracingConfiguration endpoint: %s`, listener.Addr().String())), os.FileMode(0755)); err != nil { t.Fatal(err)