2021-01-08 11:19:09 +00:00
|
|
|
{ config, lib, pkgs, kubenix, ... }:
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
|
|
|
let
|
|
|
|
nginx = pkgs.callPackage ./image.nix { };
|
|
|
|
in {
|
|
|
|
imports = with kubenix.modules; [ k8s docker ];
|
|
|
|
|
|
|
|
docker.images.nginx.image = nginx;
|
|
|
|
|
|
|
|
kubernetes.resources.deployments.nginx = {
|
|
|
|
spec = {
|
2021-01-08 12:08:38 +00:00
|
|
|
replicas = 1;
|
2021-01-08 11:19:09 +00:00
|
|
|
selector.matchLabels.app = "nginx";
|
|
|
|
template = {
|
|
|
|
metadata.labels.app = "nginx";
|
|
|
|
spec = {
|
|
|
|
securityContext.fsGroup = 1000;
|
|
|
|
containers.nginx = {
|
|
|
|
image = config.docker.images.nginx.path;
|
|
|
|
imagePullPolicy = "IfNotPresent";
|
|
|
|
volumeMounts."/etc/nginx".name = "config";
|
|
|
|
volumeMounts."/var/lib/html".name = "static";
|
|
|
|
};
|
|
|
|
volumes.config.configMap.name = "nginx-config";
|
|
|
|
volumes.static.configMap.name = "nginx-static";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
kubernetes.resources.configMaps.nginx-config.data."nginx.conf" = ''
|
|
|
|
user nginx nginx;
|
|
|
|
daemon off;
|
|
|
|
error_log /dev/stdout info;
|
|
|
|
pid /dev/null;
|
|
|
|
events {}
|
|
|
|
http {
|
|
|
|
access_log /dev/stdout;
|
|
|
|
server {
|
|
|
|
listen 8383;
|
|
|
|
index index.html;
|
|
|
|
location / {
|
|
|
|
root /var/lib/html;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
'';
|
|
|
|
|
|
|
|
kubernetes.resources.configMaps.nginx-static.data."index.html" = ''
|
|
|
|
<html><body><h1>Hello from NGINX</h1></body></html>
|
|
|
|
'';
|
|
|
|
|
|
|
|
kubernetes.resources.services.nginx = {
|
|
|
|
spec = {
|
|
|
|
ports = [{
|
|
|
|
name = "http";
|
|
|
|
port = 8383;
|
|
|
|
}];
|
|
|
|
selector.app = "nginx";
|
2021-01-08 12:29:06 +00:00
|
|
|
externalIPs = [ "95.216.112.61" ];
|
2021-01-08 11:19:09 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|