Skip to content

Commit c57163f

Browse files
snehachhabriatyler-lloydsean-jeffrey
authored
Cherry pick of overlay cni and vulnerabilities fix to release branch (#1709)
* fix: overlay should check NNC label (#1707) * fix: overlay should check NNC label * Handle more Overlay CNI edge cases - GetSubnet will retry on errors. - Subnet CIDR can be read from address prefix or address prefixes. - Extra unit tests. --------- Co-authored-by: Sean Jeffrey <[email protected]> * Update packages that have vulnerabilities (#1708) * update packages that had vulnerabilities * update more packages --------- Co-authored-by: Tyler Lloyd <[email protected]> Co-authored-by: Sean Jeffrey <[email protected]>
1 parent d74d381 commit c57163f

File tree

7 files changed

+295
-634
lines changed

7 files changed

+295
-634
lines changed

go.mod

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ require (
3131
)
3232

3333
replace (
34-
github.com/golang-jwt/jwt/v4 => github.com/golang-jwt/jwt/v4 v4.5.1
34+
github.com/golang-jwt/jwt/v4 => github.com/golang-jwt/jwt/v4 v4.5.2
35+
github.com/golang-jwt/jwt/v5 => github.com/golang-jwt/jwt/v5 v5.2.2
3536
golang.org/x/crypto => golang.org/x/crypto v0.31.0
36-
golang.org/x/net => golang.org/x/net v0.33.0
37+
golang.org/x/net => golang.org/x/net v0.38.0
3738
)
3839

3940
require (
@@ -82,12 +83,12 @@ require (
8283
github.com/prometheus/common v0.61.0 // indirect
8384
github.com/prometheus/procfs v0.15.1 // indirect
8485
github.com/x448/float16 v0.8.4 // indirect
85-
golang.org/x/crypto v0.32.0 // indirect
86+
golang.org/x/crypto v0.36.0 // indirect
8687
golang.org/x/net v0.34.0 // indirect
8788
golang.org/x/oauth2 v0.24.0 // indirect
88-
golang.org/x/sys v0.29.0 // indirect
89-
golang.org/x/term v0.27.0 // indirect
90-
golang.org/x/text v0.21.0 // indirect
89+
golang.org/x/sys v0.31.0 // indirect
90+
golang.org/x/term v0.30.0 // indirect
91+
golang.org/x/text v0.23.0 // indirect
9192
golang.org/x/time v0.8.0 // indirect
9293
golang.org/x/tools v0.28.0 // indirect
9394
google.golang.org/protobuf v1.36.1 // indirect

go.sum

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,10 @@ github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1v
8484
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
8585
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
8686
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
87-
github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo=
88-
github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
89-
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
90-
github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
87+
github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI=
88+
github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
89+
github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8=
90+
github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
9191
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
9292
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
9393
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
@@ -209,8 +209,8 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91
209209
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
210210
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
211211
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
212-
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
213-
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
212+
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
213+
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
214214
golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE=
215215
golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
216216
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -222,6 +222,7 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
222222
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
223223
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
224224
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
225+
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
225226
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
226227
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
227228
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -234,15 +235,17 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
234235
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
235236
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
236237
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
237-
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
238-
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
238+
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
239+
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
239240
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
240-
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
241241
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
242+
golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
243+
golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
242244
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
243245
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
244-
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
245246
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
247+
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
248+
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
246249
golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg=
247250
golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
248251
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

pkg/azure/client.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,10 +295,15 @@ func (az *azClient) ApplyRouteTable(subnetID string, routeTableID string) error
295295
return nil
296296
}
297297

298-
func (az *azClient) GetSubnet(subnetID string) (n.Subnet, error) {
299-
_, subnetResourceGroup, subnetVnetName, subnetName := ParseSubResourceID(subnetID)
300-
subnet, err := az.subnetsClient.Get(az.ctx, string(subnetResourceGroup), string(subnetVnetName), string(subnetName), "")
301-
return subnet, err
298+
func (az *azClient) GetSubnet(subnetID string) (subnet n.Subnet, err error) {
299+
_ = utils.Retry(retryCount, retryPause,
300+
func() (utils.Retriable, error) {
301+
_, subnetResourceGroup, subnetVnetName, subnetName := ParseSubResourceID(subnetID)
302+
subnet, err = az.subnetsClient.Get(az.ctx, string(subnetResourceGroup), string(subnetVnetName), string(subnetName), "")
303+
return utils.Retriable(true), err
304+
})
305+
306+
return
302307
}
303308

304309
// DeployGatewayWithVnet creates Application Gateway within the specifid VNet. Implements AzClient interface.

pkg/cni/overlay.go

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
overlayextensionconfig_v1alpha1 "github.com/Azure/azure-container-networking/crd/overlayextensionconfig/api/v1alpha1"
1010
"github.com/pkg/errors"
1111
apierrors "k8s.io/apimachinery/pkg/api/errors"
12-
meta "k8s.io/apimachinery/pkg/api/meta"
12+
"k8s.io/apimachinery/pkg/api/meta"
1313
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1414
"k8s.io/klog/v2"
1515
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -22,6 +22,9 @@ const (
2222
)
2323

2424
const (
25+
// PodNetworkTypeLabel is the name of the label on NNCs to tell what mode the network is in.
26+
PodNetworkTypeLabel = "kubernetes.azure.com/podnetwork-type"
27+
2528
// OverlayExtensionConfigName is the name of the overlay extension config resource
2629
OverlayExtensionConfigName = "agic-overlay-extension-config"
2730

@@ -52,7 +55,16 @@ func (r *Reconciler) reconcileOverlayCniIfNeeded(ctx context.Context, subnetID s
5255
return errors.Wrap(err, "failed to get subnet")
5356
}
5457

55-
subnetCIDR := *subnet.AddressPrefix
58+
var subnetCIDR string
59+
if subnet.AddressPrefix != nil {
60+
subnetCIDR = *subnet.AddressPrefix
61+
} else if subnet.AddressPrefixes != nil && len(*subnet.AddressPrefixes) > 0 {
62+
subnetCIDR = (*subnet.AddressPrefixes)[0]
63+
} else {
64+
return errors.New("subnet does not have an address prefix(es)")
65+
}
66+
67+
klog.Infof("Using subnet prefix %q", subnetCIDR)
5668
err = r.reconcileOverlayExtensionConfig(ctx, subnetCIDR)
5769
if err != nil {
5870
return errors.Wrap(err, "failed to reconcile overlay resources")
@@ -72,7 +84,13 @@ func (r *Reconciler) isClusterOverlayCNI(ctx context.Context) (bool, error) {
7284
return false, errors.Wrap(err, "failed to list node network configs")
7385
}
7486

75-
return len(nodeNetworkConfigs.Items) > 0, nil
87+
// if any NNCs are overlay then this cluster is using CNI Overlay
88+
for _, nnc := range nodeNetworkConfigs.Items {
89+
if val, ok := nnc.Labels[PodNetworkTypeLabel]; ok && val == "overlay" {
90+
return true, nil
91+
}
92+
}
93+
return false, nil
7694
}
7795

7896
func (r *Reconciler) reconcileOverlayExtensionConfig(ctx context.Context, subnetCIDR string) error {

pkg/cni/overlay_test.go

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,36 @@ var _ = Describe("Overlay CNI", func() {
9292
}, appGw, agicPod, namespace, false)
9393
})
9494

95+
Context("NodeNetworkConfigList does not have the overlay label", func() {
96+
It("returns nil error", func() {
97+
// Create NodeNetworkConfigList so that cluster is not considered as overlay CNI
98+
config := &nodenetworkconfig_v1alpha.NodeNetworkConfig{
99+
ObjectMeta: metav1.ObjectMeta{
100+
Name: "test-node-network-config",
101+
Namespace: namespace,
102+
Labels: map[string]string{
103+
cni.PodNetworkTypeLabel: "not overlay",
104+
},
105+
},
106+
Spec: nodenetworkconfig_v1alpha.NodeNetworkConfigSpec{},
107+
}
108+
Expect(k8sClient.Create(ctx, config)).To(BeNil())
109+
Expect(reconciler.Reconcile(ctx)).To(BeNil())
110+
})
111+
})
112+
95113
Context("Handle Overlay CNI cluster", func() {
96114
BeforeEach(func() {
97115
// Create NodeNetworkConfig so that cluster is considered as overlay CNI
98116
config := &nodenetworkconfig_v1alpha.NodeNetworkConfig{
99-
ObjectMeta: metav1.ObjectMeta{Name: "test-node-network-config", Namespace: namespace},
100-
Spec: nodenetworkconfig_v1alpha.NodeNetworkConfigSpec{},
117+
ObjectMeta: metav1.ObjectMeta{
118+
Name: "test-node-network-config",
119+
Namespace: namespace,
120+
Labels: map[string]string{
121+
cni.PodNetworkTypeLabel: "overlay",
122+
},
123+
},
124+
Spec: nodenetworkconfig_v1alpha.NodeNetworkConfigSpec{},
101125
}
102126
Expect(k8sClient.Create(ctx, config)).To(BeNil())
103127

@@ -149,6 +173,38 @@ var _ = Describe("Overlay CNI", func() {
149173
Expect(err.Error()).To(ContainSubstring("failed to get subnet"))
150174
})
151175

176+
It("should return error if subnet does not have an address prefix or address prefixes", func() {
177+
azClient.GetSubnetFunc = func(subnetID string) (n.Subnet, error) {
178+
return n.Subnet{
179+
SubnetPropertiesFormat: &n.SubnetPropertiesFormat{
180+
AddressPrefix: nil,
181+
AddressPrefixes: &[]string{},
182+
}}, nil
183+
}
184+
185+
err := reconciler.Reconcile(ctx)
186+
Expect(err).To(Not(BeNil()))
187+
Expect(err.Error()).To(ContainSubstring("subnet does not have an address prefix(es)"))
188+
})
189+
190+
It("should not return error if subnet has an entry in address prefixes", func() {
191+
azClient.GetSubnetFunc = func(subnetID string) (n.Subnet, error) {
192+
return n.Subnet{
193+
SubnetPropertiesFormat: &n.SubnetPropertiesFormat{
194+
AddressPrefix: nil,
195+
AddressPrefixes: &[]string{"CIDR1"},
196+
}}, nil
197+
}
198+
199+
err := reconciler.Reconcile(ctx)
200+
Expect(err).To(Not(HaveOccurred()))
201+
202+
var config overlayextensionconfig_v1alpha1.OverlayExtensionConfig
203+
Expect(k8sClient.Get(ctx, ctrl_client.ObjectKey{Name: cni.OverlayExtensionConfigName, Namespace: namespace}, &config)).To(BeNil())
204+
Expect(config.Labels).To(HaveLen(1))
205+
Expect(config.Spec.ExtensionIPRange).To(Equal("CIDR1"))
206+
})
207+
152208
It("should delete and recreate OEC if subnet CIDR changes", func() {
153209
// Create OverlayExtensionConfig
154210
Expect(k8sClient.Create(ctx, &overlayextensionconfig_v1alpha1.OverlayExtensionConfig{
@@ -197,8 +253,10 @@ var _ = Describe("Overlay CNI", func() {
197253

198254
// Create NodeNetworkConfig so that cluster is considered as overlay CNI
199255
Expect(k8sClient.Create(ctx, &nodenetworkconfig_v1alpha.NodeNetworkConfig{
200-
ObjectMeta: metav1.ObjectMeta{Name: "test-node-network-config", Namespace: namespace},
201-
Spec: nodenetworkconfig_v1alpha.NodeNetworkConfigSpec{},
256+
ObjectMeta: metav1.ObjectMeta{Name: "test-node-network-config", Namespace: namespace, Labels: map[string]string{
257+
cni.PodNetworkTypeLabel: "overlay",
258+
}},
259+
Spec: nodenetworkconfig_v1alpha.NodeNetworkConfigSpec{},
202260
})).To(BeNil())
203261

204262
Expect(reconciler.Reconcile(ctx)).To(BeNil())
@@ -216,8 +274,10 @@ var _ = Describe("Overlay CNI", func() {
216274

217275
// Create NodeNetworkConfig so that cluster is considered as overlay CNI
218276
Expect(k8sClient.Create(ctx, &nodenetworkconfig_v1alpha.NodeNetworkConfig{
219-
ObjectMeta: metav1.ObjectMeta{Name: "test-node-network-config", Namespace: namespace},
220-
Spec: nodenetworkconfig_v1alpha.NodeNetworkConfigSpec{},
277+
ObjectMeta: metav1.ObjectMeta{Name: "test-node-network-config", Namespace: namespace, Labels: map[string]string{
278+
cni.PodNetworkTypeLabel: "overlay",
279+
}},
280+
Spec: nodenetworkconfig_v1alpha.NodeNetworkConfigSpec{},
221281
})).To(BeNil())
222282

223283
go func() {

scripts/e2e/go.mod

Lines changed: 46 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,80 @@
11
module github.com/Azure/application-gateway-kubernetes-ingress/scripts/e2e
22

3-
go 1.19
3+
go 1.23.0
4+
5+
toolchain go1.23.4
46

57
require (
68
github.com/Azure/application-gateway-kubernetes-ingress v0.0.0
79
github.com/Azure/azure-sdk-for-go v66.0.0+incompatible
8-
github.com/Azure/go-autorest/autorest v0.11.28
9-
github.com/Azure/go-autorest/autorest/azure/auth v0.5.11
10+
github.com/Azure/go-autorest/autorest v0.11.29
11+
github.com/Azure/go-autorest/autorest/azure/auth v0.5.13
1012
github.com/Azure/go-autorest/autorest/to v0.4.0
11-
github.com/google/uuid v1.3.0
13+
github.com/google/uuid v1.6.0
1214
github.com/onsi/ginkgo v1.16.5
13-
github.com/onsi/gomega v1.24.1
14-
k8s.io/api v0.24.3
15-
k8s.io/apimachinery v0.24.3
16-
k8s.io/client-go v0.24.3
17-
k8s.io/klog/v2 v2.70.1
15+
github.com/onsi/gomega v1.36.2
16+
k8s.io/api v0.32.1
17+
k8s.io/apimachinery v0.32.1
18+
k8s.io/client-go v0.32.1
19+
k8s.io/klog/v2 v2.130.1
20+
)
21+
22+
replace (
23+
github.com/golang-jwt/jwt/v4 => github.com/golang-jwt/jwt/v4 v4.5.2
24+
golang.org/x/net => golang.org/x/net v0.38.0
1825
)
1926

2027
require (
2128
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
22-
github.com/Azure/go-autorest/autorest/adal v0.9.21 // indirect
29+
github.com/Azure/go-autorest/autorest/adal v0.9.22 // indirect
2330
github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect
2431
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
2532
github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect
2633
github.com/Azure/go-autorest/logger v0.2.1 // indirect
2734
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
28-
github.com/davecgh/go-spew v1.1.1 // indirect
35+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
2936
github.com/dimchansky/utfbom v1.1.1 // indirect
30-
github.com/emicklei/go-restful v2.16.0+incompatible // indirect
31-
github.com/fsnotify/fsnotify v1.5.4 // indirect
32-
github.com/go-logr/logr v1.2.3 // indirect
33-
github.com/go-openapi/jsonpointer v0.19.5 // indirect
34-
github.com/go-openapi/jsonreference v0.20.0 // indirect
35-
github.com/go-openapi/swag v0.21.1 // indirect
37+
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
38+
github.com/fsnotify/fsnotify v1.8.0 // indirect
39+
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
40+
github.com/go-logr/logr v1.4.2 // indirect
41+
github.com/go-openapi/jsonpointer v0.21.0 // indirect
42+
github.com/go-openapi/jsonreference v0.20.2 // indirect
43+
github.com/go-openapi/swag v0.23.0 // indirect
3644
github.com/gogo/protobuf v1.3.2 // indirect
37-
github.com/golang-jwt/jwt/v4 v4.4.2 // indirect
38-
github.com/golang/protobuf v1.5.2 // indirect
39-
github.com/google/gnostic v0.5.7-v3refs // indirect
40-
github.com/google/go-cmp v0.5.9 // indirect
45+
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
46+
github.com/golang/protobuf v1.5.4 // indirect
47+
github.com/google/gnostic-models v0.6.8 // indirect
48+
github.com/google/go-cmp v0.6.0 // indirect
4149
github.com/google/gofuzz v1.2.0 // indirect
42-
github.com/imdario/mergo v0.3.13 // indirect
4350
github.com/josharian/intern v1.0.0 // indirect
4451
github.com/json-iterator/go v1.1.12 // indirect
4552
github.com/mailru/easyjson v0.7.7 // indirect
4653
github.com/mitchellh/go-homedir v1.1.0 // indirect
4754
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
4855
github.com/modern-go/reflect2 v1.0.2 // indirect
4956
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
50-
github.com/nxadm/tail v1.4.8 // indirect
57+
github.com/nxadm/tail v1.4.11 // indirect
58+
github.com/pkg/errors v0.9.1 // indirect
5159
github.com/spf13/pflag v1.0.5 // indirect
52-
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
53-
golang.org/x/net v0.3.0 // indirect
54-
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect
55-
golang.org/x/sys v0.3.0 // indirect
56-
golang.org/x/term v0.3.0 // indirect
57-
golang.org/x/text v0.5.0 // indirect
58-
golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect
59-
google.golang.org/appengine v1.6.7 // indirect
60-
google.golang.org/protobuf v1.28.0 // indirect
60+
github.com/x448/float16 v0.8.4 // indirect
61+
golang.org/x/crypto v0.36.0 // indirect
62+
golang.org/x/net v0.35.0 // indirect
63+
golang.org/x/oauth2 v0.24.0 // indirect
64+
golang.org/x/sys v0.31.0 // indirect
65+
golang.org/x/term v0.30.0 // indirect
66+
golang.org/x/text v0.23.0 // indirect
67+
golang.org/x/time v0.8.0 // indirect
68+
google.golang.org/protobuf v1.36.1 // indirect
69+
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
6170
gopkg.in/inf.v0 v0.9.1 // indirect
6271
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
63-
gopkg.in/yaml.v2 v2.4.0 // indirect
6472
gopkg.in/yaml.v3 v3.0.1 // indirect
65-
k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42 // indirect
66-
k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed // indirect
67-
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect
68-
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
69-
sigs.k8s.io/yaml v1.3.0 // indirect
73+
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
74+
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
75+
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
76+
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
77+
sigs.k8s.io/yaml v1.4.0 // indirect
7078
)
7179

7280
replace github.com/Azure/application-gateway-kubernetes-ingress => ../..

0 commit comments

Comments
 (0)