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
- Ensure Azure tasks are only rendered with an Azure cloud configuration
- Check that the cloud instance passed in TerraformTarget implements SubscriptionID()
- 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.