Skip to content

TopologyConstraint for a scaled PodGang should have the PCSG topology constraint and not the PCS topology constraint #339

@unmarshall

Description

@unmarshall

What happened?

There has been a change in the interpretation of the PodGang API.

type PodGangSpec struct {
	// PodGroups is a list of member pod groups in the PodGang.
	PodGroups []PodGroup `json:"podgroups"`
	// TopologyConstraint defines topology packing constraints for entire pod gang.
	// This is the top level topology constraint that applies to all PodGroups in the PodGang.
	// Updated by operator on each reconciliation when PodCliqueSet topology constraints change.
	// +optional
	TopologyConstraint *TopologyConstraint `json:"topologyConstraint,omitempty"`
	// TopologyConstraintGroupConfigs defines TopologyConstraints for a strict subset of PodGroups.
	// +optional
	TopologyConstraintGroupConfigs []TopologyConstraintGroupConfig `json:"topologyConstraintGroupConfigs,omitempty"`
}

For base PodGang, PodGangSpec fields have the following semantics:

  • PodGroups will hold the topology constraints defined at the PCLQ level.
  • TopologyConstraint will be the topology constraint defined at the PCS level.
  • TopologyConstraintGroupConfig.TopologyConstraint will be the topology constraint defined at the PCSG level.

For scaled PodGang, PodGangSpec fields have the following semantics:

  • PodGroups will hold the topology constraints defined at the PCLQ level.
  • TopologyConstraint will be the topology constraint defined at the PCSG level.
  • TopologyConstraintGroupConfig will be empty.

computeExpectedPodGangs does not correctly reflect this behavior and therefore needs to be fixed.

This was missed in #302.

NOTE: Design document will be updated clearly with all of these changes. Currently it is out-of-date. A separate PR will be raised soon to fix the design doc.

Metadata

Metadata

Assignees

Labels

kind/bugCategorizes issue or PR as related to a bug.

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