difftreelog
feat fleet secret ensure subcommand
in: trunk
1 file changed
cmds/fleet/src/cmds/secrets.rsdiffbeforeafterboth5use clap::Parser;5use clap::Parser;6use fleet_base::{fleetdata::SecretOwner, host::Config, opts::FleetOpts};6use fleet_base::{fleetdata::SecretOwner, host::Config, opts::FleetOpts};7use itertools::Itertools as _;7use itertools::Itertools as _;8use nix_eval::nix_go;8use tracing::warn;9use tracing::{info, warn};91010#[derive(Parser)]11#[derive(Parser)]11pub enum Secret {12pub enum Secret {206 }207 }207 }208 }208 }209 }209 Secret::Ensure { name, machine } => todo!(),210 Secret::Ensure { name, machine } => {211 let hosts: Vec<String> = if machine.is_empty() {212 config213 .list_hosts()?214 .into_iter()215 .filter(|h| opts.should_skip(h).ok() != Some(true))216 .map(|h| h.name)217 .collect()218 } else {219 machine220 };221222 for hostname in &hosts {223 let nixos_cfg = config.system_config(hostname)?;224 let secrets = nix_go!(nixos_cfg.secrets);225 if secrets.has_field(&name)? {226 info!("ensuring secret {name} for {hostname}");227 // Force evaluation of secret parts, triggering __fleetEnsureHostSecret228 nix_go!(secrets[{ &name }].definition.parts);229 }230 }231 }210 }232 }211 Ok(())233 Ok(())212 }234 }