Skip to content

Global Settings

What is Global Settings?

The Global Settings feature provides a centralized configuration management system for profiles (SKUs) across multiple tenants. It allows users to define and manage variable overrides, agent configurations, quota limits, and billing settings at different levelsβ€”global, profile-specific, and tenant-specific. This hierarchical structure ensures consistency and efficiency in managing profile deployments.

Why Use Global Settings?

Managing configurations separately for each profile and tenant can lead to inconsistencies, inefficiencies, and increased overhead. The Global Settings feature helps by:

  • Ensuring consistency across all profiles and tenants
  • Reducing manual effort by applying settings dynamically
  • Providing flexibility with a structured hierarchy for overrides
  • Automating agent association for environment launches
  • Streamlining billing and quota enforcement

When to Use Global Settings?

Global Settings should be used in scenarios where:

  • Standardized configurations are required across multiple tenants and profiles
  • Automated agent assignments are needed for environment provisioning
  • Quota limits must be defined to prevent excessive resource consumption
  • A centralized approach is preferred for managing variable overrides
  • A structured billing system based on usage is necessary

How to Add Global Settings?

Follow these steps to add or update Global Settings:

  • In the System menu, navigate to Global Settings

Audit Logs Console

There are two ways to add Global Settings:

Option 1: Upload a YAML File

  • Click Upload File
  • Select a valid YAML file containing the Global Settings configuration
  • Click Save to apply the settings

Option 2: Enter YAML Manually

  • In the editor, type or paste the YAML specification for Global Settings
  • Click Save to apply the settings
  • Click Reset to discard unsaved changes and revert to the last saved configuration
  • Modify the YAML directly in the editor and click Save to update the settings

Audit Logs Console

Configuration Structure

Global Settings follows a hierarchical structure:

  • Global (applies to all profiles and tenants)
  • Profile-Specific (applies to all tenants using a specific profile)
  • Tenant-Specific (applies to a specific tenant and profile)

If the same setting is defined at multiple levels, the system applies the highest-priority configuration based on this order:

  • Tenant-Specific (Highest Priority) – Takes precedence over all other levels
  • Profile-Specific – Applied if no tenant-specific values exist
  • Global (Lowest Priority) – Used as a fallback when no other values are defined

Global Overrides

Agent Configuration

Every profile (SKU) requires a healthy agent to launch environments and execute workflows. Instead of manually assigning agents to each profile, you can define them centrally in the Global Settings. These agents will be dynamically associated with all profiles during environment provisioning, unless overridden elsewhere.

Agent Selection Hierarchy

The system uses a layered approach to determine which agents are applied during environment launch. This hierarchy gives you fine-grained control when required, while still allowing centralized defaults to simplify setup.

  • Global Agents

If the environment template does not specify any agents, the globally defined agents from this configuration will be used instead.

Example:

agents:
  - demoagent-1
  - demoagent-2
  - demoagent-3

This configuration ensures that these agents are available to all environments by default.

  • Environment Template Level Agents

When agents are defined in the environment template, they take full precedence. These agents will be used exclusively during environment provisioning.

Example:

spec:
  agents:
    - envtemplate-agent-1
    - envtemplate-agent-2

If this configuration is present in the environment template, only these agents will be used during environment launch. The global agent list will be ignored.

πŸ’‘ Note: If the agents are shared across multiple projects, make sure the environment template is also shared with those same projects. This ensures that the environment launch process has access to the shared agents as expected.

Input Variables (Overrides)

Certain variables are commonly used across multiple tenants, profiles, or environments. Instead of defining them separately for each profile, they can be set globally to maintain consistency and reduce duplication.

Example:

overrides:
  aws_account_id: "123456789"
  aws_region: "us-east-1"
  iam_role: "arn:aws:iam::123456789012:role/MyCrossAccountRole"
  • AWS Account ID: Used for multiple tenants
  • AWS Region: Shared across environments to standardize deployment locations
  • IAM Role: Enables cross-account access without reconfiguration

πŸ’‘ Note: These values remain active unless overridden in profile-specific or tenant-specific sections.

Profile-Specific Overrides

Each profile (SKU) can have its own configuration, including:

  • Input Variable Overrides – Replaces specific variables for all tenants using the profile.
  • Quota Limits – Defines maximum resource allocations.
  • Billing Information – Sets pricing structures based on usage.

Example:

profiles:
  - name: k8s-small
    overrides:
      kubernetes_version: "1.32"
    quota:
      max-instances: 5
    billing:
      currency:
      - USD
      - INR
      dimensions:
      - instance
      - input1
      - input2
      ratecard:
        instance:
        - price: 3
          time_unit: h
          currency: USD
          base_unit: 1
        - price: 240
          time_unit: h
          base_unit: 1
          currency: INR
        input1:
        - price: 0.5
          time_unit: h
          currency: USD
        - price: 42
          time_unit: h
          currency: INR
        input2:
        - price: 1
          time_unit: h
          base_unit: 1
          currency: USD
        - price: 80
          time_unit: h
          base_unit: 1
          currency: INR

Profile-Specific Configuration Explained

Configuration Aspect YAML Field Purpose in Global Settings
Profile Name name: k8s-small Identifies the profile (SKU) the settings apply to across all tenants.
Input Variable Overrides overrides: Specifies default input values (e.g., kubernetes_version) used during environment launch.
Quota Enforcement quota: Defines a soft limit (max-instances: 5) to control how many instances tenants can deploy.
Billing Currencies currency: Lists supported currencies (USD, INR) for usage-based billing.
Billing Dimensions dimensions: Determines what is measured for billing (e.g., instance, input1, input2).
Ratecard (Pricing Rules) ratecard: Sets the per-unit pricing for each dimension and currency, used to calculate tenant charges.

Tenant-Specific Overrides

A tenant may require different quotas, pricing structures, or variable overrides for a specific profile. Tenant-level configurations take highest priority and override global or profile-specific settings.

Example:

tenants:
    - name: test-tenant-1
      profiles:
        - name: k8s-small
          overrides:
             blueprint: "minimal"
          quota:
             max-instances: 2
          billing:
             currency:
             - USD
             dimensions:
             - instance
             - input1
             - input2
             ratecard:
               instance:
               - price: 1
                 time_unit: h
                 currency: USD
                 base_unit: 1
                 currency: INR
               input1:
               - price: 1
                 time_unit: h
                 currency: USD
               - price: 1
                 time_unit: h
                 currency: INR
               input2:
               - price: 1
                 time_unit: h
                 base_unit: 1
                 currency: USD
               - price: 1
                 time_unit: h
                 base_unit: 1
                 currency: INR

Tenant-Specific Configuration Explained

Configuration Aspect YAML Field Purpose in Global Settings
Tenant Name name: test-tenant-1 Identifies the tenant (organization) receiving custom configuration.
Profile Name name: k8s-small Specifies which profile this configuration applies to for the tenant.
Input Variable Overrides overrides: Overrides input variables such as blueprint: minimal only for this tenant and profile.
Quota Enforcement quota: Defines a soft limit of max-instances: 2, restricting this tenant to 2 deployments.
Billing Currencies currency: Limits billing to the listed currency (USD).
Billing Dimensions dimensions: Specifies what is being billedβ€”e.g., number of instances or input values used.
Ratecard (Pricing Rules) ratecard: Sets tenant-specific pricing per dimension (e.g., instance, input1, input2) in USD.

πŸ“˜ Use Case: Simplifying Multi-Tenant Environment Management for a GPU Cloud Provider

A cloud service provider offers GPU-powered compute environments to multiple downstream organizations. To streamline operations, the provider uses Global Settings to centrally manage shared configurations such as agents, quotas, input variable overrides, and billing for all tenants and profiles.

This approach eliminates the need to configure agents, limits, or pricing details individually for each tenant or profile, ensuring consistent and efficient environment provisioning at scale.

🎯 Objective

  • Automatically associate execution agents with all environments
  • Enforce instance limits per tenant and profile
  • Set shared input values like AWS region/account
  • Customize pricing per tenant if needed

🧾 YAML Specification

# Global-level configuration (applies to all tenants and profiles)
agents:
  - shared-agent-1
  - shared-agent-2

overrides:
  aws_account_id: "987654321000"
  aws_region: "us-west-2"
  iam_role: "arn:aws:iam::987654321000:role/GlobalExecutionRole"

# Profile-specific configuration (applies to all tenants using this profile)
profiles:
  - name: gpu-standard
    overrides:
      accelerator: "nvidia-a100"
    quota:
      max-instances: 5
    billing:
      currency:
        - USD
      dimensions:
        - instance
        - gpu_hours
      ratecard:
        instance:
          - price: 10
            time_unit: h
            currency: USD
        gpu_hours:
          - price: 2.5
            time_unit: h
            currency: USD

# Tenant-specific overrides (applies only to given tenant/profile pair)
tenants:
  - name: org-gamma
    profiles:
      - name: gpu-standard
        quota:
          max-instances: 3
        overrides:
          accelerator: "nvidia-tesla-v100"
        billing:
          currency:
            - USD
          dimensions:
            - instance
            - gpu_hours
          ratecard:
            instance:
              - price: 8
                time_unit: h
                currency: USD
            gpu_hours:
              - price: 2.0
                time_unit: h
                currency: USD

  - name: org-delta
    profiles:
      - name: gpu-standard
        quota:
          max-instances: 1

🌐 Global Configuration

These settings apply across all tenants and profiles unless explicitly overridden.

Field Key Value(s)
Agents agents shared-agent-1, shared-agent-2 β€” Agents automatically assigned to all environments
Input Overrides overrides.aws_account_id 987654321000 β€” Shared AWS account ID used across tenants
overrides.aws_region us-west-2 β€” AWS region for deployments
overrides.iam_role arn:aws:iam::987654321000:role/GlobalExecutionRole β€” Role used for execution

πŸ“¦ Profile-Specific Configuration

These settings apply to all tenants using the gpu-standard profile, unless overridden at the tenant level.

Field Key Value(s)
Profile Name profiles.name gpu-standard
Input Overrides profiles.overrides.accelerator nvidia-a100 β€” Default accelerator for this profile
Quota profiles.quota.max-instances 5 β€” Max number of instances per tenant using this profile
Billing Currency profiles.billing.currency USD β€” Supported billing currency
Billing Dimensions profiles.billing.dimensions instance, gpu_hours β€” Metrics used for billing
Ratecard - Instance profiles.billing.ratecard.instance 10 USD/hour β€” Cost per instance
Ratecard - GPU Hours profiles.billing.ratecard.gpu_hours 2.5 USD/hour β€” Cost per GPU hour

🏒 Tenant-Specific Configuration

These settings apply only to specific tenants and override global and profile-level configurations.

Tenant: org-gamma

Field Key Value(s)
Tenant Name tenants.name org-gamma
Profile Name tenants.profiles.name gpu-standard
Input Overrides tenants.profiles.overrides.accelerator nvidia-tesla-v100 β€” Overrides default accelerator
Quota tenants.profiles.quota.max-instances 3 β€” Limits this tenant to 3 instances for this profile
Billing Currency tenants.profiles.billing.currency USD
Billing Dimensions tenants.profiles.billing.dimensions instance, gpu_hours
Ratecard - Instance tenants.profiles.billing.ratecard.instance 8 USD/hour β€” Tenant-specific pricing
Ratecard - GPU Hours tenants.profiles.billing.ratecard.gpu_hours 2.0 USD/hour β€” Customized GPU usage pricing

Tenant: org-delta

Field Key Value(s)
Tenant Name tenants.name org-delta
Profile Name tenants.profiles.name gpu-standard
Quota tenants.profiles.quota.max-instances 1 β€” Limits this tenant to only 1 instance

πŸ’‘ Note: org-delta does not override input variables or billing details β€” it inherits them from the profile-level configuration.