kubernetes/kops · error

error creating directories for destination file %q: %v

Error message

error creating directories for destination file %q: %v

What it means

Thrown by fi.WriteFile when os.MkdirAll fails to create the parent directory tree for the destination path. Common causes: permission denied on an existing parent directory, a path component that is a file rather than a directory, or read-only filesystem at the destination.

Source

Thrown at upup/pkg/fi/files.go:35

package fi

import (
	"fmt"
	"io"
	"os"
	"path"
	"path/filepath"
	"strconv"

	"k8s.io/klog/v2"
	"k8s.io/kops/util/pkg/hashing"
)

// WriteFile writes a file to the specified path, setting the mode, owner & group.
func WriteFile(destPath string, contents Resource, fileMode os.FileMode, dirMode os.FileMode, owner string, group string) error {
	err := os.MkdirAll(path.Dir(destPath), dirMode)
	if err != nil {
		return fmt.Errorf("error creating directories for destination file %q: %v", destPath, err)
	}

	err = writeFileContents(destPath, contents, fileMode)
	if err != nil {
		return err
	}

	_, err = EnsureFileMode(destPath, fileMode)
	if err != nil {
		return err
	}

	_, err = EnsureFileOwner(destPath, owner, group)
	if err != nil {
		return err
	}

	return nil

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Check permissions on the parent directories of the destination path and grant write access
  2. Remove a regular file that occupies a needed directory component
  3. Verify the destination filesystem is writable (not read-only or full)
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at upup/pkg/fi/files.go:35 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/24af529affaf92e7. Report an issue: GitHub.