{ 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 = { replicas = 1; 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" = ''

Hello from NGINX

''; kubernetes.resources.services.nginx = { spec = { ports = [{ name = "http"; port = 8383; }]; selector.app = "nginx"; externalIPs = [ "95.216.112.61" # FIXME: ipv6 does not work yet "2a01:4f9:2b:1605::1" ]; }; }; }