@@ -13,6 +13,7 @@ import (
13
13
14
14
appsv1 "k8s.io/api/apps/v1"
15
15
corev1 "k8s.io/api/core/v1"
16
+ networkingv1 "k8s.io/api/networking/v1"
16
17
rbacv1 "k8s.io/api/rbac/v1"
17
18
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
18
19
@@ -24,31 +25,36 @@ import (
24
25
)
25
26
26
27
const (
27
- RouterNamespaceAsset = "assets/router/namespace.yaml"
28
- RouterServiceAccountAsset = "assets/router/service-account.yaml"
29
- RouterClusterRoleAsset = "assets/router/cluster-role.yaml"
30
- RouterClusterRoleBindingAsset = "assets/router/cluster-role-binding.yaml"
31
- RouterDeploymentAsset = "assets/router/deployment.yaml"
32
- RouterServiceInternalAsset = "assets/router/service-internal.yaml"
33
- RouterServiceCloudAsset = "assets/router/service-cloud.yaml"
28
+ RouterNamespaceAsset = "assets/router/namespace.yaml"
29
+ RouterServiceAccountAsset = "assets/router/service-account.yaml"
30
+ RouterClusterRoleAsset = "assets/router/cluster-role.yaml"
31
+ RouterClusterRoleBindingAsset = "assets/router/cluster-role-binding.yaml"
32
+ RouterDeploymentAsset = "assets/router/deployment.yaml"
33
+ RouterServiceInternalAsset = "assets/router/service-internal.yaml"
34
+ RouterServiceCloudAsset = "assets/router/service-cloud.yaml"
35
+ RouterNetworkPolicyDenyAllAsset = "assets/router/networkpolicy-deny-all.yaml"
36
+ RouterNetworkPolicyAllowAsset = "assets/router/networkpolicy-allow.yaml"
34
37
35
38
MetricsClusterRoleAsset = "assets/router/metrics/cluster-role.yaml"
36
39
MetricsClusterRoleBindingAsset = "assets/router/metrics/cluster-role-binding.yaml"
37
40
MetricsRoleAsset = "assets/router/metrics/role.yaml"
38
41
MetricsRoleBindingAsset = "assets/router/metrics/role-binding.yaml"
39
42
40
- CanaryNamespaceAsset = "assets/canary/namespace.yaml"
41
- CanaryDaemonSetAsset = "assets/canary/daemonset.yaml"
42
- CanaryServiceAsset = "assets/canary/service.yaml"
43
- CanaryRouteAsset = "assets/canary/route.yaml"
44
-
45
- GatewayClassCRDAsset = "assets/gateway-api/gateway.networking.k8s.io_gatewayclasses.yaml"
46
- GatewayCRDAsset = "assets/gateway-api/gateway.networking.k8s.io_gateways.yaml"
47
- GRPCRouteCRDAsset = "assets/gateway-api/gateway.networking.k8s.io_grpcroutes.yaml"
48
- HTTPRouteCRDAsset = "assets/gateway-api/gateway.networking.k8s.io_httproutes.yaml"
49
- ReferenceGrantCRDAsset = "assets/gateway-api/gateway.networking.k8s.io_referencegrants.yaml"
50
- GatewayAPIAdminClusterRoleAsset = "assets/gateway-api/aggregated-cluster-roles/admin-cluster-role.yaml"
51
- GatewayAPIViewClusterRoleAsset = "assets/gateway-api/aggregated-cluster-roles/view-cluster-role.yaml"
43
+ CanaryNamespaceAsset = "assets/canary/namespace.yaml"
44
+ CanaryDaemonSetAsset = "assets/canary/daemonset.yaml"
45
+ CanaryServiceAsset = "assets/canary/service.yaml"
46
+ CanaryRouteAsset = "assets/canary/route.yaml"
47
+ CanaryNetworkPolicyDenyAllAsset = "assets/canary/networkpolicy-deny-all.yaml"
48
+ CanaryNetworkPolicyAllowAsset = "assets/canary/networkpolicy-allow.yaml"
49
+
50
+ GatewayClassCRDAsset = "assets/gateway-api/gateway.networking.k8s.io_gatewayclasses.yaml"
51
+ GatewayCRDAsset = "assets/gateway-api/gateway.networking.k8s.io_gateways.yaml"
52
+ GRPCRouteCRDAsset = "assets/gateway-api/gateway.networking.k8s.io_grpcroutes.yaml"
53
+ HTTPRouteCRDAsset = "assets/gateway-api/gateway.networking.k8s.io_httproutes.yaml"
54
+ ReferenceGrantCRDAsset = "assets/gateway-api/gateway.networking.k8s.io_referencegrants.yaml"
55
+ GatewayAPIAdminClusterRoleAsset = "assets/gateway-api/aggregated-cluster-roles/admin-cluster-role.yaml"
56
+ GatewayAPIViewClusterRoleAsset = "assets/gateway-api/aggregated-cluster-roles/view-cluster-role.yaml"
57
+ GatewayAPIAllowNetworkPolicyAsset = "assets/gateway-api/gateway-networkpolicy-allow.yaml"
52
58
53
59
// Annotation used to inform the certificate generation service to
54
60
// generate a cluster-signed certificate and populate the secret.
@@ -258,6 +264,22 @@ func CanaryRoute() *routev1.Route {
258
264
return route
259
265
}
260
266
267
+ func CanaryNetworkPolicyDenyAll () * networkingv1.NetworkPolicy {
268
+ networkPolicy , err := NewNetworkPolicy (MustAssetReader (CanaryNetworkPolicyDenyAllAsset ))
269
+ if err != nil {
270
+ panic (err )
271
+ }
272
+ return networkPolicy
273
+ }
274
+
275
+ func CanaryNetworkPolicyAllow () * networkingv1.NetworkPolicy {
276
+ networkPolicy , err := NewNetworkPolicy (MustAssetReader (CanaryNetworkPolicyAllowAsset ))
277
+ if err != nil {
278
+ panic (err )
279
+ }
280
+ return networkPolicy
281
+ }
282
+
261
283
func GatewayClassCRD () * apiextensionsv1.CustomResourceDefinition {
262
284
crd , err := NewCustomResourceDefinition (MustAssetReader (GatewayClassCRDAsset ))
263
285
if err != nil {
@@ -314,6 +336,30 @@ func GatewayAPIViewClusterRole() *rbacv1.ClusterRole {
314
336
return clusterRole
315
337
}
316
338
339
+ func GatewayAPIAllowNetworkPolicy () * networkingv1.NetworkPolicy {
340
+ networkPolicy , err := NewNetworkPolicy (MustAssetReader (GatewayAPIAllowNetworkPolicyAsset ))
341
+ if err != nil {
342
+ panic (err )
343
+ }
344
+ return networkPolicy
345
+ }
346
+
347
+ func RouterNetworkPolicyDenyAll () * networkingv1.NetworkPolicy {
348
+ networkPolicy , err := NewNetworkPolicy (MustAssetReader (RouterNetworkPolicyDenyAllAsset ))
349
+ if err != nil {
350
+ panic (err )
351
+ }
352
+ return networkPolicy
353
+ }
354
+
355
+ func RouterNetworkPolicyAllow () * networkingv1.NetworkPolicy {
356
+ networkPolicy , err := NewNetworkPolicy (MustAssetReader (RouterNetworkPolicyAllowAsset ))
357
+ if err != nil {
358
+ panic (err )
359
+ }
360
+ return networkPolicy
361
+ }
362
+
317
363
func NewServiceAccount (manifest io.Reader ) (* corev1.ServiceAccount , error ) {
318
364
sa := corev1.ServiceAccount {}
319
365
if err := yaml .NewYAMLOrJSONDecoder (manifest , 100 ).Decode (& sa ); err != nil {
@@ -404,6 +450,15 @@ func NewRoute(manifest io.Reader) (*routev1.Route, error) {
404
450
return & o , nil
405
451
}
406
452
453
+ func NewNetworkPolicy (manifest io.Reader ) (* networkingv1.NetworkPolicy , error ) {
454
+ o := networkingv1.NetworkPolicy {}
455
+ if err := yaml .NewYAMLOrJSONDecoder (manifest , 100 ).Decode (& o ); err != nil {
456
+ return nil , err
457
+ }
458
+
459
+ return & o , nil
460
+ }
461
+
407
462
func NewCustomResourceDefinition (manifest io.Reader ) (* apiextensionsv1.CustomResourceDefinition , error ) {
408
463
o := apiextensionsv1.CustomResourceDefinition {}
409
464
if err := yaml .NewYAMLOrJSONDecoder (manifest , 100 ).Decode (& o ); err != nil {
0 commit comments