Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ kubectl get pods -n microforge-dev-ns

### **Authentication Service (Go - Port 8082)**
```http
GET /api/health # Health check
GET /api/auth/health # Health check
POST /api/validate # JWT token validation
GET /api/verify/:token # Token verification
GET /api/protected/profile # Protected user profile
Expand All @@ -164,7 +164,7 @@ GET /api/users # User management

### **Metadata Service (Python - Port 8084)**
```http
GET /api/health # Health check
GET /api/metadata/health # Health check
GET /api/metadata/instance # System instance metadata
GET /api/metadata/deployment # Deployment information
POST /api/stress/start # Performance stress testing
Expand Down
20 changes: 20 additions & 0 deletions manifests/kubernetes/auth-service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ metadata:
labels:
app: auth-service
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: auth-service
Expand All @@ -42,6 +48,20 @@ spec:
image: manojmdocker14/microforge-auth-service:v1.1.0
ports:
- containerPort: 8082
livenessProbe:
httpGet:
path: /api/auth/health
port: 8082
initialDelaySeconds: 45
periodSeconds: 20
timeoutSeconds: 10
readinessProbe:
httpGet:
path: /api/auth/health
port: 8082
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 5
envFrom:
- configMapRef:
name: auth-service-config
31 changes: 31 additions & 0 deletions manifests/kubernetes/login-mysql.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ metadata:
app: login-mysql
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: login-mysql
Expand All @@ -43,6 +48,32 @@ spec:
image: manojmdocker14/microforge-users-mysql:v1.0.0
ports:
- containerPort: 3306
startupProbe:
exec:
command:
- bash
- "-c"
- "mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD}"
failureThreshold: 30
periodSeconds: 10
timeoutSeconds: 5
livenessProbe:
exec:
command:
- bash
- "-c"
- "mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD}"
periodSeconds: 20
timeoutSeconds: 5
readinessProbe:
exec:
command:
- bash
- "-c"
- "mysql -u root -p${MYSQL_ROOT_PASSWORD} -e 'SELECT 1;'"
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
envFrom:
- configMapRef:
name: login-mysql-config
Expand Down
21 changes: 21 additions & 0 deletions manifests/kubernetes/login-service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ kind: Service
metadata:
name: login-service
namespace: microforge-dev-ns
labels:
app: login-service
spec:
selector:
app: login-service
Expand All @@ -33,6 +35,11 @@ metadata:
app: login-service
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: login-service
Expand All @@ -46,6 +53,20 @@ spec:
image: manojmdocker14/microforge-login-service:v1.2.0
ports:
- containerPort: 8081
livenessProbe:
httpGet:
path: /actuator/health
port: 8081
initialDelaySeconds: 70
periodSeconds: 20
timeoutSeconds: 10
readinessProbe:
httpGet:
path: /actuator/health
port: 8081
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
env:
- name: DB_HOST
value: login-mysql
Expand Down
20 changes: 20 additions & 0 deletions manifests/kubernetes/metadata-service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ metadata:
labels:
app: metadata-service
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: metadata-service
Expand All @@ -43,6 +49,20 @@ spec:
image: manojmdocker14/microforge-metadata-service:v1.1.0
ports:
- containerPort: 8084
readinessProbe:
httpGet:
path: /api/metadata/health
port: 8084
initialDelaySeconds: 45
periodSeconds: 20
timeoutSeconds: 5
livenessProbe:
httpGet:
path: /api/metadata/health
port: 8084
initialDelaySeconds: 45
periodSeconds: 10
timeoutSeconds: 5
envFrom:
- configMapRef:
name: metadata-service-config
Expand Down
31 changes: 31 additions & 0 deletions manifests/kubernetes/notification-mysql.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ metadata:
app: notification-mysql
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: notification-mysql
Expand All @@ -43,6 +48,32 @@ spec:
image: manojmdocker14/microforge-notifications-mysql:v1.0.0
ports:
- containerPort: 3306
startupProbe:
exec:
command:
- bash
- "-c"
- "mysqladmin ping -u root -p$MYSQL_ROOT_PASSWORD"
initialDelaySeconds: 15 # Wait 15s before starting the first check
periodSeconds: 10 # Check every 10s
failureThreshold: 30 # Allow 30 failures (Total 5 minutes of boot time)
livenessProbe:
exec:
command:
- bash
- "-c"
- "mysqladmin ping -u root -p$MYSQL_ROOT_PASSWORD"
periodSeconds: 20
timeoutSeconds: 5
readinessProbe:
exec:
command:
- bash
- "-c"
- "mysql -u root -p$MYSQL_ROOT_PASSWORD -e 'SELECT 1;'"
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 10
envFrom:
- configMapRef:
name: notification-mysql-config
Expand Down
19 changes: 19 additions & 0 deletions manifests/kubernetes/notification-service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ metadata:
app: notification-service
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: notification-service
Expand All @@ -45,6 +50,20 @@ spec:
image: manojmdocker14/microforge-notification-service:v1.1.0
ports:
- containerPort: 8083
livenessProbe:
httpGet:
path: /actuator/health
port: 8083
initialDelaySeconds: 45 # Increased for DB connection setup
periodSeconds: 20
timeoutSeconds: 10
readinessProbe:
httpGet:
path: /actuator/health
port: 8083
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 5
env:
- name: MYSQL_HOST
value: notification-mysql
Expand Down