add examples to docs site

This commit is contained in:
Bryton Hall 2022-08-29 02:04:47 -04:00 committed by GitHub
parent 53adf2b3b7
commit a76ddefe1c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 328 additions and 119 deletions

View file

@ -0,0 +1,11 @@
As a more complete example, let's define some high-level variables and then split our module out into another file as we start to grow.
{{< source "default.nix" >}}
Now we create a module which does a few related things:
- create a `Deployment`
- mount a `ConfigMap` into its pod
- define a `Service`
{{< source "module.nix" >}}

View file

@ -0,0 +1,9 @@
{kubenix ? import ../../../..}:
kubenix.evalModules.x86_64-linux {
module = {kubenix, ...}: {
imports = [./module.nix];
kubenix.project = "example";
kubernetes.version = "1.24";
};
}

View file

@ -0,0 +1,68 @@
{
config,
lib,
pkgs,
kubenix,
...
}: {
imports = with kubenix.modules; [k8s];
kubernetes.resources = {
deployments.nginx.spec = {
replicas = 10;
selector.matchLabels.app = "nginx";
template = {
metadata.labels.app = "nginx";
spec = {
securityContext.fsGroup = 1000;
containers.nginx = {
image = "nginx";
imagePullPolicy = "IfNotPresent";
volumeMounts = {
"/etc/nginx".name = "config";
"/var/lib/html".name = "static";
};
};
volumes = {
config.configMap.name = "nginx-config";
static.configMap.name = "nginx-static";
};
};
};
};
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 80;
index index.html;
location / {
root /var/lib/html;
}
}
}
'';
nginx-static.data."index.html" = ''
<html><body><h1>Hello from NGINX</h1></body></html>
'';
};
services.nginx.spec = {
ports = [
{
name = "http";
port = 80;
}
];
selector.app = "nginx";
};
};
}