added k8s files and jenkinsfile
This commit is contained in:
4
k8s/backend/00-namespace.yaml
Normal file
4
k8s/backend/00-namespace.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: ecommerce
|
||||
25
k8s/backend/configmap.yaml
Normal file
25
k8s/backend/configmap.yaml
Normal 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"
|
||||
45
k8s/backend/deployment.yaml
Normal file
45
k8s/backend/deployment.yaml
Normal 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
20
k8s/backend/ingress.yaml
Normal 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
|
||||
22
k8s/backend/migration-job.yaml
Normal file
22
k8s/backend/migration-job.yaml
Normal 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
17
k8s/backend/secret.yaml
Normal 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
13
k8s/backend/service.yaml
Normal 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
|
||||
Reference in New Issue
Block a user