BTHLABS-64: Support for customized environments

Co-authored-by: Tomek Wójcik <labs@tomekwojcik.pl>
Co-committed-by: Tomek Wójcik <labs@tomekwojcik.pl>
This commit is contained in:
2025-10-27 19:04:48 +00:00
committed by Tomek Wójcik
parent 168657bd14
commit d8bbe57b17
25 changed files with 291 additions and 173 deletions

View File

@@ -1,5 +1,7 @@
DJANGO_SETTINGS_MODULE=hotpocket_backend.settings.deployment.admin
DJANGO_SETTINGS_MODULE=hotpocket_bthlabs.settings.admin
HOTPOCKET_BACKEND_GUNICORN_WORKERS=2
HOTPOCKET_BACKEND_SECRETS_PACKAGE=hotpocket_bthlabs.secrets
HOTPOCKET_BACKEND_ENV=development
HOTPOCKET_BACKEND_APP=admin
HOTPOCKET_BACKEND_SECRET_KEY=thisissecret
HOTPOCKET_BACKEND_ALLOWED_HOSTS=thisissecret
HOTPOCKET_BACKEND_ALLOWED_HOSTS=admin.hotpocket.bthlab.bthlabs.net

View File

@@ -1,7 +1,9 @@
DJANGO_SETTINGS_MODULE=hotpocket_backend.settings.deployment.webapp
DJANGO_SETTINGS_MODULE=hotpocket_bthlabs.settings.webapp
HOTPOCKET_BACKEND_GUNICORN_WORKERS=2
HOTPOCKET_BACKEND_SECRETS_PACKAGE=hotpocket_bthlabs.secrets
HOTPOCKET_BACKEND_ENV=development
HOTPOCKET_BACKEND_APP=webapp
HOTPOCKET_BACKEND_SECRET_KEY=thisissecret
HOTPOCKET_BACKEND_ALLOWED_HOSTS=thisissecret
HOTPOCKET_BACKEND_ALLOWED_HOSTS=app.hotpocket.bthlab.bthlabs.net
HOTPOCKET_BACKEND_SAVES_SAVE_ADAPTER=hotpocket_backend.apps.saves.adapters.postgres:PostgresSaveAdapter
HOTPOCKET_BACKEND_SAVES_ASSOCIATION_ADAPTER=hotpocket_backend.apps.saves.adapters.postgres:PostgresAssociationAdapter

View File

@@ -4,6 +4,7 @@ kind: Kustomization
resources:
- resources/namespace.yaml
- resources/volumes.yaml
- resources/backend/config-map-local-deps.yaml
- resources/backend/job-migrations.yaml
- resources/backend/webapp.yaml
- resources/backend/webapp-service.yaml
@@ -35,5 +36,5 @@ patches: []
images:
- name: hotpocket-backend
newName: docker-hosted.nexus.bthlabs.pl/hotpocket/backend
newTag: deployment-v25.10.4-01
newName: nexus.bthlab.bthlabs.net:8002/hotpocket/backend
newTag: deployment-8e09ae51-01

View File

@@ -26,7 +26,7 @@ spec:
containers:
- name: app
image: hotpocket-backend:latest
command:
args:
- "/srv/venv/bin/gunicorn"
- "-c"
- "/srv/lib/gunicorn.conf.py"
@@ -37,36 +37,21 @@ spec:
- configMapRef:
name: backend-admin-config
env:
- name: HOTPOCKET_BACKEND_SECRET_KEY
- name: VAULT_URL
valueFrom:
secretKeyRef:
name: backend-admin
key: secret_key
- name: HOTPOCKET_BACKEND_ALLOWED_HOSTS
name: backend-vault
key: url
- name: VAULT_ROLE_ID
valueFrom:
secretKeyRef:
name: backend-admin
key: allowed_hosts
- name: HOTPOCKET_BACKEND_DATABASE_USER
name: backend-vault
key: role_id
- name: VAULT_SECRET_ID
valueFrom:
secretKeyRef:
name: backend-postgres
key: username
- name: HOTPOCKET_BACKEND_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: backend-postgres
key: password
- name: HOTPOCKET_BACKEND_CELERY_BROKER_URL
valueFrom:
secretKeyRef:
name: backend-celery
key: broker_url
- name: HOTPOCKET_BACKEND_CELERY_RESULT_BACKEND
valueFrom:
secretKeyRef:
name: backend-celery
key: result_backend
name: backend-vault
key: secret_id
ports:
- containerPort: 8000
name: http
@@ -91,6 +76,15 @@ spec:
name: shm
- mountPath: /srv/run
name: backend-admin-srv-run
- name: backend-admin-local-deps
mountPath: "/srv/lib/requirements.txt"
subPath: "requirements.txt"
- name: backend-admin-local-deps
mountPath: "/srv/etc/entrypoint.d/01-install-extra-deps.sh"
subPath: "01-install-extra-deps.sh"
- name: backend-admin-local-deps
mountPath: "/srv/etc/entrypoint.d/99-collectstatic.sh"
subPath: "99-collectstatic.sh"
dnsPolicy: ClusterFirst
restartPolicy: Always
volumes:
@@ -99,3 +93,7 @@ spec:
medium: Memory
- name: backend-admin-srv-run
emptyDir: {}
- name: backend-admin-local-deps
configMap:
name: "backend-local-deps"
defaultMode: 0755

View File

@@ -20,7 +20,7 @@ spec:
containers:
- name: app
image: hotpocket-backend:latest
command:
args:
- "/srv/venv/bin/celery"
- "-A"
- "hotpocket_backend.celery:app"
@@ -35,36 +35,21 @@ spec:
- configMapRef:
name: backend-webapp-config
env:
- name: HOTPOCKET_BACKEND_SECRET_KEY
- name: VAULT_URL
valueFrom:
secretKeyRef:
name: backend-webapp
key: secret_key
- name: HOTPOCKET_BACKEND_ALLOWED_HOSTS
name: backend-vault
key: url
- name: VAULT_ROLE_ID
valueFrom:
secretKeyRef:
name: backend-webapp
key: allowed_hosts
- name: HOTPOCKET_BACKEND_DATABASE_USER
name: backend-vault
key: role_id
- name: VAULT_SECRET_ID
valueFrom:
secretKeyRef:
name: backend-postgres
key: username
- name: HOTPOCKET_BACKEND_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: backend-postgres
key: password
- name: HOTPOCKET_BACKEND_CELERY_BROKER_URL
valueFrom:
secretKeyRef:
name: backend-celery
key: broker_url
- name: HOTPOCKET_BACKEND_CELERY_RESULT_BACKEND
valueFrom:
secretKeyRef:
name: backend-celery
key: result_backend
name: backend-vault
key: secret_id
volumeMounts:
- mountPath: /dev/shm
name: shm
@@ -72,6 +57,12 @@ spec:
name: backend-celery-beat-srv-run
- mountPath: /srv/uploads
name: backend-celery-beat-srv-uploads
- name: backend-admin-local-deps
mountPath: "/srv/lib/requirements.txt"
subPath: "requirements.txt"
- name: backend-admin-local-deps
mountPath: "/srv/etc/entrypoint.d/01-install-extra-deps.sh"
subPath: "01-install-extra-deps.sh"
dnsPolicy: ClusterFirst
restartPolicy: Always
volumes:
@@ -83,3 +74,7 @@ spec:
claimName: backend-celery-beat-run
- name: backend-celery-beat-srv-uploads
emptyDir: {}
- name: backend-admin-local-deps
configMap:
name: "backend-local-deps"
defaultMode: 0755

View File

@@ -26,7 +26,7 @@ spec:
containers:
- name: app
image: hotpocket-backend:latest
command:
args:
- "/srv/venv/bin/celery"
- "-A"
- "hotpocket_backend.celery:app"
@@ -43,36 +43,21 @@ spec:
- configMapRef:
name: backend-webapp-config
env:
- name: HOTPOCKET_BACKEND_SECRET_KEY
- name: VAULT_URL
valueFrom:
secretKeyRef:
name: backend-webapp
key: secret_key
- name: HOTPOCKET_BACKEND_ALLOWED_HOSTS
name: backend-vault
key: url
- name: VAULT_ROLE_ID
valueFrom:
secretKeyRef:
name: backend-webapp
key: allowed_hosts
- name: HOTPOCKET_BACKEND_DATABASE_USER
name: backend-vault
key: role_id
- name: VAULT_SECRET_ID
valueFrom:
secretKeyRef:
name: backend-postgres
key: username
- name: HOTPOCKET_BACKEND_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: backend-postgres
key: password
- name: HOTPOCKET_BACKEND_CELERY_BROKER_URL
valueFrom:
secretKeyRef:
name: backend-celery
key: broker_url
- name: HOTPOCKET_BACKEND_CELERY_RESULT_BACKEND
valueFrom:
secretKeyRef:
name: backend-celery
key: result_backend
name: backend-vault
key: secret_id
volumeMounts:
- mountPath: /dev/shm
name: shm
@@ -80,6 +65,12 @@ spec:
name: backend-celery-worker-srv-run
- mountPath: /srv/uploads
name: backend-celery-worker-srv-uploads
- name: backend-admin-local-deps
mountPath: "/srv/lib/requirements.txt"
subPath: "requirements.txt"
- name: backend-admin-local-deps
mountPath: "/srv/etc/entrypoint.d/01-install-extra-deps.sh"
subPath: "01-install-extra-deps.sh"
dnsPolicy: ClusterFirst
restartPolicy: Always
volumes:
@@ -91,3 +82,7 @@ spec:
- name: backend-celery-worker-srv-uploads
persistentVolumeClaim:
claimName: backend-uploads
- name: backend-admin-local-deps
configMap:
name: "backend-local-deps"
defaultMode: 0755

View File

@@ -0,0 +1,18 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: backend-local-deps
namespace: hotpocket-development
data:
01-install-extra-deps.sh: |
#!/usr/bin/env bash
export PIP_INDEX_URL="https://nexus.bthlabs.pl/repository/pypi/simple/"
/srv/venv/bin/pip install -r /srv/lib/requirements.txt
99-collectstatic.sh: |
#!/usr/bin/env bash
(
cd /srv/app;
./manage.py collectstatic --no-input
)
requirements.txt: |
hotpocket_bthlabs==25.10.27

View File

@@ -22,7 +22,7 @@ spec:
containers:
- name: migrations
image: hotpocket-backend:latest
command:
args:
- "./manage.py"
- "migrate"
envFrom:
@@ -31,36 +31,21 @@ spec:
- configMapRef:
name: backend-webapp-config
env:
- name: HOTPOCKET_BACKEND_SECRET_KEY
- name: VAULT_URL
valueFrom:
secretKeyRef:
name: backend-webapp
key: secret_key
- name: HOTPOCKET_BACKEND_ALLOWED_HOSTS
name: backend-vault
key: url
- name: VAULT_ROLE_ID
valueFrom:
secretKeyRef:
name: backend-webapp
key: allowed_hosts
- name: HOTPOCKET_BACKEND_DATABASE_USER
name: backend-vault
key: role_id
- name: VAULT_SECRET_ID
valueFrom:
secretKeyRef:
name: backend-postgres
key: username
- name: HOTPOCKET_BACKEND_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: backend-postgres
key: password
- name: HOTPOCKET_BACKEND_CELERY_BROKER_URL
valueFrom:
secretKeyRef:
name: backend-celery
key: broker_url
- name: HOTPOCKET_BACKEND_CELERY_RESULT_BACKEND
valueFrom:
secretKeyRef:
name: backend-celery
key: result_backend
name: backend-vault
key: secret_id
volumeMounts:
- mountPath: /dev/shm
name: shm
@@ -68,6 +53,12 @@ spec:
name: backend-webapp-srv-run
- mountPath: /srv/uploads
name: backend-webapp-srv-uploads
- name: backend-admin-local-deps
mountPath: "/srv/lib/requirements.txt"
subPath: "requirements.txt"
- name: backend-admin-local-deps
mountPath: "/srv/etc/entrypoint.d/01-install-extra-deps.sh"
subPath: "01-install-extra-deps.sh"
dnsPolicy: ClusterFirst
restartPolicy: Never
volumes:
@@ -78,3 +69,7 @@ spec:
emptyDir: {}
- name: backend-webapp-srv-uploads
emptyDir: {}
- name: backend-admin-local-deps
configMap:
name: "backend-local-deps"
defaultMode: 0755

View File

@@ -26,7 +26,7 @@ spec:
containers:
- name: app
image: hotpocket-backend:latest
command:
args:
- "/srv/venv/bin/gunicorn"
- "-c"
- "/srv/lib/gunicorn.conf.py"
@@ -37,36 +37,21 @@ spec:
- configMapRef:
name: backend-webapp-config
env:
- name: HOTPOCKET_BACKEND_SECRET_KEY
- name: VAULT_URL
valueFrom:
secretKeyRef:
name: backend-webapp
key: secret_key
- name: HOTPOCKET_BACKEND_ALLOWED_HOSTS
name: backend-vault
key: url
- name: VAULT_ROLE_ID
valueFrom:
secretKeyRef:
name: backend-webapp
key: allowed_hosts
- name: HOTPOCKET_BACKEND_DATABASE_USER
name: backend-vault
key: role_id
- name: VAULT_SECRET_ID
valueFrom:
secretKeyRef:
name: backend-postgres
key: username
- name: HOTPOCKET_BACKEND_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: backend-postgres
key: password
- name: HOTPOCKET_BACKEND_CELERY_BROKER_URL
valueFrom:
secretKeyRef:
name: backend-celery
key: broker_url
- name: HOTPOCKET_BACKEND_CELERY_RESULT_BACKEND
valueFrom:
secretKeyRef:
name: backend-celery
key: result_backend
name: backend-vault
key: secret_id
ports:
- containerPort: 8000
name: http
@@ -93,6 +78,15 @@ spec:
name: backend-webapp-srv-run
- mountPath: /srv/uploads
name: backend-webapp-srv-uploads
- name: backend-admin-local-deps
mountPath: "/srv/lib/requirements.txt"
subPath: "requirements.txt"
- name: backend-admin-local-deps
mountPath: "/srv/etc/entrypoint.d/01-install-extra-deps.sh"
subPath: "01-install-extra-deps.sh"
- name: backend-admin-local-deps
mountPath: "/srv/etc/entrypoint.d/99-collectstatic.sh"
subPath: "99-collectstatic.sh"
dnsPolicy: ClusterFirst
restartPolicy: Always
volumes:
@@ -104,3 +98,7 @@ spec:
- name: backend-webapp-srv-uploads
persistentVolumeClaim:
claimName: backend-uploads
- name: backend-admin-local-deps
configMap:
name: "backend-local-deps"
defaultMode: 0755