diff --git a/website/src/content/docs/guides/talos/docker.md b/website/src/content/docs/guides/talos/docker.md new file mode 100644 index 00000000000..a4453a50ed3 --- /dev/null +++ b/website/src/content/docs/guides/talos/docker.md @@ -0,0 +1,155 @@ +--- +title: Talos as a Docker-Compose App +--- + +:::caution[Disclaimer] + +This guide is not covered by the Support Policy and some features wont work when running Talos as a dockerfile. + +::: + +Talos can be run as a docker container. This has a couple of downsides like: + +- No system-extensions +- No TalosCTL reset -> restart the containers and/or wipe container storage instead +- Dependance on host-kernel -> host kernel might not be optimised for talos +- No MetalLB -> use ServiceLB or node port instead +- No TalosCTL Upgrade -> update the container instead +- Nvidia GPU Assignment +- Warning spam in container logs that it cant alter bpf related stuff +- CEPH and such can hijack drives -> Be careful! + +## Setup Instructions + +### Dockerfile + +Following you will find a dockerfile on how to run Talos as a docker container. + +```yaml +services: + talos-control-1: + container_name: talos-control-1 + environment: + - PLATFORM=container + hostname: talos-control-1 + image: ghcr.io/siderolabs/talos:v1.10.2 + networks: + talosnet: + ipv4_address: 192.168.10.50 + privileged: true + read_only: true + tmpfs: + - /run + - /system + - /tmp + volumes: + - /dev/zfs:/dev/zfs + - /mnt/tank/apps/talos/control/system/state:/system/state + - /mnt/tank/apps/talos/control/system/var:/var + - /mnt/tank/apps/talos/control/system/cni:/etc/cni + - /mnt/tank/apps/talos/control/system/kubernetes:/etc/kubernetes + - /mnt/tank/apps/talos/control/system/libexec:/usr/libexec/kubernetes + - /mnt/tank/apps/talos/control/system/opt:/opt + - /mnt/tank/apps/talos/control/data/openebs:/var/openebs/local + talos-worker-1: + container_name: talos-worker-1 + environment: + - PLATFORM=container + hostname: talos-worker-1 + image: ghcr.io/siderolabs/talos:v1.10.2 + networks: + talosnet: + ipv4_address: 192.168.10.51 + privileged: true + read_only: true + tmpfs: + - /run + - /system + - /tmp + volumes: + - /dev/zfs:/dev/zfs + - /mnt/tank/apps/talos/worker/system/state:/system/state + - /mnt/tank/apps/talos/worker/system/var:/var + - /mnt/tank/apps/talos/worker/system/cni:/etc/cni + - /mnt/tank/apps/talos/worker/system/kubernetes:/etc/kubernetes + - /mnt/tank/apps/talos/worker/system/libexec:/usr/libexec/kubernetes + - /mnt/tank/apps/talos/worker/system/opt:/opt + - /mnt/tank/apps/talos/worker/data/openebs:/var/openebs/local +networks: + talosnet: + driver: macvlan + driver_opts: + parent: br0 + ipam: + driver: default + config: + - subnet: 192.168.10.0/24 + gateway: 192.168.10.1 + +``` + + + +### Clustertool + +#### talconfig + +This modification for your talconfig, should allow for automatic selection of the container NIC. +This is needed for each node defined + + + +```yaml + +nodes: + - hostname: talos-control-1 + networkInterfaces: + - deviceSelector: + hardwareAddr: "02:*" +``` + +#### Machineconfig + +Running Talos inside a dockerfile requires some modifications to talos machine config: + +```yaml + +machine: + features: + hostDNS: + enabled: true + forwardKubeDNSToHost: true + +``` + +This either has to be done manually or in a patchfile. + +#### Other requirements + +After Clustertool bootstrap, be sure to delete/comment-out: + +- MetalLB +- Longhorn + + + +## Further testing needed + + +### ClusterTool compatibility + +The able has previously been tested with "normal" useage of `talosctl apply`, on machineconfigs created, and manually altered, using `clustertool genconfig`. +Its not been validated for clustertool bootstrapping as of yet + + + +### Intel GPU support + +We assume that doing the volume-forwards to the container like normal for adding intel GPUs to containers, would work fine. +But we've not tested this yet + +### OpenEBS ZFS-PV + +We assume that the included /dev/zfs forward is going to be enough to even setup OpenEBS ZFS-PV with access to the pool. +But we've not officially tested this. + diff --git a/website/src/content/docs/news/2025-01-05-Puffin-Personal.md b/website/src/content/docs/news/2025-05-01-Puffin-Personal.md similarity index 99% rename from website/src/content/docs/news/2025-01-05-Puffin-Personal.md rename to website/src/content/docs/news/2025-05-01-Puffin-Personal.md index 34b3f6a547e..b47320c2e87 100644 --- a/website/src/content/docs/news/2025-01-05-Puffin-Personal.md +++ b/website/src/content/docs/news/2025-05-01-Puffin-Personal.md @@ -2,7 +2,7 @@ slug: "news/puffin-post" title: "MrPuffins new role" authors: [privatepuffin] -date: 2025-04-10 +date: 2025-05-01 tags: - "2025" --- diff --git a/website/src/content/docs/news/2025-05-28-talos-docker.md.md b/website/src/content/docs/news/2025-05-28-talos-docker.md.md new file mode 100644 index 00000000000..672f5199698 --- /dev/null +++ b/website/src/content/docs/news/2025-05-28-talos-docker.md.md @@ -0,0 +1,32 @@ +--- +slug: "news/docker-compose-talos" +title: "Truenas-Oriented Talos Docker-Compose" +authors: [alfi0812, privatepuffin] +date: 2025-05-28 +tags: + - "2025" +--- + +## TrueNAS Switches to Incus with Fangtooth Release — VM Support Now Experimental + +With the release of TrueNAS SCALE Fangtooth, iXsystems has officially switched its virtualization backend from KVM to Incus. +This transition has introduced several limitations, and VM support is now also labeled as experimental. Leaving users without a stable VM-solution on TrueNAS. + +Users have reported performance issues with the new Incus-based VM system, +and some previously supported configurations—such as running VMs with raw-file backed disks +(making use of ZFS small-blocks special-vdevs) — are no longer functional. +Currently, there is no official Incus-Guest-Agent available on Talos, making it difficult for users to control the VM threw TrueNAS UI. + +Users have been requesting a Kubernetes solution within the iX-supported Apps/Instances system for quite some time. +Traditional containerization approaches like LXC/LXD or jails were never viable options for us, +as they lack support for Talos and present significant management challenges. +However, after careful testing and evaluation, we've concluded that integrating Talos in container form within the existing Docker Compose-based Apps system presents a compelling solution. +This approach enables users to run Kubernetes on TrueNAS SCALE without the added complexity of virtual machines or the maintenance burden of homegrown setups, +striking a practical balance between performance, simplicity, and native integration. + +In light of this, We have reaffirmed our commitment to the TrueNAS community by releasing a new guide +on how to run Talos as a Docker container inside SCALE Apps. +This approach provides a practical alternative for those affected by the VM backend changes, +allowing continued experimentation and development with Talos despite the Incus limitations. + +To get started with Talos as a Docker-Compose App following the following [this](/guides/talos/docker).