TazPod: Config Detail

Level 3 (Detail) — .tazpod/config.yaml structure and all fields.

Concept

The config file at .tazpod/config.yaml defines the project-local TazPod runtime contract. It is loaded by loadConfigs() in cmd/tazpod/config.go.

Config Struct

File: cmd/tazpod/config.goConfig (lines 12-19)

type Config struct {
    Image         string                    `yaml:"image"`
    ContainerName string                    `yaml:"container_name"`
    User          string                    `yaml:"user"`
    GhostMode     bool                      `yaml:"ghost_mode"`
    Features      Features                  `yaml:"features"`
    AwsSso        AwsSsoConfig              `yaml:"aws_sso"`
    Providers     map[string]ProviderConfig `yaml:"providers"`
}

Fields

FieldTypeDefaultDescription
imagestringtazzo/tazpod-ai:latestDocker image for the operator container
container_namestring<folder>-labDocker container name
userstringtazpodUsername inside the container
ghost_modebooltrueGhost mode enabled
features.debugboolfalseEnable debug logging
aws_sso.profilestringAWS SSO profile name for S3 auth
providersmapProvider-specific configs (e.g., db_host per namespace)

Features

type Features struct {
    Debug bool `yaml:"debug"`
}

When debug: true, the CLI sets slog.LevelDebug and prints debug-level log messages.

AwsSsoConfig

type AwsSsoConfig struct {
    Profile string `yaml:"profile"`
}

The profile is passed to aws sso login --profile <profile> and to NewS3Client() for S3 operations.

ProviderConfig

type ProviderConfig struct {
    DBHost string `yaml:"db_host"`
}

Used to store per-provider database host addresses (e.g., for tazlab-db, tazlab-k8s).

Example Config

image: tazzo/tazpod-ai:latest
container_name: tazpod-lab
user: tazpod
ghost_mode: true
features:
  debug: false
aws_sso:
  profile: tazlab
providers:
  tazlab-db:
    db_host: tazlab-db-primary.tazlab-db.svc.cluster.local

Config Loading

File: cmd/tazpod/vault_cmd.goloadConfigs() (lines 46-59)

data, err := os.ReadFile(ConfigPath)
// ConfigPath = filepath.Join(".tazpod", "config.yaml")
if os.IsNotExist(err) { return }  // first run, no config yet
yaml.Unmarshal(data, &cfg)

If the file doesn’t exist, the config remains at zero values — smartEntry() will offer initProject() to create it.

See Also