refactor secrets & facts -> secret_facts & public_facts

This commit is contained in:
lassulus
2024-03-23 05:05:31 +01:00
parent 6638d7a5cf
commit 8d34c51df2
26 changed files with 116 additions and 154 deletions

View File

@@ -6,9 +6,9 @@ from pathlib import Path
from tempfile import TemporaryDirectory
from ..cmd import Log, run
from ..facts.generate import generate_facts
from ..machines.machines import Machine
from ..nix import nix_shell
from ..secrets.generate import generate_secrets
log = logging.getLogger(__name__)
@@ -16,15 +16,15 @@ log = logging.getLogger(__name__)
def install_nixos(
machine: Machine, kexec: str | None = None, debug: bool = False
) -> None:
secrets_module = importlib.import_module(machine.secrets_module)
secret_facts_module = importlib.import_module(machine.secret_facts_module)
log.info(f"installing {machine.name}")
secret_store = secrets_module.SecretStore(machine=machine)
secret_facts_store = secret_facts_module.SecretStore(machine=machine)
h = machine.target_host
target_host = f"{h.user or 'root'}@{h.host}"
log.info(f"target host: {target_host}")
generate_secrets(machine)
generate_facts(machine)
with TemporaryDirectory() as tmpdir_:
tmpdir = Path(tmpdir_)
@@ -34,7 +34,7 @@ def install_nixos(
upload_dir_ = upload_dir_[1:]
upload_dir = tmpdir / upload_dir_
upload_dir.mkdir(parents=True)
secret_store.upload(upload_dir)
secret_facts_store.upload(upload_dir)
cmd = [
"nixos-anywhere",

View File

@@ -112,12 +112,12 @@ class Machine:
self.deployment_info["targetHost"] = value
@property
def secrets_module(self) -> str:
return self.deployment_info["secretsModule"]
def secret_facts_module(self) -> str:
return self.deployment_info["secretFactsModule"]
@property
def facts_module(self) -> str:
return self.deployment_info["factsModule"]
def public_facts_module(self) -> str:
return self.deployment_info["publicFactsModule"]
@property
def secrets_data(self) -> dict[str, dict[str, Any]]:

View File

@@ -9,10 +9,10 @@ from pathlib import Path
from ..cmd import run
from ..errors import ClanError
from ..facts.generate import generate_facts
from ..facts.upload import upload_secrets
from ..machines.machines import Machine
from ..nix import nix_build, nix_command, nix_config, nix_metadata
from ..secrets.generate import generate_secrets
from ..secrets.upload import upload_secrets
from ..ssh import Host, HostGroup, HostKeyCheck, parse_deployment_address
log = logging.getLogger(__name__)
@@ -107,7 +107,7 @@ def deploy_nixos(hosts: HostGroup) -> None:
machine: Machine = h.meta["machine"]
generate_secrets(machine)
generate_facts(machine)
upload_secrets(machine)
extra_args = h.meta.get("extra_args", [])