Skip to content

Deployment Cell Amenities

Overview

Deployment cell amenities are additional infrastructure components (Helm charts) that can be installed and managed on your deployment cell to enhance functionality and provide essential services. Omnistrate provides both managed amenities and support for custom amenities to meet your specific infrastructure requirements.

This guide demonstrates how to manage deployment cell amenities using the Omnistrate command-line tool.

Prerequisites

Before managing deployment cell amenities, ensure you have:

  • Omnistrate CTL installed (installation guide)
  • Valid credentials for the Omnistrate platform
  • Appropriate permissions to manage deployment cell
  • Access to your target environment (e.g., PROD, STAGING)

Amenity Types

Deployment cell support two types of amenities:

Managed Amenities

Pre-configured Helm charts maintained by Omnistrate that are automatically available for installation. These amenities are:

  • Fully managed: Omnistrate handles chart configuration, updates, and maintenance
  • Cloud-optimized: Configured with best practices for each cloud provider
  • Production-ready: Tested and validated for enterprise use

Common managed amenities include:

  • Observability Prometheus: Monitoring and metrics collection
  • Kubernetes Dashboard: Web-based Kubernetes cluster management interface
  • External DNS: Automatic DNS record management for Kubernetes services
  • Cert Manager: Automatic SSL certificate provisioning and renewal
  • Nginx Ingress Controller: HTTP/HTTPS traffic routing and load balancing

Each cloud provider has additional managed amenities.

Custom Amenities

Helm charts that you configure and manage yourself. Custom amenities require you to provide:

  • Chart repository information (name and URL)
  • Specific chart version
  • Custom Helm values for configuration
  • Authentication credentials (if needed)

Managing Deployment Cell Configuration Templates

Configuration templates define which amenities are available for deployment cell in each environment and cloud provider combination.

Generate Configuration Template

Create a template with all available amenities for a specific cloud provider:

omnistrate-ctl deployment-cell generate-config-template --cloud aws --output template-aws.yaml

When prompted, select your login method and provide credentials.

Review Template Structure

The generated template contains two main sections:

managedAmenities:
  - name: EFS CSI Driver
    description: EFS CSI Driver
    type: Helm
  - name: AWS Load Balancer Controller
    description: AWS Load Balancer Controller
    type: Helm
  - name: Cluster Autoscaler
    description: Cluster Autoscaler
    type: Helm
  # ... additional managed amenities

customAmenities:
  - name: EBS CSI Driver
    description: EBS CSI Driver
    type: Helm
    Properties:
      ChartName: "aws-ebs-csi-driver"
      ChartVersion: "2.28.1"
      ChartRepoName: "aws-ebs-csi-driver"
      ChartRepoURL: "https://kubernetes-sigs.github.io/aws-ebs-csi-driver"
      CredentialsProvider:
        Type: "none"
      DefaultNamespace: "kube-system"
      ChartValues:
        image:
          repository: "public.ecr.aws/ebs-csi-driver/aws-ebs-csi-driver"
          tag: "v1.27.0"
        controller:
          replicaCount: 2
          resources:
            requests:
              cpu: "10m"
              memory: "40Mi"

Custom Amenity Configuration Properties

When defining custom amenities, include these properties:

Property Description Required
ChartName Name of the Helm chart Yes
ChartVersion Specific version of the chart Yes
ChartRepoName Repository name identifier Yes
ChartRepoURL Repository URL Yes
CredentialsProvider Authentication configuration No
DefaultNamespace Kubernetes namespace for deployment No
ChartValues Custom Helm values to override defaults No

Update Configuration Template

After customizing your template, apply it to your environment:

omnistrate-ctl deployment-cell update-config-template -e PROD --cloud aws -f template-aws.yaml

View Current Configuration Template

Check the current configuration template for an environment:

omnistrate-ctl deployment-cell describe-config-template -e PROD --cloud aws

For JSON output:

omnistrate-ctl deployment-cell describe-config-template -e PROD --cloud aws --output json

Managing Individual Deployment Cell Amenities

Check Deployment Cell Status

View the current amenities and status of a specific deployment cell:

omnistrate-ctl deployment-cell describe-config-template --id hc-abcedfgh

For JSON output:

omnistrate-ctl deployment-cell describe-config-template --id hc-abcedfgh --output json

Replace hc-abcedfgh with your actual deployment cell ID.

Update Deployment Cell Amenities

You have two options for updating amenities on a deployment cell:

Option 1: Update with Configuration File

Create a custom configuration file:

managedAmenities:
  - name: Observability Prometheus
    description: Observability Prometheus
    type: Helm
  - name: Kubernetes Dashboard
    description: Kubernetes Dashboard
    type: Helm
  - name: External DNS
    description: External DNS
    type: Helm

customAmenities:
  - name: Custom Chart
    description: Custom application chart
    type: Helm
    Properties:
      ChartName: "my-custom-chart"
      ChartVersion: "1.0.0"
      ChartRepoURL: "https://my-repo.example.com"

Apply the configuration:

omnistrate-ctl deployment-cell update-config-template --id hc-abcedfgh -f custom-config.yaml

Option 2: Sync with Template

Automatically sync the deployment cell with your organization's template:

omnistrate-ctl deployment-cell update-config-template --id hc-abcedfgh --sync-with-template

This command syncs the deployment cell's amenities with the configuration template defined for its environment.

Apply Pending Changes

After updating the configuration, apply the changes to trigger actual deployment:

omnistrate-ctl deployment-cell apply-pending-changes --id hc-abcedfgh

This command:

  • Applies any pending amenity additions or removals
  • Triggers the deployment/undeployment of Helm charts
  • Updates the deployment cell to match the desired configuration

Change Application

Configuration updates create pending changes that must be explicitly applied using the apply-pending-changes command. This two-step process provides control and allows you to review changes before deployment.