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:
@@ -31,12 +31,14 @@ type ServiceReconciler struct {
|
||||
|
||||
const (
|
||||
// ServiceExposeAnnotation Service annotation for exposing
|
||||
ServiceExposeAnnotation = "netbird.io/expose"
|
||||
serviceGroupsAnnotation = "netbird.io/groups"
|
||||
serviceResourceAnnotation = "netbird.io/resource-name"
|
||||
servicePolicyAnnotation = "netbird.io/policy"
|
||||
servicePortsAnnotation = "netbird.io/policy-ports"
|
||||
serviceProtocolAnnotation = "netbird.io/policy-protocol"
|
||||
ServiceExposeAnnotation = "netbird.io/expose"
|
||||
serviceGroupsAnnotation = "netbird.io/groups"
|
||||
serviceResourceAnnotation = "netbird.io/resource-name"
|
||||
servicePolicyAnnotation = "netbird.io/policy"
|
||||
servicePortsAnnotation = "netbird.io/policy-ports"
|
||||
serviceProtocolAnnotation = "netbird.io/policy-protocol"
|
||||
servicePolicySourceGroupsAnnotation = "netbird.io/policy-source-groups"
|
||||
servicePolicyNameAnnotation = "netbird.io/policy-name"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -241,6 +243,23 @@ func (r *ServiceReconciler) applyPolicy(nbResource *netbirdiov1.NBResource, svc
|
||||
}
|
||||
}
|
||||
|
||||
if v, ok := svc.Annotations[servicePolicySourceGroupsAnnotation]; ok {
|
||||
nbResource.Spec.PolicySourceGroups = util.SplitTrim(v, ",")
|
||||
} else {
|
||||
nbResource.Spec.PolicySourceGroups = nil
|
||||
}
|
||||
|
||||
policyFriendlyNameList := util.SplitTrim(svc.Annotations[servicePolicyNameAnnotation], ",")
|
||||
nbResource.Spec.PolicyFriendlyName = make(map[string]string)
|
||||
for _, v := range policyFriendlyNameList {
|
||||
friendlyNameMap := util.SplitTrim(v, ":")
|
||||
if len(friendlyNameMap) != 2 {
|
||||
logger.Info("Invalid number of : found in annotation", "annotation", servicePolicyNameAnnotation, "value", v)
|
||||
continue
|
||||
}
|
||||
nbResource.Spec.PolicyFriendlyName[friendlyNameMap[0]] = friendlyNameMap[1]
|
||||
}
|
||||
|
||||
for _, p := range svc.Spec.Ports {
|
||||
switch p.Protocol {
|
||||
case corev1.ProtocolTCP:
|
||||
|
||||
Reference in New Issue
Block a user