Skip to content

Instantly share code, notes, and snippets.

@jakelmg
Created July 8, 2025 22:32
Show Gist options
  • Save jakelmg/32253a4995af0eb59c82ffb8328f28fd to your computer and use it in GitHub Desktop.
Save jakelmg/32253a4995af0eb59c82ffb8328f28fd to your computer and use it in GitHub Desktop.
{
"ignition": {
"version": "3.3.0"
},
"kernelArguments": {
"shouldExist": [
"flatcar.autologin"
]
},
"passwd": {
"users": [
{
"name": "core",
"sshAuthorizedKeys": [
"ssh-ed25519 T0r5c5h2exdqJOsFgoimZmnNGkOwHse6CkbMcGrW8pi0vxXbkgdmcRDIepuw EXAMPLE SSH KEY"
]
}
]
},
"storage": {
"disks": [
{
"device": "/dev/disk/by-id/nvme-KIOXIA_KCMYXRUG15T3_\u003cSERIAL1\u003e",
"partitions": [
{
"label": "LC-STRIPE-0"
}
],
"wipeTable": true
},
{
"device": "/dev/disk/by-id/nvme-KIOXIA_KCMYXRUG15T3_\u003cSERIAL2\u003e",
"partitions": [
{
"label": "LC-STRIPE-1"
}
],
"wipeTable": true
},
{
"device": "/dev/disk/by-id/nvme-KIOXIA_KCMYXRUG15T3_\u003cSERIAL3\u003e",
"partitions": [
{
"label": "LC-STRIPE-2"
}
],
"wipeTable": true
},
{
"device": "/dev/disk/by-id/nvme-KIOXIA_KCMYXRUG15T3_\u003cSERIAL4\u003e",
"partitions": [
{
"label": "LC-STRIPE-3"
}
],
"wipeTable": true
}
],
"files": [
{
"path": "/etc/hostname",
"contents": {
"compression": "",
"source": "data:,lancache"
},
"mode": 420
},
{
"overwrite": true,
"path": "/etc/flatcar/update.conf",
"contents": {
"compression": "gzip",
"source": "data:;base64,H4sIAAAAAAAC/wpydfL3D4kPDglyDHF1j7QtSk3Kzy/h8vF39g729QzxcImHqgj39HPxD48PDnEMCrE1MLMyMMCtyMfVzz3Ew9YwQwEOuAABAAD//xw3xBhpAAAA"
},
"mode": 272
},
{
"path": "/etc/systemd/network/10-add-enp1s0fxxxx-to-bond.network",
"contents": {
"compression": "",
"source": "data:,%5BMatch%5D%0AName%3Denp1s0f*%0A%0A%5BNetwork%5D%0ABond%3Dbond0%0A"
}
},
{
"path": "/etc/systemd/network/20-bond0.netdev",
"contents": {
"compression": "",
"source": "data:,%5BNetDev%5D%0AName%3Dbond0%0AKind%3Dbond%0A%0A%5BBond%5D%0AMode%3D802.3ad%0AMIIMonitorSec%3D1s%0ALACPTransmitRate%3Dfast%0ATransmitHashPolicy%3Dlayer3%2B4%0A"
}
},
{
"path": "/etc/systemd/network/20-bond0.network",
"contents": {
"compression": "gzip",
"source": "data:;base64,H4sIAAAAAAAC/4r2TSxJzojl8kvMTbVNys9LMeDiivZLLSnPL8qO5XLKzEtxTiwqykwtsk3NKzAsNkjT4nLxC7Y11ANDLseUlKLU4mJbQwM9EDQy0Dcy4nJPLEktT6yECRpycUVD1cViaDAEacAjb0RA3hgkDwgAAP//PEzyBsUAAAA="
}
}
],
"filesystems": [
{
"device": "/dev/md/lancache",
"format": "xfs",
"label": "lancache",
"path": "/mnt/lancache",
"wipeFilesystem": true
}
],
"links": [
{
"overwrite": true,
"path": "/etc/localtime",
"target": "/usr/share/zoneinfo/America/Vancouver"
}
],
"raid": [
{
"devices": [
"/dev/disk/by-id/nvme-KIOXIA_KCMYXRUG15T3_\u003cSERIAL1\u003e-part1",
"/dev/disk/by-id/nvme-KIOXIA_KCMYXRUG15T3_\u003cSERIAL2\u003e-part1",
"/dev/disk/by-id/nvme-KIOXIA_KCMYXRUG15T3_\u003cSERIAL3\u003e-part1",
"/dev/disk/by-id/nvme-KIOXIA_KCMYXRUG15T3_\u003cSERIAL4\u003e-part1"
],
"level": "raid0",
"name": "lancache",
"options": [
"--chunk=128"
]
}
]
},
"systemd": {
"units": [
{
"contents": "[Unit]\nDescription=Mount LANCache Linux RAID0 Array XFS\n\n[Mount]\nWhat=/dev/md/lancache\nWhere=/mnt/lancache\nType=xfs\nOptions=rw,noatime\n\n[Install]\nWantedBy=local-fs.target\n",
"enabled": true,
"name": "mnt-lancache.mount"
},
{
"contents": "[Unit]\nDescription=LANCache-DNS Docker Container\nAfter=docker.service\nRequires=docker.service\n\n[Service]\nExecStart=/usr/bin/docker run \\\n --name lancache-dns \\\n --rm \\\n --publish 10.0.0.20:53:53/udp \\\n --publish 10.0.0.20:53:53/tcp \\\n -e USE_GENERIC_CACHE=true \\\n -e LANCACHE_IP=\"10.0.0.20 10.0.0.21 10.0.0.22 10.0.0.23\" \\\n -e DNS_BIND_IP=10.0.0.20 \\\n -e UPSTREAM_DNS=\"1.1.1.1 8.8.8.8\" \\\n --label com.centurylinklabs.watchtower.enable=true \\\n lancachenet/lancache-dns:latest\nExecStop=/usr/bin/docker stop lancache-dns\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target\n",
"enabled": true,
"name": "lancache-dns.service"
},
{
"contents": "[Unit]\nDescription=LANCache-Monolithic Docker Container\nAfter=docker.service\nRequires=docker.service\n\n[Service]\nExecStart=/usr/bin/docker run \\\n --name lancache-monolithic \\\n --rm \\\n --network host \\\n --label com.centurylinklabs.watchtower.enable=true \\\n -v /mnt/lancache/cache:/data/cache \\\n -v /mnt/lancache/logs:/data/logs \\\n -e CACHE_DISK_SIZE=40000g \\\n -e MIN_FREE_DISK=1000g \\\n -e CACHE_INDEX_SIZE=12500m \\\n -e CACHE_MAX_AGE=1095d \\\n -e TZ=America/Vancouver \\\n -e UPSTREAM_DNS=\"1.1.1.1 8.8.8.8\" \\\n lancachenet/monolithic:latest\nExecStop=/usr/bin/docker stop lancache-monolithic\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target\n",
"enabled": true,
"name": "lancache-monolithic.service"
},
{
"contents": "[Unit]\nDescription=Watchtower Docker Container Auto-Updater\nAfter=docker.service\nRequires=docker.service\n\n[Service]\nExecStart=/usr/bin/docker run \\\n --name watchtower \\\n --rm \\\n --label com.centurylinklabs.watchtower.enable=true \\\n -e WATCHTOWER_LABEL_ENABLE=true \\\n -e WATCHTOWER_CLEANUP=true \\\n -e WATCHTOWER_NO_RESTART=true \\\n -v /var/run/docker.sock:/var/run/docker.sock \\\n ghcr.io/containrrr/watchtower:latest\nExecStop=/usr/bin/docker stop watchtower\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target",
"enabled": true,
"name": "watchtower.service"
}
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment