@@ -13,6 +13,7 @@ import (
1313
1414 appsv1 "k8s.io/api/apps/v1"
1515 corev1 "k8s.io/api/core/v1"
16+ networkingv1 "k8s.io/api/networking/v1"
1617 rbacv1 "k8s.io/api/rbac/v1"
1718 apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
1819
@@ -24,31 +25,36 @@ import (
2425)
2526
2627const (
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"
3437
3538 MetricsClusterRoleAsset = "assets/router/metrics/cluster-role.yaml"
3639 MetricsClusterRoleBindingAsset = "assets/router/metrics/cluster-role-binding.yaml"
3740 MetricsRoleAsset = "assets/router/metrics/role.yaml"
3841 MetricsRoleBindingAsset = "assets/router/metrics/role-binding.yaml"
3942
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"
5258
5359 // Annotation used to inform the certificate generation service to
5460 // generate a cluster-signed certificate and populate the secret.
@@ -258,6 +264,22 @@ func CanaryRoute() *routev1.Route {
258264 return route
259265}
260266
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+
261283func GatewayClassCRD () * apiextensionsv1.CustomResourceDefinition {
262284 crd , err := NewCustomResourceDefinition (MustAssetReader (GatewayClassCRDAsset ))
263285 if err != nil {
@@ -314,6 +336,30 @@ func GatewayAPIViewClusterRole() *rbacv1.ClusterRole {
314336 return clusterRole
315337}
316338
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+
317363func NewServiceAccount (manifest io.Reader ) (* corev1.ServiceAccount , error ) {
318364 sa := corev1.ServiceAccount {}
319365 if err := yaml .NewYAMLOrJSONDecoder (manifest , 100 ).Decode (& sa ); err != nil {
@@ -404,6 +450,15 @@ func NewRoute(manifest io.Reader) (*routev1.Route, error) {
404450 return & o , nil
405451}
406452
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+
407462func NewCustomResourceDefinition (manifest io.Reader ) (* apiextensionsv1.CustomResourceDefinition , error ) {
408463 o := apiextensionsv1.CustomResourceDefinition {}
409464 if err := yaml .NewYAMLOrJSONDecoder (manifest , 100 ).Decode (& o ); err != nil {
0 commit comments