Skip to content

Custom Deployment Cell Placement

Custom Deployment Cell Placement allows you to control how many deployments can be co-located on the same host cluster (deployment cell / Kubernetes cluster). This provides fine-grained control over deployment isolation and resource allocation for your service instances.

The CUSTOM_DEPLOYMENT_CELL_PLACEMENT feature enables you to specify the maximum number of deployment instances that can be placed on a single deployment cell. This is particularly useful for:

  • Deployment isolation: Setting maximumDeploymentsPerCell: 1 ensures dedicated host clusters for each deployment
  • Resource optimization: Higher values allow resource sharing across multiple deployments
  • Compliance requirements: Meeting security standards that require isolation
  • Performance guarantees: Ensuring predictable performance by limiting resource contention

Note

The feature is not supported for Omnistrate Hosted Deployment Model, multi-tenant offering, or services using Serverless capability.

Warning

Setting maximumDeploymentsPerCell: 1 can significantly increase infrastructure costs as it provisions dedicated host clusters for each deployment. Empty host clusters are automatically deleted after 24 hours of inactivity.

Note

With maximumDeploymentsPerCell: 1, the first deployment time will include host cluster creation time (typically 5-10 minutes). While empty host clusters with deleted deployments can be reused if available.

Configuration

Custom Deployment Cell Placement can be configured in both compose spec and Plan spec files:

Compose Spec Configuration

Add the feature under x-omnistrate-service-plan:

version: "3"
x-omnistrate-service-plan:
  name: "My Plan"
  features:
    CUSTOM_DEPLOYMENT_CELL_PLACEMENT:
      maximumDeploymentsPerCell: 1

Plan Spec Configuration

Add the feature directly under features:

name: "My Plan"
features:
  CUSTOM_DEPLOYMENT_CELL_PLACEMENT:
    maximumDeploymentsPerCell: 1

Configuration Options

Parameter Type Required Description
maximumDeploymentsPerCell integer Yes Maximum number of deployments allowed per host cluster. Must be greater than 0.

Valid Values

  • 1: Dedicated host cluster per deployment (complete isolation)
  • 2-N: Shared host clusters with specified maximum deployments per cluster

Examples

Compose Spec Example: Dedicated Host Clusters

version: "3"
x-omnistrate-service-plan:
  name: "MySQL Service"
  features:
    CUSTOM_DEPLOYMENT_CELL_PLACEMENT:
      maximumDeploymentsPerCell: 1

services:
  mysql:
    image: mysql:8.0
    ports:
      - "3306"
    environment:
      - MYSQL_ROOT_PASSWORD=secret

Plan Spec Example: Shared Host Clusters

name: "PostgreSQL Service"
features:
  CUSTOM_DEPLOYMENT_CELL_PLACEMENT:
    maximumDeploymentsPerCell: 3

services:
  - name: postgres
    helmChartConfiguration:
      chartName: postgresql
      chartVersion: "12.1.7"
      chartRepository: https://charts.bitnami.com/bitnami

How it works

When placing a new deployment, the system:

  1. Finds existing host clusters with available capacity (picks the one with least room left)
  2. If no suitable cluster exists, provisions a new one
  3. Considers region, cloud provider, and resource requirements
  4. Respects the maximumDeploymentsPerCell constraint

Host clusters are automatically created when needed and can be reused after deployments are removed. Empty host clusters are automatically deleted after 24 hours of inactivity.

When multiple services share the same cloud account, they can share host clusters while respecting each service's individual constraints. For example, if Service A has maximumDeploymentsPerCell: 2 and Service B has maximumDeploymentsPerCell: 3, a shared host cluster will allow up to 2 deployments from Service A and up to 3 deployments from Service B simultaneously.

Limitations

  • Not compatible with Omnistrate Hosted services
  • Not compatible with multi-tenant offerings
  • Not compatible with Serverless capability
  • Can only be modified or enabled/disabled when no deployments exist for the service
  • maximumDeploymentsPerCell must be greater than 0