5
5
6
6
"k8s.io/kubernetes/pkg/api/unversioned"
7
7
8
+ "github.com/openshift/origin/pkg/api/latest"
8
9
"github.com/openshift/origin/pkg/image/admission/imagepolicy/api"
9
10
)
10
11
@@ -18,14 +19,14 @@ type Accepter interface {
18
19
type mappedAccepter map [unversioned.GroupResource ]Accepter
19
20
20
21
func (a mappedAccepter ) Covers (gr unversioned.GroupResource ) bool {
21
- _ , ok := a [gr ]
22
+ _ , ok := a [transformToLegacy ( gr ) ]
22
23
return ok
23
24
}
24
25
25
26
// Accepts returns true if no Accepter is registered for the group resource in attributes,
26
27
// or if the registered Accepter also returns true.
27
28
func (a mappedAccepter ) Accepts (attr * ImagePolicyAttributes ) bool {
28
- accepter , ok := a [attr .Resource ]
29
+ accepter , ok := a [transformToLegacy ( attr .Resource ) ]
29
30
if ! ok {
30
31
return true
31
32
}
@@ -51,13 +52,13 @@ func NewExecutionRulesAccepter(rules []api.ImageExecutionPolicyRule, integratedR
51
52
}
52
53
rule .ImageCondition .MatchImageLabelSelectors = selectors
53
54
for gr := range over {
54
- a , ok := mapped [gr ]
55
+ a , ok := mapped [transformToLegacy ( gr ) ]
55
56
if ! ok {
56
57
a = & executionAccepter {
57
- covers : gr ,
58
+ covers : transformToLegacy ( gr ) ,
58
59
integratedRegistryMatcher : integratedRegistryMatcher ,
59
60
}
60
- mapped [gr ] = a
61
+ mapped [transformToLegacy ( gr ) ] = a
61
62
}
62
63
byResource := a .(* executionAccepter )
63
64
byResource .rules = append (byResource .rules , rule )
@@ -83,11 +84,20 @@ func NewExecutionRulesAccepter(rules []api.ImageExecutionPolicyRule, integratedR
83
84
}
84
85
85
86
func (r * executionAccepter ) Covers (gr unversioned.GroupResource ) bool {
86
- return r .covers == gr
87
+ return transformToLegacy (r .covers ) == transformToLegacy (gr )
88
+ }
89
+
90
+ // transformToLegacy transforms the given resource to legacy resource if the API group is
91
+ // set and the group is one of the Origin API groups.
92
+ func transformToLegacy (resource unversioned.GroupResource ) unversioned.GroupResource {
93
+ if len (resource .Group ) > 0 && latest .IsOriginAPIGroup (resource .Group ) {
94
+ return unversioned.GroupResource {Resource : resource .Resource , Group : "" }
95
+ }
96
+ return resource
87
97
}
88
98
89
99
func (r * executionAccepter ) Accepts (attrs * ImagePolicyAttributes ) bool {
90
- if attrs . Resource != r . covers {
100
+ if ! r . Covers ( attrs . Resource ) {
91
101
return true
92
102
}
93
103
0 commit comments