chore: change Route crd structure

This commit is contained in:
Jonas Kaninda
2024-11-29 08:04:30 +01:00
parent 614c05b283
commit 3bd4b68925
11 changed files with 195 additions and 237 deletions

View File

@@ -2,6 +2,7 @@ package controller
import (
"context"
"github.com/jinzhu/copier"
"slices"
"strings"
@@ -20,8 +21,10 @@ func gatewayConfig(r GatewayReconciler, ctx context.Context, req ctrl.Request, g
logger := log.FromContext(ctx)
gomaConfig := &GatewayConfig{}
gomaConfig.Version = GatewayConfigVersion
gomaConfig.Gateway = mapToGateway(gateway.Spec)
err := copier.Copy(&gomaConfig.Gateway, &gateway.Spec.Server)
if err != nil {
logger.Error(err, "failed to copy gateway spec")
}
// attach cert files
if len(gateway.Spec.Server.TlsSecretName) != 0 {
gomaConfig.Gateway.SSLKeyFile = TLSKeyFile
@@ -44,12 +47,16 @@ func gatewayConfig(r GatewayReconciler, ctx context.Context, req ctrl.Request, g
for _, route := range routes.Items {
logger.Info("Found Route", "Name", route.Name)
if route.Spec.Gateway == gateway.Name {
gomaConfig.Gateway.Routes = append(gomaConfig.Gateway.Routes, route.Spec.Routes...)
for _, rt := range route.Spec.Routes {
middlewareNames = append(middlewareNames, rt.Middlewares...)
logger.Info("Found Route", "Name", route.Name)
rt := Route{}
err := copier.Copy(&rt, &route.Spec)
if err != nil {
logger.Error(err, "Failed to deep copy Route", "Name", route.Name)
return *gomaConfig
}
rt.Name = route.Name
gomaConfig.Gateway.Routes = append(gomaConfig.Gateway.Routes, rt)
middlewareNames = append(middlewareNames, rt.Middlewares...)
}
}
for _, mid := range middlewares.Items {
@@ -66,7 +73,10 @@ func updateGatewayConfig(r RouteReconciler, ctx context.Context, req ctrl.Reques
logger := log.FromContext(ctx)
gomaConfig := &GatewayConfig{}
gomaConfig.Version = GatewayConfigVersion
gomaConfig.Gateway = mapToGateway(gateway.Spec)
err := copier.Copy(&gomaConfig.Gateway, &gateway.Spec.Server)
if err != nil {
logger.Error(err, "failed to copy gateway spec")
}
// attach cert files
if len(gateway.Spec.Server.TlsSecretName) != 0 {
gomaConfig.Gateway.SSLKeyFile = TLSKeyFile
@@ -88,12 +98,15 @@ func updateGatewayConfig(r RouteReconciler, ctx context.Context, req ctrl.Reques
for _, route := range routes.Items {
logger.Info("Found Route", "Name", route.Name)
if route.Spec.Gateway == gateway.Name {
gomaConfig.Gateway.Routes = append(gomaConfig.Gateway.Routes, route.Spec.Routes...)
for _, rt := range route.Spec.Routes {
middlewareNames = append(middlewareNames, rt.Middlewares...)
rt := Route{}
err := copier.Copy(&rt, &route.Spec)
if err != nil {
logger.Error(err, "Failed to deep copy Route", "Name", route.Name)
return false, err
}
rt.Name = route.Name
gomaConfig.Gateway.Routes = append(gomaConfig.Gateway.Routes, rt)
middlewareNames = append(middlewareNames, rt.Middlewares...)
}
}
for _, mid := range middlewares.Items {