diff --git a/pkg/server/version.go b/pkg/server/version.go index c9f1f1215..c7747eedd 100644 --- a/pkg/server/version.go +++ b/pkg/server/version.go @@ -28,23 +28,20 @@ import ( const ( containerName = "containerd" containerdAPIVersion = "0.0.0" - containerdVersion = "0.0.0" // kubeAPIVersion is the api version of kubernetes. kubeAPIVersion = "0.1.0" ) // Version returns the runtime name, runtime version and runtime API version. func (c *criContainerdService) Version(ctx context.Context, r *runtime.VersionRequest) (*runtime.VersionResponse, error) { - _, err := c.versionService.Version(ctx, &empty.Empty{}) + resp, err := c.versionService.Version(ctx, &empty.Empty{}) if err != nil { return nil, fmt.Errorf("failed to get containerd version: %v", err) } return &runtime.VersionResponse{ - Version: kubeAPIVersion, - RuntimeName: containerName, - // Containerd doesn't return semver because of a bug. - // TODO(random-liu): Replace this with version from containerd. - RuntimeVersion: containerdVersion, + Version: kubeAPIVersion, + RuntimeName: containerName, + RuntimeVersion: resp.Version, // Containerd doesn't have an api version now. RuntimeApiVersion: containerdAPIVersion, }, nil diff --git a/pkg/server/version_test.go b/pkg/server/version_test.go index 75866a508..b6ce97563 100644 --- a/pkg/server/version_test.go +++ b/pkg/server/version_test.go @@ -35,9 +35,10 @@ func TestVersion(t *testing.T) { defer ctrl.Finish() // TODO(random-liu): Check containerd version after containerd fixes its version. for desc, test := range map[string]struct { - versionRes *versionapi.VersionResponse - versionErr error - expectErr bool + versionRes *versionapi.VersionResponse + versionErr error + expectErr bool + expectedVersion string }{ "should return error if containerd version returns error": { versionErr: errors.New("random error"), @@ -55,7 +56,11 @@ func TestVersion(t *testing.T) { mock.EXPECT().Version(ctx, &empty.Empty{}).Return(test.versionRes, test.versionErr) c.versionService = mock - _, err := c.Version(ctx, &runtime.VersionRequest{}) - assert.Equal(t, test.expectErr, err != nil) + v, err := c.Version(ctx, &runtime.VersionRequest{}) + if test.expectErr { + assert.Equal(t, test.expectErr, err != nil) + } else { + assert.Equal(t, test.versionRes.Version, v.RuntimeVersion) + } } }