added k8s files and jenkinsfile

This commit is contained in:
tusuii
2026-03-10 22:39:47 +05:30
parent 74918d251f
commit 57a2968d74
22 changed files with 767 additions and 1 deletions

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: ecommerce

View File

@@ -0,0 +1,25 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: backend-configmap
namespace: ecommerce
data:
NODE_ENV: "production"
PORT: "3000"
SEND_REAL_WHATSAPP: "false"
MONGODB_URI: "mongodb://mongodb.database.svc.cluster.local:27017/vaishnavi_products"
REDIS_URL: "redis://redis.database.svc.cluster.local:6379"
AWS_REGION: "us-east-1"
AWS_S3_BUCKET: "e-commerce"
AWS_ENDPOINT: "s3.sahasrarameta.tech"
AWS_PORT: "443"
AWS_SSL: "true"
JWT_EXPIRES_IN: "7d"
JWT_REFRESH_EXPIRES_IN: "30d"
FRONTEND_URL: "http://NODE_IP_PLACEHOLDER:30081"
CORS_ORIGIN: "http://NODE_IP_PLACEHOLDER:30081,http://NODE_IP_PLACEHOLDER:30082,https://vaishnavi-admin.myriadcara.in,https://vaishnavi-bakend.myriadcara.in,https://vaishnavi-test.myriadcara.in"
PAYTM_WEBSITE: "WEBSTAGING"
PAYTM_HOST: "securegw-stage.paytm.in"
PAYTM_CALLBACK_URL: "http://NODE_IP_PLACEHOLDER:30080/api/payments/paytm/callback"
WAPP_BASE_URL: "https://api.wappconnect.com"
WAPP_INSTANCE: "SSM"

View File

@@ -0,0 +1,45 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
namespace: ecommerce
spec:
replicas: 1
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
containers:
- name: backend
image: 192.168.49.2:30004/vaishnavi-ecommerce/backend:latest
imagePullPolicy: Always
ports:
- containerPort: 3000
envFrom:
- configMapRef:
name: backend-configmap
- secretRef:
name: backend-secret
resources:
requests:
cpu: "250m"
memory: "256Mi"
limits:
cpu: "500m"
memory: "512Mi"
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 15
readinessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 10
periodSeconds: 5

20
k8s/backend/ingress.yaml Normal file
View File

@@ -0,0 +1,20 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: backend-ingress
namespace: ecommerce
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "10m"
spec:
ingressClassName: nginx
rules:
- host: backend.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: backend
port:
number: 3000

View File

@@ -0,0 +1,22 @@
apiVersion: batch/v1
kind: Job
metadata:
name: backend-migration
namespace: ecommerce
spec:
template:
spec:
containers:
- name: migration
image: 192.168.49.2:30004/vaishnavi-ecommerce/backend:latest
imagePullPolicy: Always
command:
- npx
- prisma
- db
- push
envFrom:
- secretRef:
name: backend-secret
restartPolicy: Never
backoffLimit: 3

17
k8s/backend/secret.yaml Normal file
View File

@@ -0,0 +1,17 @@
apiVersion: v1
kind: Secret
metadata:
name: backend-secret
namespace: ecommerce
type: Opaque
data:
DATABASE_URL: cG9zdGdyZXNxbDovL3ZhaXNobmF2aTphZG1pbkBwb3N0Z3Jlcy5kYXRhYmFzZS5zdmMuY2x1c3Rlci5sb2NhbDo1NDMyL3ZhaXNobmF2aV9kYj9zY2hlbWE9cHVibGlj
JWT_SECRET: eW91ci1zdXBlci1zZWNyZXQtand0LWtleS1jaGFuZ2UtdGhpcy1pbi1wcm9kdWN0aW9u
JWT_REFRESH_SECRET: eW91ci1yZWZyZXNoLXRva2VuLXNlY3JldA==
AWS_ACCESS_KEY_ID: dUE3V3ZUOWZoeWRjb3p5ejVhbG8=
AWS_SECRET_ACCESS_KEY: QXVzRXk2S0txYW5RUVUzWnczclhZQmFpUzVCTThhUG9BS2ZwY2JGcg==
EMAIL_USER: dmFpYmhhdi5zYWhhc3JhcmFAZ21haWwuY29t
EMAIL_PASS: cGV6amN4Zm5lZ2d1emt1aA==
PAYTM_MERCHANT_ID: eW91cl9tZXJjaGFudF9pZA==
PAYTM_MERCHANT_KEY: YWJjZDEyMzRhYmNkMTIzNA==
WAPP_TOKEN: Y2x6Z2t0emRiYXdzNW1nZHU3c3M1YTRyYQ==

13
k8s/backend/service.yaml Normal file
View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: backend
namespace: ecommerce
spec:
type: NodePort
selector:
app: backend
ports:
- port: 3000
targetPort: 3000
nodePort: 30080