From 5297faf2cc9d7a7cb9e3cd6abfaddb7bf1ed9598 Mon Sep 17 00:00:00 2001 From: Ed Cooke Date: Mon, 13 Apr 2026 16:05:38 -0600 Subject: [PATCH] Read the veccgslb in the defaultgslbmanager --- .../Default/DefaultGslbManagerTests.cs | 11 ++++++- .../Services/Default/DefaultGslbManager.cs | 30 ++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/Cyclops.MultiCluster.Tests/Services/Default/DefaultGslbManagerTests.cs b/src/Cyclops.MultiCluster.Tests/Services/Default/DefaultGslbManagerTests.cs index f942708..afd67cb 100644 --- a/src/Cyclops.MultiCluster.Tests/Services/Default/DefaultGslbManagerTests.cs +++ b/src/Cyclops.MultiCluster.Tests/Services/Default/DefaultGslbManagerTests.cs @@ -23,8 +23,13 @@ public async Task GetGslbsAsync_ReturnsArray() // Arrange var gslb1 = new V1Gslb { Metadata = new k8s.Models.V1ObjectMeta { Name = "gslb1" } }; var gslb2 = new V1Gslb { Metadata = new k8s.Models.V1ObjectMeta { Name = "gslb2" } }; + var veccGslb1 = new V1VeccGslb { Metadata = new k8s.Models.V1ObjectMeta { Name = "veccgslb1" } }; + var veccGslb2 = new V1VeccGslb { Metadata = new k8s.Models.V1ObjectMeta { Name = "veccgslb2" } }; + _clientMock.Setup(x => x.ListAsync(null)) .ReturnsAsync(new List { gslb1, gslb2 }); + _clientMock.Setup(x => x.ListAsync(null)) + .ReturnsAsync(new List { veccGslb1, veccGslb2 }); var manager = new DefaultGslbManager(_loggerMock.Object, _clientMock.Object); @@ -32,9 +37,11 @@ public async Task GetGslbsAsync_ReturnsArray() var result = await manager.GetGslbsAsync(); // Assert - Assert.Equal(2, result.Length); + Assert.Equal(4, result.Length); Assert.Equal("gslb1", result[0].Metadata.Name); Assert.Equal("gslb2", result[1].Metadata.Name); + Assert.Equal("veccgslb1", result[2].Metadata.Name); + Assert.Equal("veccgslb2", result[3].Metadata.Name); } [Fact] @@ -43,6 +50,8 @@ public async Task GetGslbsAsync_EmptyList_ReturnsEmptyArray() // Arrange _clientMock.Setup(x => x.ListAsync(null)) .ReturnsAsync(new List()); + _clientMock.Setup(x => x.ListAsync(null)) + .ReturnsAsync(new List()); var manager = new DefaultGslbManager(_loggerMock.Object, _clientMock.Object); diff --git a/src/Cyclops.MultiCluster/Services/Default/DefaultGslbManager.cs b/src/Cyclops.MultiCluster/Services/Default/DefaultGslbManager.cs index 2a20fee..8c99105 100644 --- a/src/Cyclops.MultiCluster/Services/Default/DefaultGslbManager.cs +++ b/src/Cyclops.MultiCluster/Services/Default/DefaultGslbManager.cs @@ -1,5 +1,6 @@ using KubeOps.KubernetesClient; using Cyclops.MultiCluster.Models.K8sEntities; +using k8s.Models; namespace Cyclops.MultiCluster.Services.Default { @@ -18,7 +19,34 @@ public async Task GetGslbsAsync() { _logger.LogInformation("Getting all gslb resources in the cluster"); var resources = await _client.ListAsync(); - return resources.ToArray(); + var veccGslbs = await _client.ListAsync(); + var allResources = resources.ToList(); + allResources.AddRange(veccGslbs.Select(v => ToV1Gslb(v))); + return allResources.ToArray(); + } + + public static V1Gslb ToV1Gslb(V1VeccGslb veccGslb) + { + return new V1Gslb + { + ApiVersion = veccGslb.ApiVersion, + Kind = "Gslb", + Metadata = veccGslb.Metadata, + Spec = new V1Gslb.GslbSpec + { + Hostnames=veccGslb.Hostnames, + IPOverrides = veccGslb.IPOverrides, + ObjectReference = new V1Gslb.V1ObjectReference + { + Kind = veccGslb.ObjectReference.Kind == V1VeccGslb.V1ObjectReference.ReferenceType.Ingress + ? V1Gslb.V1ObjectReference.ReferenceType.Ingress + : V1Gslb.V1ObjectReference.ReferenceType.Service, + Name = veccGslb.Name(), + }, + Priority = veccGslb.Priority, + Weight = veccGslb.Weight + } + }; } } }