infra/homelab/duplikate.nix

74 lines
2.1 KiB
Nix
Raw Normal View History

2024-06-22 22:57:22 +01:00
let
appName = "duplikate";
appImage = "git.gmem.ca/arch/duplikate:latest";
functions = import ./functions.nix {};
in
{
lib,
config,
kubenix,
...
}: {
kubernetes.resources.deployments.duplikate = {
metadata.namespace = "duplikate";
spec = {
selector.matchLabels.app = appName;
template = {
metadata.labels.app = appName;
spec = {
containers = {
duplikate = {
image = appImage;
env.REDIS_URL.value = "redis://duplikate-redis-master";
envFrom = [
{secretRef.name = "duplikate";}
];
resources = {
requests = {
cpu = "10m";
memory = "32Mi";
};
limits = {
cpu = "1";
memory = "128Mi";
};
};
};
};
};
};
};
};
kubernetes.resources."secrets.infisical.com"."v1alpha1".InfisicalSecret.duplikate = functions.secret "duplikate";
kubernetes.helm.releases.duplikate-redis = {
namespace = "duplikate";
chart = kubenix.lib.helm.fetch {
repo = "https://charts.bitnami.com/bitnami";
chart = "redis";
version = "18.6.1";
sha256 = "CyvGHc1v1BtbzDx6hbbPah2uWpUhlNIUQowephT6hmM=";
};
values = {
auth.enabled = false;
architecture = "standalone";
image = {
registry = "registry.redict.io";
repository = "redict";
tag = "7.3-compat";
digest = "sha256:91fcd3124ddb77a098ec0da93c07f99b02b178ab356fe51aa0839aaa62891208";
};
};
};
kubernetes.resources.statefulSets.duplikate-redis-master = {
metadata.namespace = "duplikate";
spec = {
template.spec.volumes.start-scripts.configMap.name = lib.mkForce "duplikate-redis-scripts-a4596108c1";
template.spec.volumes.health.configMap.name = lib.mkForce "duplikate-redis-health-05691b979f";
template.spec.volumes.config.configMap.name = lib.mkForce "duplikate-redis-configuration-4712c8e029";
};
};
}