-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
None
-
False
-
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Problem Summary
When a MachinePool for IBM Cloud results in multiple zones (either explicitly configured or automatically discovered), the Hive controller only creates one MachineSet instead of creating separate MachineSets for each zone. All generated MachineSets are incorrectly matched to the same remote MachineSet, preventing the creation of additional MachineSets for different zones.
This issue occurs regardless of whether zones are explicitly configured in the MachinePool:
- If zones are not configured: The controller automatically calls `GetVPCZonesForRegion()` to discover all zones in the region. If the region has multiple zones, the issue will occur.
- If zones are configured: The controller uses the configured zones.
- If multiple zones are specified, the issue will occur.
- If only one zone exists(either configured or discovered): The issue does not manifest because only one MachineSet is generated, so there's no matching problem.
The issue is in the `matchFailureDomains()` function in `pkg/controller/machinepool/machinepool_controller.go`. IBM Cloud uses `GenericFailureDomain` which doesn't include zone information, and the `Equal()` method for generic failure domains always returns `true` for non-specific platform types, causing all IBM Cloud MachineSets to be considered equal regardless of their zone.
Logs:
Found matching remote MachineSet mihuangtest25-mkgsv-worker-1 for generated MachineSet mihuangtest25-mkgsv-worker-1 Found matching remote MachineSet mihuangtest25-mkgsv-worker-1 for generated MachineSet mihuangtest25-mkgsv-worker-2 ← Wrong match, Found matching remote MachineSet mihuangtest25-mkgsv-worker-1 for generated MachineSet mihuangtest25-mkgsv-worker-3 ← Wrong match,
- is duplicated by
-
HIVE-2534 Hive to install IBMCloud CD with wrong MachineSet
-
- Closed
-
- links to