Documentation

Référence `vectron.stack.toml`

Référence exhaustive du fichier de configuration stack, avec champs requis et valeurs par défaut.

Cette page est la référence normative de vectron.stack.toml.

Pour des configurations copiables qui combinent plusieurs sections de plugins, consultez les exemples stack.

Contrairement à vectron.toml, beaucoup de champs stack sont spécifiques à un plugin. Cette page documente quels champs sont requis, lesquels ont une valeur par défaut fixe, et lesquels sont dérivés au moment de stack provision.

Règles de résolution

  • schema_version, tld et enabled sont des champs de premier niveau requis.
  • Les chemins relatifs sont résolus depuis le dossier contenant vectron.stack.toml.
  • Les sections spécifiques aux plugins sont optionnelles sauf si leur plugin les exige.
  • vectron stack check et vectron stack provision valident le même modèle avant tout effet de bord.

Champs de premier niveau

ChampTypeRequisDéfaut / Héritage / DérivationNotes
schema_versionentierOuiAucunDoit actuellement valoir 1
tldstringOuiAucunDomaine racine lowercase de type DNS
enabledtableau de stringsOuiAucunListe non vide d’IDs de plugins uniques ; voir les valeurs acceptées ci-dessous
brewtableNonDéfaut: aucunDépendances Homebrew supplémentaires
monitoringtableNonDéfaut: aucunComportement du groupe monitoring
kubernetestableNonDéfaut: aucunProvisioning du cluster local
nginxtableNonDéfaut: aucunConfiguration du reverse proxy
grafanatableNonDéfaut: aucunProvisioning Grafana
prometheustableNonDéfaut: aucunProvisioning Prometheus
alloytableNonDéfaut: aucunProvisioning Alloy
rabbitmqtableNonDéfaut: aucunProvisioning RabbitMQ
neo4jtableNonDéfaut: aucunProvisioning Neo4j

IDs de plugins

enabled accepte ces IDs de plugins:

IDCatégorie
certificatesFondation
dnsmasqFondation
sshFondation
nginxReverse proxy
prometheusObservabilité
lokiObservabilité
alloyObservabilité
grafanaObservabilité
mongodbDatastore
rabbitmqMessaging
redisDatastore
neo4jDatastore
minioDatastore
qdrantDatastore
postgresqlDatastore
influxdbDatastore
mosquittoMessaging et IoT
zigbee2mqttMessaging et IoT
dockerConteneurs
kubernetesConteneurs et clusters

Règles:

  • enabled doit être non vide.
  • Les IDs de plugins doivent être uniques après trim.
  • Les IDs vides sont invalides.
  • nginx ajoute implicitement certificates.
  • alloy ajoute implicitement loki.
  • vectron stack provision/check/landing-ids --only remplace la sélection initiale enabled par les IDs demandés avant ajout des dépendances implicites.
  • vectron stack provision/check/landing-ids --skip retire les IDs de plugins de la sélection.

Voir la page plugins intégrés pour les rôles et sections de configuration spécifiques aux plugins.

[brew]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
tapstableau de stringsNonDéfaut: []Taps Homebrew supplémentaires
formulaetableau de stringsNonDéfaut: []Formulae supplémentaires à installer

[monitoring]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
autostartbooléenNonDéfaut: falseQuand false, les processus monitoring générés restent désactivés par défaut

[kubernetes]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
driverenumNonDéfaut: k3dValeurs: kind, k3d, minikube
cluster_namestringNonDéfaut: vectronNormalise en lowercase
control_planesentierNonDéfaut: 1Doit être >= 1 ; limites spécifiques au driver
workersentierNonDéfaut: 0Limites spécifiques au driver
wait_secondsentierNonDéfaut: 120Timeout des opérations cluster
kubeconfig_pathcheminNonDéfaut: .vectron_stack/generated/kubernetes/kubeconfigDoit rester sous la racine du workspace
kubernetes_versionstringNonDéfaut: aucunValide seulement pour minikube
node_imagestringNonDéfaut: aucunValide pour kind et k3d, pas pour minikube
api_server_addressstringNonDéfaut: 127.0.0.1Restrictions spécifiques au driver
api_server_portentierNonDéfaut: 6443Doit être dans 1..=65535
local_registry_portentierNonDéfaut: 5001Doit être dans 1..=65535
recreate_existingbooléenNonDéfaut: falseRecrée un cluster existant du même nom
stop_after_initbooléenNonDéfaut: truePertinent pour les drivers stoppables
stop_on_vectron_stopbooléenNonDéfaut: truePertinent pour les drivers stoppables

[nginx]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
https_portentierOuiAucunPort HTTPS d’écoute
landingtableNonDéfaut: aucunConfiguration optionnelle de la landing page
servertableau de tablesNonDéfaut: []Blocs serveur déclaratifs

[nginx.landing]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
quick_linkstableau de stringsNonDéfaut: []Liens ordonnés de la landing page

[[nginx.server]]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
server_namestableau de stringsOuiAucunHostnames servis par ce bloc
linktableNonDéfaut: aucunLien optionnel pour la landing page
upstreamsmap de stringsNonDéfaut: {}Mapping nom upstream -> URL
routetableau de tablesNonDéfaut: []Evalue dans l’ordre
ChampTypeRequisDéfaut / Héritage / DérivationNotes
labelstringOuiAucunLibelle visible pour l’utilisateur
pathstringNonDéfaut: /Doit commencer par /

[[nginx.server]].route

ChampTypeRequisDéfaut / Héritage / DérivationNotes
match.prefixstringOuiAucunDoit commencer par /
to.upstreamstringOuiAucunDoit exister dans upstreams
to.pass_pathstringNonDéfaut: aucunRewrite optionnel du chemin upstream
to.websocketbooléenNonDéfaut: falseActive le mode proxy WebSocket
to.grpcbooléenNonDéfaut: falseActive le mode proxy gRPC

[grafana]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
dashboard_dirstableau de tablesNonDéfaut: []Sources d’import de dashboards

[[grafana.dashboard_dirs]]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
dircheminOuiAucunDossier contenant les dashboards *.json
folderstringOuiAucunNom du dossier Grafana cible

[prometheus]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
scrape_config_filestableau de cheminsNonDéfaut: []Configs YAML de scrape supplémentaires

[alloy]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
import_filestableau de tablesNonDéfaut: []Modules Alloy importés
blockstableau de stringsNonDéfaut: []Blocs Alloy bruts ajoutés à la config générée
docker_logstableNonDéfaut: aucunIngestion optionnelle des logs Docker

[[alloy.import_files]]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
namestringOuiAucunNamespace d’import
pathcheminOuiAucunDoit pointer vers un fichier .alloy

[alloy.docker_logs]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
enabledbooléenNonDéfaut: falseActive l’ingestion des logs Docker dans Loki
hoststringNonDérivéPrimaire: unix://$HOME/.docker/run/docker.sock ; fallback: unix:///var/run/docker.sock
refresh_intervalstring de dureeNonDéfaut: 5sUtilise par loki.source.docker
labelsmap de stringsNonDéfaut: {}Labels statiques appliqués à tous les logs Docker
relabeltableau de tablesNonDéfaut: []Règles de relabel des métadonnées Docker

[[alloy.docker_logs.relabel]]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
source_labelstableau de stringsNonDéfaut: []Labels de métadonnées à lire
target_labelstringOuiAucunLabel Loki de destination

[rabbitmq]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
vhosttableau de tablesOuiAucunDoit contenir au moins une entrée
dead_letter_exchangestringNonDéfaut: dead-letter-exchangeCréé par vhost
dead_letter_queuestringNonDéfaut: dead-letterCréé par vhost
policy_namestringNonDéfaut: allNom de la policy RabbitMQ
policy_patternstringNonDéfaut: .*Regex de la policy RabbitMQ
consumer_timeout_msentierNonDéfaut: 7200000Doit être > 0

[[rabbitmq.vhost]]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
namestringOuiAucunNom du vhost
queuestableau de stringsNonDéfaut: []Queues créées dans le vhost

[neo4j]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
schema_filestableau de cheminsNonDéfaut: []Fichiers Cypher appliques au provisioning

Regles de validation

La validation inclut notamment:

  • schema_version == 1
  • un enabled non vide
  • des IDs de plugins connus, uniques et non vides
  • les contraintes Kubernetes spécifiques au driver
  • un kubeconfig_path relatif, valide et borne au workspace
  • des strings requises non vides dans les configs plugins
  • des noms et chemins dédupliqués quand nécessaire
  • un scheme et un intervalle valides pour Alloy Docker logs
  • une configuration RabbitMQ valide avant tout effet de bord

Recommandation

Utilisez vectron.stack.example.toml comme exemple de départ, puis utilisez cette page quand vous avez besoin du comportement exact d’un champ.

Note de plateforme

Le mode stack est actuellement limité à macOS.