Skip to content

Commit 808b7f0

Browse files
authored
Merge pull request #21 from datainfrahq/networkpolicy
add network policy support
2 parents 6ff6b05 + 0c6b2ea commit 808b7f0

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

builder/builder.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ type Builder struct {
1010
DeploymentOrStatefulset []BuilderDeploymentStatefulSet
1111
StorageConfig []BuilderStorageConfig
1212
Service []BuilderService
13+
NetworkPolicy []BuilderNetworkPolicy
1314
Recorder BuilderRecorder
1415
Context BuilderContext
1516
Store InternalStore

builder/builder_network_policy.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package builder
2+
3+
import (
4+
networkingv1 "k8s.io/api/networking/v1"
5+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
6+
7+
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
8+
)
9+
10+
type BuilderNetworkPolicy struct {
11+
NetworkPolicy *networkingv1.NetworkPolicy
12+
CommonBuilder
13+
}
14+
15+
func ToNewBuilderNetworkPolicy(builder []BuilderService) func(*Builder) {
16+
return func(s *Builder) {
17+
s.Service = builder
18+
}
19+
}
20+
21+
func (s *Builder) ReconcileNetworkPolicy() (controllerutil.OperationResult, error) {
22+
23+
var err error
24+
var result controllerutil.OperationResult
25+
26+
for _, np := range s.NetworkPolicy {
27+
28+
if np.NetworkPolicy != nil {
29+
30+
makeNp := np.makeNetworkPolicy()
31+
32+
np.DesiredState = makeNp
33+
np.CurrentState = &networkingv1.NetworkPolicy{}
34+
35+
result, err = np.CreateOrUpdate(s.Context.Context, s.Recorder)
36+
if err != nil {
37+
return controllerutil.OperationResultNone, nil
38+
}
39+
}
40+
}
41+
return result, nil
42+
}
43+
44+
func (b *BuilderNetworkPolicy) makeNetworkPolicy() *networkingv1.NetworkPolicy {
45+
networkPolicy := &networkingv1.NetworkPolicy{
46+
TypeMeta: metav1.TypeMeta{
47+
APIVersion: "networking.k8s.io/v1",
48+
Kind: "NetworkPolicy",
49+
},
50+
ObjectMeta: b.ObjectMeta,
51+
Spec: *&b.NetworkPolicy.Spec,
52+
}
53+
54+
return networkPolicy
55+
}

0 commit comments

Comments
 (0)