kubernetes/kops · error

completed cluster failed validation: %v

Error message

completed cluster failed validation: %v

What it means

The fully-defaulted cluster spec was built but failed kops' own cluster validation. The aggregate error lists every invalid field; defaults were applied successfully, yet the resulting spec is still inconsistent or unsupported.

Source

Thrown at upup/pkg/fi/cloudup/populate_cluster_spec.go:353

			codeModels = append(codeModels, &components.KarpenterOptionsBuilder{Context: optionsContext})
		}
	}

	specBuilder := &SpecBuilder{
		OptionsLoader: loader.NewClusterOptionsLoader(codeModels),
	}

	completed, err := specBuilder.BuildCompleteSpec(cluster)
	if err != nil {
		return fmt.Errorf("error building complete spec: %v", err)
	}

	// TODO: This should not be needed...
	completed.Spec.Networking.Topology = c.InputCluster.Spec.Networking.Topology
	// completed.Topology.Bastion = c.InputCluster.Spec.Topology.Bastion

	if errs := validation.ValidateCluster(completed, true, clientset.VFSContext()); len(errs) != 0 {
		return fmt.Errorf("completed cluster failed validation: %v", errs.ToAggregate())
	}

	c.fullCluster = completed
	return nil
}

func (c *populateClusterSpec) assignSubnets(cluster *kopsapi.Cluster) error {
	if cluster.Spec.Networking.NonMasqueradeCIDR == "" {
		klog.Warningf("NonMasqueradeCIDR not set; can't auto-assign dependent subnets")
		return nil
	}

	_, nonMasqueradeCIDR, err := net.ParseCIDR(cluster.Spec.Networking.NonMasqueradeCIDR)
	if err != nil {
		return fmt.Errorf("error parsing NonMasqueradeCIDR %q: %v", cluster.Spec.Networking.NonMasqueradeCIDR, err)
	}
	nmOnes, nmBits := nonMasqueradeCIDR.Mask.Size()

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Read each error in the aggregate to find the invalid fields
  2. Fix the corresponding settings in the cluster spec
  3. Retry creation/update after fixing
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/populate_cluster_spec.go:353 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/b36fd3a85d979717. Report an issue: GitHub.