Talos Service Configuration¶
The service.yaml
file is a manifest file that describes the attributes of a Talos service. It includes details such as the service's name, version, type, and configuration specific to the Talos Service. This file is used to configure the Talos service and define its behavior with the help of following attributes:
Sample manifest file:¶
name: ${{test-service}} # service name
version: ${{v1}} # version
type: service # resource type
tags: # tags
- ${{service}}
- ${{dataos:type:resource}}
- ${{dataos:resource:service}}
- ${{dataos:layer:user}}
description: ${{Talos Service}}
workspace: ${{public}}
service: # service specific section
servicePort: 3000
ingress:
enabled: true
stripPath: true
path: /talos/${{public:test-service}}
# here 'public' is 'workspace' in which the service is deployed and 'test-service' is the 'name of service'
noAuthentication: true
replicas: ${{1}}
logLevel: ${{DEBUG}}
compute: runnable-default
envs:
TALOS_SCHEMA_PATH: ${{dataos-examples/test/talos-testing}}
# here 'dataos-examples' is the 'Repository name' and '/test/talos-testing' is the path to the folder in which "config.yml and api" folder is present
TALOS_BASE_PATH: /talos/${{public:test-service}} # same as path in the ingress
resources:
requests:
cpu: ${{100m}}
memory: ${{128Mi}}
limits:
cpu: ${{500m}}
memory: ${{512Mi}}
stack: talos:2.0
dataosSecrets:
- name: ${{bitrepo-r}}
allKeys: true
stackSpec:
repo:
url: ${{https://bitbucket.org/mywork15/dataos-examples}}
projectDirectory: ${{dataos-examples/test/talos-testing}}
# here 'dataos-examples' is the 'Repository name' and '/test/talos-testing' is the path to the folder in which "config.yml and api" folder is present
syncFlags:
- '--ref=main'
name
¶
Description: Unique identifier for the Talos service.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Alphanumeric values with the RegEx [a-z0-9]([-a-z0-9]*[a-z0-9]) . A hyphen/dash is allowed as a special character. The total length should be ≤ 48 characters. |
Example Usage:
version
¶
Description: The version of the Talos service, which helps in tracking different releases.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Alphanumeric values with the RegEx [a-z0-9]([-a-z0-9]*[a-z0-9]) . A hyphen/dash is allowed as a special character. The total length should be ≤ 48 characters. |
Example Usage:
type
¶
Description: Defines the type of Resource. In this case, it is a Service.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Descriptive string for the resource type (e.g., service). |
Example Usage:
tags
¶
Description: A list of metadata labels associated with the Service, making it easier to categorize and search for Resources.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
list of strings | optional | none | List of tag strings for categorization and identification. |
Example Usage:
description
¶
Description: A brief description of the Talos service.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Any descriptive text providing information about the service. |
Example Usage:
workspace
¶
Description: Defines the workspace under which the service operates.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Descriptive string for the workspace environment (e.g., public). |
Example Usage:
service
¶
Description: Configuration specific to the Talos Service.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
object | mandatory | none | Must contain attributes like servicePort , ingress , replicas , logLevel , compute , envs , resources , stack , dataosSecrets , and stackSpec . |
servicePort
¶
Description: Defines the port on which the service runs. Here, it listens on port 3000.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
integer | mandatory | none | Port number for the service (e.g., 3000). |
Example Usage:
ingress
¶
Description: Ingress settings for routing traffic to the Service.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
object | mandatory | none | Must contain enabled , stripPath , path , and noAuthentication attributes. |
enabled
¶
Description: Whether ingress is enabled or not. If true, it means that the Service is accessible via an ingress controller.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
boolean | mandatory | false | true or false |
Example Usage:
stripPath
¶
Description: Whether to strip the path from the incoming requests. If true, it removes the base path from the request URL before forwarding it to the Service. stripPath: true
means that when a request comes in as https://example.com/talos/public:test-service/api
, the system will forward only /api to the Service (removing /talos/public:test-service).
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
boolean | mandatory | false | true or false |
Example Usage:
path
¶
Description: Path pattern for ingress routing. The Ingress path defines how external users access the Service. In this case, the Service is reachable at: https://${{dataos-fdqn}}/talos/${{public:test-service}}.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Path pattern including variables (e.g., /talos/${{workspace}}:${{service-name}}). |
Example Usage:
noAuthentication
¶
Description: Whether authentication is required or not. If true, the Service does not require authentication for access.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
boolean | mandatory | false | true or false |
Example Usage:
replicas
¶
Description: The number of instances of the Service running for scalability and high availability.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
integer | mandatory | 1 | Number of replicas (e.g., 1). |
Example Usage:
logLevel
¶
Description: Sets the logging verbosity. DEBUG
means detailed logs are collected for troubleshooting.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | INFO | Logging levels such as DEBUG, INFO, WARN, ERROR. |
Example Usage:
compute
¶
Description: Compute resource configuration.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Descriptive string for compute resource (e.g., runnable-default). |
Example Usage:
envs
¶
Description: Environment variables for the service.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
object | mandatory | none | Must contain key-value pairs defining environment variables. |
TALOS_SCHEMA_PATH
¶
Description: Specifies the path inside the Talos repository where the config.yaml
is stored.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Path to the schema (repo-name/{{path to the folder in which config.yml present}}) |
Example Usage:
TALOS_BASE_PATH
¶
Description: Base path for Talos service.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Base path for the service (e.g., /talos/${{workspace}}:${{service-name}}). |
Example Usage:
resources
¶
Description: Resource requests and limits for the service.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
object | mandatory | none | Must contain requests and limits attributes. |
requests
¶
Description: Minimum resources requested by the service.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
object | mandatory | none | Must contain cpu and memory attributes. |
cpu
¶
Description: Minimum CPU resources.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | CPU requests (e.g., 100m). |
Example Usage:
memory
¶
Description: Minimum memory resources.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Memory requests (e.g., 128Mi). |
Example Usage:
limits
¶
Description: Maximum resources allowed for the service.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
object | mandatory | none | Must contain cpu and memory attributes. |
cpu
¶
Description: Maximum CPU resources.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | CPU limits (e.g., 500m). |
Example Usage:
memory
¶
Description: Maximum memory resources.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Memory limits (e.g., 512Mi). |
Example Usage:
stack
¶
Description: Version of the Talos stack being used.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Stack version (e.g., talos:2.0). |
Example Usage:
dataosSecrets
¶
Description: Secrets used by the Talos service.
name
¶
Description: Name of the secret.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Name of the secret (e.g., bitrepo-r). |
Example Usage:
allKeys
¶
Description: Whether all keys in the secret are to be used.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
boolean | mandatory | false | true or false. |
Example Usage:
stackSpec
¶
Description: Specification for the Stack configuration.
repo
¶
Description: Repository configuration for the stack. This section defines where the service fetches its code and configuration from.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
object | mandatory | none | Must contain url , projectDirectory , and optionally syncFlags . |
url
¶
Description: Specifies the Git/Bitbucket repository URL where the Talos Service code and configurations are stored.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | URL of the repository (e.g., https://bitbucket.org/mywork15/talos/). |
Example Usage:
projectDirectory
¶
Description: Defines the specific directory path inside the repository that contains the config.yaml
file.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
string | mandatory | none | Directory for the project |
Example Usage:
syncFlags
¶
Description: Specifies additional Git sync options when pulling updates from the repository. For example, the flag --ref=main
ensures that the Service always pulls updates from the main branch of the repository. Helps in controlled versioning and prevents unwanted branch deployments.
Data Type | Requirement | Default Value | Possible Values |
---|---|---|---|
list of strings | optional | none | List of flags for synchronization (e.g., --ref=main). |
Example Usage: