mirror of
https://github.com/YuzuZensai/netbird-kubernetes-operator.git
synced 2026-09-13 10:49:15 +00:00
Add support for policy auto-creation
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package v1
|
||||
|
||||
import (
|
||||
"maps"
|
||||
|
||||
"github.com/netbirdio/kubernetes-operator/internal/util"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
@@ -18,6 +20,10 @@ type NBResourceSpec struct {
|
||||
// +optional
|
||||
PolicyName string `json:"policyName,omitempty"`
|
||||
// +optional
|
||||
PolicySourceGroups []string `json:"policySourceGroups,omitempty"`
|
||||
// +optional
|
||||
PolicyFriendlyName map[string]string `json:"policyFriendlyName,omitempty"`
|
||||
// +optional
|
||||
TCPPorts []int32 `json:"tcpPorts,omitempty"`
|
||||
// +optional
|
||||
UDPPorts []int32 `json:"udpPorts,omitempty"`
|
||||
@@ -31,7 +37,8 @@ func (a NBResourceSpec) Equal(b NBResourceSpec) bool {
|
||||
util.Equivalent(a.Groups, b.Groups) &&
|
||||
a.PolicyName == b.PolicyName &&
|
||||
util.Equivalent(a.TCPPorts, b.TCPPorts) &&
|
||||
util.Equivalent(a.UDPPorts, b.UDPPorts)
|
||||
util.Equivalent(a.UDPPorts, b.UDPPorts) &&
|
||||
util.Equivalent(a.PolicySourceGroups, b.PolicySourceGroups)
|
||||
}
|
||||
|
||||
// NBResourceStatus defines the observed state of NBResource.
|
||||
@@ -47,7 +54,13 @@ type NBResourceStatus struct {
|
||||
// +optional
|
||||
Groups []string `json:"groups,omitempty"`
|
||||
// +optional
|
||||
PolicySourceGroups []string `json:"policySourceGroups,omitempty"`
|
||||
// +optional
|
||||
PolicyFriendlyName map[string]string `json:"policyFriendlyName,omitempty"`
|
||||
// +optional
|
||||
Conditions []NBCondition `json:"conditions,omitempty"`
|
||||
// +optional
|
||||
PolicyNameMapping map[string]string `json:"policyNameMapping"`
|
||||
}
|
||||
|
||||
// Equal returns if NBResourceStatus is equal to this one
|
||||
@@ -57,7 +70,10 @@ func (a NBResourceStatus) Equal(b NBResourceStatus) bool {
|
||||
util.Equivalent(a.TCPPorts, b.TCPPorts) &&
|
||||
util.Equivalent(a.UDPPorts, b.UDPPorts) &&
|
||||
util.Equivalent(a.Groups, b.Groups) &&
|
||||
util.Equivalent(a.Conditions, b.Conditions)
|
||||
util.Equivalent(a.Conditions, b.Conditions) &&
|
||||
util.Equivalent(a.PolicySourceGroups, b.PolicySourceGroups) &&
|
||||
maps.Equal(a.PolicyFriendlyName, b.PolicyFriendlyName) &&
|
||||
maps.Equal(a.PolicyNameMapping, b.PolicyNameMapping)
|
||||
}
|
||||
|
||||
// +kubebuilder:object:root=true
|
||||
|
||||
@@ -329,6 +329,18 @@ func (in *NBResourceSpec) DeepCopyInto(out *NBResourceSpec) {
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.PolicySourceGroups != nil {
|
||||
in, out := &in.PolicySourceGroups, &out.PolicySourceGroups
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.PolicyFriendlyName != nil {
|
||||
in, out := &in.PolicyFriendlyName, &out.PolicyFriendlyName
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.TCPPorts != nil {
|
||||
in, out := &in.TCPPorts, &out.TCPPorts
|
||||
*out = make([]int32, len(*in))
|
||||
@@ -379,6 +391,18 @@ func (in *NBResourceStatus) DeepCopyInto(out *NBResourceStatus) {
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.PolicySourceGroups != nil {
|
||||
in, out := &in.PolicySourceGroups, &out.PolicySourceGroups
|
||||
*out = make([]string, len(*in))
|
||||
copy(*out, *in)
|
||||
}
|
||||
if in.PolicyFriendlyName != nil {
|
||||
in, out := &in.PolicyFriendlyName, &out.PolicyFriendlyName
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
if in.Conditions != nil {
|
||||
in, out := &in.Conditions, &out.Conditions
|
||||
*out = make([]NBCondition, len(*in))
|
||||
@@ -386,6 +410,13 @@ func (in *NBResourceStatus) DeepCopyInto(out *NBResourceStatus) {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
if in.PolicyNameMapping != nil {
|
||||
in, out := &in.PolicyNameMapping, &out.PolicyNameMapping
|
||||
*out = make(map[string]string, len(*in))
|
||||
for key, val := range *in {
|
||||
(*out)[key] = val
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NBResourceStatus.
|
||||
|
||||
Reference in New Issue
Block a user