Files
yucca-o11y/.mise/config.toml
T

82 lines
2.7 KiB
TOML

monorepo_root = true
[monorepo]
config_roots = ["deployment", "deployment/modules/*/*"]
[tools]
opentofu = "1.12.6"
terragrunt = "1.1.3"
python = "3.14.7"
uv = "0.12.6"
pipx = "1.16.7"
"pipx:python-openstackclient" = "10.3.0"
kubectl = "1.37.0"
flux2 = "2.9.4"
"sd" = "1.1.0"
talosctl = "1.13.9"
helm = "4.2.4"
"jq" = "1.8.2"
gh = "2.98.0"
yq = "4.53.6"
"kustomize" = "5.8.1"
markdownlint-cli2 = "0.23.2"
# pinned: flate v0.4.13+ infers path-overlap deps across sources; our OCIRepository
# path ./ gives every Kustomization an edge onto yucca-o11y and cycles the graph (#214)
"github:home-operations/flate" = "v0.4.12"
[env]
TF_VAR_dist_dir = "{{config_root}}/dist"
# Maps long env names (development/staging/production) to the short suffixes
# used by 1Password vault paths (dev/staging/prod).
ENVIRONMENT_SHORT = "{% set e = get_env(name='ENVIRONMENT', default='development') %}{% if e == 'development' or e == '' %}dev{% elif e == 'production' %}prod{% else %}{{ e }}{% endif %}"
# CI authenticates with a service-account token, which op rejects alongside --account.
# Rendered at the root, so {{config_root}} here is the repo root from any subproject.
[vars]
tg = "op run {% if get_env(name='OP_SERVICE_ACCOUNT_TOKEN', default='') == '' %}--account 'team-futo.1password.com' {% endif %}'--env-file={{config_root}}/deployment/.env' -- terragrunt"
# Escape hatch for terragrunt subcommands the tasks below don't cover
# (state rm/import/force-unlock, ...); operates on the caller's directory.
[tasks.tg]
run = "{{vars.tg}}"
description = "Wrapper for terragrunt"
dir = "{{cwd}}"
# Module tasks extend these; each runs in its own module directory. Caller args
# append after the verb and land in tofu's argv (terragrunt run -- plan -target=...).
# apply/destroy in the module files carry wait_for mirroring the terragrunt
# dependency blocks, so wildcard fan-outs like //deployment/modules/...:apply
# cannot run out of dependency order.
[task_templates."tg:init"]
run = "{{vars.tg}} run -- init -reconfigure"
description = "Init this module"
[task_templates."tg:plan"]
run = "{{vars.tg}} run -- plan"
description = "Plan this module"
[task_templates."tg:apply"]
run = "{{vars.tg}} run -- apply"
description = "Apply this module"
[task_templates."tg:destroy"]
run = "{{vars.tg}} run -- destroy"
description = "Destroy this module"
[task_templates."tg:output"]
run = "{{vars.tg}} run -- output"
description = "Read outputs from this module"
[tasks."md:lint"]
run = "markdownlint-cli2 'docs/**/*.md' 'README.md'"
description = "Lint markdown docs"
[tasks."md:fix"]
run = "markdownlint-cli2 --fix 'docs/**/*.md' 'README.md'"
description = "Auto-fix markdown lint issues where possible"
[settings]
experimental = true
idiomatic_version_file_enable_tools = []