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.
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.
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
schema_version | entier | Oui | Aucun | Doit actuellement valoir 1 |
tld | string | Oui | Aucun | Domaine racine lowercase de type DNS |
enabled | tableau de strings | Oui | Aucun | Liste non vide d’IDs de plugins uniques ; voir les valeurs acceptées ci-dessous |
brew | table | Non | Défaut: aucun | Dépendances Homebrew supplémentaires |
monitoring | table | Non | Défaut: aucun | Comportement du groupe monitoring |
kubernetes | table | Non | Défaut: aucun | Provisioning du cluster local |
nginx | table | Non | Défaut: aucun | Configuration du reverse proxy |
grafana | table | Non | Défaut: aucun | Provisioning Grafana |
prometheus | table | Non | Défaut: aucun | Provisioning Prometheus |
alloy | table | Non | Défaut: aucun | Provisioning Alloy |
rabbitmq | table | Non | Défaut: aucun | Provisioning RabbitMQ |
neo4j | table | Non | Défaut: aucun | Provisioning Neo4j |
enabled accepte ces IDs de plugins:
| ID | Catégorie |
|---|
certificates | Fondation |
dnsmasq | Fondation |
ssh | Fondation |
nginx | Reverse proxy |
prometheus | Observabilité |
loki | Observabilité |
alloy | Observabilité |
grafana | Observabilité |
mongodb | Datastore |
rabbitmq | Messaging |
redis | Datastore |
neo4j | Datastore |
minio | Datastore |
qdrant | Datastore |
postgresql | Datastore |
influxdb | Datastore |
mosquitto | Messaging et IoT |
zigbee2mqtt | Messaging et IoT |
docker | Conteneurs |
kubernetes | Conteneurs 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.
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
taps | tableau de strings | Non | Défaut: [] | Taps Homebrew supplémentaires |
formulae | tableau de strings | Non | Défaut: [] | Formulae supplémentaires à installer |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
autostart | booléen | Non | Défaut: false | Quand false, les processus monitoring générés restent désactivés par défaut |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
driver | enum | Non | Défaut: k3d | Valeurs: kind, k3d, minikube |
cluster_name | string | Non | Défaut: vectron | Normalise en lowercase |
control_planes | entier | Non | Défaut: 1 | Doit être >= 1 ; limites spécifiques au driver |
workers | entier | Non | Défaut: 0 | Limites spécifiques au driver |
wait_seconds | entier | Non | Défaut: 120 | Timeout des opérations cluster |
kubeconfig_path | chemin | Non | Défaut: .vectron_stack/generated/kubernetes/kubeconfig | Doit rester sous la racine du workspace |
kubernetes_version | string | Non | Défaut: aucun | Valide seulement pour minikube |
node_image | string | Non | Défaut: aucun | Valide pour kind et k3d, pas pour minikube |
api_server_address | string | Non | Défaut: 127.0.0.1 | Restrictions spécifiques au driver |
api_server_port | entier | Non | Défaut: 6443 | Doit être dans 1..=65535 |
local_registry_port | entier | Non | Défaut: 5001 | Doit être dans 1..=65535 |
recreate_existing | booléen | Non | Défaut: false | Recrée un cluster existant du même nom |
stop_after_init | booléen | Non | Défaut: true | Pertinent pour les drivers stoppables |
stop_on_vectron_stop | booléen | Non | Défaut: true | Pertinent pour les drivers stoppables |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
https_port | entier | Oui | Aucun | Port HTTPS d’écoute |
landing | table | Non | Défaut: aucun | Configuration optionnelle de la landing page |
server | tableau de tables | Non | Défaut: [] | Blocs serveur déclaratifs |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
quick_links | tableau de strings | Non | Défaut: [] | Liens ordonnés de la landing page |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
server_names | tableau de strings | Oui | Aucun | Hostnames servis par ce bloc |
link | table | Non | Défaut: aucun | Lien optionnel pour la landing page |
upstreams | map de strings | Non | Défaut: {} | Mapping nom upstream -> URL |
route | tableau de tables | Non | Défaut: [] | Evalue dans l’ordre |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
label | string | Oui | Aucun | Libelle visible pour l’utilisateur |
path | string | Non | Défaut: / | Doit commencer par / |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
match.prefix | string | Oui | Aucun | Doit commencer par / |
to.upstream | string | Oui | Aucun | Doit exister dans upstreams |
to.pass_path | string | Non | Défaut: aucun | Rewrite optionnel du chemin upstream |
to.websocket | booléen | Non | Défaut: false | Active le mode proxy WebSocket |
to.grpc | booléen | Non | Défaut: false | Active le mode proxy gRPC |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
dashboard_dirs | tableau de tables | Non | Défaut: [] | Sources d’import de dashboards |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
dir | chemin | Oui | Aucun | Dossier contenant les dashboards *.json |
folder | string | Oui | Aucun | Nom du dossier Grafana cible |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
scrape_config_files | tableau de chemins | Non | Défaut: [] | Configs YAML de scrape supplémentaires |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
import_files | tableau de tables | Non | Défaut: [] | Modules Alloy importés |
blocks | tableau de strings | Non | Défaut: [] | Blocs Alloy bruts ajoutés à la config générée |
docker_logs | table | Non | Défaut: aucun | Ingestion optionnelle des logs Docker |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
name | string | Oui | Aucun | Namespace d’import |
path | chemin | Oui | Aucun | Doit pointer vers un fichier .alloy |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
enabled | booléen | Non | Défaut: false | Active l’ingestion des logs Docker dans Loki |
host | string | Non | Dérivé | Primaire: unix://$HOME/.docker/run/docker.sock ; fallback: unix:///var/run/docker.sock |
refresh_interval | string de duree | Non | Défaut: 5s | Utilise par loki.source.docker |
labels | map de strings | Non | Défaut: {} | Labels statiques appliqués à tous les logs Docker |
relabel | tableau de tables | Non | Défaut: [] | Règles de relabel des métadonnées Docker |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
source_labels | tableau de strings | Non | Défaut: [] | Labels de métadonnées à lire |
target_label | string | Oui | Aucun | Label Loki de destination |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
vhost | tableau de tables | Oui | Aucun | Doit contenir au moins une entrée |
dead_letter_exchange | string | Non | Défaut: dead-letter-exchange | Créé par vhost |
dead_letter_queue | string | Non | Défaut: dead-letter | Créé par vhost |
policy_name | string | Non | Défaut: all | Nom de la policy RabbitMQ |
policy_pattern | string | Non | Défaut: .* | Regex de la policy RabbitMQ |
consumer_timeout_ms | entier | Non | Défaut: 7200000 | Doit être > 0 |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
name | string | Oui | Aucun | Nom du vhost |
queues | tableau de strings | Non | Défaut: [] | Queues créées dans le vhost |
| Champ | Type | Requis | Défaut / Héritage / Dérivation | Notes |
|---|
schema_files | tableau de chemins | Non | Défaut: [] | Fichiers Cypher appliques au provisioning |
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
Utilisez vectron.stack.example.toml comme exemple de départ, puis utilisez cette page quand vous avez besoin du comportement exact d’un champ.
Le mode stack est actuellement limité à macOS.