diff --git a/pkg/server/container_create.go b/pkg/server/container_create.go index cea3a58db..136e8b8ca 100644 --- a/pkg/server/container_create.go +++ b/pkg/server/container_create.go @@ -31,6 +31,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" containerstore "github.com/kubernetes-incubator/cri-containerd/pkg/store/container" + "github.com/kubernetes-incubator/cri-containerd/pkg/util" ) // CreateContainer creates a new container in the given PodSandbox. @@ -54,7 +55,7 @@ func (c *criContainerdService) CreateContainer(ctx context.Context, r *runtime.C // Generate unique id and name for the container and reserve the name. // Reserve the container name to avoid concurrent `CreateContainer` request creating // the same container. - id := generateID() + id := util.GenerateID() name := makeContainerName(config.GetMetadata(), sandboxConfig.GetMetadata()) if err = c.containerNameIndex.Reserve(name, id); err != nil { return nil, fmt.Errorf("failed to reserve container name %q: %v", name, err) diff --git a/pkg/server/container_execsync.go b/pkg/server/container_execsync.go index 17be309e3..80180386a 100644 --- a/pkg/server/container_execsync.go +++ b/pkg/server/container_execsync.go @@ -29,6 +29,8 @@ import ( "golang.org/x/sys/unix" "k8s.io/client-go/tools/remotecommand" "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" + + "github.com/kubernetes-incubator/cri-containerd/pkg/util" ) // ExecSync executes a command in the container, and returns the stdout output. @@ -116,7 +118,7 @@ func (c *criContainerdService) execInContainer(ctx context.Context, id string, o // Create empty buffer if stdin is nil. opts.stdin = new(bytes.Buffer) } - execID := generateID() + execID := util.GenerateID() process, err := task.Exec(ctx, execID, pspec, containerd.NewIOWithTerminal( opts.stdin, opts.stdout, diff --git a/pkg/server/helpers.go b/pkg/server/helpers.go index d43851297..b4ecffbcc 100644 --- a/pkg/server/helpers.go +++ b/pkg/server/helpers.go @@ -29,7 +29,6 @@ import ( "github.com/containerd/containerd/content" "github.com/containerd/containerd/errdefs" "github.com/docker/distribution/reference" - "github.com/docker/docker/pkg/stringid" imagedigest "github.com/opencontainers/go-digest" "github.com/opencontainers/image-spec/identity" imagespec "github.com/opencontainers/image-spec/specs-go/v1" @@ -102,11 +101,6 @@ const ( containerMetadataLabel = "io.cri-containerd.container.metadata" ) -// generateID generates a random unique id. -func generateID() string { - return stringid.GenerateNonCryptoID() -} - // makeSandboxName generates sandbox name from sandbox metadata. The name // generated is unique as long as sandbox metadata is unique. func makeSandboxName(s *runtime.PodSandboxMetadata) string { diff --git a/pkg/server/sandbox_run.go b/pkg/server/sandbox_run.go index 983fbf82a..46d1bec17 100644 --- a/pkg/server/sandbox_run.go +++ b/pkg/server/sandbox_run.go @@ -35,6 +35,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" sandboxstore "github.com/kubernetes-incubator/cri-containerd/pkg/store/sandbox" + "github.com/kubernetes-incubator/cri-containerd/pkg/util" ) // RunPodSandbox creates and starts a pod-level sandbox. Runtimes should ensure @@ -50,7 +51,7 @@ func (c *criContainerdService) RunPodSandbox(ctx context.Context, r *runtime.Run config := r.GetConfig() // Generate unique id and name for the sandbox and reserve the name. - id := generateID() + id := util.GenerateID() name := makeSandboxName(config.GetMetadata()) // Reserve the sandbox name to avoid concurrent `RunPodSandbox` request starting the // same sandbox. diff --git a/pkg/util/id.go b/pkg/util/id.go new file mode 100644 index 000000000..ae7fbdcc6 --- /dev/null +++ b/pkg/util/id.go @@ -0,0 +1,24 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package util + +import "github.com/docker/docker/pkg/stringid" + +// GenerateID generates a random unique id. +func GenerateID() string { + return stringid.GenerateNonCryptoID() +}