kubernetes/kops · error

could not get spec.version from ClusterPackage

Error message

could not get spec.version from ClusterPackage

What it means

loadClusterPackage reads a ClusterPackage custom object from the cluster's AdditionalObjects; spec.version was absent, empty, or not a string (NestedString error), so kOps cannot locate packages/<name>/<version>/manifest.yaml in the channel.

Source

Thrown at pkg/wellknownoperators/operators.go:84

			}
		}

		if keep {
			keepObjects = append(keepObjects, object)
		}
	}
	return packages, keepObjects, nil
}

func (b *Builder) loadClusterPackage(u *unstructured.Unstructured) (*Package, error) {
	operatorKey := u.GetName()
	if operatorKey == "" {
		return nil, fmt.Errorf("could not get name from ClusterPackage")
	}

	operatorVersion, _, err := unstructured.NestedString(u.Object, "spec", "version")
	if err != nil || operatorVersion == "" {
		return nil, fmt.Errorf("could not get spec.version from ClusterPackage")
	}

	id := operatorVersion

	location := path.Join("packages", operatorKey, operatorVersion, "manifest.yaml")
	channelURL, err := kops.ResolveChannel(b.Cluster.Spec.Channel)
	if err != nil {
		return nil, fmt.Errorf("error resolving channel %q: %v", b.Cluster.Spec.Channel, err)
	}

	locationURL := channelURL.ResolveReference(&url.URL{Path: location}).String()

	manifestBytes, err := b.VFSContext.ReadFile(locationURL)
	if err != nil {
		return nil, fmt.Errorf("error reading operator manifest %q: %v", locationURL, err)
	}

	addon := &Package{

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Set spec.version to a concrete version string on every ClusterPackage object
  2. Verify the ClusterPackage object's YAML types (version must be a quoted string, not a number)
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/wellknownoperators/operators.go:84 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/0c7da6e69fbbbe77. Report an issue: GitHub.