@@ -35,6 +35,7 @@ import (
35
35
"gopkg.in/yaml.v3"
36
36
37
37
"k8s.io/enhancements/api"
38
+ "k8s.io/enhancements/pkg/kepval"
38
39
krgh "k8s.io/release/pkg/github"
39
40
"k8s.io/test-infra/prow/git"
40
41
)
@@ -264,9 +265,9 @@ func (r *Repo) LoadLocalKEPs(sig string) ([]*api.Proposal, error) {
264
265
"reading KEP %s from yaml" ,
265
266
k ,
266
267
)
267
- } else {
268
- allKEPs = append (allKEPs , kep )
269
268
}
269
+
270
+ allKEPs = append (allKEPs , kep )
270
271
} else {
271
272
kep , err := r .loadKEPFromOldStyle (k )
272
273
if err != nil {
@@ -275,9 +276,9 @@ func (r *Repo) LoadLocalKEPs(sig string) ([]*api.Proposal, error) {
275
276
"reading KEP %s from markdown" ,
276
277
k ,
277
278
)
278
- } else {
279
- allKEPs = append (allKEPs , kep )
280
279
}
280
+
281
+ allKEPs = append (allKEPs , kep )
281
282
}
282
283
}
283
284
@@ -458,54 +459,55 @@ func (r *Repo) loadKEPFromYaml(kepPath string) (*api.Proposal, error) {
458
459
// Read the PRR approval file and add any listed PRR approvers in there
459
460
// to the PRR approvers list in the KEP. this is a hack while we transition
460
461
// away from PRR approvers listed in kep.yaml
461
- prrPath := filepath .Dir (kepPath )
462
- prrPath = filepath .Dir (prrPath )
463
- sig := filepath .Base (prrPath )
464
- prrPath = filepath .Join (
465
- filepath .Dir (prrPath ),
466
- PRRApprovalPathStub ,
467
- sig ,
468
- p .Number + ".yaml" ,
469
- )
470
-
471
- prrFile , err := os .Open (prrPath )
472
- if os .IsNotExist (err ) {
473
- return & p , nil
474
- }
475
-
462
+ handler := r .PRRHandler
463
+ err = kepval .ValidatePRR (& p , handler , r .PRRApprovalPath )
476
464
if err != nil {
477
- return nil , errors .Wrapf (err , "opening PRR approval %s" , prrPath )
478
- }
465
+ logrus .Errorf (
466
+ "%v" ,
467
+ errors .Wrapf (err , "validating PRR for %s" , p .Name ),
468
+ )
469
+ } else {
470
+ prrPath := filepath .Dir (kepPath )
471
+ prrPath = filepath .Dir (prrPath )
472
+ sig := filepath .Base (prrPath )
473
+ prrPath = filepath .Join (
474
+ filepath .Dir (prrPath ),
475
+ PRRApprovalPathStub ,
476
+ sig ,
477
+ p .Number + ".yaml" ,
478
+ )
479
479
480
- handler := r .PRRHandler
480
+ prrFile , err := os .Open (prrPath )
481
+ if os .IsNotExist (err ) {
482
+ return & p , nil
483
+ }
481
484
482
- approval , err := handler .Parse (prrFile )
483
- if err != nil {
484
- return nil , errors .Wrapf (err , "parsing PRR" )
485
- }
485
+ if err != nil {
486
+ return nil , errors .Wrapf (err , "opening PRR approval %s" , prrPath )
487
+ }
486
488
487
- if approval .Error != nil {
488
- fmt .Fprintf (
489
- r .Err ,
490
- "WARNING: could not parse prod readiness request for KEP %s: %s\n " ,
491
- p .Number ,
492
- approval .Error ,
493
- )
494
- }
489
+ approval , err := handler .Parse (prrFile )
490
+ if err != nil {
491
+ return nil , errors .Wrapf (err , "parsing PRR" )
492
+ }
495
493
496
- approver , err := approval .ApproverForStage (p .Stage )
497
- if err != nil {
498
- return nil , errors .Wrapf (err , "getting PRR approver for %s stage" , p .Stage )
499
- }
494
+ approver , err := approval .ApproverForStage (p .Stage )
495
+ if err != nil {
496
+ logrus .Errorf (
497
+ "%v" ,
498
+ errors .Wrapf (err , "getting PRR approver for %s stage" , p .Stage ),
499
+ )
500
+ }
500
501
501
- for _ , a := range p .PRRApprovers {
502
- if a == approver {
503
- approver = ""
502
+ for _ , a := range p .PRRApprovers {
503
+ if a == approver {
504
+ approver = ""
505
+ }
504
506
}
505
- }
506
507
507
- if approver != "" {
508
- p .PRRApprovers = append (p .PRRApprovers , approver )
508
+ if approver != "" {
509
+ p .PRRApprovers = append (p .PRRApprovers , approver )
510
+ }
509
511
}
510
512
511
513
return & p , nil
0 commit comments