Skip to content

Commit 1e72003

Browse files
committed
Support Cilium 1.17
Signed-off-by: Daichi Sakaue <daichi-sakaue@cybozu.co.jp>
1 parent 3d7456f commit 1e72003

11 files changed

Lines changed: 308 additions & 95 deletions

File tree

cmd/npv/app/helper_proxy.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ func (c *proxyClient) testAgentVersion(ctx context.Context, stderr io.Writer) er
113113
url := c.endpointURL + "/version"
114114
resp, err := http.Get(url)
115115
if err != nil {
116-
return fmt.Errorf("failed to request version: %w", err)
116+
return fmt.Errorf("failed to request /version: %w", err)
117117
}
118118
defer resp.Body.Close()
119119
data, err := io.ReadAll(resp.Body)
@@ -179,6 +179,16 @@ func (c *proxyClient) fetchCIDRIdentities() error {
179179
return nil
180180
}
181181

182+
func (c *proxyClient) listCIDRIdentity() ([]uint32, error) {
183+
if err := c.fetchCIDRIdentities(); err != nil {
184+
return nil, err
185+
}
186+
// for k, v := range c.cachedCIDRIdentities {
187+
188+
// }
189+
return nil, nil
190+
}
191+
182192
func (c *proxyClient) getCIDRIdentity(ctx context.Context, id uint32) (*models.Identity, error) {
183193
if err := c.fetchCIDRIdentities(); err != nil {
184194
return nil, err

e2e/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ HELM := helm --content-cache $(CACHE_DIR)/helm/content
99

1010
# Avoid using SHA here
1111
# https://github.com/kubernetes-sigs/kind/issues/4028
12-
CILIUM_IMAGE := quay.io/cilium/cilium:v1.16.19
13-
CILIUM_CHART := oci://quay.io/cilium/charts/cilium:1.16.19@sha256:7496a278401c221a30d023df4e40c4e97c3c203645b337d332da5f9e887acf06
12+
CILIUM_IMAGE := quay.io/cilium/cilium:v1.17.15
13+
CILIUM_CHART := oci://quay.io/cilium/charts/cilium:1.17.15@sha256:464dbdb023f9d2fd291efbe2adcf76681e36cc7144ed5fe983058b25cb23a4a5
1414

1515
DEPLOYMENT_REPLICAS ?= 1
1616

@@ -89,6 +89,7 @@ install-test-pod:
8989
$(MAKE) --no-print-directory DEPLOYMENT_REPLICAS=2 run-test-pod-l3-ingress-explicit-allow-all
9090
$(MAKE) --no-print-directory wait-for-workloads
9191

92+
kubectl apply -f testdata/policy/cidr-group.yaml
9293
kubectl apply -f testdata/policy/l3.yaml
9394
kubectl apply -f testdata/policy/l4.yaml
9495

e2e/inspect_test.go

Lines changed: 67 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ Deny,Egress,l4-egress-explicit-deny-any,false,false,6,53
8686
Deny,Egress,l4-egress-explicit-deny-any,false,false,17,53
8787
Deny,Egress,l4-egress-explicit-deny-any,false,false,132,53
8888
Deny,Egress,l4-egress-explicit-deny-tcp,false,false,6,8000
89-
Allow,Ingress,cidr:10.100.0.0/16,true,true,0,0
89+
Allow,Ingress,cidr:10.100.0.0/24,true,true,0,0
90+
Allow,Ingress,cidr:10.100.10.0/24,true,true,0,0
91+
Allow,Ingress,cidr:10.120.0.0/16,true,true,0,0
9092
Allow,Ingress,reserved:host,true,true,0,0
9193
Allow,Egress,cidr:1.1.1.1/32,false,false,6,53
9294
Allow,Egress,cidr:1.1.1.1/32,false,false,17,53
@@ -123,14 +125,8 @@ Allow,Egress,cidr:8.8.8.8/32,false,false,17,53
123125
Allow,Egress,cidr:8.8.8.8/32,false,false,132,53`,
124126
},
125127
{
126-
Selector: "test=self",
127-
ExtraArgs: []string{"--with-cidrs=8.8.0.0/16"},
128-
Expected: `Deny,Egress,cidr:8.8.4.4/32,false,false,6,53
129-
Deny,Egress,cidr:8.8.4.4/32,false,false,17,53
130-
Deny,Egress,cidr:8.8.4.4/32,false,false,132,53
131-
Allow,Egress,cidr:8.8.8.8/32,false,false,6,53
132-
Allow,Egress,cidr:8.8.8.8/32,false,false,17,53
133-
Allow,Egress,cidr:8.8.8.8/32,false,false,132,53`,
128+
Selector: "test=l3-egress-explicit-deny-all",
129+
Expected: `Allow,Ingress,reserved:host,true,true,0,0`,
134130
},
135131
{
136132
Selector: "test=self",
@@ -160,6 +156,7 @@ Deny,Egress,cidr:8.8.4.4/32,false,false,132,53`,
160156
Expected: `Deny,Ingress,cidr:192.168.100.0/24,false,false,6,8080
161157
Allow,Ingress,cidr:10.100.0.0/16,true,true,0,0`,
162158
},
159+
// npv inspect should handle --with-public-cidrs
163160
{
164161
Selector: "test=self",
165162
ExtraArgs: []string{"--with-public-cidrs"},
@@ -173,6 +170,64 @@ Allow,Egress,cidr:8.8.8.8/32,false,false,6,53
173170
Allow,Egress,cidr:8.8.8.8/32,false,false,17,53
174171
Allow,Egress,cidr:8.8.8.8/32,false,false,132,53`,
175172
},
173+
// npv inspect should handle --with-private-cidrs
174+
{
175+
Selector: "test=self",
176+
ExtraArgs: []string{"--with-private-cidrs"},
177+
Expected: `Deny,Ingress,cidr:192.168.100.0/24,false,false,6,8080
178+
Allow,Ingress,cidr:10.100.0.0/24,true,true,0,0
179+
Allow,Ingress,cidr:10.100.10.0/24,true,true,0,0
180+
Allow,Ingress,cidr:10.120.0.0/16,true,true,0,0`,
181+
},
182+
// npv inspect should handle --with-cidrs=/0
183+
{
184+
Selector: "test=self",
185+
ExtraArgs: []string{"--with-cidrs=0.0.0.0/0"},
186+
Expected: `Deny,Ingress,cidr:192.168.100.0/24,false,false,6,8080
187+
Deny,Egress,cidr:8.8.4.4/32,false,false,6,53
188+
Deny,Egress,cidr:8.8.4.4/32,false,false,17,53
189+
Deny,Egress,cidr:8.8.4.4/32,false,false,132,53
190+
Allow,Ingress,cidr:10.100.0.0/24,true,true,0,0
191+
Allow,Ingress,cidr:10.100.10.0/24,true,true,0,0
192+
Allow,Ingress,cidr:10.120.0.0/16,true,true,0,0
193+
Allow,Egress,cidr:1.1.1.1/32,false,false,6,53
194+
Allow,Egress,cidr:1.1.1.1/32,false,false,17,53
195+
Allow,Egress,cidr:1.1.1.1/32,false,false,132,53
196+
Allow,Egress,cidr:8.8.8.8/32,false,false,6,53
197+
Allow,Egress,cidr:8.8.8.8/32,false,false,17,53
198+
Allow,Egress,cidr:8.8.8.8/32,false,false,132,53`,
199+
},
200+
// npv inspect should handle --with-cidrs=/16
201+
{
202+
Selector: "test=self",
203+
ExtraArgs: []string{"--with-cidrs=8.8.0.0/16"},
204+
Expected: `Deny,Egress,cidr:8.8.4.4/32,false,false,6,53
205+
Deny,Egress,cidr:8.8.4.4/32,false,false,17,53
206+
Deny,Egress,cidr:8.8.4.4/32,false,false,132,53
207+
Allow,Egress,cidr:8.8.8.8/32,false,false,6,53
208+
Allow,Egress,cidr:8.8.8.8/32,false,false,17,53
209+
Allow,Egress,cidr:8.8.8.8/32,false,false,132,53`,
210+
},
211+
// npv inspect should handle --with-cidrs=/16,!/32
212+
{
213+
Selector: "test=self",
214+
ExtraArgs: []string{"--with-cidrs=8.8.0.0/16,!8.8.8.8/32"},
215+
Expected: `Deny,Egress,cidr:8.8.4.4/32,false,false,6,53
216+
Deny,Egress,cidr:8.8.4.4/32,false,false,17,53
217+
Deny,Egress,cidr:8.8.4.4/32,false,false,132,53`,
218+
},
219+
// npv inspect should omit /24 --with-cidrs=!/24
220+
{
221+
Selector: "test=self",
222+
ExtraArgs: []string{"--with-cidrs=10.100.0.0/24,!10.100.0.0/24"},
223+
Expected: ``,
224+
},
225+
// npv inspect should include /24 --with-cidrs=!/28
226+
{
227+
Selector: "test=self",
228+
ExtraArgs: []string{"--with-cidrs=10.100.0.0/24,!10.100.0.0/28"},
229+
Expected: `Allow,Ingress,cidr:10.100.0.0/24,true,true,0,0`,
230+
},
176231
// npv inspect should handle reserved:unknown
177232
{
178233
Selector: "test=l4-ingress-all-allow-tcp",
@@ -223,7 +278,9 @@ Allow,Egress,l4-ingress-explicit-allow-tcp,false,false,6,8000`,
223278
{
224279
Selector: "test=self",
225280
ExtraArgs: []string{"--ingress", "--allowed"},
226-
Expected: `Allow,Ingress,cidr:10.100.0.0/16,true,true,0,0
281+
Expected: `Allow,Ingress,cidr:10.100.0.0/24,true,true,0,0
282+
Allow,Ingress,cidr:10.100.10.0/24,true,true,0,0
283+
Allow,Ingress,cidr:10.120.0.0/16,true,true,0,0
227284
Allow,Ingress,reserved:host,true,true,0,0`,
228285
},
229286
{

e2e/list_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,12 @@ spec:
188188
k8s:test: self
189189
ingress:
190190
- fromCIDR:
191-
- 10.100.0.0/16
191+
- 10.100.0.0/24
192+
- 10.100.10.0/24
193+
- fromCIDRSet:
194+
- cidr: 10.120.0.0/16
195+
except:
196+
- 10.120.0.0/24
192197
---
193198
apiVersion: cilium.io/v2
194199
kind: CiliumNetworkPolicy

e2e/reach_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@ Sender,Egress,Deny,l4-egress-explicit-deny-any,false,false,132,53`,
9999
}
100100

101101
func testReachCIDR() {
102-
expectedIngressPrivate := `Receiver,Ingress,Allow,cidr:10.100.0.0/16,true,true,0,0
102+
expectedIngressPrivate := `Receiver,Ingress,Allow,cidr:10.100.0.0/24,true,true,0,0
103+
Receiver,Ingress,Allow,cidr:10.100.10.0/24,true,true,0,0
104+
Receiver,Ingress,Allow,cidr:10.120.0.0/16,true,true,0,0
103105
Receiver,Ingress,Deny,cidr:192.168.100.0/24,false,false,6,8080`
104106
expectedIngressPublic := ""
105107
expectedEgressPrivate := ""

e2e/summary_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ l3-ingress-explicit-deny-all,1,1,0,0
1616
l3-ingress-implicit-deny-all,1,0,0,0
1717
l4-egress-explicit-deny-any,1,0,0,0
1818
l4-egress-explicit-deny-tcp,1,0,0,0
19-
l4-ingress-all-allow-tcp,3,0,0,0
19+
l4-ingress-all-allow-tcp,2,0,0,0
2020
l4-ingress-explicit-allow-any,4,0,0,0
2121
l4-ingress-explicit-allow-tcp,2,0,0,0
2222
l4-ingress-explicit-deny-any,1,3,0,0
2323
l4-ingress-explicit-deny-udp,1,1,0,0
24-
self,2,1,17,8
25-
self,2,1,17,8`
24+
self,4,1,17,8
25+
self,4,1,17,8`
2626

2727
It("should show summary", func() {
2828
result := runViewerSafe(Default, nil, "summary", "-o=json", "-n=test")

e2e/testdata/policy/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,8 @@
2121

2222
| Source | To self (Ingress) |
2323
|-|-|
24-
| 10.100.0.0/16 | allow (L3) |
24+
| 10.100.0.0/24 | allow (L3) |
25+
| 10.100.10.0/24 | allow (L3) |
26+
| 10.120.0.0/16 | allow (L3) |
27+
| - 10.120.0.0/24 | implicit deny (L3) |
2528
| 192.168.100.0/24 | deny (L4) |
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: cilium.io/v2alpha1
2+
kind: CiliumCIDRGroup
3+
metadata:
4+
name: test
5+
labels:
6+
group: test
7+
spec:
8+
externalCIDRs:
9+
- "10.140.0.0/24"
10+
- "10.140.10.0/24"

e2e/testdata/policy/l3.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,14 @@ spec:
2727
k8s:test: self
2828
ingress:
2929
- fromCIDR:
30-
- 10.100.0.0/16
30+
- 10.100.0.0/24
31+
- 10.100.10.0/24
32+
- fromCIDRSet:
33+
- cidr: 10.120.0.0/16
34+
except:
35+
- 10.120.0.0/24
36+
# CiliumCIDRGroup is not supported for now
37+
# - cidrGroupRef: test
3138
egress:
3239
- toEndpoints:
3340
- matchLabels:

go.mod

Lines changed: 48 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
module github.com/cybozu-go/network-policy-viewer
22

3-
go 1.26.1
3+
go 1.26.2
44

55
require (
6-
github.com/cilium/cilium v1.16.19
6+
github.com/cilium/cilium v1.17.15
77
github.com/onsi/ginkgo/v2 v2.28.1
88
github.com/onsi/gomega v1.39.1
99
github.com/spf13/cobra v1.10.2
1010
github.com/spf13/viper v1.19.0
1111
golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa
1212
golang.org/x/mod v0.34.0
13-
golang.org/x/term v0.41.0
14-
k8s.io/api v0.35.2
15-
k8s.io/apimachinery v0.35.2
16-
k8s.io/client-go v0.35.2
13+
golang.org/x/term v0.42.0
14+
k8s.io/api v0.35.4
15+
k8s.io/apimachinery v0.35.4
16+
k8s.io/client-go v0.35.4
1717
sigs.k8s.io/controller-runtime v0.23.3
1818
sigs.k8s.io/yaml v1.6.0
1919
)
@@ -24,50 +24,59 @@ require (
2424
github.com/beorn7/perks v1.0.1 // indirect
2525
github.com/blang/semver/v4 v4.0.0 // indirect
2626
github.com/cespare/xxhash/v2 v2.3.0 // indirect
27-
github.com/cilium/ebpf v0.15.0 // indirect
28-
github.com/cilium/hive v0.0.0-20240529072208-d997f86e4219 // indirect
29-
github.com/cilium/statedb v0.2.4 // indirect
30-
github.com/cilium/stream v0.0.0-20240226091623-f979d32855f8 // indirect
27+
github.com/cilium/ebpf v0.17.1 // indirect
28+
github.com/cilium/hive v0.0.0-20250522145610-0734675df148 // indirect
29+
github.com/cilium/proxy v0.0.0-20250526114940-b80199397e8a // indirect
30+
github.com/cilium/statedb v0.4.5 // indirect
31+
github.com/cilium/stream v0.0.0-20241203114243-53c3e5d79744 // indirect
3132
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
3233
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
3334
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
35+
github.com/fatih/color v1.18.0 // indirect
3436
github.com/fsnotify/fsnotify v1.9.0 // indirect
35-
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
37+
github.com/fxamacker/cbor/v2 v2.9.1 // indirect
3638
github.com/go-logr/logr v1.4.3 // indirect
3739
github.com/go-logr/stdr v1.2.2 // indirect
3840
github.com/go-openapi/analysis v0.23.0 // indirect
3941
github.com/go-openapi/errors v0.22.0 // indirect
40-
github.com/go-openapi/jsonpointer v0.22.5 // indirect
42+
github.com/go-openapi/jsonpointer v0.23.0 // indirect
4143
github.com/go-openapi/jsonreference v0.21.5 // indirect
4244
github.com/go-openapi/loads v0.22.0 // indirect
4345
github.com/go-openapi/runtime v0.28.0 // indirect
4446
github.com/go-openapi/spec v0.21.0 // indirect
4547
github.com/go-openapi/strfmt v0.23.0 // indirect
46-
github.com/go-openapi/swag v0.25.5 // indirect
47-
github.com/go-openapi/swag/cmdutils v0.25.5 // indirect
48-
github.com/go-openapi/swag/conv v0.25.5 // indirect
49-
github.com/go-openapi/swag/fileutils v0.25.5 // indirect
50-
github.com/go-openapi/swag/jsonname v0.25.5 // indirect
51-
github.com/go-openapi/swag/jsonutils v0.25.5 // indirect
52-
github.com/go-openapi/swag/loading v0.25.5 // indirect
53-
github.com/go-openapi/swag/mangling v0.25.5 // indirect
54-
github.com/go-openapi/swag/netutils v0.25.5 // indirect
55-
github.com/go-openapi/swag/stringutils v0.25.5 // indirect
56-
github.com/go-openapi/swag/typeutils v0.25.5 // indirect
57-
github.com/go-openapi/swag/yamlutils v0.25.5 // indirect
48+
github.com/go-openapi/swag v0.26.0 // indirect
49+
github.com/go-openapi/swag/cmdutils v0.26.0 // indirect
50+
github.com/go-openapi/swag/conv v0.26.0 // indirect
51+
github.com/go-openapi/swag/fileutils v0.26.0 // indirect
52+
github.com/go-openapi/swag/jsonname v0.26.0 // indirect
53+
github.com/go-openapi/swag/jsonutils v0.26.0 // indirect
54+
github.com/go-openapi/swag/loading v0.26.0 // indirect
55+
github.com/go-openapi/swag/mangling v0.26.0 // indirect
56+
github.com/go-openapi/swag/netutils v0.26.0 // indirect
57+
github.com/go-openapi/swag/stringutils v0.26.0 // indirect
58+
github.com/go-openapi/swag/typeutils v0.26.0 // indirect
59+
github.com/go-openapi/swag/yamlutils v0.26.0 // indirect
5860
github.com/go-openapi/validate v0.24.0 // indirect
5961
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
62+
github.com/gogo/protobuf v1.3.2 // indirect
63+
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
6064
github.com/google/btree v1.1.3 // indirect
6165
github.com/google/gnostic-models v0.7.1 // indirect
6266
github.com/google/go-cmp v0.7.0 // indirect
63-
github.com/google/gopacket v1.1.19 // indirect
6467
github.com/google/pprof v0.0.0-20260302011040-a15ffb7f9dcc // indirect
6568
github.com/google/uuid v1.6.0 // indirect
69+
github.com/gopacket/gopacket v1.3.1 // indirect
70+
github.com/hashicorp/go-hclog v1.6.3 // indirect
6671
github.com/hashicorp/hcl v1.0.1-vault-5 // indirect
6772
github.com/inconshreveable/mousetrap v1.1.0 // indirect
6873
github.com/json-iterator/go v1.1.12 // indirect
74+
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
6975
github.com/mackerelio/go-osstat v0.2.5 // indirect
7076
github.com/magiconair/properties v1.8.7 // indirect
77+
github.com/mattn/go-colorable v0.1.13 // indirect
78+
github.com/mattn/go-isatty v0.0.20 // indirect
79+
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
7180
github.com/mitchellh/mapstructure v1.5.0 // indirect
7281
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
7382
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
@@ -87,27 +96,27 @@ require (
8796
github.com/sirupsen/logrus v1.9.3 // indirect
8897
github.com/sourcegraph/conc v0.3.0 // indirect
8998
github.com/spf13/afero v1.11.0 // indirect
90-
github.com/spf13/cast v1.6.0 // indirect
99+
github.com/spf13/cast v1.7.0 // indirect
91100
github.com/spf13/pflag v1.0.10 // indirect
92101
github.com/subosito/gotenv v1.6.0 // indirect
93-
github.com/vishvananda/netlink v1.3.1-0.20241022031324-976bd8de7d81 // indirect
94-
github.com/vishvananda/netns v0.0.4 // indirect
102+
github.com/vishvananda/netlink v1.3.1-0.20250303224720-0e7078ed04c8 // indirect
103+
github.com/vishvananda/netns v0.0.5 // indirect
95104
github.com/x448/float16 v0.8.4 // indirect
96105
go.mongodb.org/mongo-driver v1.14.0 // indirect
97-
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
98-
go.opentelemetry.io/otel v1.36.0 // indirect
99-
go.opentelemetry.io/otel/metric v1.36.0 // indirect
100-
go.opentelemetry.io/otel/trace v1.36.0 // indirect
106+
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
107+
go.opentelemetry.io/otel v1.41.0 // indirect
108+
go.opentelemetry.io/otel/metric v1.41.0 // indirect
109+
go.opentelemetry.io/otel/trace v1.41.0 // indirect
101110
go.uber.org/dig v1.17.1 // indirect
102111
go.uber.org/multierr v1.11.0 // indirect
103112
go.yaml.in/yaml/v2 v2.4.4 // indirect
104113
go.yaml.in/yaml/v3 v3.0.4 // indirect
105114
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
106-
golang.org/x/net v0.52.0 // indirect
115+
golang.org/x/net v0.53.0 // indirect
107116
golang.org/x/oauth2 v0.36.0 // indirect
108117
golang.org/x/sync v0.20.0 // indirect
109-
golang.org/x/sys v0.42.0 // indirect
110-
golang.org/x/text v0.35.0 // indirect
118+
golang.org/x/sys v0.43.0 // indirect
119+
golang.org/x/text v0.36.0 // indirect
111120
golang.org/x/time v0.15.0 // indirect
112121
golang.org/x/tools v0.43.0 // indirect
113122
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
@@ -116,11 +125,11 @@ require (
116125
gopkg.in/inf.v0 v0.9.1 // indirect
117126
gopkg.in/ini.v1 v1.67.0 // indirect
118127
gopkg.in/yaml.v3 v3.0.1 // indirect
119-
k8s.io/apiextensions-apiserver v0.35.2 // indirect
128+
k8s.io/apiextensions-apiserver v0.35.4 // indirect
120129
k8s.io/klog/v2 v2.140.0 // indirect
121-
k8s.io/kube-openapi v0.0.0-20260304202019-5b3e3fdb0acf // indirect
122-
k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 // indirect
130+
k8s.io/kube-openapi v0.0.0-20260414162039-ec9c827d403f // indirect
131+
k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 // indirect
123132
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
124133
sigs.k8s.io/randfill v1.0.0 // indirect
125-
sigs.k8s.io/structured-merge-diff/v6 v6.3.2 // indirect
134+
sigs.k8s.io/structured-merge-diff/v6 v6.4.0 // indirect
126135
)

0 commit comments

Comments
 (0)