chore: add laws management deployment

This commit is contained in:
shadowlegend 2025-04-14 20:59:17 +07:00
commit b087d1864f
8 changed files with 179 additions and 0 deletions

View File

@ -0,0 +1,12 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: laws-management
namespace: default
data:
PHX_SERVER: 'true'
ERL_MAX_PORTS: '64'
NODE_HOST: laws_management
RELEASE_DISTRIBUTION: sname
DATABASE_HOST: laws-management-pg-rw.default.svc.cluster.local

View File

@ -0,0 +1,57 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: laws-management-server
namespace: default
annotations:
reloader.stakater.com/match: 'true'
spec:
selector:
matchLabels:
app: laws-management-server
template:
metadata:
labels:
app: laws-management-server
spec:
containers:
- name: laws-management-server
image: laws-management-server
command:
- sh
- -c
- './bin/laws_management eval LawsManagement.Release.migrate && ./bin/laws_management start'
resources:
limits:
cpu: 500m
memory: 512Mi
ports:
- name: http
containerPort: 4000
env:
- name: IS_DATABASE_USE_SSL
value: 'yes'
- name: DATABASE_SSL_VERIFY_MODE
value: verify_none
- name: DATABASE_NAME
value: laws_management
- name: DATABASE_USERNAME
valueFrom:
secretKeyRef:
key: username
name: laws-management-postgres
- name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
key: password
name: laws-management-postgres
envFrom:
- configMapRef:
name: laws-management
- secretRef:
name: laws-management

View File

@ -0,0 +1,10 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- config.yml
- service.yml
- deployment.yml
- postgresql.yml
- pg-pooler.yml

View File

@ -0,0 +1,19 @@
---
apiVersion: postgresql.cnpg.io/v1
kind: Pooler
metadata:
name: laws-management-pg-rw
namespace: default
spec:
type: rw
instances: 1
cluster:
name: laws-management-pg
pgbouncer:
poolMode: transaction
parameters:
max_client_conn: "1024"
default_pool_size: "32"

View File

@ -0,0 +1,30 @@
---
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: laws-management-pg
namespace: default
spec:
instances: 1
storage:
size: 2Gi
walStorage:
size: 4Gi
bootstrap:
initdb:
database: laws_management
dataChecksums: true
owner: laws_management
secret:
name: laws-management-postgres
postgresql:
parameters:
min_wal_size: 1GB
max_wal_size: 2GB
shared_buffers: 256MB
hot_standby_feedback: "on"
effective_io_concurrency: "200"

View File

@ -0,0 +1,18 @@
---
apiVersion: v1
kind: Secret
metadata:
name: laws-management
namespace: default
data:
SECRET_KEY_BASE: SW0yaDZTYVZ3TC9kdzNEd0hBS1B1RURHMmNqekZKS1FzZTNPSFNUbjR5TzYzcVFnRUlxSVNCcFdlcHQ2NnJGKwo=
---
apiVersion: v1
kind: Secret
metadata:
name: laws-management-postgres
namespace: default
data:
username: bGF3c19tYW5hZ2VtZW50
password: bGF3c19tYW5hZ2VtZW50

View File

@ -0,0 +1,13 @@
---
apiVersion: v1
kind: Service
metadata:
name: laws-management-server
namespace: default
spec:
selector:
app: laws-management-server
ports:
- name: http
port: 80
targetPort: http

View File

@ -0,0 +1,20 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: laws-management
resources:
- ../base
- secrets.sealed.yml
images:
- name: laws-management-server
newName: ghcr.io/ekycsolutions/laws_management
newTag: dev
configMapGenerator:
- name: laws-management
behavior: merge
literals:
- DATABASE_HOST=laws-management-pg-rw.laws-management.svc.cluster.local