Beryl::Apply::HeadscaleJoin
Inherits Beryl::Apply::Primitive < Reference < Object
Primitive headscale-join : joint un host au mesh Headscale via
tailscale up --login-server=URL --authkey=KEY.
Idempotence : tailscale status exit 0 si déjà joint → skip ;
exit non-zéro → on enrôle. La clé d'auth est lue depuis une
variable d'environnement (jamais sur la ligne de commande beryl
→ pas de leak via ps). Le secret côté serveur cible est en
argv pendant le temps de tailscale up (limitation du binaire
upstream, < 1 s d'exposition).
- headscale-join:
login_server: https://headscale.aloli.net
authkey_env_var: HEADSCALE_AUTHKEY # nom de la var (pas la valeur)
ephemeral: false # défaut false ; true pour CI
hostname: "{{ host_short }}" # optionnel, override
force_reauth: false # défaut false ; true pour re-enrôler
authkey_env_var est résolue côté beryl (pas côté serveur) au
moment de l'apply. C'est l'opérateur qui fournit la variable
dans son environnement (via le coffre secrets injecté par
EnvFile#apply_to_env).
Instance methods
params est le hash brut du step YAML (ex: {"packages" => [...]}),
déjà interpolé par l'Executor. context porte les infos
dérivées du host (cf. Context).
Nom kebab-case utilisé comme clé de step dans les recettes (« pkg-install », « service-enable », …).