Skip to content

Incompatible with IBM/vpc-go-sdk v0.77.0+: removed constants and types #2671

Description

@bryan-cox

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:

  • SecurityGroupRuleSecurityGroupRuleProtocolAllremoved
  • SecurityGroupRulePrototypeSecurityGroupRuleProtocolAllremoved
  • 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions