func SetDefaultsClusterResourcePlacement()

in pkg/utils/defaulter/clusterresourceplacement.go [46:99]


func SetDefaultsClusterResourcePlacement(obj *fleetv1beta1.ClusterResourcePlacement) {
	if obj.Spec.Policy == nil {
		obj.Spec.Policy = &fleetv1beta1.PlacementPolicy{
			PlacementType: fleetv1beta1.PickAllPlacementType,
		}
	}

	if obj.Spec.Policy.TopologySpreadConstraints != nil {
		for i := range obj.Spec.Policy.TopologySpreadConstraints {
			if obj.Spec.Policy.TopologySpreadConstraints[i].MaxSkew == nil {
				obj.Spec.Policy.TopologySpreadConstraints[i].MaxSkew = ptr.To(int32(DefaultMaxSkewValue))
			}
			if obj.Spec.Policy.TopologySpreadConstraints[i].WhenUnsatisfiable == "" {
				obj.Spec.Policy.TopologySpreadConstraints[i].WhenUnsatisfiable = fleetv1beta1.DoNotSchedule
			}
		}
	}

	if obj.Spec.Policy.Tolerations != nil {
		for i := range obj.Spec.Policy.Tolerations {
			if obj.Spec.Policy.Tolerations[i].Operator == "" {
				obj.Spec.Policy.Tolerations[i].Operator = corev1.TolerationOpEqual
			}
		}
	}

	strategy := &obj.Spec.Strategy
	if strategy.Type == "" {
		strategy.Type = fleetv1beta1.RollingUpdateRolloutStrategyType
	}
	if strategy.Type == fleetv1beta1.RollingUpdateRolloutStrategyType {
		if strategy.RollingUpdate == nil {
			strategy.RollingUpdate = &fleetv1beta1.RollingUpdateConfig{}
		}
		if strategy.RollingUpdate.MaxUnavailable == nil {
			strategy.RollingUpdate.MaxUnavailable = ptr.To(intstr.FromString(DefaultMaxUnavailableValue))
		}
		if strategy.RollingUpdate.MaxSurge == nil {
			strategy.RollingUpdate.MaxSurge = ptr.To(intstr.FromString(DefaultMaxSurgeValue))
		}
		if strategy.RollingUpdate.UnavailablePeriodSeconds == nil {
			strategy.RollingUpdate.UnavailablePeriodSeconds = ptr.To(DefaultUnavailablePeriodSeconds)
		}
	}

	if obj.Spec.Strategy.ApplyStrategy == nil {
		obj.Spec.Strategy.ApplyStrategy = &fleetv1beta1.ApplyStrategy{}
	}
	SetDefaultsApplyStrategy(obj.Spec.Strategy.ApplyStrategy)

	if obj.Spec.RevisionHistoryLimit == nil {
		obj.Spec.RevisionHistoryLimit = ptr.To(int32(DefaultRevisionHistoryLimitValue))
	}
}