docs: Fix nix flake check problem with diskId

This commit is contained in:
Qubasa
2024-11-25 18:39:16 +01:00
parent b9d41fd8dc
commit 41a84f5970
8 changed files with 41 additions and 28 deletions

View File

@@ -199,21 +199,6 @@ If you only want to setup a single machine at this point, you can delete `sara`
git rm ./machines/sara
```
### Step 5: Check Configuration
Validate your configuration by running:
```bash
nix flake check
```
This command helps ensure that your system configuration is correct and free from errors.
!!! Tip
You can integrate this step into your [Continuous Integration](https://en.wikipedia.org/wiki/Continuous_integration) workflow to ensure that only valid Nix configurations are merged into your codebase.
---
## Whats next?

View File

@@ -55,7 +55,35 @@ sops/
```
If you followed the quickstart tutorial all necessary secrets are initialized at this point.
---
### Generate Facts and Vars
Typically, this step is handled automatically when a machine is deployed. However, to enable the use of `nix flake check` with your configuration, it must be completed manually beforehand.
Currently, generating all the necessary facts requires two separate commands. This is due to the coexistence of two parallel secret management solutions: the older, stable version (`clan secrets` and `clan facts`) and the newer, experimental version (`clan vars`).
To generate both facts and vars, execute the following commands:
```sh
clan facts generate && clan vars generate
```
### Check Configuration
Validate your configuration by running:
```bash
nix flake check
```
This command helps ensure that your system configuration is correct and free from errors.
!!! Tip
You can integrate this step into your [Continuous Integration](https://en.wikipedia.org/wiki/Continuous_integration) workflow to ensure that only valid Nix configurations are merged into your codebase.
## Whats next?

View File

@@ -189,8 +189,8 @@ def _generate_facts_for_machine(
def generate_facts(
machines: list[Machine],
service: str | None,
regenerate: bool,
service: str | None = None,
regenerate: bool = False,
prompt: Callable[[str, str], str] = prompt_func,
) -> bool:
was_regenerated = False
@@ -212,7 +212,7 @@ def generate_facts(
)
raise ClanError(msg)
if not was_regenerated:
if not was_regenerated and len(machines) > 0:
machine.info("All secrets and facts are already up to date")
return was_regenerated

View File

@@ -63,7 +63,7 @@ def flash_machine(
generate_vars_for_machine(
machine, generator_name=None, regenerate=False, fix=False
)
generate_facts([machine], service=None, regenerate=False)
generate_facts([machine])
if system_config.wifi_settings:
wifi_settings: dict[str, dict[str, str]] = {}

View File

@@ -55,8 +55,8 @@ def install_machine(opts: InstallOptions) -> None:
target_host = f"{h.user or 'root'}@{h.host}"
log.info(f"target host: {target_host}")
generate_facts([machine], None, False)
generate_vars([machine], None, False)
generate_facts([machine])
generate_vars([machine])
with TemporaryDirectory(prefix="nixos-install-") as tmpdir_:
tmpdir = Path(tmpdir_)

View File

@@ -114,8 +114,8 @@ def deploy_machine(machines: MachineGroup) -> None:
def deploy(machine: Machine) -> None:
host = machine.build_host
generate_facts([machine], None, False)
generate_vars([machine], None, False)
generate_facts([machine])
generate_vars([machine])
upload_secrets(machine)
upload_secret_vars(machine)

View File

@@ -405,8 +405,8 @@ def generate_vars_for_machine(
def generate_vars(
machines: list[Machine],
generator_name: str | None,
regenerate: bool,
generator_name: str | None = None,
regenerate: bool = False,
fix: bool = False,
) -> bool:
was_regenerated = False
@@ -424,7 +424,7 @@ def generate_vars(
msg = f"Failed to generate facts for {len(errors)} hosts. Check the logs above"
raise ClanError(msg) from errors[0]
if not was_regenerated:
if not was_regenerated and len(machines) > 0:
machine.info("All vars are already up to date")
return was_regenerated

View File

@@ -84,7 +84,7 @@ def get_secrets(
secret_facts_module = importlib.import_module(machine.secret_facts_module)
secret_facts_store = secret_facts_module.SecretStore(machine=machine)
generate_facts([machine], None, False)
generate_facts([machine])
secret_facts_store.upload(secrets_dir)
return secrets_dir