Summary
cluster-api-provider-ibmcloud is incompatible with github.com/IBM/vpc-go-sdk v0.77.0 and later. The SDK underwent a major breaking change in IBM/vpc-go-sdk#141 (API spec version 2025-12-09), which removed and restructured constants and types used throughout this project.
Breaking changes in vpc-go-sdk v0.77.0+
Removed constant
NetworkACLRuleProtocolAllConst ("all") was removed and replaced by NetworkACLRuleProtocolAnyConst ("any")
Removed struct types
The per-protocol SecurityGroupRule subtypes were removed and flattened into a single SecurityGroupRule struct:
SecurityGroupRuleSecurityGroupRuleProtocolAll — removed
SecurityGroupRulePrototypeSecurityGroupRuleProtocolAll — removed
SecurityGroupRuleSecurityGroupRuleProtocolIcmp → still exists
SecurityGroupRuleSecurityGroupRuleProtocolTcpudp → still exists
Affected files in cluster-api-provider-ibmcloud
Constant references (NetworkACLRuleProtocolAllConst)
api/powervs/v1beta2/types.go:326
api/powervs/v1beta3/types.go:326
api/vpc/v1beta2/types.go:205
Type references (SecurityGroupRuleSecurityGroupRuleProtocolAll)
api/powervs/v1beta2/types.go:289 (string type reference)
api/powervs/v1beta3/types.go:289 (string type reference)
api/vpc/v1beta2/types.go:168 (string type reference)
cloud/scope/vpc/cluster_v2.go (lines 1463, 1531, 1710, 1757)
cloud/scope/powervs/powervs_cluster.go (lines 1471-1472, 1618-1619)
cloud/scope/powervs/powervs_cluster_test.go (many references)
Kubebuilder validation enums
The +kubebuilder:validation:Enum=all;icmp;tcp;udp annotation needs to change to any;icmp;tcp;udp in the three API types files.
Impact
Downstream consumers like openshift/hypershift cannot bump vpc-go-sdk past v0.76.2 because the vendored cluster-api-provider-ibmcloud fails to compile. See OCPBUGS-78712.
Current vpc-go-sdk version
cluster-api-provider-ibmcloud currently requires vpc-go-sdk v0.76.2 in go.mod. All tagged releases through v0.14.0-alpha.0 are affected.
Summary
cluster-api-provider-ibmcloudis incompatible withgithub.com/IBM/vpc-go-sdkv0.77.0 and later. The SDK underwent a major breaking change in IBM/vpc-go-sdk#141 (API spec version2025-12-09), which removed and restructured constants and types used throughout this project.Breaking changes in vpc-go-sdk v0.77.0+
Removed constant
NetworkACLRuleProtocolAllConst("all") was removed and replaced byNetworkACLRuleProtocolAnyConst("any")Removed struct types
The per-protocol SecurityGroupRule subtypes were removed and flattened into a single
SecurityGroupRulestruct:SecurityGroupRuleSecurityGroupRuleProtocolAll— removedSecurityGroupRulePrototypeSecurityGroupRuleProtocolAll— removedSecurityGroupRuleSecurityGroupRuleProtocolIcmp→ still existsSecurityGroupRuleSecurityGroupRuleProtocolTcpudp→ still existsAffected files in cluster-api-provider-ibmcloud
Constant references (
NetworkACLRuleProtocolAllConst)api/powervs/v1beta2/types.go:326api/powervs/v1beta3/types.go:326api/vpc/v1beta2/types.go:205Type references (
SecurityGroupRuleSecurityGroupRuleProtocolAll)api/powervs/v1beta2/types.go:289(string type reference)api/powervs/v1beta3/types.go:289(string type reference)api/vpc/v1beta2/types.go:168(string type reference)cloud/scope/vpc/cluster_v2.go(lines 1463, 1531, 1710, 1757)cloud/scope/powervs/powervs_cluster.go(lines 1471-1472, 1618-1619)cloud/scope/powervs/powervs_cluster_test.go(many references)Kubebuilder validation enums
The
+kubebuilder:validation:Enum=all;icmp;tcp;udpannotation needs to change toany;icmp;tcp;udpin the three API types files.Impact
Downstream consumers like openshift/hypershift cannot bump
vpc-go-sdkpast v0.76.2 because the vendoredcluster-api-provider-ibmcloudfails to compile. See OCPBUGS-78712.Current vpc-go-sdk version
cluster-api-provider-ibmcloudcurrently requiresvpc-go-sdk v0.76.2ingo.mod. All tagged releases throughv0.14.0-alpha.0are affected.