chore: move charts into manifests

This commit is contained in:
Greg Hellings
2026-04-17 15:43:57 -05:00
parent 2a81d137a8
commit e84e03cd05
8 changed files with 151 additions and 50 deletions
+32 -10
View File
@@ -53,9 +53,25 @@
# Network Manager pulls in too many deps # Network Manager pulls in too many deps
networking = { networking = {
extraHosts =
let
onNetwork =
attr: _k: v:
(builtins.hasAttr attr v) && v.${attr} != null;
getIPs =
attr: domain:
(lib.mapAttrsToList (host: v: "${builtins.getAttr attr v} ${host}.${domain}") (
lib.filterAttrs (onNetwork attr) metadata.hosts
));
in
builtins.concatStringsSep "\n" (
(getIPs "ts" "shire-zebra.ts.net")
++ (getIPs "nebulaIp" "nebula.thehellings.com")
++ (getIPs "nebulaIp" "nebula")
++ (getIPs "ip" "thehellings.lan")
);
search = [ search = [
"thehellings.lan" "nebula.thehellings.com"
"home"
]; ];
networkmanager.enable = false; networkmanager.enable = false;
}; };
@@ -114,17 +130,23 @@
}; };
}; };
security.sudo.extraRules = [ security = {
{ sudo-rs = {
users = [ "greg" ]; enable = true;
commands = [ extraRules = [
{ {
command = "ALL"; users = [ "greg" ];
options = [ "NOPASSWD" ]; commands = [
{
command = "ALL";
options = [ "NOPASSWD" ];
}
];
} }
]; ];
} };
]; sudo.enable = false;
};
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.greg = { users.users.greg = {
+5 -1
View File
@@ -18,7 +18,11 @@
boot = { boot = {
loader = { loader = {
systemd-boot.enable = true; systemd-boot = {
enable = true;
memtest86.enable = true;
netbootxyz.enable = true;
};
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
binfmt.emulatedSystems = [ binfmt.emulatedSystems = [
+33
View File
@@ -0,0 +1,33 @@
apiVersion: v1
kind: Namespace
metadata:
name: external-secrets
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: external-secrets
namespace: external-secrets
spec:
interval: "24h"
url: "https://charts.external-secrets.io/"
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: external-secrets
namespace: external-secrets
spec:
interval: 10m
chart:
spec:
chart: external-secrets
version: "2.3.0"
sourceRef:
kind: HelmRepository
name: external-secrets
interval: "1h"
values:
crds:
create: true
includeCRDs: true
+3
View File
@@ -1,3 +1,6 @@
resources: resources:
- kyverno.yaml
- external-secrets.yaml
- tailscale.yaml
- longhorn.yaml # Needed for storage - longhorn.yaml # Needed for storage
- traefik.yaml - traefik.yaml
+40
View File
@@ -0,0 +1,40 @@
apiVersion: v1
kind: Namespace
metadata:
name: kyverno-system
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: kyverno
namespace: kyverno-system
spec:
interval: "24h"
url: "https://kyverno.github.io/kyverno/"
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: kyverno
namespace: kyverno-system
spec:
interval: 10m
chart:
spec:
chart: kyverno
version: "1.17.1"
sourceRef:
kind: HelmRepository
name: kyverno
interval: "1h"
values:
admissionController:
replicas: 3
backgroundController:
replicas: 3
cleanupController:
replicas: 2
reportsController:
replicas: 2
crds:
install: true
+5
View File
@@ -19,6 +19,11 @@ metadata:
namespace: longhorn-system namespace: longhorn-system
spec: spec:
interval: 10m interval: 10m
dependsOn:
- name: tailscale-operator
namespace: tailscale
- name: kyverno
namespace: kyverno
chart: chart:
spec: spec:
chart: longhorn chart: longhorn
@@ -1,3 +1,36 @@
apiVersion: v1
kind: Namespace
metadata:
name: tailscale
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: tailscale
namespace: tailscale
spec:
interval: "24h"
url: "https://pkgs.tailscale.com/helmcharts"
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: tailscale
namespace: tailscale
spec:
interval: 10m
dependsOn:
- name: external-secrets
namespace: external-secrets
chart:
spec:
chart: tailscale-operator
version: "1.96.5"
sourceRef:
kind: HelmRepository
name: tailscale
interval: "1h"
---
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
-39
View File
@@ -2,7 +2,6 @@
config, config,
lib, lib,
pkgs, pkgs,
top,
... ...
}: }:
let let
@@ -86,43 +85,6 @@ in
services = { services = {
k3s = { k3s = {
enable = true; enable = true;
autoDeployCharts = {
external-secrets = {
inherit (top.charts.chartsMetadata.external-secrets.external-secrets) repo version;
enable = true;
name = top.charts.chartsMetadata.external-secrets.external-secrets.chart;
hash = "sha256-dPuUWthwN6L0jdAKRpkDtDedGyDUxUlJrwkvUNwLsrU=";
createNamespace = true;
targetNamespace = "external-secrets";
values = {
crds.create = true;
includeCRDs = true;
};
};
kyverno = {
inherit (top.charts.chartsMetadata.kyverno.kyverno) repo version;
enable = true;
name = top.charts.chartsMetadata.kyverno.kyverno.chart;
hash = "sha256-sNdFEupwfnYSo2iGqKwTadPtXfcbyM1kuisavpiGUyU=";
createNamespace = true;
targetNamespace = "kyverno-system";
values = {
admissionController.replicas = 3;
backgroundController.replicas = 3;
cleanupController.replicas = 2;
reportsController.replicas = 2;
crds.install = true;
};
};
tailscale = {
inherit (top.charts.chartsMetadata.tailscale.tailscale-operator) repo version;
enable = true;
name = top.charts.chartsMetadata.tailscale.tailscale-operator.chart;
hash = "sha256-BtZ24mCT2GMHE9iR+2xuIkB+4m1r2OC3WLkY3jC3i3I=";
createNamespace = true;
targetNamespace = "tailscale";
};
};
extraFlags = [ extraFlags = [
"--cluster-cidr=10.211.0.0/16" "--cluster-cidr=10.211.0.0/16"
"--service-cidr=10.221.0.0/16" "--service-cidr=10.221.0.0/16"
@@ -138,7 +100,6 @@ in
cert-manager.source = cert-manager; cert-manager.source = cert-manager;
flux.source = flux; flux.source = flux;
node-annotations.source = ../../manifests/auto/nodes.yaml; node-annotations.source = ../../manifests/auto/nodes.yaml;
operator-oauth.source = ../../manifests/auto/operator-oauth.yaml;
}; };
role = if cfg.agentOnly then "agent" else "server"; role = if cfg.agentOnly then "agent" else "server";
serverAddr = lib.mkIf ( serverAddr = lib.mkIf (