126 lines
3.3 KiB
Nix
126 lines
3.3 KiB
Nix
let
|
|
appName = "whitelistmanager";
|
|
appImage = "git.gmem.ca/arch/whitelistmanager";
|
|
frontendImage = "git.gmem.ca/arch/whitelistmanager-frontend";
|
|
in
|
|
{
|
|
lib,
|
|
config,
|
|
kubenix,
|
|
...
|
|
}: {
|
|
kubernetes.resources.deployments.whitelistmanager = {
|
|
metadata.namespace = "minecraft-invites";
|
|
spec = {
|
|
selector.matchLabels.app = appName;
|
|
template = {
|
|
metadata.labels.app = appName;
|
|
spec = {
|
|
containers = {
|
|
whitelistmanager = {
|
|
image = appImage;
|
|
envFrom = [{secretRef.name = "whitelistmanager";}];
|
|
resources = {
|
|
requests = {
|
|
cpu = "1m";
|
|
memory = "256Mi";
|
|
};
|
|
limits = {
|
|
cpu = "1";
|
|
memory = "512Mi";
|
|
};
|
|
};
|
|
ports.http.containerPort = 8080;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
kubernetes.resources.deployments.whitelistmanager-frontend = {
|
|
metadata.namespace = "minecraft-invites";
|
|
spec = {
|
|
selector.matchLabels.app = appName + "-frontend";
|
|
template = {
|
|
metadata.labels.app = appName + "-frontend";
|
|
spec = {
|
|
containers = {
|
|
whitelistmanager = {
|
|
image = frontendImage;
|
|
resources = {
|
|
requests = {
|
|
cpu = "1m";
|
|
memory = "256Mi";
|
|
};
|
|
limits = {
|
|
cpu = "1";
|
|
memory = "512Mi";
|
|
};
|
|
};
|
|
ports.http.containerPort = 3000;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
kubernetes.resources.services.whitelistmanager = {
|
|
metadata.namespace = "minecraft-invites";
|
|
metadata.labels.app = appName;
|
|
spec = {
|
|
selector.app = appName;
|
|
ports.http = {
|
|
port = 8080;
|
|
targetPort = 8080;
|
|
};
|
|
};
|
|
};
|
|
kubernetes.resources.services.whitelistmanager-frontend = {
|
|
metadata.namespace = "minecraft-invites";
|
|
metadata.labels.app = appName + "-frontend";
|
|
spec = {
|
|
selector.app = appName + "-frontend";
|
|
ports.http = {
|
|
port = 3000;
|
|
targetPort = 3000;
|
|
};
|
|
};
|
|
};
|
|
kubernetes.resources.ingresses.whitelistmanager = {
|
|
metadata.namespace = "minecraft-invites";
|
|
metadata.annotations = {
|
|
"cert-manager.io/cluster-issuer" = "le-issuer";
|
|
};
|
|
spec = {
|
|
tls = [
|
|
{
|
|
hosts = ["minecraft-invites.gmem.ca"];
|
|
}
|
|
];
|
|
rules = [
|
|
{
|
|
host = "minecraft-invites.gmem.ca";
|
|
http.paths = [
|
|
{
|
|
path = "/";
|
|
pathType = "Prefix";
|
|
backend.service = {
|
|
name = "whitelistmanager-frontend";
|
|
port.number = 3000;
|
|
};
|
|
}
|
|
{
|
|
path = "/api";
|
|
pathType = "Prefix";
|
|
backend.service = {
|
|
name = "whitelistmanager";
|
|
port.number = 8080;
|
|
};
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|