kubernetes/kops · error

missing required --azure-resource-group-name when specifying

Error message

missing required --azure-resource-group-name when specifying Network ID

What it means

Azure configuration guard in PerformAssignments: an Azure cluster specified a NetworkID (existing network) but the required --azure-resource-group-name flag was not provided, so kOps cannot locate resources in the user-supplied resource group.

Source

Thrown at upup/pkg/fi/cloudup/defaults.go:106

			c.Spec.Networking.NetworkCIDR = vpcInfo.CIDR
			if c.Spec.Networking.NetworkCIDR == "" {
				return fmt.Errorf("unable to infer NetworkCIDR from Network ID, please specify --network-cidr")
			}
		} else {
			// TODO: Choose non-overlapping networking CIDRs for VPCs, using vpcInfo
			c.Spec.Networking.NetworkCIDR = defaultAWSNetworkCIDR
		}

		// Amazon VPC CNI uses the same network
		if c.Spec.Networking.AmazonVPC != nil && c.Spec.Networking.NonMasqueradeCIDR != "::/0" {
			c.Spec.Networking.NonMasqueradeCIDR = c.Spec.Networking.NetworkCIDR
		}
	}

	if cloud.ProviderID() == kops.CloudProviderAzure && c.Spec.Networking.NetworkCIDR == "" {
		if c.SharedVPC() {
			if c.Spec.CloudProvider.Azure == nil || c.Spec.CloudProvider.Azure.ResourceGroupName == "" {
				return fmt.Errorf("missing required --azure-resource-group-name when specifying Network ID")
			}
			vpcInfo, err := cloud.(azure.AzureCloud).FindVNetInfo(c.Spec.Networking.NetworkID, c.Spec.CloudProvider.Azure.ResourceGroupName)
			if err != nil {
				return err
			}
			if vpcInfo == nil {
				return fmt.Errorf("unable to find Network ID %q", c.Spec.Networking.NetworkID)
			}
			c.Spec.Networking.NetworkCIDR = vpcInfo.CIDR
			if c.Spec.Networking.NetworkCIDR == "" {
				return fmt.Errorf("unable to infer NetworkCIDR from Network ID, please specify --network-cidr")
			}
		} else {
			c.Spec.Networking.NetworkCIDR = defaultAzureNetworkCIDR
		}
	}

	if cloud.ProviderID() == kops.CloudProviderLinode && c.Spec.Networking.NetworkCIDR == "" {

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Set --azure-resource-group-name to the resource group holding the existing network
  2. Or clear the Network ID to let kOps manage its own network
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/defaults.go:106 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/d639818c7e8857f8. Report an issue: GitHub.