-
just fucking use kubernetes
You want to run containers? JUST FUCKING USE KUBERNETES. !!! tip "Obvious satire" If you don't like harsh language this is not the post for you. Obviously ripping off motherfuckingwebsite . !!! warning "ThIs is AI SLoP" If you don't like if you can fuck off to the next post, I'm having fun here, but satire is not my strong suit and needed some help. "But it’s complicated!" Shut up. Close twitter and fucking do something. Life is complicated. You know what else is complicated? Email. DNS. L
-
kubernetes node labels
If you need to target a specific k8s node in the cluster, you can use labels. You want to treat your nodes as much like cattle as you can, but sometimes budgets get in the way. You might be like me and just run any free hardware you can get in your cluster, or you might have some large storage or gpu needs that you can't afford to put on every node in the cluster. To use the label in a pod set to the label that you applied.
-
grafana dashboards as k8s configmap
I'm trying to learn proper logs, monitoring, otel, and grafana. Today I imported a bunch of pre-made k8s dashboards and made a few of my own for specific apps, and it made me want to know how I can turn my own custom dashboards into infrastructure as code. Turns out grafana makes it pretty easy to do this, if you have the grafana dashboard sidecar running. It will pick up any ConfigMap with the grafana_dashboard label and import it. Go to Dashboards -> Pick a Dashboard -> Export -> JSON. imag
-
backup distrobox image
Today I'm upgrading my distrobox, but don't want to end up in a situation where I can't get anything done becauase I work out of my distrobox.
-
Changing k8s Storage Class - Migration Job
I'm setting up longhorn in my homelab, and I ran into an issue where I initially setup some pvcs under longhorn, and later realized that to get longhorn to snapshot and backup I needed to hand edit volumes after the fact or change storage class. I'm all in on gitops so option 1 was not an option. So changing storageclass it is. Now the issue is that you CANNOT mutate storageclass on a provisioned pvc, it is an immutable attribute. Migration Job This migration job will create a new pvc with the
-
emoji in headless chrome in docker
I recently noticed that my og images were missing emoji. They were taken using headless chrome in a container. I fixed it by adding an emoji font in the containerfile / dockerfile. Before Here's what they were looking like with broken emoji fonts. image After And now with the fixed emoji font. image I put thought bubbles on my thoughts posts and stars on my github stars posts
-
postiz-file-upload
Today I learned that the docs in postiz are a bit behind, (fantastic docs btw, they are to the point, and cover almost all of what you need). The docs state that you need to include an R2 bucket to handle uploads. This issue shows that more work has been done, one of which is local storage. The compose file they use in the quick start has the required env variables to set this up. looking into my running instance I can see my images there.
-
slow nfs performance
I'm running a two node k3s cluster at home, I thought I could simply mount an nfs share on each worker node, and essentially have the same storage accross all nodes. I'm already learning why this is not reccommended. screenshot-2025-01-31T21-18-43-543Z.png Slow I've been running some cronjobs and argo workflows on the second node for awhile, these are things that run in the background and I don't care if they take a bit longer to keep my master node freed up for more critical work. I just sta
-
k3s config after first install
After first setting up a new k3s instance your kubeconfig file will be located in /etc/rancher/k3s/k3s.yaml. You cans use it from here by setting $KUBECONFIG to that file. Or you can copy it to If you have installed k3s on a remote server and need the config on your local machine then you will need to modify the server address to reflect the remote server. !!! warning only do this if you don't already have a ~/.kube/config file, otherwise copy it to a new file and set your $KUBECONFIG env varia
-
k8s kustomize diff
I've started leaning in on kubernetes kustomize to customize my manifests per deployment per environment. Today I learned that it comes with a diff command. You can enable color diffs by using an external diff provider like colordiff. You might need to install colordiff if you don't already have it. Now I can try out kustomize changes and see the change with kustomize diff.
-
kubectl dash k
Kubernetes ships with a feature called kustomize that allows you to customize your manifests in a declarative way. It's a bit like helm, but easier to use. I…
-
Install sealed-secreats via manifest
Yesterday I realized that I have overlooked the default installation method of the sealed secrets controller for [[ kubernetes-kubeseal ]] this whole time an jumped straight to the helm section. I spun up a quick [[ kind-cluster ]] and had it up quickly. I can't say this is any better or worse than helm as I have never needed to customize the install. According to the docs you can customize it with [[ kustomize ]] or helm.
-
kind cluster
kind {.hoverlink} is a very useful tool to quickly standup and teardown kubernetes clusters. I use it to run clusters locally. Generally they are short lived clusters for trying, testing, and learning about kubernetes. Kind is Kubernetes in Docker, its very fast to get a new cluster up and running. Other than checking a box in docker desktop it is the easiest way currently to get a cluster up and running. I've used docker desktop for k8s before I really developed on k8s and it was buggy at t
-
scheduling cron jobs in kubernetes
For my reader app I am using cronjobs to schedule my a new build and upload to cloudflare pages every hour. In this example I have built a docker image and pushed it to dockerhub. It uses a secret to access cloudflare, and the entrypoint itself does the build and upload.
-
kubernetes kubeseal
In my homelab kubernetes cluster I am using kubeseal to encrypt secrets. I have been using it successfully for a few months now wtih great success. It allows me to commit all of my secrets manifests to git with out risk of leaking secrets. You see kubeseal encrypts your secrets with a private key only stored in your cluster, so only the cluster itself can decrypt them using the kubeseal controller. kubeseal-post.png KubeSeal https://sealed-secrets.netlify.app/ {.hoverlink} installation Installa
-
kubernetes 6 months in
I stumbled into kubernetes December 2023 when I was looking for a better way to self host applications. I was looking for something that didn't require logging into a server and building and deploying like a cave man. I wanted a smoother experience than docker compose was giving me. https://waylonwalker.com/looking-for-a-heroku-replacement/ {.hoverlink} This post turned into a list of tools that I have adopted into my k8s workflow, and plan to keep. enjoy. Kompose Kompose is a great tool for g