func NewTmpfsVolume()

in pkg/localvolume/tmpfs.go [37:63]


func NewTmpfsVolume(ctx context.Context, path string, size resource.Quantity) (LocalVolume, error) {
	if size.IsZero() {
		return nil, fmt.Errorf("Bad size %v", size)
	}

	if err := os.MkdirAll(path, 0750); err != nil {
		return nil, fmt.Errorf("Could not use or create %s: %w", path, err)
	}

	mountOpts := []string{
		fmt.Sprintf("size=%dM", int64(size.AsApproximateFloat64()/1024/1024)),
		fmt.Sprintf("huge=always"),
	}

	mounter := &mount.SafeFormatAndMount{
		Interface: mount.New(""),
		Exec:      exec.New(),
	}
	if err := mounter.Mount("tmpfs", path, "tmpfs", mountOpts); err != nil {
		return nil, fmt.Errorf("Could not mount at %s with %v: %w", path, mountOpts, err)
	}

	return &tmpfsVolume{
		path: path,
	}, nil

}