Merge pull request 'pass-fixes' (#2476) from lassulus/clan-core:pass-fixes into main
This commit is contained in:
@@ -24,7 +24,7 @@ let
|
||||
mount --bind --make-private /run/secrets.tmp /run/secrets.tmp
|
||||
mount --bind --make-private /run/secrets /run/secrets
|
||||
tar -xf "$src" -C /run/secrets.tmp
|
||||
move-mount --beneath --move /run/secrets.tmp /run/secrets
|
||||
move-mount --beneath --move /run/secrets.tmp /run/secrets >/dev/null
|
||||
umount -R /run/secrets.tmp
|
||||
rmdir /run/secrets.tmp
|
||||
umount --lazy /run/secrets
|
||||
@@ -44,7 +44,7 @@ in
|
||||
lib.mkIf (config.clan.core.vars.settings.secretStore == "password-store")
|
||||
{
|
||||
fileModule = file: {
|
||||
path = "/run/secrets/vars/${file.config.generatorName}/${file.config.name}";
|
||||
path = "/run/secrets/${file.config.generatorName}/${file.config.name}";
|
||||
};
|
||||
secretUploadDirectory = lib.mkDefault "/etc/secrets";
|
||||
secretModule = "clan_cli.vars.secret_modules.password_store";
|
||||
|
||||
@@ -126,7 +126,13 @@ class SecretStore(SecretStoreBase):
|
||||
|
||||
# we sort the hashes to make sure that the order is always the same
|
||||
hashes.sort()
|
||||
return b"\n".join(hashes)
|
||||
|
||||
manifest = []
|
||||
for gen_name, generator in self.machine.vars_generators.items():
|
||||
for f_name in generator["files"]:
|
||||
manifest.append(f"{gen_name}/{f_name}".encode())
|
||||
manifest += hashes
|
||||
return b"\n".join(manifest)
|
||||
|
||||
@override
|
||||
def needs_upload(self) -> bool:
|
||||
@@ -147,13 +153,18 @@ class SecretStore(SecretStoreBase):
|
||||
def upload(self, output_dir: Path) -> None:
|
||||
with tarfile.open(output_dir / "secrets.tar.gz", "w:gz") as tar:
|
||||
for gen_name, generator in self.machine.vars_generators.items():
|
||||
tar_dir = tarfile.TarInfo(name=gen_name)
|
||||
tar_dir.type = tarfile.DIRTYPE
|
||||
tar_dir.mode = 0o511
|
||||
tar.addfile(tarinfo=tar_dir)
|
||||
dir_exists = False
|
||||
for f_name, file in generator["files"].items():
|
||||
if not file["deploy"]:
|
||||
continue
|
||||
if not file["secret"]:
|
||||
continue
|
||||
if not dir_exists:
|
||||
tar_dir = tarfile.TarInfo(name=gen_name)
|
||||
tar_dir.type = tarfile.DIRTYPE
|
||||
tar_dir.mode = 0o511
|
||||
tar.addfile(tarinfo=tar_dir)
|
||||
dir_exists = True
|
||||
tar_file = tarfile.TarInfo(name=f"{gen_name}/{f_name}")
|
||||
content = self.get(gen_name, f_name, generator["share"])
|
||||
tar_file.size = len(content)
|
||||
|
||||
Reference in New Issue
Block a user