Verify containerd storage separately from docker
parent
747495cfea
commit
5d66427c04
|
@ -136,11 +136,16 @@ func generateTarball(kubernetesVersion, containerRuntime, tarballFilename string
|
|||
}
|
||||
|
||||
func verifyStorage(containerRuntime string) error {
|
||||
if containerRuntime == "docker" || containerRuntime == "containerd" {
|
||||
if containerRuntime == "docker" {
|
||||
if err := retry.Expo(verifyDockerStorage, 100*time.Microsecond, time.Minute*2); err != nil {
|
||||
return errors.Wrap(err, "Docker storage type is incompatible")
|
||||
}
|
||||
}
|
||||
if containerRuntime == "containerd" {
|
||||
if err := retry.Expo(verifyContainerdStorage, 100*time.Microsecond, time.Minute*2); err != nil {
|
||||
return errors.Wrap(err, "containerd storage type is incompatible")
|
||||
}
|
||||
}
|
||||
if containerRuntime == "cri-o" {
|
||||
if err := retry.Expo(verifyPodmanStorage, 100*time.Microsecond, time.Minute*2); err != nil {
|
||||
return errors.Wrap(err, "Podman storage type is incompatible")
|
||||
|
|
|
@ -41,16 +41,17 @@ const (
|
|||
)
|
||||
|
||||
var (
|
||||
dockerStorageDriver = "overlay2"
|
||||
podmanStorageDriver = "overlay"
|
||||
containerRuntimes = []string{"docker", "containerd", "cri-o"}
|
||||
k8sVersions []string
|
||||
k8sVersion = flag.String("kubernetes-version", "", "desired Kubernetes version, for example `v1.17.2`")
|
||||
noUpload = flag.Bool("no-upload", false, "Do not upload tarballs to GCS")
|
||||
force = flag.Bool("force", false, "Generate the preload tarball even if it's already exists")
|
||||
limit = flag.Int("limit", 0, "Limit the number of tarballs to generate")
|
||||
armUpload = flag.Bool("arm-upload", false, "Upload the arm64 preload tarballs to GCS")
|
||||
armPreloadsDir = flag.String("arm-preloads-dir", "artifacts", "Directory containing the arm64 preload tarballs")
|
||||
dockerStorageDriver = "overlay2"
|
||||
containerdSnapshotter = "overlayfs"
|
||||
podmanStorageDriver = "overlay"
|
||||
containerRuntimes = []string{"docker", "containerd", "cri-o"}
|
||||
k8sVersions []string
|
||||
k8sVersion = flag.String("kubernetes-version", "", "desired Kubernetes version, for example `v1.17.2`")
|
||||
noUpload = flag.Bool("no-upload", false, "Do not upload tarballs to GCS")
|
||||
force = flag.Bool("force", false, "Generate the preload tarball even if it's already exists")
|
||||
limit = flag.Int("limit", 0, "Limit the number of tarballs to generate")
|
||||
armUpload = flag.Bool("arm-upload", false, "Upload the arm64 preload tarballs to GCS")
|
||||
armPreloadsDir = flag.String("arm-preloads-dir", "artifacts", "Directory containing the arm64 preload tarballs")
|
||||
)
|
||||
|
||||
type preloadCfg struct {
|
||||
|
@ -179,6 +180,27 @@ var verifyDockerStorage = func() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
var verifyContainerdStorage = func() error {
|
||||
cmd := exec.Command("docker", "exec", profile, "sudo", "containerd", "config", "dump")
|
||||
var stderr bytes.Buffer
|
||||
cmd.Stderr = &stderr
|
||||
output, err := cmd.Output()
|
||||
if err != nil {
|
||||
return fmt.Errorf("%v: %v:\n%s", cmd.Args, err, stderr.String())
|
||||
}
|
||||
var driver string
|
||||
for _, line := range strings.Split(string(output), "\n") {
|
||||
if strings.Contains(line, "snapshotter = ") {
|
||||
driver = strings.Split(line, " = ")[1]
|
||||
driver = strings.Trim(driver, "\"")
|
||||
}
|
||||
}
|
||||
if driver != containerdSnapshotter {
|
||||
return fmt.Errorf("containerd snapshotter %s does not match requested %s", driver, containerdSnapshotter)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var verifyPodmanStorage = func() error {
|
||||
cmd := exec.Command("docker", "exec", profile, "sudo", "podman", "info", "-f", "json")
|
||||
var stderr bytes.Buffer
|
||||
|
|
Loading…
Reference in New Issue