diff --git a/pkg/controller/ttlafterfinished/ttlafterfinished_controller_test.go b/pkg/controller/ttlafterfinished/ttlafterfinished_controller_test.go index 0bb3e887eb3..5e6429e54aa 100644 --- a/pkg/controller/ttlafterfinished/ttlafterfinished_controller_test.go +++ b/pkg/controller/ttlafterfinished/ttlafterfinished_controller_test.go @@ -17,37 +17,37 @@ limitations under the License. package ttlafterfinished import ( - "k8s.io/klog/v2" "strings" "testing" "time" - batch "k8s.io/api/batch/v1" - v1 "k8s.io/api/core/v1" + batchv1 "k8s.io/api/batch/v1" + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/klog/v2" "k8s.io/klog/v2/ktesting" "k8s.io/utils/pointer" ) -func newJob(completionTime, failedTime metav1.Time, ttl *int32) *batch.Job { - j := &batch.Job{ +func newJob(completionTime, failedTime metav1.Time, ttl *int32) *batchv1.Job { + j := &batchv1.Job{ TypeMeta: metav1.TypeMeta{Kind: "Job"}, ObjectMeta: metav1.ObjectMeta{ Name: "foobar", Namespace: metav1.NamespaceDefault, }, - Spec: batch.JobSpec{ + Spec: batchv1.JobSpec{ Selector: &metav1.LabelSelector{ MatchLabels: map[string]string{"foo": "bar"}, }, - Template: v1.PodTemplateSpec{ + Template: corev1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ "foo": "bar", }, }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ + Spec: corev1.PodSpec{ + Containers: []corev1.Container{ {Image: "foo/bar"}, }, }, @@ -56,12 +56,12 @@ func newJob(completionTime, failedTime metav1.Time, ttl *int32) *batch.Job { } if !completionTime.IsZero() { - c := batch.JobCondition{Type: batch.JobComplete, Status: v1.ConditionTrue, LastTransitionTime: completionTime} + c := batchv1.JobCondition{Type: batchv1.JobComplete, Status: corev1.ConditionTrue, LastTransitionTime: completionTime} j.Status.Conditions = append(j.Status.Conditions, c) } if !failedTime.IsZero() { - c := batch.JobCondition{Type: batch.JobFailed, Status: v1.ConditionTrue, LastTransitionTime: failedTime} + c := batchv1.JobCondition{Type: batchv1.JobFailed, Status: corev1.ConditionTrue, LastTransitionTime: failedTime} j.Status.Conditions = append(j.Status.Conditions, c) } @@ -72,11 +72,6 @@ func newJob(completionTime, failedTime metav1.Time, ttl *int32) *batch.Job { return j } -func durationPointer(n int) *time.Duration { - s := time.Duration(n) * time.Second - return &s -} - func TestTimeLeft(t *testing.T) { now := metav1.Now() @@ -110,7 +105,7 @@ func TestTimeLeft(t *testing.T) { completionTime: now, ttl: pointer.Int32(0), since: &now.Time, - expectedTimeLeft: durationPointer(0), + expectedTimeLeft: pointer.Duration(0 * time.Second), expectedExpireAt: now.Time, }, { @@ -118,7 +113,7 @@ func TestTimeLeft(t *testing.T) { completionTime: now, ttl: pointer.Int32(10), since: &now.Time, - expectedTimeLeft: durationPointer(10), + expectedTimeLeft: pointer.Duration(10 * time.Second), expectedExpireAt: now.Add(10 * time.Second), }, { @@ -126,7 +121,7 @@ func TestTimeLeft(t *testing.T) { completionTime: metav1.NewTime(now.Add(-10 * time.Second)), ttl: pointer.Int32(15), since: &now.Time, - expectedTimeLeft: durationPointer(5), + expectedTimeLeft: pointer.Duration(5 * time.Second), expectedExpireAt: now.Add(5 * time.Second), }, { @@ -141,7 +136,7 @@ func TestTimeLeft(t *testing.T) { failedTime: now, ttl: pointer.Int32(0), since: &now.Time, - expectedTimeLeft: durationPointer(0), + expectedTimeLeft: pointer.Duration(0 * time.Second), expectedExpireAt: now.Time, }, { @@ -149,7 +144,7 @@ func TestTimeLeft(t *testing.T) { failedTime: now, ttl: pointer.Int32(10), since: &now.Time, - expectedTimeLeft: durationPointer(10), + expectedTimeLeft: pointer.Duration(10 * time.Second), expectedExpireAt: now.Add(10 * time.Second), }, { @@ -157,7 +152,7 @@ func TestTimeLeft(t *testing.T) { failedTime: metav1.NewTime(now.Add(-10 * time.Second)), ttl: pointer.Int32(15), since: &now.Time, - expectedTimeLeft: durationPointer(5), + expectedTimeLeft: pointer.Duration(5 * time.Second), expectedExpireAt: now.Add(5 * time.Second), }, } diff --git a/test/integration/certificates/duration_test.go b/test/integration/certificates/duration_test.go index e7511a02de6..aead2416f36 100644 --- a/test/integration/certificates/duration_test.go +++ b/test/integration/certificates/duration_test.go @@ -46,6 +46,7 @@ import ( kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing" "k8s.io/kubernetes/pkg/controller/certificates/signer" "k8s.io/kubernetes/test/integration/framework" + "k8s.io/utils/pointer" ) func TestCSRDuration(t *testing.T) { @@ -119,62 +120,63 @@ func TestCSRDuration(t *testing.T) { go c.Run(ctx, 1) tests := []struct { - name, csrName string - duration, wantDuration time.Duration - wantError string + name, csrName string + duration *time.Duration + wantDuration time.Duration + wantError string }{ { name: "no duration set", - duration: 0, + duration: nil, wantDuration: 24 * time.Hour, wantError: "", }, { name: "same duration set as certTTL", - duration: 24 * time.Hour, + duration: pointer.Duration(24 * time.Hour), wantDuration: 24 * time.Hour, wantError: "", }, { name: "longer duration than certTTL", - duration: 48 * time.Hour, + duration: pointer.Duration(48 * time.Hour), wantDuration: 24 * time.Hour, wantError: "", }, { name: "slightly shorter duration set", - duration: 20 * time.Hour, + duration: pointer.Duration(20 * time.Hour), wantDuration: 20 * time.Hour, wantError: "", }, { name: "even shorter duration set", - duration: 10 * time.Hour, + duration: pointer.Duration(10 * time.Hour), wantDuration: 10 * time.Hour, wantError: "", }, { name: "short duration set", - duration: 2 * time.Hour, + duration: pointer.Duration(2 * time.Hour), wantDuration: 2*time.Hour + 5*time.Minute, wantError: "", }, { name: "very short duration set", - duration: 30 * time.Minute, + duration: pointer.Duration(30 * time.Minute), wantDuration: 30*time.Minute + 5*time.Minute, wantError: "", }, { name: "shortest duration set", - duration: 10 * time.Minute, + duration: pointer.Duration(10 * time.Minute), wantDuration: 10*time.Minute + 5*time.Minute, wantError: "", }, { name: "just too short duration set", csrName: "invalid-csr-001", - duration: 10*time.Minute - time.Second, + duration: pointer.Duration(10*time.Minute - time.Second), wantDuration: 0, wantError: `cannot create certificate signing request: ` + `CertificateSigningRequest.certificates.k8s.io "invalid-csr-001" is invalid: spec.expirationSeconds: Invalid value: 599: may not specify a duration less than 600 seconds (10 minutes)`, @@ -182,7 +184,7 @@ func TestCSRDuration(t *testing.T) { { name: "really too short duration set", csrName: "invalid-csr-002", - duration: 3 * time.Minute, + duration: pointer.Duration(3 * time.Minute), wantDuration: 0, wantError: `cannot create certificate signing request: ` + `CertificateSigningRequest.certificates.k8s.io "invalid-csr-002" is invalid: spec.expirationSeconds: Invalid value: 180: may not specify a duration less than 600 seconds (10 minutes)`, @@ -190,7 +192,7 @@ func TestCSRDuration(t *testing.T) { { name: "negative duration set", csrName: "invalid-csr-003", - duration: -7 * time.Minute, + duration: pointer.Duration(-7 * time.Minute), wantDuration: 0, wantError: `cannot create certificate signing request: ` + `CertificateSigningRequest.certificates.k8s.io "invalid-csr-003" is invalid: spec.expirationSeconds: Invalid value: -420: may not specify a duration less than 600 seconds (10 minutes)`, @@ -211,7 +213,7 @@ func TestCSRDuration(t *testing.T) { } csrName, csrUID, errReq := csr.RequestCertificate(client, csrData, tt.csrName, certificatesv1.KubeAPIServerClientSignerName, - durationPtr(tt.duration), []certificatesv1.KeyUsage{certificatesv1.UsageClientAuth}, privateKey) + tt.duration, []certificatesv1.KeyUsage{certificatesv1.UsageClientAuth}, privateKey) if diff := cmp.Diff(tt.wantError, errStr(errReq)); len(diff) > 0 { t.Fatalf("CSR input duration %v err diff (-want, +got):\n%s", tt.duration, diff) @@ -268,13 +270,6 @@ func TestCSRDuration(t *testing.T) { } } -func durationPtr(duration time.Duration) *time.Duration { - if duration == 0 { - return nil - } - return &duration -} - func errStr(err error) string { if err == nil { return ""