extract sessionAffinity and sessionAffinityConfig

This commit is contained in:
Stavros kois
2022-12-02 22:06:33 +02:00
parent 1c63e98b58
commit 73e6551491
3 changed files with 27 additions and 21 deletions

View File

@@ -60,7 +60,7 @@ tests:
sessionAffinity: invalid_affinity
asserts:
- failedTemplate:
errorMessage: Invalid option (invalid_affinity). Valid options are ClientIP and None
errorMessage: Invalid option (invalid_affinity) for <sessionAffinity>. Valid options are ClientIP and None
- it: should fail with invalid timeoutSeconds in sessionAffinityConfig negative
set:

View File

@@ -70,26 +70,8 @@ spec:
externalTrafficPolicy: {{ . }}
{{- end -}}
{{- end -}}
{{- with $svcValues.sessionAffinity }}
{{- if not (has . (list "ClientIP" "None")) -}}
{{- fail (printf "Invalid option (%s). Valid options are ClientIP and None" .) -}}
{{- end }}
sessionAffinity: {{ . }}
{{- if eq . "ClientIP" -}}
{{- with $svcValues.sessionAffinityConfig -}}
{{- with .clientIP -}}
{{- if hasKey . "timeoutSeconds" }}
{{- $timeout := tpl (toString .timeoutSeconds) $root -}}
{{- if or (lt (int $timeout) 0) (gt (int $timeout) 86400) -}}
{{- fail (printf "Invalid value (%s) for <sessionAffinityConfig.ClientIP.timeoutSeconds>. Valid values must be with 0 and 86400" $timeout) -}}
{{- end }}
sessionAffinityConfig:
clientIP:
timeoutSeconds: {{ $timeout }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- if $svcValues.sessionAffinity -}}
{{- include "ix.v1.common.class.serivce.sessionAffinity" (dict "svc" $svcValues "root" $root) | nindent 2 -}}
{{- end -}}
{{- with $svcValues.externalIPs }}
externalIPs:

View File

@@ -0,0 +1,24 @@
{{- define "ix.v1.common.class.serivce.sessionAffinity" -}}
{{- $svc := .svc -}}
{{- $root := .root -}}
{{- if not (has $svc.sessionAffinity (list "ClientIP" "None")) -}}
{{- fail (printf "Invalid option (%s) for <sessionAffinity>. Valid options are ClientIP and None" $svc.sessionAffinity) -}}
{{- end }}
sessionAffinity: {{ $svc.sessionAffinity }}
{{- if eq $svc.sessionAffinity "ClientIP" -}}
{{- with $svc.sessionAffinityConfig -}}
{{- with .clientIP -}}
{{- if hasKey . "timeoutSeconds" -}}
{{- $timeout := tpl (toString .timeoutSeconds) $root -}}
{{- if or (lt (int $timeout) 0) (gt (int $timeout) 86400) -}}
{{- fail (printf "Invalid value (%s) for <sessionAffinityConfig.ClientIP.timeoutSeconds>. Valid values must be with 0 and 86400" $timeout) -}}
{{- end }}
sessionAffinityConfig:
clientIP:
timeoutSeconds: {{ $timeout }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}