Skip to content

Commit

Permalink
fix e2e
Browse files Browse the repository at this point in the history
  • Loading branch information
jpinsonneau committed Mar 13, 2024
1 parent e9bf0d0 commit be622c2
Show file tree
Hide file tree
Showing 30 changed files with 831 additions and 205 deletions.
2 changes: 1 addition & 1 deletion deployments/flp-daemonset-cap.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ spec:
containers:
- name: flowlogs-pipeline
image: quay.io/netobserv/flowlogs-pipeline:main
imagePullPolicy: Always
ports:
- containerPort: 9999
hostPort: 9999
Expand Down Expand Up @@ -115,7 +116,6 @@ data:
- "SrcK8S_OwnerName"
- "DstK8S_Namespace"
- "DstK8S_OwnerName"
- "FlowDirection"
url: http://loki.netobserv.svc:3100
timestampLabel: TimeFlowEndMs
timestampScale: 1ms
Expand Down
1 change: 0 additions & 1 deletion deployments/flp-daemonset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ data:
- "SrcK8S_OwnerName"
- "DstK8S_Namespace"
- "DstK8S_OwnerName"
- "FlowDirection"
url: http://loki.netobserv.svc:3100
timestampLabel: TimeFlowEndMs
timestampScale: 1ms
Expand Down
4 changes: 2 additions & 2 deletions deployments/flp-service.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ spec:
containers:
- name: netobserv-ebpf-agent
image: quay.io/netobserv/netobserv-ebpf-agent:main
# imagePullPolicy: Always
imagePullPolicy: Always
securityContext:
privileged: true
runAsUser: 0
Expand Down Expand Up @@ -69,6 +69,7 @@ spec:
containers:
- name: packet-counter
image: quay.io/netobserv/flowlogs-pipeline:main
imagePullPolicy: Always
ports:
- containerPort: 9999
hostPort: 9999
Expand Down Expand Up @@ -126,7 +127,6 @@ data:
- "SrcK8S_OwnerName"
- "DstK8S_Namespace"
- "DstK8S_OwnerName"
- "FlowDirection"
url: http://loki.netobserv.svc:3100
timestampLabel: TimeFlowEndMs
timestampScale: 1ms
Expand Down
59 changes: 50 additions & 9 deletions e2e/basic/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package basic

import (
"context"
"fmt"
"testing"
"time"

Expand All @@ -27,7 +28,7 @@ type FlowCaptureTester struct {
Timeout time.Duration
}

func (bt *FlowCaptureTester) DoTest(t *testing.T) {
func (bt *FlowCaptureTester) DoTest(t *testing.T, isIPFIX bool) {
var pci podsConnectInfo
f1 := features.New("basic flow capture").Setup(
func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context {
Expand Down Expand Up @@ -55,7 +56,6 @@ func (bt *FlowCaptureTester) DoTest(t *testing.T) {
// Same for DstMac when the flow is towards the service
assert.Regexp(t, "^[\\da-fA-F]{2}(:[\\da-fA-F]{2}){5}$", flow["DstMac"])

assert.Regexp(t, "^[01]$", lq.Stream["FlowDirection"])
assert.EqualValues(t, 2048, flow["Etype"])
assert.EqualValues(t, 6, flow["Proto"])

Expand All @@ -67,7 +67,18 @@ func (bt *FlowCaptureTester) DoTest(t *testing.T) {
assert.Less(t, time.Since(asTime(flow["TimeFlowEndMs"])), 15*time.Second)
assert.Less(t, time.Since(asTime(flow["TimeFlowStartMs"])), 15*time.Second)

assert.NotEmpty(t, flow["Interface"])
// IPFIX format doesn't manage plural fields
if isIPFIX {
assert.Regexp(t, "^[01]$", flow["FlowDirection"])
assert.NotEmpty(t, flow["Interface"])
} else {
assert.NotNil(t, flow["Interfaces"])
interfaces := flow["Interfaces"].([]interface{})
assert.NotNil(t, flow["IfDirections"])
directions := flow["IfDirections"].([]interface{})
assert.Equal(t, len(interfaces), len(directions))
assert.Regexp(t, "^[01]$", fmt.Sprintf("%.0f", directions[0]))
}
return ctx
},
).Assess("correctness of client -> server (as Pod) request flows",
Expand All @@ -89,7 +100,6 @@ func (bt *FlowCaptureTester) DoTest(t *testing.T) {
assert.Regexp(t, "^[\\da-fA-F]{2}(:[\\da-fA-F]{2}){5}$", flow["SrcMac"])
assert.Regexp(t, "(?i)"+pci.serverMAC, flow["DstMac"])

assert.Regexp(t, "^[01]$", lq.Stream["FlowDirection"])
assert.EqualValues(t, 2048, flow["Etype"])

assert.NotZero(t, flow["Bytes"])
Expand All @@ -99,7 +109,18 @@ func (bt *FlowCaptureTester) DoTest(t *testing.T) {
assert.Less(t, time.Since(asTime(flow["TimeFlowEndMs"])), 15*time.Second)
assert.Less(t, time.Since(asTime(flow["TimeFlowStartMs"])), 15*time.Second)

assert.NotEmpty(t, flow["Interface"])
// IPFIX format doesn't manage plural fields
if isIPFIX {
assert.Regexp(t, "^[01]$", flow["FlowDirection"])
assert.NotEmpty(t, flow["Interface"])
} else {
assert.NotNil(t, flow["Interfaces"])
interfaces := flow["Interfaces"].([]interface{})
assert.NotNil(t, flow["IfDirections"])
directions := flow["IfDirections"].([]interface{})
assert.Equal(t, len(interfaces), len(directions))
assert.Regexp(t, "^[01]$", fmt.Sprintf("%.0f", directions[0]))
}
return ctx
},
).Assess("correctness of server (from Service) -> client response flows",
Expand All @@ -120,7 +141,6 @@ func (bt *FlowCaptureTester) DoTest(t *testing.T) {
assert.Regexp(t, "^[\\da-fA-F]{2}(:[\\da-fA-F]{2}){5}$", flow["SrcMac"])
assert.Regexp(t, "(?i)"+pci.clientMAC, flow["DstMac"])

assert.Regexp(t, "^[01]$", lq.Stream["FlowDirection"])
assert.EqualValues(t, 2048, flow["Etype"])
assert.EqualValues(t, 6, flow["Proto"])

Expand All @@ -132,7 +152,18 @@ func (bt *FlowCaptureTester) DoTest(t *testing.T) {
assert.Less(t, time.Since(asTime(flow["TimeFlowEndMs"])), 15*time.Second)
assert.Less(t, time.Since(asTime(flow["TimeFlowStartMs"])), 15*time.Second)

assert.NotEmpty(t, flow["Interface"])
// IPFIX format doesn't manage plural fields
if isIPFIX {
assert.Regexp(t, "^[01]$", flow["FlowDirection"])
assert.NotEmpty(t, flow["Interface"])
} else {
assert.NotNil(t, flow["Interfaces"])
interfaces := flow["Interfaces"].([]interface{})
assert.NotNil(t, flow["IfDirections"])
directions := flow["IfDirections"].([]interface{})
assert.Equal(t, len(interfaces), len(directions))
assert.Regexp(t, "^[01]$", fmt.Sprintf("%.0f", directions[0]))
}
return ctx
},
).Assess("correctness of server (from Pod) -> client response flows",
Expand All @@ -154,7 +185,6 @@ func (bt *FlowCaptureTester) DoTest(t *testing.T) {
// only check that it is well-formed.
assert.Regexp(t, "^[\\da-fA-F]{2}(:[\\da-fA-F]{2}){5}$", flow["DstMac"])

assert.Regexp(t, "^[01]$", lq.Stream["FlowDirection"])
assert.EqualValues(t, 2048, flow["Etype"])
assert.EqualValues(t, 6, flow["Proto"])

Expand All @@ -166,7 +196,18 @@ func (bt *FlowCaptureTester) DoTest(t *testing.T) {
assert.Less(t, time.Since(asTime(flow["TimeFlowEndMs"])), 15*time.Second)
assert.Less(t, time.Since(asTime(flow["TimeFlowStartMs"])), 15*time.Second)

assert.NotEmpty(t, flow["Interface"])
// IPFIX format doesn't manage plural fields
if isIPFIX {
assert.Regexp(t, "^[01]$", flow["FlowDirection"])
assert.NotEmpty(t, flow["Interface"])
} else {
assert.NotNil(t, flow["Interfaces"])
interfaces := flow["Interfaces"].([]interface{})
assert.NotNil(t, flow["IfDirections"])
directions := flow["IfDirections"].([]interface{})
assert.Equal(t, len(interfaces), len(directions))
assert.Regexp(t, "^[01]$", fmt.Sprintf("%.0f", directions[0]))
}
return ctx
},
).Feature()
Expand Down
2 changes: 1 addition & 1 deletion e2e/basic/flow_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ func TestBasicFlowCapture(t *testing.T) {
Namespace: namespace,
Timeout: testTimeout,
}
bt.DoTest(t)
bt.DoTest(t, false)
}

// TestSinglePacketFlows uses a known packet size and number to check that,
Expand Down
2 changes: 1 addition & 1 deletion e2e/cluster/base/03-flp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ spec:
containers:
- name: flp
image: quay.io/netobserv/flowlogs-pipeline:main
imagePullPolicy: Always
ports:
- containerPort: 9999
hostPort: 9999
Expand Down Expand Up @@ -73,7 +74,6 @@ data:
- "SrcK8S_OwnerName"
- "DstK8S_Namespace"
- "DstK8S_OwnerName"
- "FlowDirection"
url: http://loki:3100
timestampLabel: TimeFlowEndMs
timestampScale: 1ms
2 changes: 1 addition & 1 deletion e2e/ipfix/ipfix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,5 @@ func TestBasicFlowCapture(t *testing.T) {
Namespace: namespace,
Timeout: testTimeout,
}
bt.DoTest(t)
bt.DoTest(t, true)
}
2 changes: 1 addition & 1 deletion e2e/kafka/kafka_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ func TestBasicFlowCapture(t *testing.T) {
Namespace: namespace,
Timeout: testTimeout,
}
bt.DoTest(t)
bt.DoTest(t, false)
}

func checkResources(client klient.Client, list ...string) bool {
Expand Down
2 changes: 1 addition & 1 deletion e2e/kafka/manifests/20-flp-transformer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ spec:
containers:
- name: flp
image: quay.io/netobserv/flowlogs-pipeline:main
imagePullPolicy: Always
args:
- --config=/etc/flp/config.yaml
volumeMounts:
Expand Down Expand Up @@ -74,7 +75,6 @@ data:
- "SrcK8S_OwnerName"
- "DstK8S_Namespace"
- "DstK8S_OwnerName"
- "FlowDirection"
url: http://loki:3100
timestampLabel: TimeFlowEndMs
timestampScale: 1ms
14 changes: 7 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ require (
github.com/google/gopacket v1.1.19
github.com/mariomac/guara v0.0.0-20220523124851-5fc279816f1f
github.com/mdlayher/ethernet v0.0.0-20220221185849-529eae5b6118
github.com/netobserv/flowlogs-pipeline v0.1.12-0.20240305083238-24bf8cec8807
github.com/netobserv/flowlogs-pipeline v0.1.12-0.20240312115357-ddc1f67022a5
github.com/netobserv/gopipes v0.3.0
github.com/paulbellamy/ratecounter v0.2.0
github.com/prometheus/client_golang v1.19.0
Expand Down Expand Up @@ -70,7 +70,7 @@ require (
github.com/libp2p/go-reuseport v0.3.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/minio/md5-simd v1.1.2 // indirect
github.com/minio/minio-go/v7 v7.0.68 // indirect
github.com/minio/minio-go/v7 v7.0.69 // indirect
github.com/minio/sha256-simd v1.0.1 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/moby/spdystream v0.2.0 // indirect
Expand Down Expand Up @@ -100,21 +100,21 @@ require (
github.com/xdg-go/stringprep v1.0.4 // indirect
go.opentelemetry.io/otel v1.24.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.24.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.23.1 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.24.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.23.1 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 // indirect
go.opentelemetry.io/otel/metric v1.24.0 // indirect
go.opentelemetry.io/otel/sdk v1.24.0 // indirect
go.opentelemetry.io/otel/sdk/metric v1.24.0 // indirect
go.opentelemetry.io/otel/trace v1.24.0 // indirect
go.opentelemetry.io/proto/otlp v1.1.0 // indirect
go.uber.org/atomic v1.9.0 // indirect
golang.org/x/crypto v0.19.0 // indirect
golang.org/x/crypto v0.21.0 // indirect
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
golang.org/x/net v0.21.0 // indirect
golang.org/x/net v0.22.0 // indirect
golang.org/x/oauth2 v0.16.0 // indirect
golang.org/x/term v0.17.0 // indirect
golang.org/x/term v0.18.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.5.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
Expand Down
28 changes: 14 additions & 14 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -584,8 +584,8 @@ github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKju
github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
github.com/minio/minio-go/v7 v7.0.68 h1:hTqSIfLlpXaKuNy4baAp4Jjy2sqZEN9hRxD0M4aOfrQ=
github.com/minio/minio-go/v7 v7.0.68/go.mod h1:XAvOPJQ5Xlzk5o3o/ArO2NMbhSGkimC+bpW/ngRKDmQ=
github.com/minio/minio-go/v7 v7.0.69 h1:l8AnsQFyY1xiwa/DaQskY4NXSLA2yrGsW5iD9nRPVS0=
github.com/minio/minio-go/v7 v7.0.69/go.mod h1:XAvOPJQ5Xlzk5o3o/ArO2NMbhSGkimC+bpW/ngRKDmQ=
github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM=
github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
Expand Down Expand Up @@ -628,8 +628,8 @@ github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzE
github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
github.com/netobserv/flowlogs-pipeline v0.1.12-0.20240305083238-24bf8cec8807 h1:Ugqf2/JylU52lDvPufB+W6CRBZ+CGvmg+mnghAm6LJk=
github.com/netobserv/flowlogs-pipeline v0.1.12-0.20240305083238-24bf8cec8807/go.mod h1:1rE8nv5+z0VIMmikjRsk3Sbw325Z1pGJrRXwlFsdyWQ=
github.com/netobserv/flowlogs-pipeline v0.1.12-0.20240312115357-ddc1f67022a5 h1:eKS116Eks3NT6k3fGTBAxXY1aQmAVOfh/cuT1Qj1KiI=
github.com/netobserv/flowlogs-pipeline v0.1.12-0.20240312115357-ddc1f67022a5/go.mod h1:OyKXDufQOQjfEpw5StxNfGCNJ2JIUvb8DO3x9jkAfpg=
github.com/netobserv/gopipes v0.3.0 h1:IYmPnnAVCdSK7VmHmpFhrVBOEm45qpgbZmJz1sSW+60=
github.com/netobserv/gopipes v0.3.0/go.mod h1:N7/Gz05EOF0CQQSKWsv3eof22Cj2PB08Pbttw98YFYU=
github.com/netobserv/loki-client-go v0.0.0-20220927092034-f37122a54500 h1:RmnoJe/ci5q+QdM7upFdxiU+D8F3L3qTd5wXCwwHefw=
Expand Down Expand Up @@ -874,12 +874,12 @@ go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo=
go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.24.0 h1:f2jriWfOdldanBwS9jNBdeOKAQN7b4ugAMaNu1/1k9g=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.24.0/go.mod h1:B+bcQI1yTY+N0vqMpoZbEN7+XU4tNM0DmUiOwebFJWI=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.23.1 h1:q/Nj5/2TZRIt6PderQ9oU0M00fzoe8UZuINGw6ETGTw=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.23.1/go.mod h1:DTE9yAu6r08jU3xa68GiSeI7oRcSEQ2RpKbbQGO+dWM=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.24.0 h1:mM8nKi6/iFQ0iqst80wDHU2ge198Ye/TfN0WBS5U24Y=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.24.0/go.mod h1:0PrIIzDteLSmNyxqcGYRL4mDIo8OTuBAOI/Bn1URxac=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 h1:t6wl9SPayj+c7lEIFgm4ooDBZVb01IhLB4InpomhRw8=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0/go.mod h1:iSDOcsnSA5INXzZtwaBPrKp/lWu/V14Dd+llD0oI2EA=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.23.1 h1:p3A5+f5l9e/kuEBwLOrnpkIDHQFlHmbiVxMURWRK6gQ=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.23.1/go.mod h1:OClrnXUjBqQbInvjJFjYSnMxBSCXBF8r3b34WqjiIrQ=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0 h1:Mw5xcxMwlqoJd97vwPxA8isEaIoxsta9/Q51+TTJLGE=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0/go.mod h1:CQNu9bj7o7mC6U7+CA/schKEYakYXWr79ucDHTMGhCM=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 h1:Xw8U6u2f8DK2XAkGRFV7BBLENgnTGX9i4rQRxJf+/vs=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0/go.mod h1:6KW1Fm6R/s6Z3PGXwSJN2K4eT6wQB3vXX6CVnYX9NmM=
go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI=
Expand Down Expand Up @@ -927,8 +927,8 @@ golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
Expand Down Expand Up @@ -1016,8 +1016,8 @@ golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
Expand Down Expand Up @@ -1127,8 +1127,8 @@ golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
Expand Down
Loading

0 comments on commit be622c2

Please sign in to comment.