Commit Graph

287 Commits

Author SHA1 Message Date
Jörg Thalheim
3452ca54e6 skip writing the empty inventory json 2024-12-04 12:14:32 +01:00
Jörg Thalheim
0b3816b6ec clan/update: make build-host overridable in cli 2024-12-03 17:40:12 +01:00
Jörg Thalheim
760126d8d5 remove deprecated deploymentHost 2024-12-03 17:30:02 +01:00
Jörg Thalheim
bbb2aca5cb rename run_no_output to run_no_stdout
we want stderr for some nix commands.
2024-12-03 17:15:28 +01:00
Qubasa
570bceff4e clan-cli: Fix ignored debug flag in clan vms run, refactor Host.run to use RunOpts 2024-12-03 16:01:51 +01:00
Johannes Kirschbauer
1768e44d51 api/machines: include disk and hw_config into machine details 2024-12-03 14:01:11 +01:00
DavHau
fbbfcc0aa5 vars: generate docs for cli and module 2024-11-29 17:23:31 +07:00
clan-bot
894e31f983 Merge pull request 'remove secretsUploadDirectory from common module' (#2509) from lassulus/clan-core:no-secrets-upload-dir into main 2024-11-28 15:46:51 +00:00
lassulus
8337a3ec41 vars: remove secretsUploadDirectory from common module 2024-11-28 16:38:06 +01:00
Qubasa
1f98df96e3 clan-cli: cmd.run now has its options extracted to a dataclass 2024-11-28 15:26:37 +01:00
Johannes Kirschbauer
3b7559e066 CLI: use new template path 2024-11-28 11:44:44 +01:00
Qubasa
80045a9af1 clan-cli: Add -L option to nixos-rebuild switch to still have build output, simplify logging code 2024-11-28 10:42:43 +01:00
Qubasa
a1a367c57c clan-cli: Refactor colors to a subset of colors that work in light and dark mode 2024-11-27 12:42:10 +01:00
lassulus
e978f91209 cli machines update: remove dead code 2024-11-27 10:33:28 +01:00
Johannes Kirschbauer
fa7e9a9670 Cli: improve targetHost error message 2024-11-27 10:06:04 +01:00
DavHau
44e6fe803f vars: make all python tests work in nix sandbox
- generate a flake.lock file for each template by copying the clan-core flake.lock and modifying it

- call nix build with --store for tests inside the sandbox
2024-11-27 14:32:02 +07:00
Louis Opter
f4e621af88 clan-cli: secrets.sops: improve age keys detection
This change allows you to e.g. directly pass `$(age-keygen)` on the
command line.
2024-11-27 06:27:53 +00:00
Louis Opter
775be88a9c clan-cli: filter any sops recipients set in the environment for encryption
This forces sops to use our config file, otherwise if any of the
environment variables set to specify recipients is present then
`--config` will be ignored (see [env_check]).

That's simple enough, still I ended up refactoring how we call sops for
correctness, and to align with its behavior. The code now distinguishes
between public and private keys explicitly. `secrets.decrypt_secret`
does not try to lookup for public and private keys anymore.

With this changeset, some people might have to adjust their environment
as public age and PGP keys will be discovered like sops would do. In
particular if multiple public keys are discovered, then the user will
have to specify which one to use for the clan.

This also makes the following changes:

- try to use `/dev/shm` when swapping a secret (it's what [pass] does
  fwiw);
- alias immediate values for readability;
- remove some float comparison that could never succeed, and use sops'
  exit status instead;
- remove unused function `maybe_get_sops_key`.

[env_check]: 8c567aa8a7/cmd/sops/main.go (L2229)
[pass]: http://passwordstore.org/
2024-11-27 06:27:53 +00:00
Jörg Thalheim
c9e80f38ca vars: make interface more type-safe 2024-11-26 17:08:26 +01:00
a-kenji
22af137e17 pkgs/cli: Add --password flag to machines install
Add `--password` flag to `clan machines install`,
which allows installing through the `nixos-image` installer
manually without extra configuration.
2024-11-26 15:01:43 +01:00
Qubasa
4e6051acdc docs: Fix nix flake check problem with diskId 2024-11-25 18:39:16 +01:00
Qubasa
979e5e839d clan-cli: Refactor ssh part 2, Refactor custom_logger 2024-11-22 22:08:50 +01:00
Qubasa
a4f3d9d1fc clan-cli: Refactor ssh folder part 1 2024-11-21 13:02:22 +01:00
a-kenji
5a9d58ec59 pkgs/cli: Fix generation of hardware configuration for machines install
Correctly use the `value` of the `enum`, which is expected by
`nixos-anywhere`.
2024-11-20 16:15:45 +01:00
a-kenji
1c9ca82055 pkgs/cli: Fix tag creation for clan machines create 2024-11-20 15:12:05 +01:00
Qubasa
26730cd662 clan-cli: upload.py -> Replace rsync with native ssh command 2024-11-15 22:03:47 +07:00
lassulus
ddc7afd67d clan_cli vars: actually upload 2024-11-13 13:23:42 +01:00
lassulus
ebfc8ecfd0 cli machines update: run deploy directly if deploying single machine 2024-11-13 13:23:42 +01:00
a-kenji
c3fe5df5e9 pkgs/cli: Document clan machines list --tags 2024-11-12 14:59:23 +01:00
a-kenji
392d8437cb pkgs/clan: machines list --tags add dynamic completer 2024-11-12 14:59:23 +01:00
a-kenji
8596deaeb7 pkgs/cli: Add tagging support to machines list
Add the `--tags` flag to `clan machines list`
This now supports the machine tagging system from the inventory.

Multiple tags are the intersection of the tags of a specific machine.

Example two machines with overlapping tags:
```
server: ["intel"]
laptop: ["intel", "graphical"]
```

- `clan machines list --tags intel` will output:

```
server
laptop
```

- `clan machines list --tags intel graphical` will output:

```
laptop
```

- `clan machines list --tags graphical` will output:

```
laptop
```
2024-11-12 14:58:55 +01:00
Jörg Thalheim
5bc8670020 simplify reading hostPlaform.system from nixos 2024-11-11 16:17:54 +01:00
Qubasa
9da872a267 clan-cli: Simplify hostPlatform and just use 'system' 2024-11-11 14:08:12 +00:00
Qubasa
9fc4e4c7d4 clan-cli: Fix nixos-anywhere for systems that can not be build locally 2024-11-11 14:08:12 +00:00
a-kenji
5d6ac539bc pkgs/cli: Complete --tags flag 2024-11-11 13:48:00 +01:00
a-kenji
7a17edc0d6 pkgs/cli: Complete --target-host flag 2024-11-10 19:12:54 +01:00
a-kenji
23d0e2f115 pkgs/cli: Query target-host for machines install from configuration
Query `target-host` for `clan machines install` from the nixos
configuration (deployment.json), if possible.

Remove `TARGET_HOST` option and introduce `--target-host` command
line flag.

This brings the installation subcommand in line with the update
subcommand - improving consistency and usability.

Closes: #2309
2024-11-10 18:18:51 +01:00
clan-bot
f76a5cacc5 Merge pull request 'pkgs/cli: Group dynamic completer with the correct parser for clarity' (#2354) from kenji/clan-core:kenji-group-completer into main 2024-11-10 14:56:18 +00:00
a-kenji
3e1bbd53d2 pkgs/cli: Group dynamic completer with the correct parser for clarity 2024-11-10 15:48:41 +01:00
a-kenji
4b67d9fa71 pkgs/cli: Improve error message on clan machines update 2024-11-10 15:47:21 +01:00
a-kenji
96f66a3810 pkgs/cli: Apply naming standards to help strings in clan machines update 2024-11-10 15:37:41 +01:00
clan-bot
e8f6786d95 Merge pull request 'pkgs/cli: Fix help string of clan machines create' (#2350) from kenji/clan-core:kenji-fix-naming-create into main 2024-11-10 13:21:53 +00:00
a-kenji
aa1ca9ba59 pkgs/cli: Fix help string of clan machines create 2024-11-10 14:15:34 +01:00
a-kenji
0c7f18da12 pkgs/cli: Add --target-host to clan machines create
Add the `--target-host` flag to `clan machines create`.
This allows setting the `deploy.targetHost` for the newly created
machine via the inventory.

Closes: #2339
2024-11-10 14:13:39 +01:00
a-kenji
182ea02c46 pkgs/cli: Improve tense of message in machines create
Change the log message tense from present to continuous for improved clarity.
The message "Add file" has been changed to "Adding file" to provide a clear
indication that the file addition is an ongoing process, not a
command (for the user).
2024-11-10 01:14:40 +01:00
a-kenji
c7ad5e1928 pkgs/cli: Remove superfluous comment string 2024-11-10 00:35:41 +01:00
a-kenji
e0cebd005a pkgs/cli: Fix dynamic completions for update-hardware-config and it's flags
Fix dynamic completions for `update-hardware-config` and it's flags.

Now `update-hardware-config` correctly suggests machines as well as for
example `--backend` suggests correctly their respective flags.
2024-11-08 14:23:11 +01:00
Jörg Thalheim
2b05f90239 expose an option to generate hardware configuration during installation 2024-11-05 14:33:22 +01:00
Jörg Thalheim
86d8992046 generate-hardware-config: remove backup file after we are done 2024-11-04 15:05:08 +01:00
Jörg Thalheim
2f3369cca5 add build-on-remote flag 2024-11-04 13:27:50 +01:00