Skip to content

System Parameters

Omnistrate allows your deployments to be modified at runtime through contextual information provided by the platform through system parameters. System parameters are placeholders that are replaced with actual values at runtime. You can use system parameters in various places in your Helm charts, Kubernetes Operators, Container configurations, Kustomize templates, Terraform templates, etc.

Example of information provided through system parameters (not exhaustive):

  • Cloud Provider
  • Region
  • Kubernetes Cluster ID
  • Tenant ID
  • VPC ID / Network ID
  • Subnet ID

Usage

System parameters are used in the following format: $sys.<variable-name>. For example, $sys.deploymentCell.region.

System parameters can be used when defining a service using Docker compose, Helm Charts (as part of the Helm Chart values), Operators (as part of the required Helm charts values or the operator configuration), as part of Kustomize or Terraform templates.

When using Omnistrate UI system parameters can be used to define parameter, environment variables or used within Action Hook scripts. Omnistrate UI provides a

Action Hook Script

Info

All variables are substituted with their original data type. If you want to use a variable as a string, you need to wrap it in escaped quotes. For example, \"$sys.deploymentCell.region\". This is particularly critical when using it on Helm Chart values that need a specific data type to be preserved / passed to the Helm Chart.

Using Schema Validation

You can use the following JSON schema in IDEs that use the YAML Language Server (eg: VSCode / NeoVim).

# yaml-language-server: $schema=https://api.omnistrate.cloud/2022-09-01-00/schema/system-parameters-schema.json

This gives you an exhaustive list of all supported system parameters today. Please make sure to follow the syntax above to use it by prepending $sys. to the variable name.

Parameters VSCode

Supported System Parameters

The following table provide an extensive list of supported system parameters classified on

  • Compute: Information about the compute infrastructure on which the service instance is running
  • Network: Information about the network configuration and connectivity for each service instance
  • Storage: Information about storage configuration for the service instance
  • Tenant: Information about the tenant that requested the creation of the service
  • Deployment: Information about the deployment metadata, like service plan configuration
  • Deployment cell: Information about the runtime environment on which the service is hosted, like Kubernetes cluster information
  • Instance: Information about each particular service instance
  • Function: Miscellaneous utility functions to configure the service instance

Compute parameters

Parameter Description Type
$sys.compute.node.poolName Name of the node pool where the node is allocated. string
$sys.compute.node.cores Number of CPU cores for the current node. integer
$sys.compute.node.memory Amount of memory (RAM) in GB for the current node. integer
$sys.compute.node.instanceType Instance type for the current node (e.g., m5.large). string
$sys.compute.node.name Name of the current service node. string
$sys.compute.node.index Index of the current node in the service instance. integer
$sys.compute.node.region AWS region where the current node is deployed. string
$sys.compute.nodes[i].poolName Name of the node pool where a specific node (node i) is allocated. string
$sys.compute.nodes[i].cores Number of CPU cores for a specific node (node i). integer
$sys.compute.nodes[i].memory Amount of memory (RAM) in GB for a specific node (node i). integer
$sys.compute.nodes[i].instanceType Instance type for a specific node (node i) in the service instance. string
$sys.compute.nodes[i].name Name of a specific node (node i) in the service instance. string
$sys.compute.nodes[i].index Index of a specific node (node i) in the service instance. integer
$sys.compute.nodes[i].region AWS region where a specific node (node i) is deployed. string
$sys.compute.numNodes Total number of nodes in the service instance. integer

Network parameters

Parameter Description Type
$sys.network.node.internalEndpoint Internal DNS endpoint name of the current node. string
$sys.network.node.externalEndpoint External DNS endpoint name of the current node. string
$sys.network.node.availabilityZone.code Code of the availability zone where the current node is located. string
$sys.network.node.availabilityZone.id ID of the availability zone where the current node is located. string
$sys.network.node.internalIP Internal IP address of the current node. string
$sys.network.node.hostIP Host IP address of the current node. string
$sys.network.node.subnetID Subnet ID associated with the current node. string
$sys.network.node.networkID Network ID associated with the current node. string
$sys.network.node.cidrRange CIDR range of the network for the current node. string
$sys.network.nodes[i].internalEndpoint Internal network endpoint of a specific node (node i) in the network array. string
$sys.network.nodes[i].externalEndpoint External network endpoint of a specific node (node i) in the network array. string
$sys.network.nodes[i].availabilityZone.code Code of the availability zone for a specific node (node i) in the network array. string
$sys.network.nodes[i].availabilityZone.id ID of the availability zone for a specific node (node i) in the network array. string
$sys.network.nodes[i].internalIP Internal IP address of a specific node (node i) in the network array. string
$sys.network.nodes[i].hostIP Host IP address of a specific node (node i) in the network array. string
$sys.network.nodes[i].subnetID Subnet ID associated with a specific node (node i) in the network array. string
$sys.network.nodes[i].networkID Network ID associated with a specific node (node i) in the network array. string
$sys.network.nodes[i].cidrRange CIDR range of the network for a specific node (node i) in the network array. string
$sys.network.internalClusterEndpoint Internal endpoint of the cluster. string
$sys.network.internalClusterServerlessEndpoint.endpointName Endpoint name for the internal cluster serverless endpoint. string
$sys.network.internalClusterServerlessEndpoint.openPorts[i] Open ports for the internal cluster serverless endpoint (port 0). integer
$sys.network.internalClusterServerlessEndpoint.partitionID Partition ID for the internal cluster serverless endpoint. string
$sys.network.externalClusterEndpoint External endpoint of the cluster. string
$sys.network.externalClusterServerlessEndpoint.endpointName Endpoint name for the external cluster serverless endpoint. string
$sys.network.externalClusterServerlessEndpoint.openPorts[i] Open ports for the external cluster serverless endpoint (port 0). integer
$sys.network.externalClusterServerlessEndpoint.partitionID Partition ID for the external cluster serverless endpoint. string
$sys.network.availabilityZones[i].code Code of the availability zone in the array of availability zones. string
$sys.network.availabilityZones[i].id ID of the availability zone in the array of availability zones. string

Storage parameters

Parameter Description Type
$sys.storage.volumes[i].name Name of the storage volume (volume i) in the volumes array. string
$sys.storage.volumes[i].size Size of the storage volume (volume i) in GB. integer
$sys.storage.volumes[i].type Type of the storage volume (volume i) (e.g., SSD, HDD). string
$sys.storage.volumes[i].mountPath Mount path for the storage volume (volume i). string
$sys.storage.volumes[i].id ID of the storage volume (volume i). string
$sys.storage.volumes[i].pvName Persistent Volume (PV) name of the storage volume (volume i). string
$sys.storage.numVolumes Total number of storage volumes in the current node. integer

Tenant parameters

Parameter Description Type
$sys.tenant.userID User ID of the tenant. string
$sys.tenant.name Name of the tenant. string
$sys.tenant.email Email address of the tenant. string
$sys.tenant.orgId Organization ID associated with the tenant. string
$sys.tenant.orgName Organization name associated with the tenant. string

Deployment parameters

Parameter Description Type
$sys.deployment.planID ID of the deployment plan. string
$sys.deployment.planName Name of the deployment plan. string
$sys.deployment.planVersion Version of the deployment plan. string
$sys.deployment.resourceAlias Alias for the deployed resource. string
$sys.deployment.resourceID ID of the deployed resource. string
$sys.deployment.nodeAffinityRules Node affinity rules for the deployment. string
$sys.deployment.nodeSelectorRules Node selector rules for the deployment. string
$sys.deployment.tlsServerCertificateSecretName Secret name for the TLS server certificate. string
$sys.deployment.tlsCertMountPath Mount path for the TLS certificate in the deployment. string
$sys.deployment.imageNameWithTag Full image name with the tag for the deployment container. string
$sys.deployment.imagePullSecretName Name of the image pull secret used for the deployment container image. string
$sys.deployment.iamWorkloadRoleARN ARN of the IAM workload role for the deployment. string
$sys.deployment.kubernetesServiceAccountName Name of the Kubernetes service account used in the deployment. string
$sys.deployment.cloudProvider Cloud provider where the deployment is hosted (e.g., AWS, GCP). string
$sys.deployment.cloudProviderAccountID Account ID of the cloud provider. string
$sys.deployment.gcpProjectNumber Project number for the deployment if using GCP. string
$sys.deployment.gcpBootstrapEmail Email used for GCP bootstrap actions in the deployment. string
$sys.deployment.kubernetesClusterID ID of the Kubernetes cluster used for the deployment. string

Deployment cell parameters

Parameter Description Type
$sys.deploymentCell.cloudProviderName Name of the cloud provider for the deployment cell (e.g., AWS, GCP). string
$sys.deploymentCell.region Region where the deployment cell is located. string
$sys.deploymentCell.cloudProviderNetworkID Network ID of the cloud provider for the deployment cell. string
$sys.deploymentCell.publicSubnetIDs[i].id ID of the public subnet in the deployment cell. string
$sys.deploymentCell.availabilityZones[i].id ID of the availability zone in the deployment cell. string
$sys.deploymentCell.securityGroupID Security group ID for the deployment cell. string
$sys.deploymentCell.oidcIssuerID OIDC Issuer ID for the deployment cell. string

Instance parameters

Parameter Description Type
$sys.id Unique identifier for the service instance. string

Functions

Parameter Description Type
$sys.deterministicSeedValue Deterministic seed used to generate unique values that are deterministic for each service instance (ie seed for password) integer