...
1
16
17 package networkpolicy
18
19 import (
20 "context"
21 "reflect"
22
23 "k8s.io/apimachinery/pkg/runtime"
24 "k8s.io/apimachinery/pkg/util/validation/field"
25 "k8s.io/apiserver/pkg/storage/names"
26 "k8s.io/kubernetes/pkg/api/legacyscheme"
27 "k8s.io/kubernetes/pkg/apis/networking"
28 "k8s.io/kubernetes/pkg/apis/networking/validation"
29 )
30
31
32 type networkPolicyStrategy struct {
33 runtime.ObjectTyper
34 names.NameGenerator
35 }
36
37
38 var Strategy = networkPolicyStrategy{legacyscheme.Scheme, names.SimpleNameGenerator}
39
40
41 func (networkPolicyStrategy) NamespaceScoped() bool {
42 return true
43 }
44
45
46 func (networkPolicyStrategy) PrepareForCreate(ctx context.Context, obj runtime.Object) {
47 networkPolicy := obj.(*networking.NetworkPolicy)
48 networkPolicy.Generation = 1
49 }
50
51
52 func (networkPolicyStrategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
53 newNetworkPolicy := obj.(*networking.NetworkPolicy)
54 oldNetworkPolicy := old.(*networking.NetworkPolicy)
55
56
57
58
59 if !reflect.DeepEqual(oldNetworkPolicy.Spec, newNetworkPolicy.Spec) {
60 newNetworkPolicy.Generation = oldNetworkPolicy.Generation + 1
61 }
62 }
63
64
65 func (networkPolicyStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList {
66 networkPolicy := obj.(*networking.NetworkPolicy)
67 ops := validation.ValidationOptionsForNetworking(networkPolicy, nil)
68 return validation.ValidateNetworkPolicy(networkPolicy, ops)
69 }
70
71
72 func (networkPolicyStrategy) WarningsOnCreate(ctx context.Context, obj runtime.Object) []string {
73 return nil
74 }
75
76
77 func (networkPolicyStrategy) Canonicalize(obj runtime.Object) {}
78
79
80 func (networkPolicyStrategy) AllowCreateOnUpdate() bool {
81 return false
82 }
83
84
85 func (networkPolicyStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {
86 opts := validation.ValidationOptionsForNetworking(obj.(*networking.NetworkPolicy), old.(*networking.NetworkPolicy))
87 validationErrorList := validation.ValidateNetworkPolicy(obj.(*networking.NetworkPolicy), opts)
88 updateErrorList := validation.ValidateNetworkPolicyUpdate(obj.(*networking.NetworkPolicy), old.(*networking.NetworkPolicy), opts)
89 return append(validationErrorList, updateErrorList...)
90 }
91
92
93 func (networkPolicyStrategy) WarningsOnUpdate(ctx context.Context, obj, old runtime.Object) []string {
94 return nil
95 }
96
97
98 func (networkPolicyStrategy) AllowUnconditionalUpdate() bool {
99 return true
100 }
101
View as plain text