talos
flux2
Our great sponsors
talos | flux2 | |
---|---|---|
43 | 83 | |
5,266 | 5,912 | |
7.3% | 2.9% | |
9.7 | 9.3 | |
3 days ago | 3 days ago | |
Go | Go | |
Mozilla Public License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
talos
-
There are only 12 binaries in Talos Linux
Super cool. I always enjoy reading about systems that challenge, well, "ossified" assumptions. An OS not providing a shell, for example? Madness! ... or is it genius, if the OS has a specific purpose...? It's thought-provoking, if nothing else.
I'm a bit skeptical of parts. For instance, the "init" binary being less than 400 lines of golang - wow! And sure, main.go [1] is less than 400 lines and very readable. Then you squint at the list of imported packages, or look to the left at the directory list and realize main.go isn't nearly the entire init binary.
That `talosctl list` invocation [2] didn't escape my notice either. Sure, the base OS may have only a handful of binaries - how many of those traditional utilities have been stuffed into the API server? Not that I disagree with the approach! I think every company eventually replaces direct shell access with a daemon like this. It's just that "binary footprint" can get a bit funny if you have a really sophisticated API server sitting somewhere.
[1]: https://github.com/siderolabs/talos/blob/main/internal/app/m...
[2]: https://www.talos.dev/v1.6/reference/cli/#talosctl-list
-
Show HN: Workout Tracker – self-hosted, single binary web application
Where `kube.cue` sets reasonable defaults (e.g. image is /). The "cluster" runs on a mini PC in my basement, and I have a small Digital Ocean VM with a static IP acting as an ingress (networking via Tailscale). Backups to cloud storage with restic, alerting/monitoring with Prometheus/Grafana, Caddy/Tailscale for local ingress.
-
Google/Gvisor: Application Kernel for Containers
Looks somewhat similar to the talos Linux project[1]
-
Gokrazy – Go Appliances
Talos Linux basically implements their entire userspace in Go and its similar to BottleRocketOS, because it is designed to host Kubernetes.
-
Old Unix programs running on modern computers
You might be surprised to find that Talos os (linux distro for kubernetes) mostly uses Go: https://github.com/siderolabs/talos
-
K3s – Lightweight Kubernetes
I've been using a 3 nuc (actually Ryzen devices) k3s on SuSE MicroOS https://microos.opensuse.org/ for my homelab for a while, and I really like it. They made some really nice decisions on which parts of k8s to trim down and which Networking / LB / Ingress to use.
The option to use sqlite in place of etcd on an even lighter single node setup makes it super interesting for even lighter weight homelab container environment setups.
I even use it with Longhorn https://longhorn.io/ for shared block storage on the mini cluster.
If anyone uses it with MicroOS, just make sure you switch to kured https://kured.dev/ for the transactional-updates reboot method.
I'd love to compare it against Talos https://www.talos.dev/ but their lack of support for a persistent storage partition (only separate storage device) really hurts most small home / office usage I'd want to try.
-
Bottlerocket – Minimal, immutable Linux OS with verified boot
If you’re interested in something not AWS check out Talos https://www.talos.dev/
It’s been around longer than Bottlerocket
-
What kubernetes platforms do you use in your production environment?
Can't talk about work, but my homelab is Azure and Oracle managed k8s (AKS/OKE), with onprem Talos soon (Turing Pi 2). My Flux monorepo has the details. OKE performs noticably worse (update cycle, features, control plane performance), but it provides 4 ARM cores and 24GB RAM free so I can't complain
-
Air gapped on prem install - what would you do?
Check out Talos Linux , it essentially solves a lot of the OS level challenges because there is no hardening requirements, the whole OS is API driven and you can bootstrap a cluster using their CLI. The entire node config is basically just a YAML file so can be managed via a GitOps workflow, then you can just layer something like Flux or Argo on top.
-
Wolfi: A community Linux OS designed for the container and cloud-native era
To add to the other excellent answers, I would recommend adding Bottlerocket to your reading list: https://github.com/bottlerocket-os/bottlerocket#readme
I'm also aware of (but haven't used) https://github.com/siderolabs/talos#readme
I just realized your question may have implied a desktop os, whereas Bottlerocket, Flatcar, and likely the others in this specific thread are server-side. I don't have much experience with trying to solve that problem on the desktop except for the horror-show that is snap
flux2
-
Self-service infrastructure as code
Given the team had already adopted GitOps and were familiar with deployments powered by Helm Releases and Flux, we wanted to move the provisioning of the infrastructure to be part of the same process of creating the service and its continuous deployment.
-
Weaveworks Is Shuting Down
Your GitHub action can trigger a helm chart, or series thereof, or other infra tools. Declarative specifications, triggered procedurally with the context of the branch’s latest build. We use this pattern quite extensively for preview app workflows.
As of a year ago this is possible in a fully declarative way with Flux 2, but there’s a lot more moving parts and security footguns - and the idea that the maintenance of this project has lost one of its primary sponsors is worrying at best.
https://github.com/fluxcd/flux2/discussions/831
https://blog.kluctl.io/introducing-the-template-controller-a...
-
10 Ways for Kubernetes Declarative Configuration Management
FluxCD - FluxCD is another popular GitOps tool that allows developers to use a Git repository as the sole source of configuration. Flux automatically ensures that the state of the Kubernetes cluster is synchronized with the configuration in the Git repository. It supports automatic updates, meaning Flux can monitor Docker image repositories for new images and push updates to the cluster.
-
SmartCash Project - GitOps with FluxCD
#!/bin/bash aws eks update-kubeconfig --name $CLUSTER_NAME --region $AWS_REGION flux_installed=$(kubectl api-resources | grep flux) if [ -z "$flux_installed" ]; then echo "flux is not installed" curl -s https://fluxcd.io/install.sh | sudo bash flux bootstrap github \ --owner=$GH_USER_NAME \ --repository=$FLUX_REPO_NAME \ --path="clusters/$ENVIRONMENT/$CLUSTER_NAME/bootstrap" \ --branch=main \ --personal else echo "flux is installed" fi
-
Best Kubernetes DevOps Tools: A Comprehensive Guide
Flux CD enables continuous deployment to Kubernetes through GitOps by syncing Git repositories with Kubernetes clusters. Flux CD enables GitOps for Kubernetes through source control integration. It manages Kubernetes manifests as code and syncs git repo changes to clusters. Flux automates checks, deployments, and updates within clusters.
-
Git going with GitOps on AKS: A Step-by-Step Guide using FluxCD AKS Extension
FluxCD is a GitOps tool developed by Weaveworks that allows you to implement continuous and progressive delivery of your applications on Kubernetes. It is a CNCF graduated project that offers a set of controllers to monitor Git repositories and reconciles the cluster's actual state with the desired state defined by manifests committed in the repo.
-
Ultimate EKS Baseline Cluster: Part 1 - Provision EKS
From here, we can explore other developments and tutorials on Kubernetes, such as o11y or observability (PLG, ELK, ELF, TICK, Jaeger, Pyroscope), service mesh (Linkerd, Istio, NSM, Consul Connect, Cillium), and progressive delivery (ArgoCD, FluxCD, Spinnaker).
-
Reducing Cloud Costs on Kubernetes Dev Envs
Instead, we will create a single long-lived cluster, and deploy our application in different namespaces. There are a bunch of ways to do that - see ArgoCD, Flux, custom internal tooling, or other solutions (we use our own product). That way, we:
-
What is the proper, kubernetes native way of working with multiple clusters for DR, HA?
One is to make sure configurations in both clusters is same. And for that there are many tools like fluxcd or projectsveltos
What are some alternatives?
helmfile - Deploy Kubernetes Helm Charts
argo-cd - Declarative Continuous Deployment for Kubernetes
spinnaker - Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.
k3sup - bootstrap K3s over SSH in < 60s 🚀
terraform-provider-flux - Terraform provider for bootstrapping Flux
skaffold - Easy and Repeatable Kubernetes Development
werf - A solution for implementing efficient and consistent software delivery to Kubernetes facilitating best practices.
microk8s - MicroK8s is a small, fast, single-package Kubernetes for datacenters and the edge.
kubespray - Deploy a Production Ready Kubernetes Cluster
nfs-subdir-external-provisioner - Dynamic sub-dir volume provisioner on a remote NFS server.
helmify - Creates Helm chart from Kubernetes yaml
atlantis - Terraform Pull Request Automation