OSC Platform Networking and Isolation Model - EyevinnOSC/community GitHub Wiki

Networking and Tenant Isolation on OSC

This page answers common questions about how network traffic reaches your services on Eyevinn Open Source Cloud, and what isolation exists between tenants sharing the platform. It's written for anyone evaluating OSC for their own security or compliance review.

How your service becomes reachable

Every deployed service instance and My App gets its own public HTTPS URL with automatically issued and renewed TLS certificates. Access to your instance's management and configuration is protected by your OSC login or a Personal Access Token — requests without valid authentication are rejected at the edge before they reach your workload.

Tenant isolation

OSC runs on shared Kubernetes clusters: your services run alongside other tenants' services on common infrastructure, not on dedicated hardware or a dedicated cluster per customer.

Within that shared infrastructure:

  • Access to your instance is authenticated. External requests are checked against your account or token before they're allowed to reach your workload.
  • Network-level isolation between tenant workloads is not currently enforced. OSC does not today apply Kubernetes network policies to segment tenant workloads from one another at the network layer. We're evaluating this as a platform improvement.
  • Per-tenant compute resource limits (CPU, memory, disk) are not currently enforced on service instances or My Apps.

If your use case has specific isolation, compliance, or resource-guarantee requirements — for example, handling regulated data, or needing guaranteed CPU/memory — reach out before committing to the platform so we can discuss what's actually needed for your case.

Request and resource limits

Practical limits to design around when building against a service instance or My App:

Limit Value
Maximum request body size 64 MB
Request timeout 60 seconds
Per-IP rate limiting Off by default; opt-in per service (see below)

If your application needs to handle larger uploads, longer-running requests, or has bandwidth-intensive requirements (e.g. media streaming, large file transfer), talk to us — these are platform characteristics we can discuss and may be able to accommodate differently for your use case.

Per-service rate limiting

Rate limiting on OSC is off by default. It can be enabled on a per-service basis using three optional nginx ingress configuration keys. This is particularly useful for public, unauthenticated API endpoints where you want to protect against abuse or excessive load from a single IP.

The three keys control different aspects of nginx rate limiting:

ConfigMap key nginx annotation What it controls
ingress-limit-rps nginx.ingress.kubernetes.io/limit-rps Maximum requests per second per IP address
ingress-limit-burst-multiplier nginx.ingress.kubernetes.io/limit-burst-multiplier Burst multiplier applied on top of the RPS limit
ingress-limit-connections nginx.ingress.kubernetes.io/limit-connections Maximum concurrent connections per IP address

These keys are set on the {serviceName}-orchestrator ConfigMap in the service's namespace, which is managed by the platform. To enable rate limiting for a specific service, contact the OSC team.

A sensible starting point for a public unauthenticated endpoint:

apiVersion: v1
kind: ConfigMap
metadata:
  name: eyevinn-c2pa-soft-binding-resolution-orchestrator
  namespace: eyevinn-c2pa-soft-binding-resolution
data:
  ingress-limit-rps: "10"
  ingress-limit-burst-multiplier: "5"
  ingress-limit-connections: "5"

With the values above, a single IP can make up to 10 requests per second sustained, with short bursts of up to 50 requests (10 × 5), and no more than 5 concurrent connections open at once. Requests that exceed the limits receive an HTTP 503 response.

No services have these keys set by default, so the platform-wide default is no rate limiting on any service instance.

Questions

This page will be updated as the platform's isolation model evolves. If you have a specific compliance or security question not answered here, ask in the OSC community Slack or open a discussion.