@@ -6,21 +6,21 @@ import (
6
6
controllerruntime "sigs.k8s.io/controller-runtime"
7
7
gatewayv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
8
8
9
- ngfAPIv1alpha1 "github.com/nginx/nginx-gateway-fabric/v2/apis/v1alpha1 "
9
+ ngfAPIv1alpha2 "github.com/nginx/nginx-gateway-fabric/v2/apis/v1alpha2 "
10
10
)
11
11
12
12
func TestObservabilityPoliciesTargetRefKind (t * testing.T ) {
13
13
t .Parallel ()
14
14
k8sClient := getKubernetesClient (t )
15
15
16
16
tests := []struct {
17
- spec ngfAPIv1alpha1 .ObservabilityPolicySpec
17
+ spec ngfAPIv1alpha2 .ObservabilityPolicySpec
18
18
name string
19
19
wantErrors []string
20
20
}{
21
21
{
22
22
name : "Validate TargetRef of kind HTTPRoute is allowed" ,
23
- spec : ngfAPIv1alpha1 .ObservabilityPolicySpec {
23
+ spec : ngfAPIv1alpha2 .ObservabilityPolicySpec {
24
24
TargetRefs : []gatewayv1alpha2.LocalPolicyTargetReference {
25
25
{
26
26
Kind : httpRouteKind ,
@@ -31,7 +31,7 @@ func TestObservabilityPoliciesTargetRefKind(t *testing.T) {
31
31
},
32
32
{
33
33
name : "Validate TargetRef of kind GRPCRoute is allowed" ,
34
- spec : ngfAPIv1alpha1 .ObservabilityPolicySpec {
34
+ spec : ngfAPIv1alpha2 .ObservabilityPolicySpec {
35
35
TargetRefs : []gatewayv1alpha2.LocalPolicyTargetReference {
36
36
{
37
37
Kind : grpcRouteKind ,
@@ -43,7 +43,7 @@ func TestObservabilityPoliciesTargetRefKind(t *testing.T) {
43
43
{
44
44
name : "Validate Invalid TargetRef Kind is not allowed" ,
45
45
wantErrors : []string {expectedTargetRefMustBeHTTPRouteOrGrpcRouteError },
46
- spec : ngfAPIv1alpha1 .ObservabilityPolicySpec {
46
+ spec : ngfAPIv1alpha2 .ObservabilityPolicySpec {
47
47
TargetRefs : []gatewayv1alpha2.LocalPolicyTargetReference {
48
48
{
49
49
Kind : invalidKind ,
@@ -55,7 +55,7 @@ func TestObservabilityPoliciesTargetRefKind(t *testing.T) {
55
55
{
56
56
name : "Validate TCPRoute TargetRef Kind is not allowed" ,
57
57
wantErrors : []string {expectedTargetRefMustBeHTTPRouteOrGrpcRouteError },
58
- spec : ngfAPIv1alpha1 .ObservabilityPolicySpec {
58
+ spec : ngfAPIv1alpha2 .ObservabilityPolicySpec {
59
59
TargetRefs : []gatewayv1alpha2.LocalPolicyTargetReference {
60
60
{
61
61
Kind : tcpRouteKind ,
@@ -67,7 +67,7 @@ func TestObservabilityPoliciesTargetRefKind(t *testing.T) {
67
67
{
68
68
name : "Validate TargetRef of kind Gateway is allowed" ,
69
69
wantErrors : []string {expectedTargetRefMustBeHTTPRouteOrGrpcRouteError },
70
- spec : ngfAPIv1alpha1 .ObservabilityPolicySpec {
70
+ spec : ngfAPIv1alpha2 .ObservabilityPolicySpec {
71
71
TargetRefs : []gatewayv1alpha2.LocalPolicyTargetReference {
72
72
{
73
73
Kind : gatewayKind ,
@@ -78,7 +78,7 @@ func TestObservabilityPoliciesTargetRefKind(t *testing.T) {
78
78
},
79
79
{
80
80
name : "Validate ObservabilityPolicy is applied when one TargetRef is valid and another is invalid" ,
81
- spec : ngfAPIv1alpha1 .ObservabilityPolicySpec {
81
+ spec : ngfAPIv1alpha2 .ObservabilityPolicySpec {
82
82
TargetRefs : []gatewayv1alpha2.LocalPolicyTargetReference {
83
83
{
84
84
Kind : gatewayKind ,
@@ -102,7 +102,7 @@ func TestObservabilityPoliciesTargetRefKind(t *testing.T) {
102
102
spec .TargetRefs [i ].Name = gatewayv1alpha2 .ObjectName (uniqueResourceName (testTargetRefName ))
103
103
}
104
104
105
- observabilityPolicy := & ngfAPIv1alpha1 .ObservabilityPolicy {
105
+ observabilityPolicy := & ngfAPIv1alpha2 .ObservabilityPolicy {
106
106
ObjectMeta : controllerruntime.ObjectMeta {
107
107
Name : uniqueResourceName (testResourceName ),
108
108
Namespace : defaultNamespace ,
@@ -119,13 +119,13 @@ func TestObservabilityPoliciesTargetRefGroup(t *testing.T) {
119
119
k8sClient := getKubernetesClient (t )
120
120
121
121
tests := []struct {
122
- spec ngfAPIv1alpha1 .ObservabilityPolicySpec
122
+ spec ngfAPIv1alpha2 .ObservabilityPolicySpec
123
123
name string
124
124
wantErrors []string
125
125
}{
126
126
{
127
127
name : "Validate gateway.networking.k8s.io TargetRef Group is allowed" ,
128
- spec : ngfAPIv1alpha1 .ObservabilityPolicySpec {
128
+ spec : ngfAPIv1alpha2 .ObservabilityPolicySpec {
129
129
TargetRefs : []gatewayv1alpha2.LocalPolicyTargetReference {
130
130
{
131
131
Kind : httpRouteKind ,
@@ -137,7 +137,7 @@ func TestObservabilityPoliciesTargetRefGroup(t *testing.T) {
137
137
{
138
138
name : "Validate invalid.networking.k8s.io TargetRef Group is not allowed" ,
139
139
wantErrors : []string {expectedTargetRefGroupError },
140
- spec : ngfAPIv1alpha1 .ObservabilityPolicySpec {
140
+ spec : ngfAPIv1alpha2 .ObservabilityPolicySpec {
141
141
TargetRefs : []gatewayv1alpha2.LocalPolicyTargetReference {
142
142
{
143
143
Kind : httpRouteKind ,
@@ -149,7 +149,7 @@ func TestObservabilityPoliciesTargetRefGroup(t *testing.T) {
149
149
{
150
150
name : "Validate discovery.k8s.io/v1 TargetRef Group is not allowed" ,
151
151
wantErrors : []string {expectedTargetRefGroupError },
152
- spec : ngfAPIv1alpha1 .ObservabilityPolicySpec {
152
+ spec : ngfAPIv1alpha2 .ObservabilityPolicySpec {
153
153
TargetRefs : []gatewayv1alpha2.LocalPolicyTargetReference {
154
154
{
155
155
Kind : httpRouteKind ,
@@ -169,7 +169,54 @@ func TestObservabilityPoliciesTargetRefGroup(t *testing.T) {
169
169
spec .TargetRefs [i ].Name = gatewayv1alpha2 .ObjectName (uniqueResourceName (testTargetRefName ))
170
170
}
171
171
172
- observabilityPolicy := & ngfAPIv1alpha1.ObservabilityPolicy {
172
+ observabilityPolicy := & ngfAPIv1alpha2.ObservabilityPolicy {
173
+ ObjectMeta : controllerruntime.ObjectMeta {
174
+ Name : uniqueResourceName (testResourceName ),
175
+ Namespace : defaultNamespace ,
176
+ },
177
+ Spec : spec ,
178
+ }
179
+ validateCrd (t , tt .wantErrors , observabilityPolicy , k8sClient )
180
+ })
181
+ }
182
+ }
183
+
184
+ func TestObservabilityPoliciesTargetRefKindAndNameCombo (t * testing.T ) {
185
+ t .Parallel ()
186
+ k8sClient := getKubernetesClient (t )
187
+
188
+ tests := []struct {
189
+ spec ngfAPIv1alpha2.ObservabilityPolicySpec
190
+ name string
191
+ wantErrors []string
192
+ }{
193
+ {
194
+ // This test is not throwing an error like we expect it to...
195
+ name : "Validate TargetRef Kind and Name combination is unique" ,
196
+ wantErrors : []string {expectedTargetRefKindAndNameComboMustBeUnique },
197
+ spec : ngfAPIv1alpha2.ObservabilityPolicySpec {
198
+ TargetRefs : []gatewayv1alpha2.LocalPolicyTargetReference {
199
+ {
200
+ Kind : httpRouteKind ,
201
+ Name : gatewayv1alpha2 .ObjectName (testTargetRefName ),
202
+ Group : gatewayGroup ,
203
+ },
204
+ {
205
+ Kind : httpRouteKind ,
206
+ Name : gatewayv1alpha2 .ObjectName (testTargetRefName ),
207
+ Group : gatewayGroup ,
208
+ },
209
+ },
210
+ },
211
+ },
212
+ }
213
+
214
+ for _ , tt := range tests {
215
+ t .Run (tt .name , func (t * testing.T ) {
216
+ t .Parallel ()
217
+ spec := tt .spec
218
+
219
+ observabilityPolicy := & ngfAPIv1alpha2.ObservabilityPolicy {
173
220
ObjectMeta : controllerruntime.ObjectMeta {
174
221
Name : uniqueResourceName (testResourceName ),
175
222
Namespace : defaultNamespace ,
0 commit comments