talos
goreleaser
Our great sponsors
talos | goreleaser | |
---|---|---|
43 | 59 | |
5,302 | 12,995 | |
8.0% | 2.5% | |
9.7 | 9.8 | |
4 days ago | 3 days ago | |
Go | Go | |
Mozilla Public License 2.0 | MIT License |
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.
[1] https://www.talos.dev/
[2] https://cuelang.org/
-
Google/Gvisor: Application Kernel for Containers
Looks somewhat similar to the talos Linux project[1]
[1] https://www.talos.dev/
-
Gokrazy – Go Appliances
Talos Linux basically implements their entire userspace in Go and its similar to BottleRocketOS, because it is designed to host Kubernetes.
https://www.talos.dev/
-
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
- Talos Linux – a minimal, hardened Linux distro for running Kubernetes
-
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
-
Help with Kubernetes the hard way V1.26
Talos
goreleaser
-
FOSDEM 2024 - Summary and Reflections
I also got my eyes on GoReleaser, which I will use in my (Go) projects.
- Distribuindo uma aplicação Go sem o Docker
- goreleaser: Deliver Go binaries as fast and easily as possible
- Goreleaser
-
Build an Open Source Project: Behind the Scenes
With "xq", I went even further and automated the release process using GoReleaser. To publish a new release, the only thing I need is to create and push the Git tag. The corresponding GitHub Action will trigger a release process, and GoReleaser prepares the binaries and changelog based on declared conventions. The result has a high level of predictability, and no manual work is required.
-
How to start a Go project in 2023
Things I can't live without in a new Go project in no particular order:
- https://github.com/golangci/golangci-lint - meta-linter
- https://goreleaser.com - automate release workflows
- https://magefile.org - build tool that can version your tools
- https://github.com/ory/dockertest/v3 - run containers for e2e testing
- https://github.com/ecordell/optgen - generate functional options
- https://golang.org/x/tools/cmd/stringer - generate String()
- https://mvdan.cc/gofumpt - stricter gofmt
- https://github.com/stretchr/testify - test assertion library
- https://github.com/rs/zerolog - logging
- https://github.com/spf13/cobra - CLI framework
FWIW, I just lifted all the tools we use for https://github.com/authzed/spicedb
We've also written some custom linters that might be useful for other folks: https://github.com/authzed/spicedb/tree/main/tools/analyzers
-
What is recommended build tool and process for go project that contains multiple libraries, apis and executables?
Goreleaser is nice. https://goreleaser.com/
-
Best practices for distributing and updating a Go CLI on Linux?
I use goreleaser for packaging my binaries. I'm not currently doing RPM, but it does a lot of services and if you don't hunker down on a single solution, it might help with keeping your releases up to date/in sync.
-
Looking for projects ideas for experienced devops engineers
There's some packaging issues, for example, we've always wanted to publish deb/rpm packages, but never got around to adding it to either promu or completely switching our build tooling over to GoReleaser.
- Goreleaser: Deliver Go binaries as fast and easily as possible
What are some alternatives?
k3sup - bootstrap K3s over SSH in < 60s 🚀
Task - A task runner / simpler Make alternative written in Go
microk8s - MicroK8s is a small, fast, single-package Kubernetes for datacenters and the edge.
gron - gron, Cron Jobs in Go.
kubespray - Deploy a Production Ready Kubernetes Cluster
go-torch
ansible-role-k3s - Ansible role for deploying k3s cluster
godropbox - Common libraries for writing Go services/applications.
rke2
hub - A command-line tool that makes git easier to use with GitHub.
Flatcar - Flatcar project repository for issue tracking, project documentation, etc.
goreporter - A Golang tool that does static analysis, unit testing, code review and generate code quality report.