chore: update
ci-api / test (push) Successful in 22m30s
ci-web / test (push) Successful in 13m15s

This commit is contained in:
Nuxgrid
2026-08-01 23:33:11 +02:00
parent cb966fcaf0
commit fb10d25ee2
21 changed files with 612 additions and 81 deletions
+16 -2
View File
@@ -39,20 +39,34 @@ env:
REDIS_HOST: redis
REDIS_PORT: "6379"
API_PORT: "8080"
STORAGE_DRIVER: local
S3_REGION: us-east-1
S3_BUCKET: ""
S3_ENDPOINT: ""
TELEGRAM_BOT_USERNAME: ""
LBTELEGRAM_URL: ""
LBTELEGRAM_BOT1_USERNAME: ""
LBTELEGRAM_BOT2_USERNAME: ""
# Valeurs sensibles — à surcharger via --set-string ou un Secret Manager externe
secrets:
DB_PASSWORD: ""
SESSION_SECRET: ""
USER_JWT_SECRET: ""
USER_JWT_SECRET_OLD: ""
ADMIN_JWT_SECRET: ""
ADMIN_JWT_SECRET_OLD: ""
REDIS_PASSWORD: ""
TOMTOM_API_KEY: ""
TOMTOM_API_KEY_1: ""
TOMTOM_API_KEY_2: ""
TOMTOM_API_KEY_3: ""
TELEGRAM_BOT_TOKEN: ""
TELEGRAM_WEBHOOK_URL: ""
TELEGRAM_WEBHOOK_SECRET: ""
NOWPAYMENTS_API_KEY: ""
NOWPAYMENTS_IPN_SECRET: ""
RUSTFS_ACCESS_KEY: ""
RUSTFS_SECRET_KEY: ""
BACKEND_LINK_SECRET: ""
podAnnotations: {}
@@ -0,0 +1,6 @@
apiVersion: v2
name: lbtelegram
description: LoadBalancer telegram
type: application
version: 0.1.0
appVersion: "1.0.0"
@@ -0,0 +1,21 @@
{{- define "lbtelegram.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- define "lbtelegram.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- define "lbtelegram.labels" -}}
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }}
app.kubernetes.io/name: {{ include "lbtelegram.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{- define "lbtelegram.selectorLabels" -}}
app.kubernetes.io/name: {{ include "lbtelegram.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
@@ -0,0 +1,52 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "lbtelegram.fullname" . }}
labels:
{{- include "lbtelegram.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "lbtelegram.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "lbtelegram.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: lbtelegram
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- name: http
containerPort: {{ .Values.service.port }}
protocol: TCP
envFrom:
- secretRef:
name: {{ include "lbtelegram.fullname" . }}-secrets
env:
{{- range $k, $v := .Values.env }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- end }}
livenessProbe:
tcpSocket:
port: http
initialDelaySeconds: 10
periodSeconds: 30
readinessProbe:
tcpSocket:
port: http
initialDelaySeconds: 5
periodSeconds: 10
resources:
{{- toYaml .Values.resources | nindent 12 }}
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ include "lbtelegram.fullname" . }}-secrets
labels:
{{- include "lbtelegram.labels" . | nindent 4 }}
type: Opaque
stringData:
{{- range $k, $v := .Values.secrets }}
{{ $k }}: {{ $v | quote }}
{{- end }}
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "lbtelegram.fullname" . }}
labels:
{{- include "lbtelegram.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
selector:
{{- include "lbtelegram.selectorLabels" . | nindent 4 }}
ports:
- name: http
port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
@@ -0,0 +1,56 @@
replicaCount: 1
image:
repository: lbtelegram
tag: latest
pullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 256Mi
env:
PORT: "8081"
ENV: ""
BOT_COUNT: ""
GATEWAY_URL: ""
BOT1_USERNAME: ""
BOT2_USERNAME: ""
JWT_TTL_SECONDS: ""
LB_STRATEGY: ""
HEALTH_CHECK_INTERVAL: ""
BACKEND_LINK_URL: ""
secrets:
BOT1_TOKEN: ""
BOT2_TOKEN: ""
BOT1_WEBHOOK_SECRET: ""
BOT2_WEBHOOK_SECRET: ""
BACKEND_LINK_SECRET: ""
JWT_SECRET: ""
# DSN complets (identifiants inclus) — à générer par le worker de provisioning
# vers les services postgresql/redis du même namespace de démo.
DATABASE_URL: ""
REDIS_URL: ""
podAnnotations: {}
podSecurityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
service:
type: ClusterIP
port: 8081