Merge pull request #108075 from ialidzhikov/cleanup/pointer-duration

Make use of `k8s.io/utils/pointer.Duration`
This commit is contained in:
Kubernetes Prow Robot 2023-06-19 05:22:21 -07:00 committed by GitHub
commit 988094878e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 44 deletions

View File

@ -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),
},
}

View File

@ -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 ""