Files
ops-deployment/README.md
T
2026-09-30 13:23:01 +00:00

66 lines
1.6 KiB
Markdown

# ops-deployment
This repository contains declarative Kubernetes configurations (deployments, services, persistent volumes) for all application services.
## Structure
Each service directory contains:
- `deployment.yaml` - Pod specifications, container images, environment variables, volume mounts
- `service.yaml` - Service exposure (ClusterIP, NodePort)
- Additional resources as needed (PVCs, ConfigMaps, etc.)
## Secrets Management
Secrets are managed directly in Kubernetes using `kubectl` or sealed-secrets:
- Mounted as volumes at `/etc/secrets` in containers
- Referenced via `secretName` in deployment manifests
## Persistent Storage
Services requiring data persistence (MySQL, RabbitMQ) use PersistentVolumeClaims:
## Example Service
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend-push-notifications
namespace: app-notifications
spec:
replicas: 1
template:
spec:
containers:
- name: backend-push-notifications
image: ghcr.io/user/service:2
ports:
- containerPort: 9000
volumeMounts:
- name: secrets
mountPath: /etc/secrets
readOnly: true
volumes:
- name: secrets
secret:
secretName: backend-push-notifications
---
apiVersion: v1
kind: Service
metadata:
name: backend-push-notifications
spec:
selector:
app: backend-push-notifications
ports:
- port: 9000
targetPort: 9000
nodePort: 30904
type: NodePort
```
## Monitoring
Services expose Prometheus metrics endpoints where applicable, on port 9000 and exposed via NodePort.