kubernetes/kops · error

expecting VPC CIDR to not be <nil>

Error message

expecting VPC CIDR to not be <nil>

What it means

calculateSubnetCIDR computes a concrete CIDR from a prefix-length/netnum hint; the VPC's CIDR pointer is nil, so there is no base prefix to subnet — the VPC task has not resolved (or lost) its CIDR.

Source

Thrown at upup/pkg/fi/cloudup/awstasks/subnet.go:554

	_, err := awsTarget.Cloud.EC2().DisassociateSubnetCidrBlock(ctx, request)
	return err
}

func (d *deleteSubnetIPv6CIDRBlock) TaskName() string {
	return "SubnetIPv6CIDRBlock"
}

func (d *deleteSubnetIPv6CIDRBlock) Item() string {
	return fmt.Sprintf("%v: ipv6cidr=%v", *d.vpcID, *d.ipv6CidrBlock)
}

func (d *deleteSubnetIPv6CIDRBlock) DeferDeletion() bool {
	return false // TODO: should we defer this?
}

func calculateSubnetCIDR(vpcCIDR, subnetCIDR *string) (*string, error) {
	if vpcCIDR == nil {
		return nil, fmt.Errorf("expecting VPC CIDR to not be <nil>")
	}
	if subnetCIDR == nil {
		return nil, fmt.Errorf("expecting subnet CIDR to not be <nil>")
	}
	if !strings.HasPrefix(aws.ToString(subnetCIDR), "/") {
		return nil, fmt.Errorf("expecting subnet cidr to start with %q: %q", "/", aws.ToString(subnetCIDR))
	}

	newSize, netNum, err := utils.ParseCIDRNotation(aws.ToString(subnetCIDR))
	if err != nil {
		return nil, fmt.Errorf("error parsing CIDR subnet: %v", err)
	}

	newCIDR, err := utils.CIDRSubnet(aws.ToString(vpcCIDR), newSize, netNum)
	if err != nil {
		return nil, fmt.Errorf("error calculating CIDR subnet: %v", err)
	}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Ensure the VPC (or IPv6 CIDR) is defined/resolvable in the cluster spec
  2. Run `kops update` so the VPC task resolves its CIDR before subnets are computed
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/awstasks/subnet.go:554 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/7767dc3c3f73b81e. Report an issue: GitHub.