feat: add support for primary backend cookies in session affinity

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
This commit is contained in:
Sanskar Jaiswal
2025-03-24 13:08:27 +05:30
parent 50d1331ba6
commit 1dc270c2e6
10 changed files with 375 additions and 133 deletions
+13
View File
@@ -337,6 +337,9 @@ func (c *Controller) verifyCanary(canary *flaggerv1.Canary) error {
if err := verifyKnativeCanary(canary); err != nil {
return err
}
if err := verifySessionAffinity(canary); err != nil {
return err
}
return nil
}
@@ -378,6 +381,16 @@ func verifyKnativeCanary(canary *flaggerv1.Canary) error {
return nil
}
func verifySessionAffinity(canary *flaggerv1.Canary) error {
if canary.Spec.Analysis.SessionAffinity != nil {
if canary.Spec.Analysis.SessionAffinity.CookieName == canary.Spec.Analysis.SessionAffinity.PrimaryCookieName {
return fmt.Errorf("can't use the same cookie name for both primary and cookie name; please update them to be different")
}
}
return nil
}
func checkCustomResourceType(obj interface{}, logger *zap.SugaredLogger) (flaggerv1.Canary, bool) {
var roll *flaggerv1.Canary
var ok bool