Compare commits
5 commits
feat/e2e-c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
958c4e66fb | ||
|
|
6e955d4d9b | ||
|
|
3da3656b71 | ||
|
|
9f38cdc44b | ||
|
|
0a0a0a92ee |
|
|
@ -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
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
apiVersion: v2
|
||||
name: maidn-e2e-secret
|
||||
description: Maidn E2E secret runtime fixture
|
||||
version: 0.1.0
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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: ""
|
||||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue