Infrastructure Overview
ORISO Platform v3.0.0 is deployed on Kubernetes using Helm charts with automated TLS via cert-manager and Ingress-based routing.Kubernetes Platform
Cluster Type
- Platform: k3s (lightweight Kubernetes)
- Version: Kubernetes 1.24+
- Namespace:
caritas - Deployment Method: Helm 3.x
Why k3s?
- Lightweight and easy to install
- Single binary, no complex setup
- Perfect for single-node or small clusters
- Full Kubernetes API compatibility
Helm Architecture
Umbrella Chart Pattern
All services are deployed via a single umbrella Helm chart:Deployment Command
Chart Dependencies
The umbrella chart manages dependencies for all 21 services:- Infrastructure (databases, cache, queue)
- Authentication (Keycloak)
- Backend services (4 services)
- Frontend (2 applications)
- Communication (Matrix, Element)
- Monitoring (SignOZ, Health Dashboard)
Ingress Architecture
Nginx Ingress Controller
- Purpose: External access to all services
- Ports: 80 (HTTP), 443 (HTTPS)
- Deployment: Via Helm
- Namespace:
ingress-nginx
Ingress Resources
Location:caritas-workspace/ORISO-Kubernetes/ingress/
Statistics:
- Total Files: 22 YAML files
- Total Ingress Resources: 33
- Features:
- Path rewriting
- CORS support
- TLS automation
- Service routing
Ingress Deployment
Example Ingress Resource
TLS/SSL Management
Cert-Manager
- Purpose: Automatic TLS certificate management
- Issuer: Let’s Encrypt
- Type: ClusterIssuer (cluster-wide)
- Automation: Automatic certificate issuance and renewal
ClusterIssuer Configuration
Certificate Management
Certificates are automatically created when Ingress resources are created:Service Discovery
Kubernetes DNS
All services use Kubernetes DNS for discovery:- Pattern:
<service-name>.<namespace>.svc.cluster.local - Example:
oriso-platform-userservice.caritas.svc.cluster.local:8082
Service Types
- ClusterIP: Internal services (databases, backend services)
- NodePort: Not used (Ingress handles external access)
- LoadBalancer: Not used (Ingress handles external access)
Service Naming Convention
All services useoriso-platform-* prefix:
oriso-platform-userserviceoriso-platform-mariadboriso-platform-keycloakoriso-platform-frontend
Network Architecture
Internal Communication
All internal communication uses ClusterIP services:- No external IPs needed
- Automatic load balancing
- DNS-based service discovery
- Secure within cluster
External Access
All external access via Ingress:- Single entry point (ports 80/443)
- TLS termination at Ingress
- Path-based routing
- Host-based routing
Required Ports
External (Firewall):80- HTTP (redirects to HTTPS)443- HTTPS6443- Kubernetes API (optional, for kubectl)
- All service ports accessible via ClusterIP
- No direct external access to services
Namespace Structure
Main Namespace: caritas
All ORISO services deployed in caritas namespace:
Other Namespaces
ingress-nginx- Ingress Controllercert-manager- Cert-Managerplatform- SignOZ (optional)
Authentication Infrastructure
Keycloak
- Purpose: OIDC/OAuth2 authentication
- Service:
oriso-platform-keycloak.caritas.svc.cluster.local:8080 - External URL: https://auth.oriso-dev.site
- Realm:
online-beratung - Client:
app
Keycloak Configuration
- Realm Import: From
ORISO-Keycloak/realm.json - HTTP Access: Configured via
configure-http-access.sh - Token Lifespans: 5 hours access, 30 min SSO idle
Monitoring Infrastructure
SignOZ
- Purpose: Observability and APM
- Namespace:
platform - Access: http://91.99.219.182:3001
- Components:
- SignOZ Backend
- ClickHouse (time-series DB)
- OTEL Collector
Health Dashboard
- Purpose: Service health monitoring
- Service:
oriso-platform-health-dashboard - Access: http://91.99.219.182:9001
- Checks: All
/actuator/healthendpoints
Status Page
- Purpose: Public status page
- URL: http://status.oriso.site
Resource Management
Resource Requests/Limits
All services have resource constraints:Persistent Storage
All databases use PersistentVolumeClaims:- Storage Class:
local-path(k3s default) - Retention: Retained on Helm uninstall
Deployment Phases
- Infrastructure - Databases, cache, queue
- Authentication - Keycloak
- Communication - Matrix, Element
- WebRTC - LiveKit
- Backend - 4 microservices
- Frontend - 2 applications
- Monitoring - SignOZ, Health Dashboard