Introduce the CASE engineering agent by defining kottos_case_port (24152) and updating the agents list comment. This extends the systemd-managed pallas process configuration to include the CASE runtime alongside existing Harper, Scotty, Research, and Tech Research agents.
126 lines
4.8 KiB
YAML
126 lines
4.8 KiB
YAML
---
|
||
# Puck Configuration - Application Runtime
|
||
# Services: alloy, docker, lxqt, jupyterlab
|
||
|
||
services:
|
||
- alloy
|
||
- docker
|
||
- gitea_runner
|
||
- athena
|
||
- kottos
|
||
|
||
# Gitea Runner
|
||
gitea_runner_name: "puck-runner"
|
||
|
||
# Alloy
|
||
alloy_log_level: "warn"
|
||
angelia_syslog_port: 51422
|
||
# mnemosyne_syslog_port retained for inventory-compatibility while the
|
||
# Alloy Docker-socket discovery block rolls out; no listener binds to it
|
||
# any more. Delete once the docker-socket pipeline is proven in prod.
|
||
mnemosyne_syslog_port: 51431
|
||
athena_syslog_port: 51424
|
||
kairos_syslog_port: 51425
|
||
icarlos_syslog_port: 51426
|
||
spelunker_syslog_port: 51428
|
||
jupyterlab_syslog_port: 51411
|
||
# daedalus_syslog_port retained for the same reason as mnemosyne above.
|
||
daedalus_syslog_port: 51430
|
||
|
||
# =============================================================================
|
||
# PPLG scrape targets on puck
|
||
# =============================================================================
|
||
# Consumed by ``ansible/pplg/prometheus.yml.j2`` on Prospero. Defining them
|
||
# here keeps the scrape config fully parametric so the same playbook runs
|
||
# unchanged against Ouranos / Virgo / Taurus — each environment sets its
|
||
# own puck-equivalent host in its host_vars.
|
||
|
||
# Daedalus (FastAPI on puck, behind nginx)
|
||
daedalus_metrics_host: "puck.incus"
|
||
daedalus_metrics_port: 23081
|
||
|
||
# Mnemosyne — two metrics surfaces:
|
||
# app (23181): /metrics served by nginx → Django app container, which owns
|
||
# the single prometheus_client process registry that both django-prometheus
|
||
# (HTTP / Celery) and the MCP server's tool-call counters write to.
|
||
# web (23191): nginx-prometheus-exporter sidecar scraping nginx stub_status.
|
||
mnemosyne_app_metrics_host: "puck.incus"
|
||
mnemosyne_app_metrics_port: 23181
|
||
mnemosyne_web_metrics_host: "puck.incus"
|
||
mnemosyne_web_metrics_port: 23191
|
||
|
||
# =============================================================================
|
||
# Kottos Configuration (Pallas FastAgent runtime)
|
||
# =============================================================================
|
||
# Engineering agents (Harper, Scotty, CASE, Research, Tech Research) running as a
|
||
# single systemd-managed ``pallas`` process. Logs land in journald via
|
||
# SyslogIdentifier=kottos, then Alloy's journal relabel block tags them as
|
||
# {service="pallas", project="kottos"} for Loki.
|
||
kottos_user: kottos
|
||
kottos_group: kottos
|
||
kottos_directory: /srv/kottos
|
||
kottos_host: "puck.incus"
|
||
kottos_namespace: "ca.helu.kottos"
|
||
|
||
# Ports — registry at 24100, agents 24101–24149, sub-agents 24150–24199
|
||
kottos_registry_port: 24100
|
||
kottos_harper_port: 24101
|
||
kottos_scotty_port: 24102
|
||
kottos_research_port: 24150
|
||
kottos_tech_research_port: 24151
|
||
kottos_case_port: 24152
|
||
|
||
# Log level — INFO surfaces lifecycle + failures, DEBUG adds per-request
|
||
# detail and successful health probe lines. Ouranos Lab convention:
|
||
# health-check 200 OKs live in DEBUG, never in INFO.
|
||
pallas_log_level: INFO
|
||
|
||
# fast-agent's own logger — keep at INFO in prod, bump to DEBUG alongside
|
||
# pallas_log_level when chasing MCP transport issues.
|
||
kottos_fastagent_log_level: info
|
||
|
||
# LLM provider — the same OpenAI-compatible Qwen endpoint Kottos uses today.
|
||
kottos_default_model: "openai.Qwen3.6-35B-A3B-UD-Q4_K_XL.gguf"
|
||
kottos_openai_base_url: "http://nyx.helu.ca:22072/v1"
|
||
kottos_model_vision: true
|
||
kottos_model_context_window: 192000
|
||
kottos_model_max_output_tokens: 16384
|
||
kottos_timezone: "America/Toronto"
|
||
|
||
# Downstream MCP server URLs — each parametric so Virgo / Taurus override
|
||
# them in their own host_vars without touching the templates.
|
||
kottos_argos_url: "http://miranda.incus:25534/mcp"
|
||
kottos_neo4j_cypher_url: "http://circe.helu.ca:22034/mcp"
|
||
kottos_kernos_scotty_url: "http://caliban.incus:22062/mcp"
|
||
kottos_rommie_url: "http://caliban.incus:20361/mcp"
|
||
kottos_gitea_url: "http://miranda.incus:25535/mcp"
|
||
kottos_grafana_url: "http://miranda.incus:25533/mcp"
|
||
kottos_kernos_harper_url: "http://korax.helu.ca:20261/mcp"
|
||
kottos_angelia_url: "https://ouranos.helu.ca/mcp/"
|
||
kottos_mnemosyne_url: "https://mnemosyne.ouranos.helu.ca/mcp/"
|
||
|
||
# =============================================================================
|
||
# Athena Configuration
|
||
# =============================================================================
|
||
athena_user: athena
|
||
athena_group: athena
|
||
athena_directory: /srv/athena
|
||
athena_port: 22481
|
||
athena_domain: "ouranos.helu.ca"
|
||
|
||
# Prometheus scrape targets (see pplg/prometheus.yml.j2, athena job)
|
||
athena_app_metrics_host: "puck.incus"
|
||
athena_app_metrics_port: 22481
|
||
athena_web_metrics_host: "puck.incus"
|
||
athena_web_metrics_port: 22491
|
||
|
||
# Casdoor SSO Credentials (from vault)
|
||
athena_casdoor_client_id: "{{ vault_athena_oauth_client_id }}"
|
||
athena_casdoor_client_secret: "{{ vault_athena_oauth_client_secret }}"
|
||
|
||
# Application Secrets (from vault)
|
||
athena_secret_key: "{{ vault_athena_secret_key }}"
|
||
athena_db_password: "{{ vault_athena_db_password }}"
|
||
|
||
|