Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
9a5c9fd
Implement Pod BackendPool
georgeedward2000 Jan 9, 2025
e830609
complete implementation CLB ReconcileBackendPools
georgeedward2000 Jan 10, 2025
5e0729d
update getBackendPoolNameForCLBService
georgeedward2000 Jan 10, 2025
e3510f3
complete implementation CLB GetBackendPrivateIPs
georgeedward2000 Jan 10, 2025
66de73a
Update NSG - CLB Load Balancer
georgeedward2000 Jan 17, 2025
3f0f834
Add unit tests for a part of CLB NSG flow + update CLB NSG implementa…
georgeedward2000 Jan 20, 2025
2ff6f2d
update nsg logic for clb + add/refactor tests
georgeedward2000 Jan 27, 2025
807b4d6
Complete testing for Container Load Balancer BackendPool
georgeedward2000 Jan 28, 2025
182d11d
update CLB NSG to support dual-stack rules
georgeedward2000 Jan 30, 2025
e9693c6
add formation flow for clb lb rules
georgeedward2000 Feb 4, 2025
2a45c63
comment typo
georgeedward2000 Feb 4, 2025
e1eb35d
named targetPort is not supported within CLB context
georgeedward2000 Feb 7, 2025
29bb3c8
add unit tests
georgeedward2000 Feb 10, 2025
eae85c9
Implement Pod BackendPool
georgeedward2000 Jan 9, 2025
7737e3b
complete implementation CLB ReconcileBackendPools
georgeedward2000 Jan 10, 2025
b74ed14
update getBackendPoolNameForCLBService
georgeedward2000 Jan 10, 2025
6de9646
complete implementation CLB GetBackendPrivateIPs
georgeedward2000 Jan 10, 2025
0d329fb
Complete testing for Container Load Balancer BackendPool
georgeedward2000 Jan 28, 2025
f52242e
add formation flow for clb lb rules
georgeedward2000 Feb 4, 2025
f51f58c
comment typo
georgeedward2000 Feb 4, 2025
1027221
named targetPort is not supported within CLB context
georgeedward2000 Feb 7, 2025
8f489e7
add unit tests
georgeedward2000 Feb 10, 2025
056ae46
Update NSG - CLB Load Balancer
georgeedward2000 Jan 17, 2025
8e0ad77
Add unit tests for a part of CLB NSG flow + update CLB NSG implementa…
georgeedward2000 Jan 20, 2025
329464c
update nsg logic for clb + add/refactor tests
georgeedward2000 Jan 27, 2025
9e334c0
update CLB NSG to support dual-stack rules
georgeedward2000 Jan 30, 2025
9141356
Update internal/testutil/fixture/azure_managedcluster.go
georgeedward2000 Feb 4, 2025
a0170f1
Merge branch 'clb-backendpool' of https://github.com/david-kow/cloud-…
georgeedward2000 Feb 19, 2025
b2624b4
update error message + return type
georgeedward2000 Feb 19, 2025
aa360af
update error message + return type
georgeedward2000 Feb 19, 2025
55bfee0
Merge branch 'clb-backendpool' of https://github.com/david-kow/cloud-…
georgeedward2000 Feb 19, 2025
f841903
Merge branch 'clb-nsg' of https://github.com/david-kow/cloud-provider…
georgeedward2000 Feb 19, 2025
873212a
Typo
georgeedward2000 Feb 19, 2025
f33f04e
Merge branch 'clb-lb-rules' of https://github.com/david-kow/cloud-pro…
georgeedward2000 Feb 21, 2025
81d5568
extract function + check standardV2 sku
georgeedward2000 Feb 21, 2025
34c9c32
apply DRY by extracting common code in a util function
georgeedward2000 Feb 21, 2025
90d3039
update code + tests for new context: pod cidrs setup through provisio…
georgeedward2000 Feb 24, 2025
9727188
difftracker initial integration (left TODOs)
georgeedward2000 Feb 27, 2025
ac1d5af
1. Updated namings
georgeedward2000 Mar 27, 2025
47c6502
Changes List:
georgeedward2000 Apr 1, 2025
31fbbc7
Changes:
georgeedward2000 Apr 14, 2025
248d01c
Updating namings, add ServiceType to ServicesDataDTO, update tests, r…
georgeedward2000 Apr 17, 2025
ec0944d
Changes:
georgeedward2000 Apr 29, 2025
bdc02d2
updated trigger flow + refactor
georgeedward2000 May 2, 2025
52d99b1
update endpointslice informer flow
georgeedward2000 May 19, 2025
fe09787
Merge remote-tracking branch 'fork/clb-backendpool' into clb-combined…
georgeedward2000 May 19, 2025
5980efe
Merge remote-tracking branch 'fork/clb-lb-rules' into clb-combined-prs
georgeedward2000 May 19, 2025
9f00a1c
Merge remote-tracking branch 'fork/clb-nsg' into clb-combined-prs
georgeedward2000 May 19, 2025
3dfc063
Merge remote-tracking branch 'fork/clb-difftracker' into clb-combined…
georgeedward2000 May 19, 2025
98e59c2
Merge remote-tracking branch 'fork/clb-loadbalancer' into clb-combine…
georgeedward2000 May 19, 2025
f1c703e
update logic to use IsLBBackendPoolTypePodIPAndUseStandardV2LoadBalan…
georgeedward2000 May 19, 2025
823bd59
initial integration + update testing
georgeedward2000 May 20, 2025
eac6384
test EnsureLoadBalancer and EnsureLoadBalancerDeleted for CLB context
georgeedward2000 May 21, 2025
eade66b
WIP - update tests + added debug logs + misc
georgeedward2000 May 26, 2025
8894fd3
implement NRPAPIClientUpdateNRPLocations and NRPAPIClientUpdateNRPSer…
georgeedward2000 Jun 19, 2025
b0ac331
WIP - Added main CLB outbound processing flow and configuration
georgeedward2000 Jul 24, 2025
bcf779b
WIP - Added main CLB outbound processing flow and configuration
georgeedward2000 Jul 24, 2025
cbf74c3
Merge branch 'clb-combined-prs-outbound' of https://github.com/george…
georgeedward2000 Jul 24, 2025
3116fb6
remove file
georgeedward2000 Jul 24, 2025
95e09f4
start background processing worker goroutine
georgeedward2000 Jul 24, 2025
1bc4115
generated azclient.natgatewayclient files
georgeedward2000 Jul 28, 2025
1a468ef
0. Addressed comments
georgeedward2000 Aug 1, 2025
cec3ee5
nil pointer exception issue solution
georgeedward2000 Aug 11, 2025
e3a0392
update instantiation order flow for CLB
georgeedward2000 Aug 12, 2025
9ef2747
Merge branch 'master' into eddie/dev/clb-combined-prs-outbound-synced
Aug 25, 2025
049ecab
feat: implement NAT Gateway and Public IP management functions
Sep 1, 2025
529f8d6
Changes:
georgeedward2000 Sep 15, 2025
f548ae4
checkpoint
georgeedward2000 Sep 16, 2025
c5626e3
wip - checkpoint
georgeedward2000 Sep 18, 2025
e1505e8
Added SGW API locally and generated azclient + created repo within cl…
georgeedward2000 Sep 18, 2025
491e8d9
Added SGW API locally and generated azclient + created repo within cl…
georgeedward2000 Sep 18, 2025
858f06a
Merge remote-tracking branch 'refs/remotes/origin/eddie/dev/clb-combi…
georgeedward2000 Sep 18, 2025
b6077e0
wip - added sku in sgw api
georgeedward2000 Sep 22, 2025
a432779
feat: Add Service Gateway support and refactor NRP service updates
georgeedward2000 Sep 25, 2025
4c07ab3
feat: Implement disassociation of NAT Gateway from Service Gateway an…
georgeedward2000 Sep 25, 2025
fbe2c4f
checkpoint
georgeedward2000 Oct 1, 2025
96425d9
Refactor Service Gateway references to use dynamic resource name
georgeedward2000 Oct 21, 2025
909ebe1
feat: Implement Service Gateway attachment to subnet and ensure defau…
georgeedward2000 Oct 28, 2025
a7dc6ab
Refactor comments and formatting in YAML and inf packages
georgeedward2000 Oct 30, 2025
a6e4f0f
Enhance service gateway existence check and configuration validation
georgeedward2000 Nov 3, 2025
7a28e59
checkpoint: Enhance service gateway existence check and configuration…
georgeedward2000 Nov 19, 2025
83d08cc
wip
georgeedward2000 Nov 25, 2025
ef00f63
feat: Implement orphaned Public IP cleanup in DiffTracker initialization
georgeedward2000 Nov 26, 2025
b9d8ada
Add metrics tracking for service gateway operations and adjust resync…
georgeedward2000 Dec 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,9 @@ _rundir
site/.hugo_build.lock

.kubeconfig/

my-vendor/

# pkg/

# vendor/
8 changes: 6 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ go 1.24.0
godebug default=go1.24

require (
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.0
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.11.0
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v6 v6.4.0
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6 v6.2.0
Expand All @@ -19,7 +19,7 @@ require (
github.com/samber/lo v1.51.0
github.com/spf13/cobra v1.9.1
github.com/spf13/pflag v1.0.7
github.com/stretchr/testify v1.11.0
github.com/stretchr/testify v1.11.1
go.opentelemetry.io/otel v1.37.0
go.opentelemetry.io/otel/exporters/prometheus v0.59.1
go.opentelemetry.io/otel/metric v1.37.0
Expand Down Expand Up @@ -139,3 +139,7 @@ require (
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
)

replace github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6 => ./my-vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6

replace sigs.k8s.io/cloud-provider-azure/pkg/azclient => /home/enechitoaia/cloud-provider-azure/pkg/azclient
12 changes: 4 additions & 8 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY=
cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.0 h1:ci6Yd6nysBRLEodoziB6ah1+YOzZbZk+NYneoA6q+6E=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.0/go.mod h1:QyVsSSN64v5TGltphKLQ2sQxe4OBQg0J1eKRcVBnfgE=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 h1:5YTBM8QDVIBN3sxBil89WfdAAqDZbyJTgh688DSxX5w=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1/go.mod h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.11.0 h1:MhRfI58HblXzCtWEZCO0feHs8LweePB3s90r7WaR1KU=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.11.0/go.mod h1:okZ+ZURbArNdlJ+ptXoyHNuOETzOl1Oww19rm8I2WLA=
github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY=
Expand All @@ -28,8 +28,6 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/managementgroups/armmanage
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/managementgroups/armmanagementgroups v1.0.0/go.mod h1:mLfWfj8v3jfWKsL9G4eoBoXVcsqcIUTapmdKy7uGOp0=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/msi/armmsi v1.2.0 h1:z4YeiSXxnUI+PqB46Yj6MZA3nwb1CcJIkEMDrzUd8Cs=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/msi/armmsi v1.2.0/go.mod h1:rko9SzMxcMk0NJsNAxALEGaTYyy79bNRwxgJfrH0Spw=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6 v6.2.0 h1:HYGD75g0bQ3VO/Omedm54v4LrD3B1cGImuRF3AJ5wLo=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6 v6.2.0/go.mod h1:ulHyBFJOI0ONiRL4vcJTmS7rx18jQQlEPmAgo80cRdM=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns v1.3.0 h1:yzrctSl9GMIQ5lHu7jc8olOsGjWDCsBpJhWqfGa/YIM=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns v1.3.0/go.mod h1:GE4m0rnnfwLGX0Y9A9A25Zx5N/90jneT5ABevqzhuFQ=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0 h1:Dd+RhdJn0OTtVGaeDLZpcumkIVCtA/3/Fo42+eoYvVM=
Expand Down Expand Up @@ -210,8 +208,8 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.11.0 h1:ib4sjIrwZKxE5u/Japgo/7SJV3PvgjGiRNAvTVGqQl8=
github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE=
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
Expand Down Expand Up @@ -369,8 +367,6 @@ k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
sigs.k8s.io/cloud-provider-azure/pkg/azclient v0.9.1 h1:9N7Pdu3zOyO0W1iE44MYK9BtdQ0Yq2kfljPu3KX9AVc=
sigs.k8s.io/cloud-provider-azure/pkg/azclient v0.9.1/go.mod h1:93tr4zarMRObuc6/KEspD+22ZTg7JOC7IDq0IJwhpv4=
sigs.k8s.io/cloud-provider-azure/pkg/azclient/cache v0.8.1 h1:6NUMX5yAKB+Z3UTnhjl8v0XVNylg3rGAvwHTXiKOZts=
sigs.k8s.io/cloud-provider-azure/pkg/azclient/cache v0.8.1/go.mod h1:bNxkiHpaz+q5p86V2mxVmxEtmnjJaprSJNHVUo5zeRo=
sigs.k8s.io/cloud-provider-azure/pkg/azclient/configloader v0.8.2 h1:rxDNMKj2Y1XVMMaAw4vl1IKZHiHTkYqJnXvF4HroSrI=
Expand Down
36 changes: 36 additions & 0 deletions internal/testutil/fixture/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,42 @@ func (f *KubernetesServiceFixture) WithIngressIPs(ips []string) *KubernetesServi
return f
}

func (f *KubernetesServiceFixture) WithOnlyTCPPorts() *KubernetesServiceFixture {
f.svc.Spec.Ports = []v1.ServicePort{
{
Name: "http",
Protocol: v1.ProtocolTCP,
Port: 80,
NodePort: 50080,
},
{
Name: "dns-tcp",
Protocol: v1.ProtocolTCP,
Port: 53,
NodePort: 50053,
},
{
Name: "https",
Protocol: v1.ProtocolTCP,
Port: 443,
NodePort: 50443,
},
}
return f
}

func (f *KubernetesServiceFixture) WithOnlyUDPPorts() *KubernetesServiceFixture {
f.svc.Spec.Ports = []v1.ServicePort{
{
Name: "dns-udp",
Protocol: v1.ProtocolUDP,
Port: 53,
NodePort: 50053,
},
}
return f
}

func (f *KubernetesServiceFixture) Build() v1.Service {
return f.svc
}
1 change: 1 addition & 0 deletions pkg/azclient/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ generatecode: build ## Generate client
$(TYPESCAFFOLD) --package github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6 --package-alias armnetwork --resource PrivateLinkService --client-name PrivateLinkServicesClient --verbs get,createorupdate,delete,list --expand --ratelimitkey privateLinkServiceRateLimit
$(TYPESCAFFOLD) --package github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6 --package-alias armnetwork --resource IPGroup --client-name IPGroupsClient --verbs get,createorupdate,delete,listbyrg --expand --ratelimitkey ipGroupRateLimit
$(TYPESCAFFOLD) --package github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6 --package-alias armnetwork --resource NatGateway --client-name NatGatewaysClient --verbs get,createorupdate,delete,list --expand --ratelimitkey natGatewayRateLimit
$(TYPESCAFFOLD) --package github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6 --package-alias armnetwork --resource ServiceGateway --client-name ServiceGatewaysClient --verbs get,createorupdate,delete,list --expand --ratelimitkey serviceGatewayRateLimit
$(TYPESCAFFOLD) --package github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage --package-alias armstorage --resource Account --client-name AccountsClient --verbs listbyrg --expand --ratelimitkey storageAccountRateLimit
$(TYPESCAFFOLD) --package github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns --package-alias armprivatedns --resource PrivateZone --client-name PrivateZonesClient --verbs get,createorupdate --ratelimitkey privateDNSRateLimit
$(TYPESCAFFOLD) --package github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns --package-alias armprivatedns --resource PrivateZone --subresource VirtualNetworkLink --client-name VirtualNetworkLinksClient --verbs get,createorupdate --ratelimitkey virtualNetworkRateLimit
Expand Down
2 changes: 2 additions & 0 deletions pkg/azclient/factory.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 33 additions & 0 deletions pkg/azclient/factory_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions pkg/azclient/factory_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 6 additions & 4 deletions pkg/azclient/go.mod
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
module sigs.k8s.io/cloud-provider-azure/pkg/azclient

go 1.23.0
go 1.24.0

toolchain go1.24.1

require (
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.1
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/authorization/armauthorization/v2 v2.2.0
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v6 v6.4.0
Expand All @@ -23,7 +23,7 @@ require (
github.com/google/uuid v1.6.0
github.com/onsi/ginkgo/v2 v2.23.4
github.com/onsi/gomega v1.37.0
github.com/stretchr/testify v1.10.0
github.com/stretchr/testify v1.11.1
go.opentelemetry.io/otel v1.37.0
go.opentelemetry.io/otel/metric v1.37.0
go.uber.org/mock v0.6.0
Expand All @@ -37,7 +37,7 @@ require (
)

require (
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
Expand All @@ -59,3 +59,5 @@ require (
golang.org/x/tools v0.36.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6 => ../../my-vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6
Loading