Compare commits
5 Commits
19-create-
...
chore/form
| Author | SHA1 | Date | |
|---|---|---|---|
| 8ec57323fe | |||
| 664e56def8 | |||
| 3f59db13f0 | |||
| a023204d6c | |||
| 72c13517b0 |
@@ -38,9 +38,9 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/webhook"
|
||||
|
||||
unifiv1beta1 "github.com/vegardengen/unifi-network-operator/api/v1beta1"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/config"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/controller"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/unifi"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/config"
|
||||
// +kubebuilder:scaffold:imports
|
||||
)
|
||||
|
||||
|
||||
@@ -42,4 +42,3 @@ func (c *ConfigLoaderType) GetConfig(ctx context.Context, name string) (*corev1.
|
||||
|
||||
return cm, err
|
||||
}
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@ import (
|
||||
"fmt"
|
||||
"net"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"slices"
|
||||
"strconv"
|
||||
"strings"
|
||||
"regexp"
|
||||
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@@ -39,8 +39,8 @@ import (
|
||||
|
||||
goUnifi "github.com/vegardengen/go-unifi/unifi"
|
||||
unifiv1beta1 "github.com/vegardengen/unifi-network-operator/api/v1beta1"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/unifi"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/config"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/unifi"
|
||||
)
|
||||
|
||||
// FirewallGroupReconciler reconciles a FirewallGroup object
|
||||
@@ -122,12 +122,12 @@ func (r *FirewallGroupReconciler) Reconcile(ctx context.Context, req reconcile.R
|
||||
port_type = fields[0]
|
||||
port = fields[1]
|
||||
}
|
||||
if(port_type == "tcp") {
|
||||
if port_type == "tcp" {
|
||||
if !slices.Contains(tcpports, port) {
|
||||
tcpports = append(tcpports, port)
|
||||
}
|
||||
}
|
||||
if(port_type == "udp") {
|
||||
if port_type == "udp" {
|
||||
if !slices.Contains(udpports, port) {
|
||||
tcpports = append(udpports, port)
|
||||
}
|
||||
@@ -162,12 +162,12 @@ func (r *FirewallGroupReconciler) Reconcile(ctx context.Context, req reconcile.R
|
||||
for _, portSpec := range service.Spec.Ports {
|
||||
log.Info(fmt.Sprintf("portSpec: %+v", portSpec))
|
||||
log.Info(fmt.Sprintf("Port: %s %d", strconv.Itoa(int(portSpec.Port)), portSpec.Port))
|
||||
if(portSpec.Protocol == "TCP") {
|
||||
if portSpec.Protocol == "TCP" {
|
||||
if !slices.Contains(tcpports, strconv.Itoa(int(portSpec.Port))) {
|
||||
tcpports = append(tcpports, strconv.Itoa(int(portSpec.Port)))
|
||||
}
|
||||
}
|
||||
if(portSpec.Protocol == "UDP") {
|
||||
if portSpec.Protocol == "UDP" {
|
||||
if !slices.Contains(udpports, strconv.Itoa(int(portSpec.Port))) {
|
||||
udpports = append(udpports, strconv.Itoa(int(portSpec.Port)))
|
||||
}
|
||||
|
||||
@@ -25,8 +25,8 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/log"
|
||||
|
||||
unifiv1beta1 "github.com/vegardengen/unifi-network-operator/api/v1beta1"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/unifi"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/config"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/unifi"
|
||||
)
|
||||
|
||||
// FirewallRuleReconciler reconciles a FirewallRule object
|
||||
@@ -64,6 +64,11 @@ func (r *FirewallRuleReconciler) Reconcile(ctx context.Context, req ctrl.Request
|
||||
defaultNs := cfg.Data["defaultNamespace"]
|
||||
log.Info(defaultNs)
|
||||
|
||||
err = r.UnifiClient.Reauthenticate()
|
||||
if err != nil {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
|
||||
return ctrl.Result{}, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@ package controller
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
@@ -29,8 +29,8 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/log"
|
||||
|
||||
unifiv1beta1 "github.com/vegardengen/unifi-network-operator/api/v1beta1"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/unifi"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/config"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/unifi"
|
||||
)
|
||||
|
||||
// FirewallZoneReconciler reconciles a FirewallZone object
|
||||
@@ -62,7 +62,6 @@ func toKubeName(input string) string {
|
||||
return name
|
||||
}
|
||||
|
||||
|
||||
// +kubebuilder:rbac:groups=unifi.engen.priv.no,resources=firewallzones,verbs=get;list;watch;create;update;patch;delete
|
||||
// +kubebuilder:rbac:groups=unifi.engen.priv.no,resources=firewallzones/status,verbs=get;update;patch
|
||||
// +kubebuilder:rbac:groups=unifi.engen.priv.no,resources=firewallzones/finalizers,verbs=update
|
||||
@@ -87,6 +86,11 @@ func (r *FirewallZoneReconciler) Reconcile(ctx context.Context, req ctrl.Request
|
||||
|
||||
defaultNs := cfg.Data["defaultNamespace"]
|
||||
|
||||
err = r.UnifiClient.Reauthenticate()
|
||||
if err != nil {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
|
||||
var fwzCRDs unifiv1beta1.FirewallZoneList
|
||||
_ = r.List(ctx, &fwzCRDs, client.InNamespace(defaultNs))
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/log"
|
||||
|
||||
unifiv1 "github.com/vegardengen/unifi-network-operator/api/v1beta1"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/unifi"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/config"
|
||||
"github.com/vegardengen/unifi-network-operator/internal/unifi"
|
||||
)
|
||||
|
||||
// NetworkconfigurationReconciler reconciles a Networkconfiguration object
|
||||
@@ -66,6 +66,12 @@ func (r *NetworkconfigurationReconciler) Reconcile(ctx context.Context, req ctrl
|
||||
if err := r.List(ctx, &networkCRDs); err != nil {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
|
||||
err = r.UnifiClient.Reauthenticate()
|
||||
if err != nil {
|
||||
return ctrl.Result{}, err
|
||||
}
|
||||
|
||||
k8sNetworks := make(map[string]*unifiv1.Networkconfiguration)
|
||||
for i := range networkCRDs.Items {
|
||||
log.Info(fmt.Sprintf("Inserting network %s\n", networkCRDs.Items[i].Spec.NetworkID))
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
/* https://github.com/clbx/kube-port-forward-controller */
|
||||
|
||||
package unifi_network_operator_utils
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func isIPv6(ip string) bool {
|
||||
return strings.Contains(ip, ":")
|
||||
}
|
||||
|
||||
func toKubeName(input string) string {
|
||||
// Lowercase the input
|
||||
name := strings.ToLower(input)
|
||||
|
||||
// Replace any non-alphanumeric characters with dashes
|
||||
re := regexp.MustCompile(`[^a-z0-9\-\.]+`)
|
||||
name = re.ReplaceAllString(name, "-")
|
||||
|
||||
// Trim leading and trailing non-alphanumerics
|
||||
name = strings.Trim(name, "-.")
|
||||
|
||||
// Ensure it's not empty and doesn't exceed 253 characters
|
||||
if len(name) == 0 {
|
||||
name = "default"
|
||||
} else if len(name) > 253 {
|
||||
name = name[:253]
|
||||
}
|
||||
|
||||
return name
|
||||
}
|
||||
Reference in New Issue
Block a user