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.
  • Billing Information – Sets pricing structures based on usage.

Example without Instance Dimension

profiles:
  - name: demo-gpu-vm
    overrides:
      kubernetes_version: "1.32"
    quota:
      max-instances: 5
    billing:
      description:
        USD: "GPU: $0.625/h onwards.\nCPU: $0.125/h.\nRam: $0.25/10GB/h."
        GBP: "GPU: 0.375/h onwards.\nCPU: 0.075/h.\nRam: 0.15/10GB/h."
        EUR: "GPU: EUR 0.5/h onwards.\nCPU: EUR 0.1/h.\nRam: EUR 0.2/10GB/h."
      currency:
      - USD
      - GBP
      - EUR
      dimensions:
      - GPU Model
      - CPU
      - Ram
      - Public IP Address
      ratecard:
        CPU:
        - price: 0.1
          time_unit: h
          base_unit: 1
          currency: EUR
        - price: 0.075
          time_unit: h
          base_unit: 1
          currency: GBP
        - price: 0.125
          time_unit: h
          base_unit: 1
          currency: USD

        Ram:
        - price: 0.2
          time_unit: h
          base_unit: 10
          currency: EUR
        - price: 0.15
          time_unit: h
          base_unit: 10
          currency: GBP
        - price: 0.25
          time_unit: h
          base_unit: 10
          currency: USD

        Public IP Address:
        - price: 2.5
          time_unit: m
          value: "true"
          currency: EUR
        - price: 2
          time_unit: m
          value: "true"
          currency: GBP
        - price: 3
          time_unit: m
          value: "true"
          currency: USD

        GPU Model:
        - price: 1
          time_unit: h
          count_from: GPU
          value: A100
          currency: EUR
        - price: 0.75
          time_unit: h
          base_unit: 1
          count_from: GPU
          value: A100
          currency: GBP
        - price: 1.25
          time_unit: h
          base_unit: 1
          count_from: GPU
          value: A100
          currency: USD

        - price: 1.5
          time_unit: h
          base_unit: 1
          count_from: GPU
          value: H100
          currency: EUR
        - price: 1.125
          time_unit: h
          base_unit: 1
          count_from: GPU
          value: H100
          currency: GBP
        - price: 1.875
          time_unit: h
          base_unit: 1
          count_from: GPU
          value: H100
          currency: USD

        - price: 0.75
          time_unit: h
          count_from: GPU
          value: L40s
          currency: EUR
        - price: 0.56
          time_unit: h
          base_unit: 1
          count_from: GPU
          value: L40s
          currency: GBP
        - price: 0.94
          time_unit: h
          base_unit: 1
          count_from: GPU
          value: L40s
          currency: USD

        - price: 0.5
          time_unit: h
          count_from: GPU
          value: L4
          currency: EUR
        - price: 0.375
          time_unit: h
          base_unit: 1
          count_from: GPU
          value: L4
          currency: GBP
        - price: 0.675
          time_unit: h
          base_unit: 1
          count_from: GPU
          value: L4
          currency: USD

Example with Instance Dimension

- name: test-gpu-vm
  overrides:
    blueprint: "minimal"
  quota:
    max-instances: 2
  billing:
    currency:
    - USD
    - GBP
    - EUR
    dimensions:
    - instance
    - Public IP Address
    ratecard:
      instance:
      - price: 1
        time_unit: h
        currency: EUR
      - price: 0.75
        time_unit: h
        currency: GBP
      - price: 1.25
        time_unit: h
        currency: USD
      Public IP Address:
      - price: 2.5
        time_unit: m
        value: "true"
        currency: EUR
      - price: 2
        time_unit: m
        value: "true"
        currency: GBP
      - price: 3
        time_unit: m
        value: "true"
        currency: USD

Profile-Specific Configuration Explained

Configuration Aspect YAML Field Purpose in Global Settings
Profile Name name: Identifies the Compute/Service Profile name used for billing (test-gpu-vm).
Billing Configuration billing: Top-level billing configuration block. Contains all billing-related fields.
Billing Currencies billing.currency: Lists supported currency codes (USD, EUR, GBP) used in ratecard.
Billing Dimensions billing.dimensions: Input variables that are tracked and billed. Includes fixed (instance) and conditional (Public IP Address) dimensions.
Ratecard (Pricing Rules) billing.ratecard: Defines per-unit pricing for each dimension and currency. Keys must match dimensions.
Instance Pricing billing.ratecard.instance: Specifies a fixed price per deployment of this profile. No conditions or value matching required.
Public IP Pricing billing.ratecard.Public IP Address: Applies charges only when the input variable Public IP Address is "true".
Price price: Unit price per time unit (e.g., 1, 0.75, 2.5).
Time Unit time_unit: Billing interval (h for hour, m for month).
Base Unit base_unit: Optional. Used for float-based dimensions. Not used in this spec.
Currency Code currency: Currency for the pricing entry (USD, EUR, GBP).
Value value: Used only for Public IP Address, specifies condition ("true") for applying price.
Count From count_from: Not used in this spec. Applicable when rate depends on another input variable’s value.

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: demo-gpu-vm
        overrides:
          blueprint: "minimal"
        quota:
          max-instances: 2
        billing:
          currency:
            - USD
            - GBP
            - EUR
          dimensions:
            - GPU Model
            - CPU
            - Ram
            - Public IP Address
          ratecard:
            CPU:
              - price: 0.1
                time_unit: h
                base_unit: 1
                currency: EUR
              - price: 0.075
                time_unit: h
                base_unit: 1
                currency: GBP
              - price: 0.125
                time_unit: h
                base_unit: 1
                currency: USD
            Ram:
              - price: 0.2
                time_unit: h
                base_unit: 10
                currency: EUR
              - price: 0.15
                time_unit: h
                base_unit: 10
                currency: GBP
              - price: 0.25
                time_unit: h
                base_unit: 10
                currency: USD
            Public IP Address:
              - price: 2.5
                time_unit: m
                value: "true"
                currency: EUR
              - price: 2
                time_unit: m
                value: "true"
                currency: GBP
              - price: 3
                time_unit: m
                value: "true"
                currency: USD
            GPU Model:
              - price: 1
                time_unit: h
                count_from: GPU
                value: A100
                currency: EUR
              - price: 0.75
                time_unit: h
                base_unit: 1
                count_from: GPU
                value: A100
                currency: GBP
              - price: 1.25
                time_unit: h
                base_unit: 1
                count_from: GPU
                value: A100
                currency: USD
              - price: 1.5
                time_unit: h
                base_unit: 1
                count_from: GPU
                value: H100
                currency: EUR
              - price: 1.125
                time_unit: h
                base_unit: 1
                count_from: GPU
                value: H100
                currency: GBP
              - price: 1.875
                time_unit: h
                base_unit: 1
                count_from: GPU
                value: H100
                currency: USD
              - price: 0.75
                time_unit: h
                count_from: GPU
                value: L40s
                currency: EUR
              - price: 0.56
                time_unit: h
                base_unit: 1
                count_from: GPU
                value: L40s
                currency: GBP
              - price: 0.94
                time_unit: h
                base_unit: 1
                count_from: GPU
                value: L40s
                currency: USD
              - price: 0.5
                time_unit: h
                count_from: GPU
                value: L4
                currency: EUR
              - price: 0.375
                time_unit: h
                base_unit: 1
                count_from: GPU
                value: L4
                currency: GBP
              - price: 0.675
                time_unit: h
                base_unit: 1
                count_from: GPU
                value: L4
                currency: USD

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: demo-gpu-vm 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: Lists supported currencies for billing (USD, GBP, EUR).
Billing Dimensions dimensions: Specifies the dimensions being billed (e.g., CPU, Ram, GPU Model, Public IP Address).
Ratecard (Pricing Rules) ratecard: Defines pricing per dimension, currency, and time unit, including optional fields like value and count_from.

πŸ“˜ 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.