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
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
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 instance s 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.