Compare commits

...

5 commits

10 changed files with 8 additions and 128 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

@ -1,4 +0,0 @@
apiVersion: v2
name: maidn-e2e-secret
description: Maidn E2E secret runtime fixture
version: 0.1.0

View file

@ -1,44 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
app: {{ .Chart.Name }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ .Chart.Name }}
template:
metadata:
labels:
app: {{ .Chart.Name }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- range . }}
- name: {{ . | quote }}
{{- end }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: http
containerPort: 8080
env:
- name: E2E_SECRET
valueFrom:
secretKeyRef:
name: maidn-e2e-secret-runtime-staging
key: {{ .Values.runtimeSecret.key | quote }}
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: maidn-e2e-secret-app
key: uri
readinessProbe:
httpGet:
path: /
port: http

View file

@ -1,20 +0,0 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: forgejo-registry-credentials
spec:
secretStoreRef:
kind: ClusterSecretStore
name: openbao
target:
name: forgejo-registry-credentials
creationPolicy: Owner
template:
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: "{{ `{{ .dockerconfigjson }}` }}"
data:
- secretKey: dockerconfigjson
remoteRef:
key: cicd/forgejo-registry
property: dockerconfigjson

View file

@ -1,17 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: {{ .Chart.Name }}
spec:
parentRefs:
- name: {{ .Values.gateway.name }}
namespace: {{ .Values.gateway.namespace }}
sectionName: http
{{- with .Values.gateway.hostname }}
hostnames:
- {{ . | quote }}
{{- end }}
rules:
- backendRefs:
- name: {{ .Chart.Name }}
port: 8080

View file

@ -1,12 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
spec:
type: ClusterIP
selector:
app: {{ .Chart.Name }}
ports:
- name: http
port: 8080
targetPort: http

View file

@ -1,16 +0,0 @@
replicaCount: 1
image:
repository: ""
tag: dev
pullPolicy: IfNotPresent
imagePullSecrets:
- forgejo-registry-credentials
runtimeSecret:
key: e2e-secret
gateway:
name: public
namespace: gateway-system
hostname: ""

View file

@ -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 {

View file

@ -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;
} }
}); });