Skip to content

Commit 0793f65

Browse files
committed
feat: update conversion helpers
Signed-off-by: Jian Zeng <[email protected]>
1 parent d9687a8 commit 0793f65

File tree

5 files changed

+54
-16
lines changed

5 files changed

+54
-16
lines changed

pkg/apis/core/v1/conversion.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ import (
2020
"fmt"
2121
"reflect"
2222

23-
v1 "k8s.io/api/core/v1"
23+
"k8s.io/utils/ptr"
2424

25+
v1 "k8s.io/api/core/v1"
2526
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2627
"k8s.io/apimachinery/pkg/conversion"
2728
"k8s.io/apimachinery/pkg/runtime"
2829
"k8s.io/apimachinery/pkg/util/validation/field"
2930
"k8s.io/kubernetes/pkg/apis/apps"
3031
"k8s.io/kubernetes/pkg/apis/core"
31-
utilpointer "k8s.io/utils/pointer"
3232
)
3333

3434
func addConversionFuncs(scheme *runtime.Scheme) error {
@@ -380,7 +380,7 @@ func Convert_v1_Pod_To_core_Pod(in *v1.Pod, out *core.Pod, s conversion.Scope) e
380380
// Forcing the value of TerminationGracePeriodSeconds to 1 if it is negative.
381381
// Just for Pod, not for PodSpec, because we don't want to change the behavior of the PodTemplate.
382382
if in.Spec.TerminationGracePeriodSeconds != nil && *in.Spec.TerminationGracePeriodSeconds < 0 {
383-
out.Spec.TerminationGracePeriodSeconds = utilpointer.Int64(1)
383+
out.Spec.TerminationGracePeriodSeconds = ptr.To[int64](1)
384384
}
385385
return nil
386386
}
@@ -397,7 +397,7 @@ func Convert_core_Pod_To_v1_Pod(in *core.Pod, out *v1.Pod, s conversion.Scope) e
397397
// Forcing the value of TerminationGracePeriodSeconds to 1 if it is negative.
398398
// Just for Pod, not for PodSpec, because we don't want to change the behavior of the PodTemplate.
399399
if in.Spec.TerminationGracePeriodSeconds != nil && *in.Spec.TerminationGracePeriodSeconds < 0 {
400-
out.Spec.TerminationGracePeriodSeconds = utilpointer.Int64(1)
400+
out.Spec.TerminationGracePeriodSeconds = ptr.To[int64](1)
401401
}
402402
return nil
403403
}
@@ -555,12 +555,12 @@ func Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(in *v1.Persist
555555
return autoConvert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(in, out, s)
556556
}
557557

558-
// Convert_Slice_string_To_Pointer_v1_LogStreamType is needed because decoding URL parameters requires manual assistance.
559-
func Convert_Slice_string_To_Pointer_v1_LogStreamType(in *[]string, out **v1.LogStreamType, s conversion.Scope) error {
558+
// Convert_Slice_string_To_Pointer_string is needed because decoding URL parameters requires manual assistance.
559+
func Convert_Slice_string_To_Pointer_string(in *[]string, out **string, s conversion.Scope) error {
560560
if len(*in) == 0 {
561561
return nil
562562
}
563-
temp := v1.LogStreamType((*in)[0])
563+
temp := (*in)[0]
564564
*out = &temp
565565
return nil
566566
}

pkg/apis/core/v1/conversion_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ func TestPodLogOptions(t *testing.T) {
5252
sinceTime := metav1.NewTime(time.Date(2000, 1, 1, 12, 34, 56, 0, time.UTC).Local())
5353
tailLines := int64(2)
5454
limitBytes := int64(3)
55-
v1StreamStderr := v1.LogStreamTypeStderr
56-
coreStreamStderr := core.LogStreamTypeStderr
55+
v1StreamStderr := v1.LogStreamStderr
56+
coreStreamStderr := core.LogStreamStderr
5757

5858
versionedLogOptions := &v1.PodLogOptions{
5959
Container: "mycontainer",

pkg/apis/core/v1/defaults.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@ package v1
1919
import (
2020
"time"
2121

22+
"k8s.io/utils/ptr"
23+
2224
v1 "k8s.io/api/core/v1"
2325
"k8s.io/apimachinery/pkg/runtime"
2426
"k8s.io/apimachinery/pkg/util/intstr"
2527
utilfeature "k8s.io/apiserver/pkg/util/feature"
2628
"k8s.io/kubernetes/pkg/api/v1/service"
2729
"k8s.io/kubernetes/pkg/features"
2830
"k8s.io/kubernetes/pkg/util/parsers"
29-
"k8s.io/utils/pointer"
3031
)
3132

3233
func addDefaultingFuncs(scheme *runtime.Scheme) error {
@@ -64,7 +65,7 @@ func SetDefaults_ReplicationController(obj *v1.ReplicationController) {
6465
}
6566
}
6667
func SetDefaults_Volume(obj *v1.Volume) {
67-
if pointer.AllPtrFieldsNil(&obj.VolumeSource) {
68+
if ptr.AllPtrFieldsNil(&obj.VolumeSource) {
6869
obj.VolumeSource = v1.VolumeSource{
6970
EmptyDir: &v1.EmptyDirVolumeSource{},
7071
}
@@ -147,7 +148,7 @@ func SetDefaults_Service(obj *v1.Service) {
147148

148149
if obj.Spec.Type == v1.ServiceTypeLoadBalancer {
149150
if obj.Spec.AllocateLoadBalancerNodePorts == nil {
150-
obj.Spec.AllocateLoadBalancerNodePorts = pointer.Bool(true)
151+
obj.Spec.AllocateLoadBalancerNodePorts = ptr.To(true)
151152
}
152153
}
153154

@@ -429,3 +430,11 @@ func SetDefaults_HostPathVolumeSource(obj *v1.HostPathVolumeSource) {
429430
obj.Type = &typeVol
430431
}
431432
}
433+
434+
func SetDefaults_PodLogOptions(obj *v1.PodLogOptions) {
435+
if utilfeature.DefaultFeatureGate.Enabled(features.PodLogsQuerySplitStreams) {
436+
if obj.Stream == nil {
437+
obj.Stream = ptr.To(v1.LogStreamAll)
438+
}
439+
}
440+
}

pkg/apis/core/v1/defaults_test.go

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import (
2424
"testing"
2525

2626
"github.com/google/go-cmp/cmp"
27+
"k8s.io/utils/ptr"
28+
2729
v1 "k8s.io/api/core/v1"
2830
"k8s.io/apimachinery/pkg/api/resource"
2931
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -35,7 +37,6 @@ import (
3537
"k8s.io/kubernetes/pkg/api/legacyscheme"
3638
corev1 "k8s.io/kubernetes/pkg/apis/core/v1"
3739
"k8s.io/kubernetes/pkg/features"
38-
utilpointer "k8s.io/utils/pointer"
3940

4041
// ensure types are installed
4142
_ "k8s.io/kubernetes/pkg/apis/core/install"
@@ -690,7 +691,7 @@ func TestSetDefaultReplicationControllerReplicas(t *testing.T) {
690691
{
691692
rc: v1.ReplicationController{
692693
Spec: v1.ReplicationControllerSpec{
693-
Replicas: utilpointer.Int32(0),
694+
Replicas: ptr.To[int32](0),
694695
Template: &v1.PodTemplateSpec{
695696
ObjectMeta: metav1.ObjectMeta{
696697
Labels: map[string]string{
@@ -705,7 +706,7 @@ func TestSetDefaultReplicationControllerReplicas(t *testing.T) {
705706
{
706707
rc: v1.ReplicationController{
707708
Spec: v1.ReplicationControllerSpec{
708-
Replicas: utilpointer.Int32(3),
709+
Replicas: ptr.To[int32](3),
709710
Template: &v1.PodTemplateSpec{
710711
ObjectMeta: metav1.ObjectMeta{
711712
Labels: map[string]string{
@@ -1930,7 +1931,7 @@ func TestDefaultRequestIsNotSetForReplicationController(t *testing.T) {
19301931
}
19311932
rc := &v1.ReplicationController{
19321933
Spec: v1.ReplicationControllerSpec{
1933-
Replicas: utilpointer.Int32(3),
1934+
Replicas: ptr.To[int32](3),
19341935
Template: &v1.PodTemplateSpec{
19351936
ObjectMeta: metav1.ObjectMeta{
19361937
Labels: map[string]string{
@@ -2349,3 +2350,26 @@ func TestSetDefaults_Volume(t *testing.T) {
23492350
})
23502351
}
23512352
}
2353+
2354+
func TestSetDefaults_PodLogOptions(t *testing.T) {
2355+
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.PodLogsQuerySplitStreams, true)
2356+
for desc, tc := range map[string]struct {
2357+
given, expected *v1.PodLogOptions
2358+
}{
2359+
"defaults to All": {
2360+
given: &v1.PodLogOptions{},
2361+
expected: &v1.PodLogOptions{Stream: ptr.To(v1.LogStreamAll)},
2362+
},
2363+
"the specified stream should not be overridden": {
2364+
given: &v1.PodLogOptions{Stream: ptr.To(v1.LogStreamStdout)},
2365+
expected: &v1.PodLogOptions{Stream: ptr.To(v1.LogStreamStdout)},
2366+
},
2367+
} {
2368+
t.Run(desc, func(t *testing.T) {
2369+
corev1.SetDefaults_PodLogOptions(tc.given)
2370+
if !cmp.Equal(tc.given, tc.expected) {
2371+
t.Errorf("expected volume %+v, but got %+v", tc.expected, tc.given)
2372+
}
2373+
})
2374+
}
2375+
}

pkg/apis/core/v1/zz_generated.defaults.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)