Compare commits

..

2 commits

5 changed files with 14 additions and 17 deletions

View file

@ -1,11 +0,0 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: maidn-e2e-secret
namespace: staging
labels:
maidn.io/e2e: "true"
spec:
instances: 1
storage:
size: 1Gi

View file

@ -1,4 +0,0 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- database.yaml

View file

@ -27,17 +27,21 @@ spec:
ports:
- name: http
containerPort: 8080
{{- if or (eq .Release.Namespace "staging") (eq .Release.Namespace "production") }}
env:
- name: E2E_SECRET
valueFrom:
secretKeyRef:
name: maidn-e2e-secret-runtime-staging
name: {{ printf "%s-runtime-%s" .Chart.Name .Release.Namespace }}
key: {{ .Values.runtimeSecret.key | quote }}
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: maidn-e2e-secret-app
name: {{ printf "%s-postgres-app" .Release.Namespace }}
key: uri
- name: MAIDN_RUNTIME_REQUIRED
value: "true"
{{- end }}
readinessProbe:
httpGet:
path: /

View file

@ -1,6 +1,7 @@
import { Client } from 'pg';
export async function isReady(selectOne = databaseSelectOne) {
if (process.env.MAIDN_RUNTIME_REQUIRED !== 'true') return true;
if (!process.env.E2E_SECRET || !process.env.DATABASE_URL) return false;
try {

View file

@ -5,8 +5,13 @@ const { isReady } = require('../dist/health.js');
test('readiness requires the secret and a successful database query', async () => {
const secret = process.env.E2E_SECRET;
const databaseUrl = process.env.DATABASE_URL;
const runtimeRequired = process.env.MAIDN_RUNTIME_REQUIRED;
try {
delete process.env.MAIDN_RUNTIME_REQUIRED;
assert.equal(await isReady(async () => assert.fail('query should not run')), true);
process.env.MAIDN_RUNTIME_REQUIRED = 'true';
delete process.env.E2E_SECRET;
assert.equal(await isReady(async () => assert.fail('query should not run')), false);
@ -22,5 +27,7 @@ test('readiness requires the secret and a successful database query', async () =
else process.env.E2E_SECRET = secret;
if (databaseUrl === undefined) delete process.env.DATABASE_URL;
else process.env.DATABASE_URL = databaseUrl;
if (runtimeRequired === undefined) delete process.env.MAIDN_RUNTIME_REQUIRED;
else process.env.MAIDN_RUNTIME_REQUIRED = runtimeRequired;
}
});