apiVersion: apps/v1 kind: Deployment metadata: name: test-app namespace: rm-pgsql spec: replicas: 1 selector: matchLabels: app: test-app template: metadata: labels: app: test-app spec: containers: - name: test-app image: node:18 command: ["/bin/sh", "-c"] args: - | mkdir -p /tmp/app && \ cp /app/test_app.js /app/package.json /tmp/app/ && \ cd /tmp/app && \ npm install && \ node test_app.js env: - name: DB_HOST value: rm-psql-pooler-repl - name: DB_USER valueFrom: secretKeyRef: name: rmu.rm-psql key: username - name: DB_PASSWORD valueFrom: secretKeyRef: name: rmu.rm-psql key: password - name: DB_NAME value: rm volumeMounts: - name: app-code mountPath: /app volumes: - name: app-code configMap: name: test-app-configmap items: - key: test_app.js path: test_app.js - key: package.json path: package.json --- apiVersion: v1 kind: ConfigMap metadata: name: test-app-configmap namespace: rm-pgsql data: test_app.js: | const { Client } = require('pg'); const client = new Client({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, ssl: { require: true, rejectUnauthorized: false } }); client.connect() .then(() => { console.log(`Successfully connected to the database ${process.env.DB_NAME} on ${process.env.DB_HOST}`); return client.end(); }) .catch((err) => { console.error(`Error: ${err}`); }); package.json: | { "name": "test-app", "version": "1.0.0", "main": "test_app.js", "dependencies": { "pg": "^8.7.1" } } ---