Skip to content

Commit 996d000

Browse files
committed
fix: skip status response verification for containerd v2
1 parent bce1b95 commit 996d000

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

pkg/oci/containerd.go

+23-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"path/filepath"
1313
"strings"
1414

15+
semver "github.com/Masterminds/semver/v3"
1516
"github.com/containerd/containerd"
1617
eventtypes "github.com/containerd/containerd/api/events"
1718
"github.com/containerd/containerd/content"
@@ -79,6 +80,7 @@ func (c *Containerd) Name() string {
7980
}
8081

8182
func (c *Containerd) Verify(ctx context.Context) error {
83+
log := logr.FromContextOrDiscard(ctx)
8284
client, err := c.Client()
8385
if err != nil {
8486
return err
@@ -90,11 +92,30 @@ func (c *Containerd) Verify(ctx context.Context) error {
9092
if !ok {
9193
return errors.New("could not reach Containerd service")
9294
}
93-
resp, err := runtimeapi.NewRuntimeServiceClient(client.Conn()).Status(ctx, &runtimeapi.StatusRequest{Verbose: true})
95+
srv := runtimeapi.NewRuntimeServiceClient(client.Conn())
96+
versionResp, err := srv.Version(ctx, &runtimeapi.VersionRequest{})
97+
if err != nil {
98+
return err
99+
}
100+
101+
version, err := semver.NewVersion(versionResp.GetRuntimeVersion())
102+
if err != nil {
103+
return err
104+
}
105+
constraint, err := semver.NewConstraint(">1-0")
106+
if err != nil {
107+
return err
108+
}
109+
if constraint.Check(version) {
110+
log.Info("unable to verify status response for containerd version", "version", version.String())
111+
return nil
112+
}
113+
114+
statusResp, err := srv.Status(ctx, &runtimeapi.StatusRequest{Verbose: true})
94115
if err != nil {
95116
return err
96117
}
97-
err = verifyStatusResponse(resp, c.registryConfigPath)
118+
err = verifyStatusResponse(statusResp, c.registryConfigPath)
98119
if err != nil {
99120
return err
100121
}

0 commit comments

Comments
 (0)