(Justin)

Tech nerd from Sweden

Matrix: @jlh:jlh.name

  • 1 Post
  • 357 Comments
Joined 2 years ago
cake
Cake day: June 10th, 2023

help-circle


  • Not here to doubt their decision, they had good reasons to switch.

    For the sake of discussion though, would it have been easier though if they had focused more on abstractions with their code architecture? I haven’t done any serious projects in Rust, but those issues with low-level coding and API thrash seem like more of a code architecture problem. Like, that example of a function signature seems like they should have bundled up their paperdoll logic more into a single “PaperdollLoadout” struct and moved that into a separate game logic function separate from the view related code. It’s more code to write, but that’s the up-front cost of strict type checking.

    Modding and learning definitely seem like a big barrier for Bevy overall though.

    One decision i will question is picking Unity over Godot, though maybe they were still reeling from the learning issues on Bevy.






  • Yeah, what you’re talking about is called GitOps. Using git as the single source of truth for your infrastructure. I have this set up for my home servers.

    https://codeberg.org/jlh/h5b

    nodes has NixOS configuration for my 5 kubernetes servers and a script that builds a flash drive for each of them to use as a boot drive (same setup for porygonz, but that’s my dedicated DHCP/DNS/NTP mini server)

    mikrotik has a dump of my Mikrotik router config and a script that deploys the config from the git repo.

    applications has all my kubernetes config: containers, proxies, load balancers, config files, certificate renewal, databases, clustered raid, etc. It’s all super automated. A pretty typical “operator” container to run in Kubernetes is ArgoCD, which watches a git repo and automatically deploys any changes or desyncs back to the Kubernetes API so it’s always in sync with git. I don’t use any GUI or console commands to deploy or update a container, I just edit git and commit.

    The kubernetes cluster runs about 400 containers, most of them just automatic replicas of services for high-availability. Of course there’s always some manual setup steps outside of git, like partitioning drives, joining the nodes to the cluster, writing hardware-specific config, and bootstrapping Argocd to watch git. But overall, my house could burn down tomorrow and I would have everything I need to redeploy using this git repo, the secrets git repo, and my backups of my databases and container /data dirs.

    I think Portainer supports doing GitOps on Docker compose? Never used it.

    https://docs.portainer.io/user/docker/stacks/add

    Argocd is really the gold standard for GitOps though. I highly recommend trying out k3s on a server and running ArgoCD on it, it’s super easy to use.

    https://argo-cd.readthedocs.io/en/stable/getting_started/

    Kubernetes is definitely different than Docker Compose, and tutorials are usually written for Docker compose.yml, not Kubernetes Deployments, but It’s super powerful and automated. Very hard to crash once you have it running. I don’t think it’s as scary as a lot of people think, and you definitely don’t need more than one server to run it.