tai42-config-k8s
The Kubernetes ConfigManager provider for the TAI ecosystem — a separately
installed plugin. It implements the tai42_contract.config.manager.ConfigManager
ABC for the k8s config mode:
- env configuration via a K8s Secret
- manifest configuration via a K8s ConfigMap (with
!ENV-tag round-tripping through the tai42-kit yaml utilities)
Its only tai-* dependencies are tai42-contract (the interface it implements) and
tai42-kit (settings machinery + manifest yaml helpers). It never imports the
skeleton — it is loaded by the skeleton's config seam through the
build_config_manager() factory convention by dynamic import (the skeleton names
this module as the string "tai42_config_k8s.manager", so there is no static edge
in either direction).
The TAI ecosystem
TAI is an open-source runtime for MCP tools, agents, and workflows. A
ConfigManager is the runtime's configuration provider: one pluggable object the
server reads its env and manifest configuration through, so where that
configuration lives is a deployment choice rather than a code change. This
package is one such provider (Kubernetes Secrets and ConfigMaps); any package can
back the same contract, so this repo is this provider's own full doc home, and
the documentation site covers the platform-level story:
- Config & secrets concept: https://tai42.ai/concepts/config-and-secrets
- Build a config provider (author guide): https://tai42.ai/guides/authors/config-provider
- Ecosystem catalog: https://tai42.ai/reference/catalog
The current release line tracks the 7.x contract (tai42-contract>=7,<8).
Install
Requires Python 3.13+. Install from PyPI into the environment that runs the
server, with the optional [k8s] extra that pulls the kubernetes client:
uv add "tai42-config-k8s[k8s]"
Or from source — clone this repo and add it as an editable dependency; the
tai42-* dependencies resolve in-tree from the workspace.
git clone https://github.com/tai42ai/tai42 # next to your app checkout
cd /path/to/your/app
uv add --editable "../tai-config-k8s[k8s]"
The kubernetes client is an optional [k8s] extra, imported lazily inside
K8sConfigManager; if it is absent the manager raises a copy-pasteable install
hint rather than a bare ImportError.
Select it at runtime with TAI_CONFIG_MODE=k8s.
Settings
K8sConfigSettings (prefix TAI_K8S_):
TAI_K8S_NAMESPACE(overrides the auto-detected namespace)TAI_K8S_SECRET_NAME(defaulttai-env)TAI_K8S_CONFIGMAP_NAME(defaulttai-manifest)TAI_K8S_MANIFEST_KEY(defaultmanifest.yml)TAI_K8S_DEFAULTS_MANIFEST_KEY(defaultdefaults.manifest.yml)
When TAI_K8S_NAMESPACE is unset (or blank), the namespace is auto-detected
from the pod service account, falling back to default for local development.
Typed package (py.typed).
Development
uv venv --python 3.13
uv pip install --no-sources --group dev --editable .
uv run --no-sync ruff check .
uv run --no-sync ruff format --check .
uv run --no-sync pyright
uv run --no-sync pytest --cov --cov-report=term-missing
License
Apache-2.0. See LICENSE and NOTICE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tai42_config_k8s-1.0.9.tar.gz.
File metadata
- Download URL: tai42_config_k8s-1.0.9.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc85bc7c6cea10d9cfc21d0b87c7d421440f87367f90d273e7dd566cc284e3ce
|
|
| MD5 |
0e7a2c9864249d592fbb15b878f38623
|
|
| BLAKE2b-256 |
d53cec3f0cfc710cf624445c3c6bfcace6e0989c215c29235ff1e5bed0cc6387
|
File details
Details for the file tai42_config_k8s-1.0.9-py3-none-any.whl.
File metadata
- Download URL: tai42_config_k8s-1.0.9-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64e361ca1ac03f1cff57098f5b24095cc9f842e7a9507c5ab8f46b6bb2a35e02
|
|
| MD5 |
0ede1fec1d4ceb2a1f2abbf14d05c4fe
|
|
| BLAKE2b-256 |
55a71bca8192f364753642e19a98fc1c507f86ca52e3bc0ae46646975e534462
|