minikube working

This commit is contained in:
tusuii
2026-02-24 22:06:14 +05:30
parent c9c7402606
commit c744d87016
27 changed files with 839 additions and 390 deletions

View File

@@ -1,28 +0,0 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: ecommerce
resources:
- ../../base
images:
- name: ecommerce-backend
newName: 192.168.108.200:80/vaishnavi-ecommerce/ecommerce-backend
newTag: latest # Jenkins will patch this via: kustomize edit set image
patches:
- path: patches/deployment-patch.yaml
target:
kind: Deployment
name: ecommerce-app
# apiVersion: kustomize.config.k8s.io/v1beta1
# kind: Kustomization
# namespace: ecommerce
# resources:
# - ../../base
# images:
# - name: ecommerce-backend
# newName: ecommerce-backend
# newTag: latest
# patches:
# - path: patches/deployment-patch.yaml
# target:
# kind: Deployment
# name: ecommerce-app

View File

@@ -1,33 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: ecommerce-app
namespace: ecommerce
spec:
replicas: 1
template:
spec:
initContainers:
- name: run-migrations
imagePullPolicy: Always
# imagePullSecrets are set at pod level below
containers:
- name: ecommerce-app
imagePullPolicy: Always
imagePullSecrets:
- name: harbor-registry-secret # kubectl create secret docker-registry harbor-registry-secret ...
# apiVersion: apps/v1
# kind: Deployment
# metadata:
# name: ecommerce-app
# namespace: ecommerce
# spec:
# template:
# spec:
# initContainers:
# - name: run-migrations
# imagePullPolicy: Never
# containers:
# - name: ecommerce-app
# imagePullPolicy: Never

View File

@@ -0,0 +1,49 @@
# Minikube backend patches — single replica, reduced resources, NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ecommerce-app
namespace: ecommerce
spec:
replicas: 1
template:
spec:
containers:
- name: ecommerce-app
# Never pull — use minikube's local Docker daemon image
imagePullPolicy: Never
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
---
apiVersion: v1
kind: Service
metadata:
name: ecommerce-app
namespace: ecommerce
spec:
type: NodePort
ports:
- port: 80
targetPort: 3000
nodePort: 30080
protocol: TCP
name: http
---
# Migration job also needs imagePullPolicy: Never
apiVersion: batch/v1
kind: Job
metadata:
name: prisma-migrate
namespace: ecommerce
spec:
template:
spec:
containers:
- name: migrate
imagePullPolicy: Never

View File

@@ -0,0 +1,17 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
namespace: ecommerce
# ── Use locally built image (minikube docker-env) ──
images:
- name: ecommerce-backend
newName: ecommerce-backend
newTag: minikube
# ── Patches ──
patches:
- path: backend-patch.yaml

View File

@@ -0,0 +1,36 @@
# On-premise backend patches
# Adjust replicas, resource limits, and expose via NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ecommerce-app
namespace: ecommerce
spec:
replicas: 2
template:
spec:
containers:
- name: ecommerce-app
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: "2"
memory: 2Gi
---
# Expose the backend as a NodePort for on-premise access
apiVersion: v1
kind: Service
metadata:
name: ecommerce-app
namespace: ecommerce
spec:
type: NodePort
ports:
- port: 80
targetPort: 3000
nodePort: 30080
protocol: TCP
name: http

View File

@@ -0,0 +1,19 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
namespace: ecommerce
# ── Image overrides ──
# Jenkins will run: kustomize edit set image ecommerce-backend=<HARBOR_IMAGE>:<TAG>
images:
- name: ecommerce-backend
newName: 192.168.108.200:80/vaishnavi-ecommerce/ecommerce-backend
newTag: latest
# ── Strategic-merge patches ──
patches:
- path: backend-patch.yaml
- path: secrets-patch.yaml

View File

@@ -0,0 +1,42 @@
apiVersion: v1
kind: Secret
metadata:
name: ecommerce-secrets
namespace: ecommerce
type: Opaque
data:
# ── Override secrets for on-premise ──
# Update these values for your on-premise environment.
# echo -n 'value' | base64
# postgresql://vaishnavi:admin@postgres:5432/vaishnavi_db?schema=public
DATABASE_URL: cG9zdGdyZXNxbDovL3ZhaXNobmF2aTphZG1pbkBwb3N0Z3Jlczo1NDMyL3ZhaXNobmF2aV9kYj9zY2hlbWE9cHVibGlj
# JWT
JWT_SECRET: eW91ci1zdXBlci1zZWNyZXQtand0LWtleS1jaGFuZ2UtdGhpcy1pbi1wcm9kdWN0aW9u
JWT_EXPIRES_IN: N2Q=
JWT_REFRESH_SECRET: eW91ci1yZWZyZXNoLXRva2VuLXNlY3JldA==
JWT_REFRESH_EXPIRES_IN: MzBk
# AWS S3 / MinIO
AWS_ACCESS_KEY_ID: dUE3V3ZUOWZoeWRjb3p5ejVhbG8=
AWS_SECRET_ACCESS_KEY: QXVzRXk2S0txYW5RUVUzWnczclhZQmFpUzVCTThhUG9BS2ZwY2JGcg==
AWS_REGION: dXMtZWFzdC0x
AWS_S3_BUCKET: ZS1jb21tZXJjZQ==
AWS_ENDPOINT: czMuc2FoYXNyYXJhbWV0YS50ZWNo
# Email
EMAIL_USER: dmFpYmhhdi5zYWhhc3JhcmFAZ21haWwuY29t
EMAIL_PASS: cGV6amN4Zm5lZ2d1emt1aA==
# Paytm
PAYTM_MERCHANT_ID: eW91cl9tZXJjaGFudF9pZA==
PAYTM_MERCHANT_KEY: YWJjZDEyMzRhYmNkMTIzNA==
PAYTM_WEBSITE: V0VCU1RBR0lORw==
PAYTM_HOST: c2VjdXJlZ3ctc3RhZ2UucGF5dG0uaW4=
PAYTM_CALLBACK_URL: aHR0cDovL2xvY2FsaG9zdDozMDAwL2FwaS9wYXltZW50cy9wYXl0bS9jYWxsYmFjaw==
# Postgres init credentials
POSTGRES_USER: dmFpc2huYXZp
POSTGRES_PASSWORD: YWRtaW4=
POSTGRES_DB: dmFpc2huYXZpX2Ri