mirror of
https://github.com/fluxcd/flagger.git
synced 2026-04-15 06:57:34 +00:00
Fixed antiaffinity suffixing
Signed-off-by: Marcus Rodan <marcus.rodan@sinch.com>
This commit is contained in:
@@ -460,11 +460,11 @@ func (c *DeploymentController) getPrimaryDeploymentTemplateSpec(canaryDep *appsv
|
||||
if affinity := spec.Affinity; affinity != nil {
|
||||
if podAntiAffinity := affinity.PodAntiAffinity; podAntiAffinity != nil {
|
||||
for _, preferredAntiAffinity := range podAntiAffinity.PreferredDuringSchedulingIgnoredDuringExecution {
|
||||
c.appendPrimarySuffixToValuesIfNeeded(preferredAntiAffinity.PodAffinityTerm.LabelSelector)
|
||||
c.appendPrimarySuffixToValuesIfNeeded(preferredAntiAffinity.PodAffinityTerm.LabelSelector, canaryDep)
|
||||
}
|
||||
|
||||
for _, requiredAntiAffinity := range podAntiAffinity.RequiredDuringSchedulingIgnoredDuringExecution {
|
||||
c.appendPrimarySuffixToValuesIfNeeded(requiredAntiAffinity.LabelSelector)
|
||||
c.appendPrimarySuffixToValuesIfNeeded(requiredAntiAffinity.LabelSelector, canaryDep)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -472,12 +472,15 @@ func (c *DeploymentController) getPrimaryDeploymentTemplateSpec(canaryDep *appsv
|
||||
return spec
|
||||
}
|
||||
|
||||
func (c *DeploymentController) appendPrimarySuffixToValuesIfNeeded(labelSelector *metav1.LabelSelector) {
|
||||
func (c *DeploymentController) appendPrimarySuffixToValuesIfNeeded(labelSelector *metav1.LabelSelector, canaryDep *appsv1.Deployment) {
|
||||
if labelSelector != nil {
|
||||
for _, matchExpression := range labelSelector.MatchExpressions {
|
||||
if contains(c.labels, matchExpression.Key) {
|
||||
for i := range matchExpression.Values {
|
||||
matchExpression.Values[i] += "-primary"
|
||||
if matchExpression.Values[i] == canaryDep.Name {
|
||||
matchExpression.Values[i] += "-primary"
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package canary
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -274,8 +275,12 @@ func TestDeploymentController_AntiAffinity(t *testing.T) {
|
||||
|
||||
value := depPrimary.Spec.Template.Spec.Affinity.PodAntiAffinity.PreferredDuringSchedulingIgnoredDuringExecution[0].PodAffinityTerm.LabelSelector.MatchExpressions[0].Values[0]
|
||||
assert.Equal(t, "podinfo-primary", value)
|
||||
value = depPrimary.Spec.Template.Spec.Affinity.PodAntiAffinity.PreferredDuringSchedulingIgnoredDuringExecution[1].PodAffinityTerm.LabelSelector.MatchExpressions[0].Values[0]
|
||||
assert.False(t, strings.HasSuffix(value, "-primary"))
|
||||
|
||||
value = depPrimary.Spec.Template.Spec.Affinity.PodAntiAffinity.RequiredDuringSchedulingIgnoredDuringExecution[0].LabelSelector.MatchExpressions[0].Values[0]
|
||||
assert.Equal(t, "podinfo-primary", value)
|
||||
value = depPrimary.Spec.Template.Spec.Affinity.PodAntiAffinity.RequiredDuringSchedulingIgnoredDuringExecution[1].LabelSelector.MatchExpressions[0].Values[0]
|
||||
assert.False(t, strings.HasSuffix(value, "-primary"))
|
||||
})
|
||||
}
|
||||
|
||||
@@ -571,6 +571,18 @@ func newDeploymentControllerTest(dc deploymentConfigs) *appsv1.Deployment {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
PodAffinityTerm: corev1.PodAffinityTerm{
|
||||
LabelSelector: &metav1.LabelSelector{
|
||||
MatchExpressions: []metav1.LabelSelectorRequirement{
|
||||
{
|
||||
Key: "app",
|
||||
Values: []string{"arbitrary-app"},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
RequiredDuringSchedulingIgnoredDuringExecution: []corev1.PodAffinityTerm{
|
||||
{
|
||||
@@ -583,6 +595,16 @@ func newDeploymentControllerTest(dc deploymentConfigs) *appsv1.Deployment {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
LabelSelector: &metav1.LabelSelector{
|
||||
MatchExpressions: []metav1.LabelSelectorRequirement{
|
||||
{
|
||||
Key: "app",
|
||||
Values: []string{"arbitrary-app"},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user