Compare commits
2 commits
0a0a0a92ee
...
3da3656b71
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3da3656b71 | ||
|
|
9f38cdc44b |
|
|
@ -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
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- database.yaml
|
|
||||||
|
|
@ -27,17 +27,21 @@ spec:
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
containerPort: 8080
|
containerPort: 8080
|
||||||
|
{{- if or (eq .Release.Namespace "staging") (eq .Release.Namespace "production") }}
|
||||||
env:
|
env:
|
||||||
- name: E2E_SECRET
|
- name: E2E_SECRET
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: maidn-e2e-secret-runtime-staging
|
name: {{ printf "%s-runtime-%s" .Chart.Name .Release.Namespace }}
|
||||||
key: {{ .Values.runtimeSecret.key | quote }}
|
key: {{ .Values.runtimeSecret.key | quote }}
|
||||||
- name: DATABASE_URL
|
- name: DATABASE_URL
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: maidn-e2e-secret-app
|
name: {{ printf "%s-postgres-app" .Release.Namespace }}
|
||||||
key: uri
|
key: uri
|
||||||
|
- name: MAIDN_RUNTIME_REQUIRED
|
||||||
|
value: "true"
|
||||||
|
{{- end }}
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import { Client } from 'pg';
|
import { Client } from 'pg';
|
||||||
|
|
||||||
export async function isReady(selectOne = databaseSelectOne) {
|
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;
|
if (!process.env.E2E_SECRET || !process.env.DATABASE_URL) return false;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,13 @@ const { isReady } = require('../dist/health.js');
|
||||||
test('readiness requires the secret and a successful database query', async () => {
|
test('readiness requires the secret and a successful database query', async () => {
|
||||||
const secret = process.env.E2E_SECRET;
|
const secret = process.env.E2E_SECRET;
|
||||||
const databaseUrl = process.env.DATABASE_URL;
|
const databaseUrl = process.env.DATABASE_URL;
|
||||||
|
const runtimeRequired = process.env.MAIDN_RUNTIME_REQUIRED;
|
||||||
|
|
||||||
try {
|
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;
|
delete process.env.E2E_SECRET;
|
||||||
assert.equal(await isReady(async () => assert.fail('query should not run')), false);
|
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;
|
else process.env.E2E_SECRET = secret;
|
||||||
if (databaseUrl === undefined) delete process.env.DATABASE_URL;
|
if (databaseUrl === undefined) delete process.env.DATABASE_URL;
|
||||||
else process.env.DATABASE_URL = databaseUrl;
|
else process.env.DATABASE_URL = databaseUrl;
|
||||||
|
if (runtimeRequired === undefined) delete process.env.MAIDN_RUNTIME_REQUIRED;
|
||||||
|
else process.env.MAIDN_RUNTIME_REQUIRED = runtimeRequired;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue