update primary utils to catch edge cases and add tests

This commit is contained in:
Stavros kois
2022-12-02 00:09:01 +02:00
parent c51031ec07
commit da0b04393d
8 changed files with 97 additions and 8 deletions

View File

@@ -33,6 +33,23 @@ tests:
- failedTemplate:
errorMessage: Port is required on enabled services. Service (main)
- it: should fail with multiple port, but none set as primary
set:
service:
main:
ports:
main:
enabled: true
primary: false
port: 65535
main2:
enabled: true
primary: false
port: 65534
asserts:
- failedTemplate:
errorMessage: At least one port must be set as primary in service (main)
- it: should fail without ports dict in an enabled service
set:
service:

View File

@@ -15,6 +15,19 @@ tests:
- isKind:
of: Deployment
- it: should fail with multiple service accounts, without any set as primary
set:
rbac:
main:
enabled: true
primary: false
main2:
enabled: true
primary: false
asserts:
- failedTemplate:
errorMessage: At least one RBAC must be set as primary
- it: should fail with no rules in rbac
set:
rbac:

View File

@@ -12,6 +12,27 @@ tests:
- isKind:
of: Deployment
- it: should fail with multiple services, without any set as primary
set:
service:
main:
enabled: true
primary: false
ports:
main:
enabled: true
port: 65535
main2:
enabled: true
primary: false
ports:
main2:
enabled: true
port: 65534
asserts:
- failedTemplate:
errorMessage: At least one Service must be set as primary
- it: should fail without externalName on ExternalName service
set:
service:

View File

@@ -13,6 +13,19 @@ tests:
- isKind:
of: Deployment
- it: should fail with multiple service accounts, without any set as primary
set:
serviceAccount:
main:
enabled: true
primary: false
main2:
enabled: true
primary: false
asserts:
- failedTemplate:
errorMessage: At least one Service Account must be set as primary
- it: should pass with service account enabled
documentIndex: &serviceAccountDoc 0
set:

View File

@@ -1,10 +1,11 @@
{{/* A dict containing .values and .serviceName is passed when this function is called */}}
{{/* Return the primary port for a given Service object. */}}
{{- define "ix.v1.common.lib.util.service.ports.primary" -}}
{{- $svcName := .svcName -}}
{{- $enabledPorts := dict -}}
{{- range $name, $port := .values.ports -}}
{{- if $port.enabled -}}
{{- $_ := set $enabledPorts $name . -}}
{{- $_ := set $enabledPorts $name $port -}}
{{- end -}}
{{- end -}}
@@ -25,7 +26,13 @@
{{- end -}}
{{- if not $result -}}
{{- $result = keys $enabledPorts | first -}}
{{- if eq (len $enabledPorts) 1 -}}
{{- $result = keys $enabledPorts | first -}}
{{- else -}}
{{- if $enabledPorts -}}
{{- fail (printf "At least one port must be set as primary in service (%s)" $svcName) -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- $result -}}

View File

@@ -3,7 +3,7 @@
{{- $enabledrbacs := dict -}}
{{- range $name, $rbac := .Values.rbac -}}
{{- if $rbac.enabled -}}
{{- $_ := set $enabledrbacs $name . -}}
{{- $_ := set $enabledrbacs $name $rbac -}}
{{- end -}}
{{- end -}}
@@ -20,7 +20,13 @@
{{- end -}}
{{- if not $result -}}
{{- $result = keys $enabledrbacs | first -}}
{{- if eq (len $enabledrbacs) 1 -}}
{{- $result = keys $enabledrbacs | first -}}
{{- else -}}
{{- if $enabledrbacs -}}
{{- fail "At least one RBAC must be set as primary" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- $result -}}

View File

@@ -3,7 +3,7 @@
{{- $enabledServices := dict -}}
{{- range $name, $service := .Values.service -}}
{{- if $service.enabled -}}
{{- $_ := set $enabledServices $name . -}}
{{- $_ := set $enabledServices $name $service -}}
{{- end -}}
{{- end -}}
@@ -20,7 +20,13 @@
{{- end -}}
{{- if not $result -}}
{{- $result = keys $enabledServices | first -}}
{{- if eq (len $enabledServices) 1 -}}
{{- $result = keys $enabledServices | first -}}
{{- else -}}
{{- if $enabledServices -}}
{{- fail "At least one Service must be set as primary" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- $result -}}

View File

@@ -3,7 +3,7 @@
{{- $enabledServiceAccounts := dict -}}
{{- range $name, $serviceAccount := .Values.serviceAccount -}}
{{- if $serviceAccount.enabled -}}
{{- $_ := set $enabledServiceAccounts $name . -}}
{{- $_ := set $enabledServiceAccounts $name $serviceAccount -}}
{{- end -}}
{{- end -}}
@@ -20,7 +20,13 @@
{{- end -}}
{{- if not $result -}}
{{- $result = keys $enabledServiceAccounts | first -}}
{{- if eq (len $enabledServiceAccounts) 1 -}}
{{- $result = keys $enabledServiceAccounts | first -}}
{{- else -}}
{{- if $enabledServiceAccounts -}}
{{- fail "At least one Service Account must be set as primary" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- $result -}}