mirror of
https://github.com/truecharts/library-charts.git
synced 2026-07-03 02:29:15 -03:00
add db-wait tests
This commit is contained in:
155
library/common-test/tests/cnpg/db_wait_test.yaml
Normal file
155
library/common-test/tests/cnpg/db_wait_test.yaml
Normal file
@@ -0,0 +1,155 @@
|
||||
suite: cnpg db-wait test
|
||||
templates:
|
||||
- common.yaml
|
||||
release:
|
||||
name: test-release-name
|
||||
namespace: test-release-namespace
|
||||
tests:
|
||||
- it: should generate correct db-wait script
|
||||
set:
|
||||
workload: &workload
|
||||
my-workload:
|
||||
type: Deployment
|
||||
enabled: true
|
||||
primary: true
|
||||
podSpec:
|
||||
my-container:
|
||||
enabled: true
|
||||
primary: true
|
||||
cnpg:
|
||||
my-pg:
|
||||
enabled: true
|
||||
user: test-user
|
||||
database: test-db
|
||||
asserts:
|
||||
- documentIndex: &deployDoc 4
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *deployDoc
|
||||
isAPIVersion:
|
||||
of: apps/v1
|
||||
- documentIndex: *deployDoc
|
||||
equal:
|
||||
path: spec.template.spec.initContainers[0].name
|
||||
value: test-release-name-common-test-system-cnpg-wait
|
||||
- documentIndex: *deployDoc
|
||||
equal:
|
||||
path: spec.template.spec.initContainers[0].command
|
||||
value:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |-
|
||||
/bin/sh <<'EOF'
|
||||
echo "Executing DB waits..."
|
||||
echo "Testing Database availability on [CNPG RW]"
|
||||
until
|
||||
echo "Testing database on url: [test-release-name-common-test-cnpg-my-pg-rw]"
|
||||
pg_isready -U test-user -d test-db -h test-release-name-common-test-cnpg-my-pg-rw
|
||||
do sleep 5
|
||||
done
|
||||
echo "Database available on url: [test-release-name-common-test-cnpg-my-pg-rw]"
|
||||
echo "Done executing DB waits..."
|
||||
EOF
|
||||
|
||||
- it: should generate correct db-wait script with pooler, only rw
|
||||
set:
|
||||
workload: *workload
|
||||
cnpg:
|
||||
my-pg:
|
||||
enabled: true
|
||||
user: test-user
|
||||
database: test-db
|
||||
pooler:
|
||||
enabled: true
|
||||
createRO: false
|
||||
asserts:
|
||||
- documentIndex: &deployDoc 5
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *deployDoc
|
||||
isAPIVersion:
|
||||
of: apps/v1
|
||||
- documentIndex: *deployDoc
|
||||
equal:
|
||||
path: spec.template.spec.initContainers[0].name
|
||||
value: test-release-name-common-test-system-cnpg-wait
|
||||
- documentIndex: *deployDoc
|
||||
equal:
|
||||
path: spec.template.spec.initContainers[0].command
|
||||
value:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |-
|
||||
/bin/sh <<'EOF'
|
||||
echo "Executing DB waits..."
|
||||
echo "Testing Database availability on [CNPG RW]"
|
||||
until
|
||||
echo "Testing database on url: [test-release-name-common-test-cnpg-my-pg-rw]"
|
||||
pg_isready -U test-user -d test-db -h test-release-name-common-test-cnpg-my-pg-rw
|
||||
do sleep 5
|
||||
done
|
||||
echo "Database available on url: [test-release-name-common-test-cnpg-my-pg-rw]"
|
||||
echo "Testing Database availability on [CNPG Pooler RW]"
|
||||
until
|
||||
echo "Testing database on url: [test-release-name-common-test-cnpg-my-pg-pooler-rw]"
|
||||
pg_isready -U test-user -d test-db -h test-release-name-common-test-cnpg-my-pg-pooler-rw
|
||||
do sleep 5
|
||||
done
|
||||
echo "Database available on url: [test-release-name-common-test-cnpg-my-pg-pooler-rw]"
|
||||
echo "Done executing DB waits..."
|
||||
EOF
|
||||
|
||||
- it: should generate correct db-wait script with pooler rw and ro
|
||||
set:
|
||||
workload: *workload
|
||||
cnpg:
|
||||
my-pg:
|
||||
enabled: true
|
||||
user: test-user
|
||||
database: test-db
|
||||
pooler:
|
||||
enabled: true
|
||||
createRO: true
|
||||
asserts:
|
||||
- documentIndex: &deployDoc 6
|
||||
isKind:
|
||||
of: Deployment
|
||||
- documentIndex: *deployDoc
|
||||
isAPIVersion:
|
||||
of: apps/v1
|
||||
- documentIndex: *deployDoc
|
||||
equal:
|
||||
path: spec.template.spec.initContainers[0].name
|
||||
value: test-release-name-common-test-system-cnpg-wait
|
||||
- documentIndex: *deployDoc
|
||||
equal:
|
||||
path: spec.template.spec.initContainers[0].command
|
||||
value:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |-
|
||||
/bin/sh <<'EOF'
|
||||
echo "Executing DB waits..."
|
||||
echo "Testing Database availability on [CNPG RW]"
|
||||
until
|
||||
echo "Testing database on url: [test-release-name-common-test-cnpg-my-pg-rw]"
|
||||
pg_isready -U test-user -d test-db -h test-release-name-common-test-cnpg-my-pg-rw
|
||||
do sleep 5
|
||||
done
|
||||
echo "Database available on url: [test-release-name-common-test-cnpg-my-pg-rw]"
|
||||
echo "Testing Database availability on [CNPG Pooler RW]"
|
||||
until
|
||||
echo "Testing database on url: [test-release-name-common-test-cnpg-my-pg-pooler-rw]"
|
||||
pg_isready -U test-user -d test-db -h test-release-name-common-test-cnpg-my-pg-pooler-rw
|
||||
do sleep 5
|
||||
done
|
||||
echo "Database available on url: [test-release-name-common-test-cnpg-my-pg-pooler-rw]"
|
||||
echo "Testing Database availability on [CNPG Pooler RO]"
|
||||
until
|
||||
echo "Testing database on url: [test-release-name-common-test-cnpg-my-pg-pooler-ro]"
|
||||
pg_isready -U test-user -d test-db -h test-release-name-common-test-cnpg-my-pg-pooler-ro
|
||||
do sleep 5
|
||||
done
|
||||
echo "Database available on url: [test-release-name-common-test-cnpg-my-pg-pooler-ro]"
|
||||
echo "Done executing DB waits..."
|
||||
EOF
|
||||
@@ -361,35 +361,41 @@ command:
|
||||
- "-c"
|
||||
- |
|
||||
/bin/sh <<'EOF'
|
||||
{{ range $name, $cnpg := .Values.cnpg }}
|
||||
{{ if $cnpg.enabled }}
|
||||
{{- range $name, $cnpg := .Values.cnpg -}}
|
||||
{{- if $cnpg.enabled }}
|
||||
echo "Executing DB waits..."
|
||||
{{ $cnpgName := include "tc.v1.common.lib.chart.names.fullname" $ }}
|
||||
{{ $cnpgName = printf "%v-cnpg-%v" $cnpgName $name }}
|
||||
echo "Testing Database availability..."
|
||||
until
|
||||
echo "Testing database on url: {{ $cnpgName }}-rw"
|
||||
pg_isready -U {{ .user }} -d {{ .database }} -h {{ $cnpgName }}-rw
|
||||
do sleep 5
|
||||
done
|
||||
{{ if and $cnpg.pooler $cnpg.pooler.enabled }}
|
||||
echo "Detected RW pooler, testing RW pooler availability..."
|
||||
until
|
||||
echo "Testing database on url: {{ $cnpgName }}-pooler-rw"
|
||||
pg_isready -U {{ .user }} -d {{ .database }} -h {{ $cnpgName }}-pooler-rw
|
||||
do sleep 5
|
||||
done
|
||||
{{ if $cnpg.pooler.createRO }}
|
||||
echo "Detected RO pooler, testing RO pooler availability..."
|
||||
until
|
||||
echo "Testing database on url: {{ $cnpgName }}-pooler-ro"
|
||||
pg_isready -U {{ .user }} -d {{ .database }} -h {{ $cnpgName }}-pooler-ro
|
||||
do sleep 5
|
||||
done
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
sleep 5
|
||||
{{- $cnpgName := include "tc.v1.common.lib.chart.names.fullname" $ -}}
|
||||
{{- $cnpgName = printf "%v-cnpg-%v" $cnpgName $name -}}
|
||||
|
||||
{{/* Wait RW CNPG */}}
|
||||
{{- include "cnpg.wait.script" (dict "url" (printf "%s-rw" $cnpgName) "user" .user "db" .database "on" "CNPG RW") | nindent 4 -}}
|
||||
|
||||
{{- if and $cnpg.pooler $cnpg.pooler.enabled -}}
|
||||
{{/* Wait RW Pooler */}}
|
||||
{{- include "cnpg.wait.script" (dict "url" (printf "%s-pooler-rw" $cnpgName) "user" .user "db" .database "on" "CNPG Pooler RW") | nindent 4 -}}
|
||||
|
||||
{{/* Wait RO Pooler */}}
|
||||
{{- if $cnpg.pooler.createRO -}}
|
||||
{{- include "cnpg.wait.script" (dict "url" (printf "%s-pooler-ro" $cnpgName) "user" .user "db" .database "on" "CNPG Pooler RO") | nindent 4 -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
echo "Done executing DB waits..."
|
||||
EOF
|
||||
{{- end -}}
|
||||
|
||||
{{- define "cnpg.wait.script" -}}
|
||||
{{- $url := .url -}}
|
||||
{{- $user := .user -}}
|
||||
{{- $db := .db -}}
|
||||
{{- $on := .on -}}
|
||||
echo "Testing Database availability on [{{ $on }}]"
|
||||
until
|
||||
echo "Testing database on url: [{{ $url }}]"
|
||||
pg_isready -U {{ $user }} -d {{ $db }} -h {{ $url }}
|
||||
do sleep 5
|
||||
done
|
||||
echo "Database available on url: [{{ $url }}]"
|
||||
{{- end -}}
|
||||
|
||||
Reference in New Issue
Block a user