93 lines
2.1 KiB
YAML
93 lines
2.1 KiB
YAML
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"
|
|
}
|
|
}
|
|
---
|