2025-10-01 16:25:53 +02:00
|
|
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
|
|
|
kind: Kustomization
|
|
|
|
|
|
|
|
|
|
metadata:
|
|
|
|
|
name: bakery-ia-prod
|
|
|
|
|
|
2026-01-19 11:55:17 +01:00
|
|
|
# NOTE: Do NOT set a global namespace here.
|
|
|
|
|
# Each resource already has its namespace explicitly defined.
|
|
|
|
|
# A global namespace would incorrectly transform cluster-scoped resources
|
|
|
|
|
# like flux-system and cert-manager namespaces.
|
2025-10-01 16:25:53 +02:00
|
|
|
|
|
|
|
|
resources:
|
2026-01-19 11:55:17 +01:00
|
|
|
- ../../../environments/common/configs
|
|
|
|
|
- ../../../platform/infrastructure
|
|
|
|
|
- ../../../platform/cert-manager
|
|
|
|
|
- ../../../platform/networking/ingress/overlays/prod
|
|
|
|
|
- ../../../platform/storage
|
|
|
|
|
- ../../../services/databases
|
|
|
|
|
- ../../../services/microservices
|
|
|
|
|
- ../../../cicd
|
|
|
|
|
- prod-certificate.yaml
|
|
|
|
|
|
|
|
|
|
|
2026-01-08 19:25:52 +01:00
|
|
|
# SigNoz is managed via Helm deployment (see infrastructure/helm/deploy-signoz.sh)
|
|
|
|
|
# Monitoring is handled by SigNoz (no separate monitoring components needed)
|
|
|
|
|
# SigNoz paths are now included in the main ingress (ingress-https.yaml)
|
2025-10-01 16:25:53 +02:00
|
|
|
|
|
|
|
|
labels:
|
|
|
|
|
- includeSelectors: true
|
|
|
|
|
pairs:
|
|
|
|
|
environment: production
|
|
|
|
|
tier: production
|
|
|
|
|
|
2026-01-08 19:25:52 +01:00
|
|
|
# Production configuration patches
|
2026-01-08 12:58:00 +01:00
|
|
|
patches:
|
2026-01-08 19:25:52 +01:00
|
|
|
# Override ConfigMap values for production
|
|
|
|
|
- target:
|
|
|
|
|
kind: ConfigMap
|
|
|
|
|
name: bakery-config
|
|
|
|
|
patch: |-
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /data/ENVIRONMENT
|
|
|
|
|
value: "production"
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /data/DEBUG
|
|
|
|
|
value: "false"
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /data/LOG_LEVEL
|
|
|
|
|
value: "INFO"
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /data/PROFILING_ENABLED
|
|
|
|
|
value: "false"
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /data/MOCK_EXTERNAL_APIS
|
|
|
|
|
value: "false"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/REQUEST_TIMEOUT
|
|
|
|
|
value: "30"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/MAX_CONNECTIONS
|
|
|
|
|
value: "100"
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /data/ENABLE_TRACING
|
|
|
|
|
value: "true"
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /data/ENABLE_METRICS
|
|
|
|
|
value: "true"
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /data/ENABLE_LOGS
|
|
|
|
|
value: "true"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/OTEL_EXPORTER_OTLP_ENDPOINT
|
2026-01-09 07:26:11 +01:00
|
|
|
value: "http://signoz-otel-collector.bakery-ia.svc.cluster.local:4317"
|
2026-01-08 19:25:52 +01:00
|
|
|
- op: add
|
|
|
|
|
path: /data/OTEL_EXPORTER_OTLP_PROTOCOL
|
|
|
|
|
value: "grpc"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/OTEL_SERVICE_NAME
|
|
|
|
|
value: "bakery-ia"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/OTEL_RESOURCE_ATTRIBUTES
|
|
|
|
|
value: "deployment.environment=production,cluster.name=bakery-ia-prod"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/SIGNOZ_ENDPOINT
|
2026-01-09 06:57:18 +01:00
|
|
|
value: "http://signoz.signoz.svc.cluster.local:8080"
|
2026-01-08 19:25:52 +01:00
|
|
|
- op: add
|
|
|
|
|
path: /data/SIGNOZ_FRONTEND_URL
|
2026-01-09 06:57:18 +01:00
|
|
|
value: "https://monitoring.bakewise.ai"
|
2026-01-08 19:25:52 +01:00
|
|
|
- op: add
|
|
|
|
|
path: /data/SIGNOZ_ROOT_URL
|
2026-01-09 06:57:18 +01:00
|
|
|
value: "https://monitoring.bakewise.ai"
|
2026-01-08 19:25:52 +01:00
|
|
|
- op: add
|
|
|
|
|
path: /data/RATE_LIMIT_ENABLED
|
|
|
|
|
value: "true"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/RATE_LIMIT_PER_MINUTE
|
|
|
|
|
value: "60"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/CORS_ORIGINS
|
|
|
|
|
value: "https://bakewise.ai"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/CORS_ALLOW_CREDENTIALS
|
|
|
|
|
value: "true"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/VITE_API_URL
|
|
|
|
|
value: "/api"
|
|
|
|
|
- op: add
|
|
|
|
|
path: /data/VITE_ENVIRONMENT
|
|
|
|
|
value: "production"
|
|
|
|
|
# SigNoz resource patches for production
|
2026-01-08 12:58:00 +01:00
|
|
|
# SigNoz ClickHouse production configuration
|
|
|
|
|
- target:
|
|
|
|
|
group: apps
|
|
|
|
|
version: v1
|
|
|
|
|
kind: StatefulSet
|
|
|
|
|
name: signoz-clickhouse
|
2026-01-11 09:18:17 +01:00
|
|
|
namespace: bakery-ia
|
2026-01-08 12:58:00 +01:00
|
|
|
patch: |-
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /spec/replicas
|
|
|
|
|
value: 2
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /spec/template/spec/containers/0/resources
|
|
|
|
|
value:
|
|
|
|
|
requests:
|
|
|
|
|
memory: "2Gi"
|
|
|
|
|
cpu: "500m"
|
|
|
|
|
limits:
|
|
|
|
|
memory: "4Gi"
|
|
|
|
|
cpu: "1000m"
|
2026-01-09 06:57:18 +01:00
|
|
|
# SigNoz Main Service production configuration (v0.106.0+ unified service)
|
2026-01-08 12:58:00 +01:00
|
|
|
- target:
|
|
|
|
|
group: apps
|
|
|
|
|
version: v1
|
2026-01-09 06:57:18 +01:00
|
|
|
kind: StatefulSet
|
|
|
|
|
name: signoz
|
2026-01-11 09:18:17 +01:00
|
|
|
namespace: bakery-ia
|
2026-01-08 12:58:00 +01:00
|
|
|
patch: |-
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /spec/replicas
|
|
|
|
|
value: 2
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /spec/template/spec/containers/0/resources
|
|
|
|
|
value:
|
|
|
|
|
requests:
|
|
|
|
|
memory: "2Gi"
|
|
|
|
|
cpu: "1000m"
|
2026-01-09 06:57:18 +01:00
|
|
|
limits:
|
|
|
|
|
memory: "4Gi"
|
|
|
|
|
cpu: "2000m"
|
2026-01-08 12:58:00 +01:00
|
|
|
# SigNoz AlertManager production configuration
|
|
|
|
|
- target:
|
|
|
|
|
group: apps
|
|
|
|
|
version: v1
|
|
|
|
|
kind: Deployment
|
|
|
|
|
name: signoz-alertmanager
|
2026-01-11 09:18:17 +01:00
|
|
|
namespace: bakery-ia
|
2026-01-08 12:58:00 +01:00
|
|
|
patch: |-
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /spec/replicas
|
|
|
|
|
value: 2
|
|
|
|
|
- op: replace
|
|
|
|
|
path: /spec/template/spec/containers/0/resources
|
|
|
|
|
value:
|
|
|
|
|
requests:
|
|
|
|
|
memory: "512Mi"
|
|
|
|
|
cpu: "250m"
|
|
|
|
|
limits:
|
|
|
|
|
memory: "1Gi"
|
|
|
|
|
cpu: "500m"
|
|
|
|
|
|
2025-10-01 16:25:53 +02:00
|
|
|
images:
|
2026-01-19 11:55:17 +01:00
|
|
|
# Application services
|
2025-10-01 16:25:53 +02:00
|
|
|
- name: bakery/auth-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/tenant-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/training-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/forecasting-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/sales-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/external-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/notification-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/inventory-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/recipes-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/suppliers-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/pos-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/orders-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/production-service
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/alert-processor
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/gateway
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bakery/dashboard
|
|
|
|
|
newTag: latest
|
2026-01-19 11:55:17 +01:00
|
|
|
# =============================================================================
|
|
|
|
|
# Production Base Images - mapped to production registry
|
|
|
|
|
# TODO: Update PROD_REGISTRY_URL to your production registry (e.g., ghcr.io/your-org)
|
|
|
|
|
# =============================================================================
|
|
|
|
|
# Database images (using canonical Docker Hub - no rate limits in prod with auth)
|
|
|
|
|
- name: postgres
|
|
|
|
|
newTag: 17-alpine
|
|
|
|
|
- name: redis
|
|
|
|
|
newTag: 7.4-alpine
|
|
|
|
|
- name: rabbitmq
|
|
|
|
|
newTag: 4.1-management-alpine
|
|
|
|
|
# Utility images
|
|
|
|
|
- name: busybox
|
|
|
|
|
newTag: "1.36"
|
|
|
|
|
- name: curlimages/curl
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: bitnami/kubectl
|
|
|
|
|
newTag: latest
|
2026-01-19 15:15:04 +01:00
|
|
|
# DNS resolver
|
|
|
|
|
- name: mvance/unbound
|
|
|
|
|
newTag: latest
|
2026-01-19 11:55:17 +01:00
|
|
|
# Alpine variants
|
|
|
|
|
- name: alpine
|
|
|
|
|
newTag: "3.19"
|
|
|
|
|
- name: alpine/git
|
|
|
|
|
newTag: 2.43.0
|
|
|
|
|
# CI/CD images (GCR/registry.k8s.io - no rate limits)
|
|
|
|
|
- name: gcr.io/kaniko-project/executor
|
|
|
|
|
newTag: v1.23.0
|
|
|
|
|
- name: gcr.io/go-containerregistry/crane
|
|
|
|
|
newTag: latest
|
|
|
|
|
- name: registry.k8s.io/kustomize/kustomize
|
|
|
|
|
newTag: v5.3.0
|
|
|
|
|
# Storage images
|
|
|
|
|
- name: minio/minio
|
|
|
|
|
newTag: RELEASE.2024-11-07T00-52-20Z
|
|
|
|
|
- name: minio/mc
|
|
|
|
|
newTag: RELEASE.2024-11-17T19-35-25Z
|
|
|
|
|
# Geocoding
|
|
|
|
|
- name: mediagis/nominatim
|
|
|
|
|
newTag: "4.4"
|
|
|
|
|
# Python base image
|
|
|
|
|
- name: python
|
|
|
|
|
newTag: 3.11-slim
|
2025-10-01 16:25:53 +02:00
|
|
|
|
|
|
|
|
replicas:
|
|
|
|
|
- name: auth-service
|
|
|
|
|
count: 3
|
|
|
|
|
- name: tenant-service
|
|
|
|
|
count: 2
|
|
|
|
|
- name: training-service
|
2026-01-17 22:42:40 +01:00
|
|
|
count: 3 # Safe with MinIO storage - no PVC conflicts
|
2025-10-01 16:25:53 +02:00
|
|
|
- name: forecasting-service
|
|
|
|
|
count: 3
|
|
|
|
|
- name: sales-service
|
|
|
|
|
count: 2
|
|
|
|
|
- name: external-service
|
|
|
|
|
count: 2
|
|
|
|
|
- name: notification-service
|
|
|
|
|
count: 3
|
|
|
|
|
- name: inventory-service
|
|
|
|
|
count: 2
|
|
|
|
|
- name: recipes-service
|
|
|
|
|
count: 2
|
|
|
|
|
- name: suppliers-service
|
|
|
|
|
count: 2
|
|
|
|
|
- name: pos-service
|
|
|
|
|
count: 2
|
|
|
|
|
- name: orders-service
|
|
|
|
|
count: 3
|
|
|
|
|
- name: production-service
|
|
|
|
|
count: 2
|
2025-12-05 20:07:01 +01:00
|
|
|
- name: alert-processor
|
2025-10-01 16:25:53 +02:00
|
|
|
count: 3
|
2025-11-06 11:04:50 +01:00
|
|
|
- name: procurement-service
|
|
|
|
|
count: 2
|
|
|
|
|
- name: orchestrator-service
|
|
|
|
|
count: 2
|
|
|
|
|
- name: ai-insights-service
|
|
|
|
|
count: 2
|
2025-10-01 16:25:53 +02:00
|
|
|
- name: gateway
|
|
|
|
|
count: 3
|
|
|
|
|
- name: frontend
|
|
|
|
|
count: 2
|