Skip to main content
GuideServerConfigure and deploy Tabsdata servers on your machine.TutorialsConfigure data integration workflows within a running Tabsdata server.API ReferenceCLI ReferenceRelease Notes
Version: 2.2.0

tdkserver quickstart

Initialize, create and start a tabsdata instance in one step

tdkserver quickstart \
--instance tabsdata \
--loglevel info \
--provider kminus \
--context docker-desktop \
--kubeconfig ~/.kube/config \
--current \
--namespace tabsdata \
--port 2457 \
--config tabsdata:pods.service.resources.memory=8Gi \
--fill \
--save true \
--details true \
--yes true \
--accept-terms yes \
--verbose \
--keep-progress true
FlagTypeRequiredDescription
--instancestringOptionalName of the instance to initialize, create and start. Defaults to 'tabsdata'.
--logleveltrace | debug | info | warn | errorOptionalLog level for the kminus orchestrator and pod runner. Defaults to 'debug'. Only valid with the 'kminus' provider.

Example:
  tdkserver quickstart --provider kminus --loglevel info
--providerkminus | eks | aks | gkeOptionalProvider of the cluster: 'kminus' for a development kminus cluster, 'eks' for AWS EKS, 'aks' for Azure AKS, 'gke' for Google GKE. When unspecified, the value from the active tabsdata session is taken; when no active tabsdata session is set, this argument is required.
--contextstringOptionalName of the kubeconfig context to use. Valid only for the cloud providers ('eks', 'aks', 'gke'). Mutually exclusive with --current. Composes with --kubeconfig.
--kubeconfigstringOptionalPath to a kubeconfig file. Valid only for the cloud providers ('eks', 'aks', 'gke'). When unspecified, the file pointed to by the KUBECONFIG environment variable, or ~/.kube/config, is used. Composes with --context and --current.
--currentflagOptionalUse the current-context entry of the kubeconfig file. Valid only for the cloud providers ('eks', 'aks', 'gke'). Mutually exclusive with --context. Composes with --kubeconfig.
--namespacestringOptionalNamespace for the instance. Valid only for the cloud providers ('eks', 'aks', 'gke'). Overrides the namespace defined in the kubeconfig context. When neither is set, the kubernetes default namespace is used.
--portintegerOptionalBase HTTP/HTTPS port. Ports for the instance services are assigned sequentially starting from this value. Defaults to 2457.
--anthropic-keystringOptionalDeprecated: use '--config anthropic-key=<KEY>' instead. Anthropic API key for the aiagent. Optional.
--openai-keystringOptionalDeprecated: use '--config openai-key=<KEY>' instead. OpenAI API key for the aiagent. Optional.
--uv-indexstringOptionalDeprecated: use '--config tabsdata:pods.global.envs.UV_INDEX=<URI>' instead. Python package index for the instance. The URI is set as the 'UV_INDEX' global environment variable of the initialized instance, which every container of every pod receives, and it takes precedence over the 'UV_INDEX' and 'PIP_INDEX_URL' variables of this machine.

Only valid with 'TD_KUBE_UV_MODE' unset, because only then are the packages resolved from this machine's environment.

Example:
  tdkserver quickstart --uv-index http://localhost:8000/+simple
--configstringOptionalSets a value of the instance configuration. The value is written into the config files under 'init/input/configs' of the new instance before anything reads them. Repeat the option to set several values. Each value can be set only once, even with the same content. Every setting is checked before the instance folder is created, so an invalid setting leaves nothing behind.

A setting has the form ADDRESS=VALUE, where ADDRESS names what to set in one of three ways.

By placeholder category:
  Config files hold placeholders such as '${{literal:tdk_database_host}}' or '${{secret:postgres_system_password}}'. The word before the colon is the placeholder kind (literal, literalAuto, secret or secretAuto can be set), and the word after it is the category. Naming the category sets every placeholder of that category, in every config file at once:
    tdk_database_host=db.internal
  The kind can be prefixed to the category, and it must be when two kinds share one category:
    secret:postgres_system_user=tabsdata

By file and key path:
  Any final value of a config file, placeholder or not, is addressed by the file name (with or without '.yaml'), a colon, and the path of keys down to the value, joined by dots:
    tabsdata:pods.service.resources.cpu=4
  A list item is selected by its position, starting at 0, or by the value of one of its keys:
    tabsdata:pods.service.placement.tolerations[0].effect=NoExecute
    tabsdata:pods.service.placement.tolerations[operator=Exists].effect=NoExecute
  A key that contains dots is quoted, as in 'section."key.with.dots".value'.

From a settings file:
  '@FILE' reads settings from a YAML file. It may be a list of 'ADDRESS=VALUE' strings, a mapping of addresses to values, or a mapping with two sections: 'files', with the keys of each config file nested as in the file itself, and 'values', a mapping of addresses to values:
    files:
      tabsdata:
        pods:
          service:
            resources:
              cpu: "4"
    values:
      tdk_database_host: db.internal
      secret:postgres_system_password: env:POSTGRES_PASSWORD

Only values that already exist can be set: never new keys, and never a key that holds other keys or a list. The one exception is 'tabsdata:pods.global.envs', where new environment variables can be added for every pod and function:
    tabsdata:pods.global.envs.MY_API_KEY=env:MY_API_KEY
Their values are written as strings. A string value replaces a string, while numbers and booleans replace only values of their own type. A VALUE starting with 'env:' is read from that environment variable of this machine, so secrets need not be written in any file of yours. To combine variables with fixed text, wrap each variable in '${...}': 'env:${BUCKET_URI}/root' reads BUCKET_URI and appends '/root'. 'val:' keeps a value that literally starts with 'env:'. Secret values end up in the instance input config files.

Examples:
  tdkserver init --provider gke --config tdk_database_host=db.internal --config secret:postgres_system_password=env:POSTGRES_PASSWORD
  tdkserver quickstart --config tabsdata:pods.service.resources.memory=8Gi
  tdkserver quickstart --config anthropic-key=env:ANTHROPIC_API_KEY
  tdkserver quickstart --config tabsdata:pods.global.envs.MY_API_KEY=env:MY_API_KEY
  tdkserver quickstart --config @settings.yaml
--fillflagOptionalFill the configuration stub of the provider in a built-in editor before anything is created. The editor opens the stub of the chosen provider, or the file left by an earlier '--fill' of the same instance, with the required values marked. Ctrl+Q saves and continues once the settings are valid, Ctrl+S saves without leaving, and Esc quits without saving, which cancels the quickstart.

Editing keys use Ctrl, also on macOS: the terminal keeps Cmd for itself. Ctrl+C, Ctrl+X and Ctrl+V use the system clipboard, so text moves between the editor and other applications, and Cmd+V pastes too. Ctrl+A selects all; Shift with the arrows, or a mouse drag, selects a block.

The filled file is used as '--config @FILE', together with any other '--config' settings, and it is kept in the 'init/fill' folder of the instance.

Example:
  tdkserver quickstart --provider gke --fill
--savetrue | falseOptionalCopy the cluster settings files (kubeconfig, etc.) into the instance folder so the instance is self-contained.
--detailstrue | falseOptionalShow the summary of resolved values before each step. Defaults to 'true'. Pass '--details false' to skip the summaries.
-y, --yestrue | falseOptionalSkip the interactive confirmation prompts and proceed immediately.
--accept-termsstringOptionalAccept or decline the license terms without interactive prompt [y/yes/n/no].
--verboseflagOptionalShow the output of each step that this command runs.
--keep-progresstrue | falseOptionalKeep the progress line of each step that this command runs, instead of clearing it when the step finishes [true/false]. Defaults to true.