mirror of
https://github.com/netbirdio/kubernetes-operator.git
synced 2026-05-22 17:11:40 -07:00
Set Go toolchain to v1.26.1 and apply modernizations (#138)
This change makes sure that we use the latest Go version when building and applies some modernization fixes.
This commit is contained in:
+1
-1
@@ -137,7 +137,7 @@ func main() {
|
||||
|
||||
defaultLabelsMap := make(map[string]string)
|
||||
if defaultLabels != "" {
|
||||
for _, s := range strings.Split(defaultLabels, ",") {
|
||||
for s := range strings.SplitSeq(defaultLabels, ",") {
|
||||
kv := strings.Split(s, "=")
|
||||
if len(kv) != 2 {
|
||||
panic(fmt.Errorf("invalid label format: %s", s))
|
||||
|
||||
@@ -2,6 +2,8 @@ module github.com/netbirdio/kubernetes-operator
|
||||
|
||||
go 1.25.0
|
||||
|
||||
toolchain go1.26.1
|
||||
|
||||
require (
|
||||
github.com/go-logr/logr v1.4.3
|
||||
github.com/google/uuid v1.6.0
|
||||
|
||||
@@ -68,9 +68,9 @@ func (r *NBPolicyReconciler) getResources(ctx context.Context, nbPolicy *netbird
|
||||
// mapResources map each NBResource ports and protocols into one object to generate the policy
|
||||
// returns map[protocol] => ports, destination group IDs
|
||||
func (r *NBPolicyReconciler) mapResources(ctx context.Context, nbPolicy *netbirdiov1.NBPolicy, resources []netbirdiov1.NBResource, logger logr.Logger) (map[string][]int32, []string, error) {
|
||||
portMapping := map[string]map[int32]interface{}{
|
||||
protocolTCP: make(map[int32]interface{}),
|
||||
protocolUDP: make(map[int32]interface{}),
|
||||
portMapping := map[string]map[int32]any{
|
||||
protocolTCP: make(map[int32]any),
|
||||
protocolUDP: make(map[int32]any),
|
||||
}
|
||||
groups, err := r.groupNamesToIDs(ctx, nbPolicy.Spec.DestinationGroups, logger)
|
||||
if err != nil {
|
||||
@@ -85,11 +85,11 @@ func (r *NBPolicyReconciler) mapResources(ctx context.Context, nbPolicy *netbird
|
||||
}
|
||||
resourcePolicies := util.SplitTrim(*resource.Status.PolicyName, ",")
|
||||
|
||||
if generatedBy == "" && !util.Contains(resourcePolicies, nbPolicy.Name) {
|
||||
if generatedBy == "" && !slices.Contains(resourcePolicies, nbPolicy.Name) {
|
||||
continue
|
||||
}
|
||||
|
||||
if generatedBy != "" && !util.Contains(resourcePolicies, strings.ReplaceAll(nbPolicy.Name, "-"+generatedBy, "")) {
|
||||
if generatedBy != "" && !slices.Contains(resourcePolicies, strings.ReplaceAll(nbPolicy.Name, "-"+generatedBy, "")) {
|
||||
continue
|
||||
}
|
||||
// Groups
|
||||
@@ -282,7 +282,7 @@ func (r *NBPolicyReconciler) syncPolicy(ctx context.Context, nbPolicy *netbirdio
|
||||
return requeue, errUnknownProtocol
|
||||
}
|
||||
|
||||
if len(nbPolicy.Spec.Protocols) > 0 && !util.Contains(nbPolicy.Spec.Protocols, protocol) {
|
||||
if len(nbPolicy.Spec.Protocols) > 0 && !slices.Contains(nbPolicy.Spec.Protocols, protocol) {
|
||||
if policyID != nil {
|
||||
logger.Info("Deleting protocol policy as NBPolicy has restricted protocols", "protocol", protocol)
|
||||
err := r.netbird.Policies.Delete(ctx, *policyID)
|
||||
@@ -363,7 +363,7 @@ func (r *NBPolicyReconciler) handleDelete(ctx context.Context, nbPolicy *netbird
|
||||
}
|
||||
nbPolicy.Status.UDPPolicyID = nil
|
||||
}
|
||||
if util.Contains(nbPolicy.Finalizers, "netbird.io/cleanup") {
|
||||
if slices.Contains(nbPolicy.Finalizers, "netbird.io/cleanup") {
|
||||
nbPolicy.Finalizers = util.Without(nbPolicy.Finalizers, "netbird.io/cleanup")
|
||||
err := r.Client.Update(ctx, nbPolicy)
|
||||
if err != nil {
|
||||
|
||||
@@ -217,7 +217,7 @@ func (r *NBResourceReconciler) handlePolicyAddUpdate(ctx context.Context, req ct
|
||||
return err
|
||||
}
|
||||
|
||||
if !util.Contains(nbPolicy.Status.ManagedServiceList, req.NamespacedName.String()) {
|
||||
if !slices.Contains(nbPolicy.Status.ManagedServiceList, req.NamespacedName.String()) {
|
||||
nbPolicy.Status.ManagedServiceList = append(nbPolicy.Status.ManagedServiceList, req.NamespacedName.String())
|
||||
updatePolicyStatus = true
|
||||
}
|
||||
@@ -293,7 +293,7 @@ func (r *NBResourceReconciler) handlePolicyAddUpdate(ctx context.Context, req ct
|
||||
|
||||
func (r *NBResourceReconciler) handlePolicyDelete(ctx context.Context, req ctrl.Request, nbResource *netbirdiov1.NBResource, specPolicies []string, policy string, logger logr.Logger) error {
|
||||
var nbPolicy netbirdiov1.NBPolicy
|
||||
if !util.Contains(specPolicies, policy) {
|
||||
if !slices.Contains(specPolicies, policy) {
|
||||
kubeName := policy
|
||||
if v, ok := nbResource.Status.PolicyNameMapping[policy]; ok {
|
||||
kubeName = v
|
||||
@@ -314,7 +314,7 @@ func (r *NBResourceReconciler) handlePolicyDelete(ctx context.Context, req ctrl.
|
||||
}
|
||||
|
||||
delete(nbResource.Status.PolicyNameMapping, policy)
|
||||
} else if util.Contains(nbPolicy.Status.ManagedServiceList, req.NamespacedName.String()) {
|
||||
} else if slices.Contains(nbPolicy.Status.ManagedServiceList, req.NamespacedName.String()) {
|
||||
nbPolicy.Status.ManagedServiceList = util.Without(nbPolicy.Status.ManagedServiceList, req.NamespacedName.String())
|
||||
nbPolicy.Status.LastUpdatedAt = &v1.Time{Time: time.Now()}
|
||||
err := r.Client.Status().Update(ctx, &nbPolicy)
|
||||
@@ -364,7 +364,7 @@ func (r *NBResourceReconciler) handlePolicy(ctx context.Context, req ctrl.Reques
|
||||
// handleGroupUpdate update network resource groups
|
||||
func (r *NBResourceReconciler) handleGroupUpdate(ctx context.Context, nbResource *netbirdiov1.NBResource, groupIDs []string, resource *api.NetworkResource, logger logr.Logger) error {
|
||||
// Handle possible updated group IDs
|
||||
groupIDMap := make(map[string]interface{})
|
||||
groupIDMap := make(map[string]any)
|
||||
for _, g := range groupIDs {
|
||||
groupIDMap[g] = nil
|
||||
}
|
||||
@@ -478,7 +478,7 @@ func (r *NBResourceReconciler) handleGroups(ctx context.Context, req ctrl.Reques
|
||||
if ownerIndex == -1 {
|
||||
continue
|
||||
}
|
||||
if util.Contains(nbResource.Spec.Groups, g.Spec.Name) {
|
||||
if slices.Contains(nbResource.Spec.Groups, g.Spec.Name) {
|
||||
continue
|
||||
}
|
||||
if len(g.OwnerReferences) > 1 {
|
||||
@@ -603,7 +603,7 @@ func (r *NBResourceReconciler) handleDelete(ctx context.Context, req ctrl.Reques
|
||||
return err
|
||||
}
|
||||
|
||||
if !errors.IsNotFound(err) && util.Contains(nbPolicy.Status.ManagedServiceList, req.NamespacedName.String()) {
|
||||
if !errors.IsNotFound(err) && slices.Contains(nbPolicy.Status.ManagedServiceList, req.NamespacedName.String()) {
|
||||
nbPolicy.Status.ManagedServiceList = util.Without(nbPolicy.Status.ManagedServiceList, req.NamespacedName.String())
|
||||
nbPolicy.Status.LastUpdatedAt = &v1.Time{Time: time.Now()}
|
||||
err = r.Client.Status().Update(ctx, &nbPolicy)
|
||||
|
||||
@@ -3,6 +3,8 @@ package controller
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"maps"
|
||||
"slices"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -123,9 +125,7 @@ func (r *NBRoutingPeerReconciler) handleDeployment(ctx context.Context, req ctrl
|
||||
}
|
||||
|
||||
labels := r.DefaultLabels
|
||||
for k, v := range nbrp.Spec.Labels {
|
||||
labels[k] = v
|
||||
}
|
||||
maps.Copy(labels, nbrp.Spec.Labels)
|
||||
podLabels := labels
|
||||
podLabels["app.kubernetes.io/name"] = "netbird-router"
|
||||
|
||||
@@ -617,7 +617,7 @@ func (r *NBRoutingPeerReconciler) handleDelete(ctx context.Context, req ctrl.Req
|
||||
}
|
||||
}
|
||||
|
||||
if nbGroup.Spec.Name != "" && util.Contains(nbGroup.Finalizers, "netbird.io/routing-peer-cleanup") {
|
||||
if nbGroup.Spec.Name != "" && slices.Contains(nbGroup.Finalizers, "netbird.io/routing-peer-cleanup") {
|
||||
nbGroup.Finalizers = util.Without(nbGroup.Finalizers, "netbird.io/routing-peer-cleanup")
|
||||
logger.Info("Removing netbird.io/routing-peer-cleanup finalizer NBGroup", "namespace", nbGroup.Namespace, "name", nbGroup.Name)
|
||||
err = r.Client.Update(ctx, &nbGroup)
|
||||
|
||||
@@ -3,6 +3,7 @@ package controller
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -96,7 +97,7 @@ func (r *ServiceReconciler) hideService(ctx context.Context, req ctrl.Request, s
|
||||
}
|
||||
}
|
||||
|
||||
if util.Contains(svc.Finalizers, "netbird.io/cleanup") {
|
||||
if slices.Contains(svc.Finalizers, "netbird.io/cleanup") {
|
||||
svc.Finalizers = util.Without(svc.Finalizers, "netbird.io/cleanup")
|
||||
err := r.Client.Update(ctx, &svc)
|
||||
if err != nil {
|
||||
@@ -115,7 +116,7 @@ func (r *ServiceReconciler) exposeService(ctx context.Context, req ctrl.Request,
|
||||
routerNamespace = req.Namespace
|
||||
}
|
||||
|
||||
if !util.Contains(svc.Finalizers, "netbird.io/cleanup") {
|
||||
if !slices.Contains(svc.Finalizers, "netbird.io/cleanup") {
|
||||
svc.Finalizers = append(svc.Finalizers, "netbird.io/cleanup")
|
||||
err := r.Client.Update(ctx, &svc)
|
||||
if err != nil {
|
||||
@@ -196,7 +197,7 @@ func (r *ServiceReconciler) reconcileNBResource(nbResource *netbirdiov1.NBResour
|
||||
if v, ok := svc.Annotations[serviceGroupsAnnotation]; ok {
|
||||
//nolint:prealloc
|
||||
groups = nil
|
||||
for _, g := range strings.Split(v, ",") {
|
||||
for g := range strings.SplitSeq(v, ",") {
|
||||
groups = append(groups, strings.TrimSpace(g))
|
||||
}
|
||||
}
|
||||
@@ -237,7 +238,7 @@ func (r *ServiceReconciler) applyPolicy(nbResource *netbirdiov1.NBResource, svc
|
||||
}
|
||||
var filterPorts []int32
|
||||
if v, ok := svc.Annotations[servicePortsAnnotation]; ok {
|
||||
for _, v := range strings.Split(v, ",") {
|
||||
for v := range strings.SplitSeq(v, ",") {
|
||||
port, err := strconv.ParseInt(v, 10, 64)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -267,23 +268,23 @@ func (r *ServiceReconciler) applyPolicy(nbResource *netbirdiov1.NBResource, svc
|
||||
for _, p := range svc.Spec.Ports {
|
||||
switch p.Protocol {
|
||||
case corev1.ProtocolTCP:
|
||||
if (len(filterPorts) > 0 && !util.Contains(filterPorts, p.Port)) || (len(filterProtocols) > 0 && !util.Contains(filterProtocols, "tcp")) {
|
||||
if util.Contains(nbResource.Spec.TCPPorts, p.Port) {
|
||||
if (len(filterPorts) > 0 && !slices.Contains(filterPorts, p.Port)) || (len(filterProtocols) > 0 && !slices.Contains(filterProtocols, "tcp")) {
|
||||
if slices.Contains(nbResource.Spec.TCPPorts, p.Port) {
|
||||
nbResource.Spec.TCPPorts = util.Without(nbResource.Spec.TCPPorts, p.Port)
|
||||
}
|
||||
continue
|
||||
}
|
||||
if !util.Contains(nbResource.Spec.TCPPorts, p.Port) {
|
||||
if !slices.Contains(nbResource.Spec.TCPPorts, p.Port) {
|
||||
nbResource.Spec.TCPPorts = append(nbResource.Spec.TCPPorts, p.Port)
|
||||
}
|
||||
case corev1.ProtocolUDP:
|
||||
if (len(filterPorts) > 0 && !util.Contains(filterPorts, p.Port)) || (len(filterProtocols) > 0 && !util.Contains(filterProtocols, "udp")) {
|
||||
if util.Contains(nbResource.Spec.UDPPorts, p.Port) {
|
||||
if (len(filterPorts) > 0 && !slices.Contains(filterPorts, p.Port)) || (len(filterProtocols) > 0 && !slices.Contains(filterProtocols, "udp")) {
|
||||
if slices.Contains(nbResource.Spec.UDPPorts, p.Port) {
|
||||
nbResource.Spec.UDPPorts = util.Without(nbResource.Spec.UDPPorts, p.Port)
|
||||
}
|
||||
continue
|
||||
}
|
||||
if !util.Contains(nbResource.Spec.UDPPorts, p.Port) {
|
||||
if !slices.Contains(nbResource.Spec.UDPPorts, p.Port) {
|
||||
nbResource.Spec.UDPPorts = append(nbResource.Spec.UDPPorts, p.Port)
|
||||
}
|
||||
default:
|
||||
|
||||
+1
-11
@@ -2,16 +2,6 @@ package util
|
||||
|
||||
import "strings"
|
||||
|
||||
// Contains return if y is in slice x
|
||||
func Contains[T comparable](x []T, y T) bool {
|
||||
for _, v := range x {
|
||||
if v == y {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Without return all of x in same order without y
|
||||
func Without[T comparable](x []T, y T) []T {
|
||||
var ret []T
|
||||
@@ -29,7 +19,7 @@ func Equivalent[T comparable](x, y []T) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
mp := make(map[T]interface{})
|
||||
mp := make(map[T]any)
|
||||
for _, v := range x {
|
||||
mp[v] = nil
|
||||
}
|
||||
|
||||
+2
-2
@@ -153,8 +153,8 @@ func LoadImageToKindClusterWithName(name string) error {
|
||||
// according to line breakers, and ignores the empty elements in it.
|
||||
func GetNonEmptyLines(output string) []string {
|
||||
var res []string
|
||||
elements := strings.Split(output, "\n")
|
||||
for _, element := range elements {
|
||||
elements := strings.SplitSeq(output, "\n")
|
||||
for element := range elements {
|
||||
if element != "" {
|
||||
res = append(res, element)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user