kubernetes/kops · error

cloud %T does not expose Azure subscription ID

Error message

cloud %T does not expose Azure subscription ID

What it means

Type-assertion guard in azureSubscriptionID: the TerraformTarget's Cloud does not implement subscriptionIDProvider, so the Azure subscription ID needed to build resource IDs (e.g. subnet self-links) cannot be obtained. Fires when Terraform rendering runs against a cloud implementation that is not the Azure cloud — a programming/wiring error rather than runtime drift.

Source

Thrown at upup/pkg/fi/cloudup/azuretasks/subnet_terraform.go:137

	}

	subscriptionID, err := azureSubscriptionID(t)
	if err != nil {
		return nil, err
	}
	subnetID := azure.SubnetID{
		SubscriptionID:     subscriptionID,
		ResourceGroupName:  fi.ValueOf(s.ResourceGroup.Name),
		VirtualNetworkName: fi.ValueOf(s.VirtualNetwork.Name),
		SubnetName:         fi.ValueOf(s.Name),
	}
	return terraformWriter.LiteralFromStringValue(subnetID.String()), nil
}

func azureSubscriptionID(t *terraform.TerraformTarget) (string, error) {
	cloud, ok := t.Cloud.(subscriptionIDProvider)
	if !ok {
		return "", fmt.Errorf("cloud %T does not expose Azure subscription ID", t.Cloud)
	}
	subscriptionID := cloud.SubscriptionID()
	if subscriptionID == "" {
		return "", fmt.Errorf("Azure subscription ID is empty")
	}
	return subscriptionID, nil
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Ensure Azure tasks are only rendered with an Azure cloud configuration
  2. Check that the cloud instance passed in TerraformTarget implements SubscriptionID()
  3. Report as a bug if rendering Azure resources was intended
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/azuretasks/subnet_terraform.go:137 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/4b271e4d1face3e1. Report an issue: GitHub.