Add sops-nix templates

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2025-02-26 13:52:03 +00:00
parent 93c13d8537
commit 3444645ec9
7 changed files with 89 additions and 32 deletions

View File

@@ -1,9 +1,15 @@
{ config, inputs, ... }:
{
sops.secrets."nix/accessTokens/github" = {
sopsFile = ../../../../../secrets/personal/secrets.yaml;
sops = {
secrets."nix/accessTokens/github.com".sopsFile = ../../../../../secrets/personal/secrets.yaml;
templates."nix-access-tokens" = {
content = ''
access-tokens = github.com=${config.sops.placeholder."nix/accessTokens/github.com"}
'';
group = "users";
};
};
nix = {
settings = {
@@ -22,7 +28,7 @@
registry.self.flake = inputs.self;
extraOptions = ''
!include ${config.sops.secrets."nix/accessTokens/github".path}
!include ${config.sops.templates."nix-access-tokens".path}
'';
};
}

View File

@@ -3,25 +3,33 @@
home ? throw "home argument is required",
}:
{
config,
inputs,
lib,
system,
...
}:
let
hmConfig = config.home-manager.users.${user};
selfPkgs = inputs.self.packages.${system};
in
{
home-manager.users.${user} = {
sops.secrets = {
"git/credentials" = {
sopsFile = ../../../../../../../secrets/personal/secrets.yaml;
path = "${home}/.config/git/credentials";
sops = {
secrets = {
"git/credentials/git.karaolidis.com/username".sopsFile =
../../../../../../../secrets/personal/secrets.yaml;
"git/credentials/git.karaolidis.com/password".sopsFile =
../../../../../../../secrets/personal/secrets.yaml;
};
"git/cookies" = {
sopsFile = ../../../../../../../secrets/personal/secrets.yaml;
path = "${home}/.config/git/cookies";
templates."git/credentials" = {
content = ''
https://${hmConfig.sops.placeholder."git/credentials/git.karaolidis.com/username"}:${
hmConfig.sops.placeholder."git/credentials/git.karaolidis.com/password"
}@git.karaolidis.com
'';
path = "${home}/.config/git/credentials";
};
};

View File

@@ -3,6 +3,7 @@
home ? throw "home argument is required",
}:
{
config,
inputs,
lib,
system,
@@ -10,19 +11,26 @@
...
}:
let
hmConfig = config.home-manager.users.${user};
selfPkgs = inputs.self.packages.${system};
in
{
home-manager.users.${user} = {
sops.secrets = {
"git/credentials" = {
sopsFile = ../../../../../../../secrets/personal/secrets.yaml;
path = "${home}/.config/git/credentials";
sops = {
secrets = {
"git/credentials/git.karaolidis.com/username".sopsFile =
../../../../../../../secrets/personal/secrets.yaml;
"git/credentials/git.karaolidis.com/password".sopsFile =
../../../../../../../secrets/personal/secrets.yaml;
};
"git/cookies" = {
sopsFile = ../../../../../../../secrets/personal/secrets.yaml;
path = "${home}/.config/git/cookies";
templates."git/credentials" = {
content = ''
https://${hmConfig.sops.placeholder."git/credentials/git.karaolidis.com/username"}:${
hmConfig.sops.placeholder."git/credentials/git.karaolidis.com/password"
}@git.karaolidis.com
'';
path = "${home}/.config/git/credentials";
};
};

View File

@@ -2,7 +2,10 @@
user ? throw "user argument is required",
home ? throw "home argument is required",
}:
{ pkgs, ... }:
{ config, pkgs, ... }:
let
hmConfig = config.home-manager.users.${user};
in
{
environment.persistence."/cache"."${home}/.local/share/gradle" = { };
@@ -12,8 +15,11 @@
home = ".local/share/gradle";
};
sops.secrets."artifactory" = {
sopsFile = ../../../../../../../secrets/sas/secrets.yaml;
sops.templates."gradle.properties" = {
content = ''
cdpUser=${hmConfig.sops.placeholder."artifactory/cdp/user"}
cdpPassword=${hmConfig.sops.placeholder."artifactory/cdp/password"}
'';
path = "${home}/.local/share/gradle/gradle.properties";
};
};

View File

@@ -2,11 +2,29 @@
user ? throw "user argument is required",
home ? throw "home argument is required",
}:
{ lib, ... }:
{
home-manager.users.${user}.sops.secrets = {
"registry" = {
sopsFile = ../../../../../../../secrets/sas/secrets.yaml;
config,
lib,
pkgs,
...
}:
let
hmConfig = config.home-manager.users.${user};
in
{
home-manager.users.${user}.sops = {
secrets."registry/cr.sas.com".sopsFile = ../../../../../../../secrets/sas/secrets.yaml;
templates."containers-auth.json" = {
content = builtins.readFile (
(pkgs.formats.json { }).generate "auth.json" {
auths = {
"cr.sas.com" = {
auth = hmConfig.sops.placeholder."registry/cr.sas.com";
};
};
}
);
path = "${home}/.config/containers/auth.json";
};
};

View File

@@ -163,6 +163,9 @@ in
sopsFile = ../../../../secrets/sas/secrets.yaml;
key = "gpg/pass";
};
"artifactory/cdp/user".sopsFile = ../../../../secrets/sas/secrets.yaml;
"artifactory/cdp/password".sopsFile = ../../../../secrets/sas/secrets.yaml;
};
programs.clipbook.bookmarks = {

View File

@@ -3,25 +3,33 @@
home ? throw "home argument is required",
}:
{
config,
inputs,
lib,
system,
...
}:
let
hmConfig = config.home-manager.users.${user};
selfPkgs = inputs.self.packages.${system};
in
{
home-manager.users.${user} = {
sops.secrets = {
"git/credentials" = {
sopsFile = ../../../../../../../secrets/personal/secrets.yaml;
path = "${home}/.config/git/credentials";
sops = {
secrets = {
"git/credentials/git.karaolidis.com/username".sopsFile =
../../../../../../../secrets/personal/secrets.yaml;
"git/credentials/git.karaolidis.com/password".sopsFile =
../../../../../../../secrets/personal/secrets.yaml;
};
"git/cookies" = {
sopsFile = ../../../../../../../secrets/personal/secrets.yaml;
path = "${home}/.config/git/cookies";
templates."git/credentials" = {
content = ''
https://${hmConfig.sops.placeholder."git/credentials/git.karaolidis.com/username"}:${
hmConfig.sops.placeholder."git/credentials/git.karaolidis.com/password"
}@git.karaolidis.com
'';
path = "${home}/.config/git/credentials";
};
};