in pkg/common/defaulter/trafficmanagerprofile.go [16:54]
func SetDefaultsTrafficManagerProfile(obj *fleetnetv1beta1.TrafficManagerProfile) {
if obj.Spec.MonitorConfig == nil {
obj.Spec.MonitorConfig = &fleetnetv1beta1.MonitorConfig{}
}
if obj.Spec.MonitorConfig.IntervalInSeconds == nil {
obj.Spec.MonitorConfig.IntervalInSeconds = ptr.To(int64(30))
}
if obj.Spec.MonitorConfig.Path == nil {
obj.Spec.MonitorConfig.Path = ptr.To("/")
}
if obj.Spec.MonitorConfig.Port == nil {
obj.Spec.MonitorConfig.Port = ptr.To(int64(80))
}
if obj.Spec.MonitorConfig.Protocol == nil {
obj.Spec.MonitorConfig.Protocol = ptr.To(fleetnetv1beta1.TrafficManagerMonitorProtocolHTTP)
}
// TimeoutInSeconds value depends on the IntervalInSeconds, so that the defaulter MUST handle the IntervalInSeconds first.
// * If the Probing Interval is set to 30 seconds, then you can set the Timeout value between 5 and 10 seconds.
// If no value is specified, it uses a default value of 10 seconds.
// * If the Probing Interval is set to 10 seconds, then you can set the Timeout value between 5 and 9 seconds.
// If no Timeout value is specified, it uses a default value of 9 seconds.
// Reference link: https://learn.microsoft.com/en-us/azure/traffic-manager/traffic-manager-monitoring#configure-endpoint-monitoring
if obj.Spec.MonitorConfig.TimeoutInSeconds == nil {
if *obj.Spec.MonitorConfig.IntervalInSeconds == 30 {
obj.Spec.MonitorConfig.TimeoutInSeconds = ptr.To(int64(10))
} else if *obj.Spec.MonitorConfig.IntervalInSeconds == 10 {
obj.Spec.MonitorConfig.TimeoutInSeconds = ptr.To(int64(9))
}
}
if obj.Spec.MonitorConfig.ToleratedNumberOfFailures == nil {
obj.Spec.MonitorConfig.ToleratedNumberOfFailures = ptr.To(int64(3))
}
}