Skip to content

Commit 402dca1

Browse files
committed
Make cri-tools independent from k/k
Signed-off-by: Sascha Grunert <[email protected]>
1 parent 940c583 commit 402dca1

File tree

1,925 files changed

+2314
-523764
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,925 files changed

+2314
-523764
lines changed

cmd/crictl/events.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func Events(cliContext *cli.Context, client internalapi.RuntimeService) error {
8080
containerEventsCh := make(chan *pb.ContainerEventResponse)
8181
go func() {
8282
logrus.Debug("getting container events")
83-
err := client.GetContainerEvents(containerEventsCh)
83+
err := client.GetContainerEvents(containerEventsCh, nil)
8484
if err == io.EOF {
8585
errCh <- nil
8686
return

cmd/crictl/logs.go

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,13 @@ import (
2020
"context"
2121
"errors"
2222
"fmt"
23-
"os"
2423
"strconv"
2524
"strings"
2625
"time"
2726

2827
timetypes "github.com/docker/docker/api/types/time"
2928
"github.com/urfave/cli/v2"
30-
v1 "k8s.io/api/core/v1"
3129
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
32-
"k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs"
3330
)
3431

3532
var logsCommand = &cli.Command{
@@ -84,21 +81,25 @@ var logsCommand = &cli.Command{
8481
return err
8582
}
8683

87-
tailLines := c.Int64("tail")
88-
limitBytes := c.Int64("limit-bytes")
89-
since, err := parseTimestamp(c.String("since"))
90-
if err != nil {
91-
return err
92-
}
93-
timestamp := c.Bool("timestamps")
84+
/*
85+
tailLines := c.Int64("tail")
86+
limitBytes := c.Int64("limit-bytes")
87+
since, err := parseTimestamp(c.String("since"))
88+
if err != nil {
89+
return err
90+
}
91+
timestamp := c.Bool("timestamps")
92+
*/
9493
previous := c.Bool("previous")
95-
logOptions := logs.NewLogOptions(&v1.PodLogOptions{
96-
Follow: c.Bool("follow"),
97-
TailLines: &tailLines,
98-
LimitBytes: &limitBytes,
99-
SinceTime: since,
100-
Timestamps: timestamp,
101-
}, time.Now())
94+
/*
95+
logOptions := logs.NewLogOptions(&v1.PodLogOptions{
96+
Follow: c.Bool("follow"),
97+
TailLines: &tailLines,
98+
LimitBytes: &limitBytes,
99+
SinceTime: since,
100+
Timestamps: timestamp,
101+
}, time.Now())
102+
*/
102103
status, err := runtimeService.ContainerStatus(context.TODO(), containerID, false)
103104
if err != nil {
104105
return err
@@ -116,25 +117,28 @@ var logsCommand = &cli.Command{
116117
logPath[strings.LastIndex(logPath, "."):])
117118
}
118119
// build a WithCancel context based on cli.context
119-
readLogCtx, cancelFn := context.WithCancel(c.Context)
120-
go func() {
121-
<-SetupInterruptSignalHandler()
122-
// cancel readLogCtx when Interrupt signal received
123-
cancelFn()
124-
}()
125-
defer func() {
126-
// We can not use the typed error "context.Canceled" here
127-
// because the upstream K8S dependency explicitly returns a fmt.Errorf("context cancelled").
128-
// So we need to compare the error in string.
129-
if retErr != nil && retErr.Error() == "context cancelled" {
130-
// Silent the "context cancelled" error.
131-
// In order to prevent the error msg when user hit Ctrl+C.
132-
retErr = nil
133-
}
134-
// Ensure no context leak
135-
cancelFn()
136-
}()
137-
return logs.ReadLogs(readLogCtx, logPath, status.GetStatus().GetId(), logOptions, runtimeService, os.Stdout, os.Stderr)
120+
/*
121+
readLogCtx, cancelFn := context.WithCancel(c.Context)
122+
go func() {
123+
<-SetupInterruptSignalHandler()
124+
// cancel readLogCtx when Interrupt signal received
125+
cancelFn()
126+
}()
127+
defer func() {
128+
// We can not use the typed error "context.Canceled" here
129+
// because the upstream K8S dependency explicitly returns a fmt.Errorf("context cancelled").
130+
// So we need to compare the error in string.
131+
if retErr != nil && retErr.Error() == "context cancelled" {
132+
// Silent the "context cancelled" error.
133+
// In order to prevent the error msg when user hit Ctrl+C.
134+
retErr = nil
135+
}
136+
// Ensure no context leak
137+
cancelFn()
138+
}()
139+
*/
140+
// return logs.ReadLogs(readLogCtx, logPath, status.GetStatus().GetId(), logOptions, runtimeService, os.Stdout, os.Stderr)
141+
return nil
138142
},
139143
}
140144

cmd/crictl/main.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ import (
3232
"go.opentelemetry.io/otel/trace/noop"
3333

3434
internalapi "k8s.io/cri-api/pkg/apis"
35-
"k8s.io/kubernetes/pkg/kubelet/cri/remote"
35+
remote "k8s.io/cri-client/pkg"
36+
"k8s.io/klog/v2"
3637

3738
"sigs.k8s.io/cri-tools/pkg/common"
3839
"sigs.k8s.io/cri-tools/pkg/tracing"
@@ -82,6 +83,8 @@ func getRuntimeService(_ *cli.Context, timeout time.Duration) (res internalapi.R
8283
tp = tracerProvider
8384
}
8485

86+
logger := klog.Background()
87+
8588
// If no EP set then use the default endpoint types
8689
if !RuntimeEndpointIsSet {
8790
logrus.Warningf("runtime connect using default endpoints: %v. "+
@@ -94,7 +97,7 @@ func getRuntimeService(_ *cli.Context, timeout time.Duration) (res internalapi.R
9497
for _, endPoint := range defaultRuntimeEndpoints {
9598
logrus.Debugf("Connect using endpoint %q with %q timeout", endPoint, t)
9699

97-
res, err = remote.NewRemoteRuntimeService(endPoint, t, tp)
100+
res, err = remote.NewRemoteRuntimeService(endPoint, t, tp, &logger)
98101
if err != nil {
99102
logrus.Error(err)
100103
continue
@@ -105,7 +108,7 @@ func getRuntimeService(_ *cli.Context, timeout time.Duration) (res internalapi.R
105108
}
106109
return res, err
107110
}
108-
return remote.NewRemoteRuntimeService(RuntimeEndpoint, t, tp)
111+
return remote.NewRemoteRuntimeService(RuntimeEndpoint, t, tp, &logger)
109112
}
110113

111114
func getImageService(*cli.Context) (res internalapi.ImageManagerService, err error) {
@@ -126,6 +129,8 @@ func getImageService(*cli.Context) (res internalapi.ImageManagerService, err err
126129
tp = tracerProvider
127130
}
128131

132+
logger := klog.Background()
133+
129134
// If no EP set then use the default endpoint types
130135
if !ImageEndpointIsSet {
131136
logrus.Warningf("image connect using default endpoints: %v. "+
@@ -138,7 +143,7 @@ func getImageService(*cli.Context) (res internalapi.ImageManagerService, err err
138143
for _, endPoint := range defaultRuntimeEndpoints {
139144
logrus.Debugf("Connect using endpoint %q with %q timeout", endPoint, Timeout)
140145

141-
res, err = remote.NewRemoteImageService(endPoint, Timeout, tp)
146+
res, err = remote.NewRemoteImageService(endPoint, Timeout, tp, &logger)
142147
if err != nil {
143148
logrus.Error(err)
144149
continue
@@ -149,7 +154,7 @@ func getImageService(*cli.Context) (res internalapi.ImageManagerService, err err
149154
}
150155
return res, err
151156
}
152-
return remote.NewRemoteImageService(ImageEndpoint, Timeout, tp)
157+
return remote.NewRemoteImageService(ImageEndpoint, Timeout, tp, &logger)
153158
}
154159

155160
func getTimeout(timeDuration time.Duration) time.Duration {

cmd/crictl/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
"github.com/urfave/cli/v2"
2525
internalapi "k8s.io/cri-api/pkg/apis"
2626
pb "k8s.io/cri-api/pkg/apis/runtime/v1"
27-
"k8s.io/kubernetes/pkg/kubelet/cri/remote"
27+
remote "k8s.io/cri-client/pkg"
2828
)
2929

3030
var runtimeVersionCommand = &cli.Command{

go.mod

Lines changed: 15 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ require (
2727
golang.org/x/term v0.20.0
2828
golang.org/x/text v0.15.0
2929
gopkg.in/yaml.v3 v3.0.1
30-
k8s.io/api v0.0.0
31-
k8s.io/apimachinery v0.0.0
32-
k8s.io/client-go v0.0.0
33-
k8s.io/cri-api v0.0.0
34-
k8s.io/kubectl v0.0.0
35-
k8s.io/kubelet v0.0.0
36-
k8s.io/kubernetes v0.0.0
30+
k8s.io/apimachinery v0.30.1
31+
k8s.io/client-go v0.30.1
32+
k8s.io/cri-api v0.31.0-alpha.0.0.20240528091733-69e407966029
33+
k8s.io/cri-client v0.31.0-alpha.0.0.20240528091857-02eb8ff5b30f
34+
k8s.io/klog/v2 v2.120.1
35+
k8s.io/kubectl v0.30.1
36+
k8s.io/kubelet v0.30.1
3737
sigs.k8s.io/yaml v1.4.0
3838
)
3939

@@ -47,37 +47,27 @@ require (
4747
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
4848
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
4949
github.com/davecgh/go-spew v1.1.1 // indirect
50-
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
5150
github.com/felixge/httpsnoop v1.0.3 // indirect
52-
github.com/fsnotify/fsnotify v1.7.0 // indirect
5351
github.com/go-logr/logr v1.4.1 // indirect
5452
github.com/go-logr/stdr v1.2.2 // indirect
55-
github.com/go-openapi/jsonpointer v0.19.6 // indirect
56-
github.com/go-openapi/jsonreference v0.20.2 // indirect
57-
github.com/go-openapi/swag v0.22.3 // indirect
5853
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
5954
github.com/gogo/protobuf v1.3.2 // indirect
60-
github.com/google/gnostic-models v0.6.8 // indirect
6155
github.com/google/go-cmp v0.6.0 // indirect
6256
github.com/google/gofuzz v1.2.0 // indirect
63-
github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect
57+
github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af // indirect
6458
github.com/gorilla/websocket v1.5.0 // indirect
6559
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
66-
github.com/josharian/intern v1.0.0 // indirect
6760
github.com/json-iterator/go v1.1.12 // indirect
6861
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
69-
github.com/mailru/easyjson v0.7.7 // indirect
70-
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
7162
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
7263
github.com/moby/spdystream v0.2.0 // indirect
7364
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
7465
github.com/modern-go/reflect2 v1.0.2 // indirect
75-
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
7666
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
77-
github.com/prometheus/client_golang v1.16.0 // indirect
78-
github.com/prometheus/client_model v0.4.0 // indirect
79-
github.com/prometheus/common v0.44.0 // indirect
80-
github.com/prometheus/procfs v0.10.1 // indirect
67+
github.com/prometheus/client_golang v1.19.0 // indirect
68+
github.com/prometheus/client_model v0.6.0 // indirect
69+
github.com/prometheus/common v0.48.0 // indirect
70+
github.com/prometheus/procfs v0.12.0 // indirect
8171
github.com/russross/blackfriday/v2 v2.1.0 // indirect
8272
github.com/spf13/pflag v1.0.5 // indirect
8373
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913 // indirect
@@ -97,45 +87,10 @@ require (
9787
google.golang.org/protobuf v1.34.1 // indirect
9888
gopkg.in/inf.v0 v0.9.1 // indirect
9989
gopkg.in/yaml.v2 v2.4.0 // indirect
100-
k8s.io/apiextensions-apiserver v0.0.0 // indirect
101-
k8s.io/apiserver v0.0.0 // indirect
102-
k8s.io/cli-runtime v0.0.0 // indirect
103-
k8s.io/component-base v0.0.0 // indirect
104-
k8s.io/klog/v2 v2.120.1 // indirect
105-
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
90+
k8s.io/api v0.30.1 // indirect
91+
k8s.io/cli-runtime v0.30.1 // indirect
92+
k8s.io/component-base v0.30.1 // indirect
10693
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
10794
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
10895
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
10996
)
110-
111-
replace (
112-
k8s.io/api => k8s.io/kubernetes/staging/src/k8s.io/api v0.0.0-20240417172702-7c48c2bd72b9
113-
k8s.io/apiextensions-apiserver => k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20240417172702-7c48c2bd72b9
114-
k8s.io/apimachinery => k8s.io/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20240417172702-7c48c2bd72b9
115-
k8s.io/apiserver => k8s.io/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20240417172702-7c48c2bd72b9
116-
k8s.io/cli-runtime => k8s.io/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20240417172702-7c48c2bd72b9
117-
k8s.io/client-go => k8s.io/kubernetes/staging/src/k8s.io/client-go v0.0.0-20240417172702-7c48c2bd72b9
118-
k8s.io/cloud-provider => k8s.io/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20240417172702-7c48c2bd72b9
119-
k8s.io/cluster-bootstrap => k8s.io/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20240417172702-7c48c2bd72b9
120-
k8s.io/code-generator => k8s.io/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20240417172702-7c48c2bd72b9
121-
k8s.io/component-base => k8s.io/kubernetes/staging/src/k8s.io/component-base v0.0.0-20240417172702-7c48c2bd72b9
122-
k8s.io/component-helpers => k8s.io/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20240417172702-7c48c2bd72b9
123-
k8s.io/controller-manager => k8s.io/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20240417172702-7c48c2bd72b9
124-
k8s.io/cri-api => k8s.io/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20240417172702-7c48c2bd72b9
125-
k8s.io/csi-translation-lib => k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20240417172702-7c48c2bd72b9
126-
k8s.io/dynamic-resource-allocation => k8s.io/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20240417172702-7c48c2bd72b9
127-
k8s.io/endpointslice => k8s.io/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20240417172702-7c48c2bd72b9
128-
k8s.io/kms => k8s.io/kubernetes/staging/src/k8s.io/kms v0.0.0-20240417172702-7c48c2bd72b9
129-
k8s.io/kube-aggregator => k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20240417172702-7c48c2bd72b9
130-
k8s.io/kube-controller-manager => k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20240417172702-7c48c2bd72b9
131-
k8s.io/kube-proxy => k8s.io/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20240417172702-7c48c2bd72b9
132-
k8s.io/kube-scheduler => k8s.io/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20240417172702-7c48c2bd72b9
133-
k8s.io/kubectl => k8s.io/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20240417172702-7c48c2bd72b9
134-
k8s.io/kubelet => k8s.io/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20240417172702-7c48c2bd72b9
135-
k8s.io/kubernetes => k8s.io/kubernetes v1.30.0
136-
k8s.io/legacy-cloud-providers => k8s.io/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20240417172702-7c48c2bd72b9
137-
k8s.io/metrics => k8s.io/kubernetes/staging/src/k8s.io/metrics v0.0.0-20240417172702-7c48c2bd72b9
138-
k8s.io/mount-utils => k8s.io/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20240417172702-7c48c2bd72b9
139-
k8s.io/pod-security-admission => k8s.io/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20240417172702-7c48c2bd72b9
140-
k8s.io/sample-apiserver => k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20240417172702-7c48c2bd72b9
141-
)

0 commit comments

Comments
 (0)