@@ -25,14 +25,15 @@ import (
25
25
"fmt"
26
26
"time"
27
27
28
- certificatesv1beta1 "k8s.io/api/certificates/v1beta1"
28
+ certificatesv1 "k8s.io/api/certificates/v1"
29
+ v1 "k8s.io/api/core/v1"
29
30
rbacv1 "k8s.io/api/rbac/v1"
30
31
apierrors "k8s.io/apimachinery/pkg/api/errors"
31
32
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
32
33
types "k8s.io/apimachinery/pkg/types"
33
34
"k8s.io/apimachinery/pkg/util/wait"
34
35
"k8s.io/apimachinery/pkg/watch"
35
- certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1 "
36
+ certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1 "
36
37
"k8s.io/client-go/rest"
37
38
"k8s.io/client-go/util/cert"
38
39
"k8s.io/kubernetes/test/e2e/framework"
@@ -41,20 +42,20 @@ import (
41
42
"github.com/onsi/ginkgo"
42
43
)
43
44
44
- var _ = SIGDescribe ("Certificates API" , func () {
45
+ var _ = SIGDescribe ("Certificates API [Privileged:ClusterAdmin] " , func () {
45
46
f := framework .NewDefaultFramework ("certificates" )
46
47
47
48
/*
48
49
Release: v1.19
49
50
Testname: CertificateSigningRequest API Client Certificate
50
51
Description:
51
- - The certificatesigningrequests resource must accept a request for a certificate signed by kubernetes.io/kube-apiserver-client.
52
- - The issued certificate must be valid as a client certificate used to authenticate to the kube-apiserver.
52
+ The certificatesigningrequests resource must accept a request for a certificate signed by kubernetes.io/kube-apiserver-client.
53
+ The issued certificate must be valid as a client certificate used to authenticate to the kube-apiserver.
53
54
*/
54
- ginkgo . It ("should support building a client with a CSR" , func () {
55
+ framework . ConformanceIt ("should support building a client with a CSR" , func () {
55
56
const commonName = "tester-csr"
56
57
57
- csrClient := f .ClientSet .CertificatesV1beta1 ().CertificateSigningRequests ()
58
+ csrClient := f .ClientSet .CertificatesV1 ().CertificateSigningRequests ()
58
59
59
60
pk , err := utils .NewPrivateKey ()
60
61
framework .ExpectNoError (err )
@@ -68,19 +69,18 @@ var _ = SIGDescribe("Certificates API", func() {
68
69
csrb , err := cert .MakeCSR (pk , & pkix.Name {CommonName : commonName }, nil , nil )
69
70
framework .ExpectNoError (err )
70
71
71
- apiserverClientSigner := certificatesv1beta1 .KubeAPIServerClientSignerName
72
- csrTemplate := & certificatesv1beta1.CertificateSigningRequest {
72
+ csrTemplate := & certificatesv1.CertificateSigningRequest {
73
73
ObjectMeta : metav1.ObjectMeta {
74
74
GenerateName : commonName + "-" ,
75
75
},
76
- Spec : certificatesv1beta1 .CertificateSigningRequestSpec {
76
+ Spec : certificatesv1 .CertificateSigningRequestSpec {
77
77
Request : csrb ,
78
- Usages : []certificatesv1beta1 .KeyUsage {
79
- certificatesv1beta1 .UsageDigitalSignature ,
80
- certificatesv1beta1 .UsageKeyEncipherment ,
81
- certificatesv1beta1 .UsageClientAuth ,
78
+ Usages : []certificatesv1 .KeyUsage {
79
+ certificatesv1 .UsageDigitalSignature ,
80
+ certificatesv1 .UsageKeyEncipherment ,
81
+ certificatesv1 .UsageClientAuth ,
82
82
},
83
- SignerName : & apiserverClientSigner ,
83
+ SignerName : certificatesv1 . KubeAPIServerClientSignerName ,
84
84
},
85
85
}
86
86
@@ -121,14 +121,15 @@ var _ = SIGDescribe("Certificates API", func() {
121
121
122
122
framework .Logf ("approving CSR" )
123
123
framework .ExpectNoError (wait .Poll (5 * time .Second , time .Minute , func () (bool , error ) {
124
- csr .Status .Conditions = []certificatesv1beta1 .CertificateSigningRequestCondition {
124
+ csr .Status .Conditions = []certificatesv1 .CertificateSigningRequestCondition {
125
125
{
126
- Type : certificatesv1beta1 .CertificateApproved ,
126
+ Type : certificatesv1 .CertificateApproved ,
127
+ Status : v1 .ConditionTrue ,
127
128
Reason : "E2E" ,
128
129
Message : "Set from an e2e test" ,
129
130
},
130
131
}
131
- csr , err = csrClient .UpdateApproval (context .TODO (), csr , metav1.UpdateOptions {})
132
+ csr , err = csrClient .UpdateApproval (context .TODO (), csr . Name , csr , metav1.UpdateOptions {})
132
133
if err != nil {
133
134
csr , _ = csrClient .Get (context .TODO (), csr .Name , metav1.GetOptions {})
134
135
framework .Logf ("err updating approval: %v" , err )
@@ -174,20 +175,20 @@ var _ = SIGDescribe("Certificates API", func() {
174
175
Release: v1.19
175
176
Testname: CertificateSigningRequest API
176
177
Description:
177
- - The certificates.k8s.io API group MUST exists in the /apis discovery document.
178
- - The certificates.k8s.io/v1beta1 API group/version MUST exist in the /apis/certificates.k8s.io discovery document.
179
- - The certificatesigningrequests, certificatesigningrequests/approval, and certificatesigningrequests/status
180
- resources MUST exist in the /apis/certificates.k8s.io/v1beta1 discovery document.
181
- - The certificatesigningrequests resource must support create, get, list, watch, update, patch, delete, and deletecollection.
182
- - The certificatesigningrequests/approval resource must support get, update, patch.
183
- - The certificatesigningrequests/status resource must support get, update, patch.
178
+ The certificates.k8s.io API group MUST exists in the /apis discovery document.
179
+ The certificates.k8s.io/v1 API group/version MUST exist in the /apis/certificates.k8s.io discovery document.
180
+ The certificatesigningrequests, certificatesigningrequests/approval, and certificatesigningrequests/status
181
+ resources MUST exist in the /apis/certificates.k8s.io/v1 discovery document.
182
+ The certificatesigningrequests resource must support create, get, list, watch, update, patch, delete, and deletecollection.
183
+ The certificatesigningrequests/approval resource must support get, update, patch.
184
+ The certificatesigningrequests/status resource must support get, update, patch.
184
185
*/
185
- ginkgo . It ("should support CSR API operations [Privileged:ClusterAdmin] " , func () {
186
+ framework . ConformanceIt ("should support CSR API operations" , func () {
186
187
187
188
// Setup
188
- csrVersion := "v1beta1 "
189
- csrClient := f .ClientSet .CertificatesV1beta1 ().CertificateSigningRequests ()
190
- csrResource := certificatesv1beta1 .SchemeGroupVersion .WithResource ("certificatesigningrequests" )
189
+ csrVersion := "v1 "
190
+ csrClient := f .ClientSet .CertificatesV1 ().CertificateSigningRequests ()
191
+ csrResource := certificatesv1 .SchemeGroupVersion .WithResource ("certificatesigningrequests" )
191
192
192
193
pk , err := utils .NewPrivateKey ()
193
194
framework .ExpectNoError (err )
@@ -201,12 +202,12 @@ var _ = SIGDescribe("Certificates API", func() {
201
202
framework .ExpectNoError (err )
202
203
203
204
signerName := "example.com/e2e-" + f .UniqueName
204
- csrTemplate := & certificatesv1beta1 .CertificateSigningRequest {
205
+ csrTemplate := & certificatesv1 .CertificateSigningRequest {
205
206
ObjectMeta : metav1.ObjectMeta {GenerateName : "e2e-example-csr-" },
206
- Spec : certificatesv1beta1 .CertificateSigningRequestSpec {
207
+ Spec : certificatesv1 .CertificateSigningRequestSpec {
207
208
Request : csrData ,
208
- SignerName : & signerName ,
209
- Usages : []certificatesv1beta1 .KeyUsage {certificatesv1beta1 .UsageDigitalSignature , certificatesv1beta1 .UsageKeyEncipherment , certificatesv1beta1 .UsageServerAuth },
209
+ SignerName : signerName ,
210
+ Usages : []certificatesv1 .KeyUsage {certificatesv1 .UsageDigitalSignature , certificatesv1 .UsageKeyEncipherment , certificatesv1 .UsageServerAuth },
210
211
},
211
212
}
212
213
@@ -218,7 +219,7 @@ var _ = SIGDescribe("Certificates API", func() {
218
219
framework .ExpectNoError (err )
219
220
found := false
220
221
for _ , group := range discoveryGroups .Groups {
221
- if group .Name == certificatesv1beta1 .GroupName {
222
+ if group .Name == certificatesv1 .GroupName {
222
223
for _ , version := range group .Versions {
223
224
if version .Version == csrVersion {
224
225
found = true
@@ -247,7 +248,7 @@ var _ = SIGDescribe("Certificates API", func() {
247
248
248
249
ginkgo .By ("getting /apis/certificates.k8s.io/" + csrVersion )
249
250
{
250
- resources , err := f .ClientSet .Discovery ().ServerResourcesForGroupVersion (certificatesv1beta1 .SchemeGroupVersion .String ())
251
+ resources , err := f .ClientSet .Discovery ().ServerResourcesForGroupVersion (certificatesv1 .SchemeGroupVersion .String ())
251
252
framework .ExpectNoError (err )
252
253
foundCSR , foundApproval , foundStatus := false , false , false
253
254
for _ , resource := range resources .APIResources {
@@ -308,7 +309,7 @@ var _ = SIGDescribe("Certificates API", func() {
308
309
case evt , ok := <- csrWatch .ResultChan ():
309
310
framework .ExpectEqual (ok , true , "watch channel should not close" )
310
311
framework .ExpectEqual (evt .Type , watch .Modified )
311
- watchedCSR , isCSR := evt .Object .(* certificatesv1beta1 .CertificateSigningRequest )
312
+ watchedCSR , isCSR := evt .Object .(* certificatesv1 .CertificateSigningRequest )
312
313
framework .ExpectEqual (isCSR , true , fmt .Sprintf ("expected CSR, got %T" , evt .Object ))
313
314
if watchedCSR .Annotations ["patched" ] == "true" {
314
315
framework .Logf ("saw patched and updated annotations" )
@@ -327,7 +328,7 @@ var _ = SIGDescribe("Certificates API", func() {
327
328
ginkgo .By ("getting /approval" )
328
329
gottenApproval , err := f .DynamicClient .Resource (csrResource ).Get (context .TODO (), createdCSR .Name , metav1.GetOptions {}, "approval" )
329
330
framework .ExpectNoError (err )
330
- framework .ExpectEqual (gottenApproval .GetObjectKind ().GroupVersionKind (), certificatesv1beta1 .SchemeGroupVersion .WithKind ("CertificateSigningRequest" ))
331
+ framework .ExpectEqual (gottenApproval .GetObjectKind ().GroupVersionKind (), certificatesv1 .SchemeGroupVersion .WithKind ("CertificateSigningRequest" ))
331
332
framework .ExpectEqual (gottenApproval .GetUID (), createdCSR .UID )
332
333
333
334
ginkgo .By ("patching /approval" )
@@ -341,22 +342,23 @@ var _ = SIGDescribe("Certificates API", func() {
341
342
342
343
ginkgo .By ("updating /approval" )
343
344
approvalToUpdate := patchedApproval .DeepCopy ()
344
- approvalToUpdate .Status .Conditions = append (approvalToUpdate .Status .Conditions , certificatesv1beta1.CertificateSigningRequestCondition {
345
- Type : certificatesv1beta1 .CertificateApproved ,
345
+ approvalToUpdate .Status .Conditions = append (approvalToUpdate .Status .Conditions , certificatesv1.CertificateSigningRequestCondition {
346
+ Type : certificatesv1 .CertificateApproved ,
347
+ Status : v1 .ConditionTrue ,
346
348
Reason : "E2E" ,
347
349
Message : "Set from an e2e test" ,
348
350
})
349
- updatedApproval , err := csrClient .UpdateApproval (context .TODO (), approvalToUpdate , metav1.UpdateOptions {})
351
+ updatedApproval , err := csrClient .UpdateApproval (context .TODO (), approvalToUpdate . Name , approvalToUpdate , metav1.UpdateOptions {})
350
352
framework .ExpectNoError (err )
351
353
framework .ExpectEqual (len (updatedApproval .Status .Conditions ), 2 , fmt .Sprintf ("updated object should have the applied condition, got %#v" , updatedApproval .Status .Conditions ))
352
- framework .ExpectEqual (updatedApproval .Status .Conditions [1 ].Type , certificatesv1beta1 .CertificateApproved , fmt .Sprintf ("updated object should have the approved condition, got %#v" , updatedApproval .Status .Conditions ))
354
+ framework .ExpectEqual (updatedApproval .Status .Conditions [1 ].Type , certificatesv1 .CertificateApproved , fmt .Sprintf ("updated object should have the approved condition, got %#v" , updatedApproval .Status .Conditions ))
353
355
354
356
// /status subresource operations
355
357
356
358
ginkgo .By ("getting /status" )
357
359
gottenStatus , err := f .DynamicClient .Resource (csrResource ).Get (context .TODO (), createdCSR .Name , metav1.GetOptions {}, "status" )
358
360
framework .ExpectNoError (err )
359
- framework .ExpectEqual (gottenStatus .GetObjectKind ().GroupVersionKind (), certificatesv1beta1 .SchemeGroupVersion .WithKind ("CertificateSigningRequest" ))
361
+ framework .ExpectEqual (gottenStatus .GetObjectKind ().GroupVersionKind (), certificatesv1 .SchemeGroupVersion .WithKind ("CertificateSigningRequest" ))
360
362
framework .ExpectEqual (gottenStatus .GetUID (), createdCSR .UID )
361
363
362
364
ginkgo .By ("patching /status" )
@@ -369,8 +371,9 @@ var _ = SIGDescribe("Certificates API", func() {
369
371
370
372
ginkgo .By ("updating /status" )
371
373
statusToUpdate := patchedStatus .DeepCopy ()
372
- statusToUpdate .Status .Conditions = append (statusToUpdate .Status .Conditions , certificatesv1beta1 .CertificateSigningRequestCondition {
374
+ statusToUpdate .Status .Conditions = append (statusToUpdate .Status .Conditions , certificatesv1 .CertificateSigningRequestCondition {
373
375
Type : "StatusUpdate" ,
376
+ Status : v1 .ConditionTrue ,
374
377
Reason : "E2E" ,
375
378
Message : "Set from an e2e test" ,
376
379
})
0 commit comments