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