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.
[1]
[2]
[3]
apiVersion: v1
kind: ConfigMap
metadata:
name: my-dashboard
namespace: meta
labels:
grafana_dashboard: "1"
data:
my-dashboard.json: |
{
"annotations": {
"list": [
...
"uid": "fel2uhjhepg5ce",
"version": 3
}
References:
[1]: https://dropper.waylonwalker.com/api/file/530e8515-a72a-4341-82d7-37f6f985e327.webp
[2]: https://dropper.waylonwalker.com/api/file/d792b2db-2dcf-465f-a400-e84f199ec22d.webp
[3]: https://dropper.waylonwalker.com/api/file/684701cc-efec-4e2b-9630-c8aea7ff5b14.webp
Posts tagged: containers
All posts with the tag "containers"
85 posts
latest post 2026-03-23
Publishing rhythm
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.
distrobox ls
distrobox stop devtainer
distrobox create --clone devtainer --name devtainer-20250409
distrobox enter devtainer
Diun
Receive notifications when a Docker image is updated on a Docker registry
crazymax.dev [1]
Diun, looks like a very interesting tool to monitor for image updates, it does not make any change, it only makes notifications. This feels like an easy start to getting image updates started with low effort, keep git [2] ops, but requires manual updates. I see this as a tool that would be a great start and pair well with automated image updaters to ensure they are working as expected.
Note
This post is a thought [3]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://crazymax.dev/diun/
[2]: /glossary/git/
[3]: /thoughts/
Keel
Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates
keel.sh [1]
Keel looks interesting, I might give it a try as a simple image updater. I’m unsure if it fits my gitops patterns though. I like to keep everything defined in git [2], I don’t like drift outside of that so Keel might not be the thing I want.
Note
This post is a thought [3]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://keel.sh/
[2]: /glossary/git/
[3]: /thoughts/
Changing k8s Storage Class - Migration Job
I’m setting up longhorn in my homelab [1], 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 # [2]
This migration job will create a new pvc with the new storageclass and move the
data from the old pvc to the new pvc.
Existing Pods
This migration job will not work if you have a pod using the old pvc. You
will need to shutdown the pod and delete it.
# old pvc with longhorn storageclass
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: site-pvc-longhorn
namespace: waylonwalker-com
spec:
storageClassName: longhorn-backup
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
# new pvc with longhorn-ba...
AI workloads on Talos Linux
Companies are exploring how to run GPU accelerated workloads on Kubernetes.
Sidero Labs · siderolabs.com [1]
cool article for setting up talos linux with an nvidia gpu. What a wild world it we are living in where these devices that started out being only for hardcore gamers are becoming commonplace in servers and slowly entering the homelab [2] space.
Note
This post is a thought [3]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://www.siderolabs.com/blog/ai-workloads-on-talos-linux/
[2]: /homelab/
[3]: /thoughts/
-
Kelsey says several times in this interview, you don’t need kubernetes. If you are running one node you don’t need kubernetes. My question though is, would you use kubernetes? Ya I get it if you are a web developer, data scientist, backend dev, but if you are looking to bee a whole ass engineer, or infrastructure engineer, you know kubernetes, Should you use kubernetes on single node?
Note
This post is a thought [1]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: /thoughts/
poolers.postgresql.cnpg.io CRD metadata.annotations Too long · Issue #325 · cloudnative-pg/charts
Unable to deploy helm chart using ArgoCD. Getting following error Failed sync attempt to : one or more objects failed to apply, reason: CustomResourceDefinition.apiextensions.k8s.io "poolers.postgr...
GitHub · github.com [1]
I’ve never seen or needed to use a serversideapply in kubernetes before, but I ran into this same issue in my k3s homelab [2] while installing cloudnative-pg.
You can do it with argo
apiVersion: argoproj.io/v1alpha1
kind: Application
spec:
syncPolicy:
syncOptions:
- ServerSideApply=true
and you can do it with kubectl
kubectl apply --server-side --force-conflicts -f cnpg-1.25.0.yaml
Note
This post is a thought [3]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://github.com/cloudnative-pg/charts/issues/325
[2]: /homelab/
[3]: /thoughts/
I recently noticed that my og [1] 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.
RUN apt-get update && apt-get install -y \
# Add fonts with emoji support
fonts-noto-color-emoji \
&& rm -rf /var/lib/apt/lists/*
Before # [2]
Here’s what they were looking like with broken emoji fonts.
[3]
After # [4]
And now with the fixed emoji font.
[5]
I put thought bubbles on my thoughts posts and stars on my github stars posts
References:
[1]: /og/
[2]: #before
[3]: https://dropper.waylonwalker.com/api/file/6e9060f2-0e15-4f22-88b6-b6ec5ddb34de.webp
[4]: #after
[5]: https://dropper.waylonwalker.com/api/file/8ed5e338-50c2-4130-8cce-549ecc802f01.webp
Keycloak
Keycloak - the open source identity and access management solution. Add single-sign-on and authentication to applications and secure services with minimum effort.
Keycloak · keycloak.org [1]
Keycloak looks like an interesting way to setup sso. It’s part of the cncf so it’s got a good backing. I want something better for argo workflows and this might be it. I’m curious what else I can tie into it.
Note
This post is a thought [2]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://www.keycloak.org/
[2]: /thoughts/
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 [1] shows that
more work has been done, one of which is local storage. The compose
file [2] they use in the
quick start has the required env variables to set this up.
STORAGE_PROVIDER: "local"
UPLOAD_DIRECTORY: "/uploads"
NEXT_PUBLIC_UPLOAD_DIRECTORY: "/uploads"
looking into my running instance I can see my images there.
⬢ [devtainer] ❯ podman exec postiz ls /uploads/2025/01/09
811747b3f703f5d9a7f10aff5103412ff0.jpeg
a221db10a76f0c414171ab417379b09ec.jpeg
References:
[1]: https://github.com/gitroomhq/postiz-app/issues/322
[2]: https://docs.postiz.com/installation/docker-compose
GitHub - ngalaiko/tree-sitter-go-template: Golang template grammar for tree-sitter
Golang template grammar for tree-sitter. Contribute to ngalaiko/tree-sitter-go-template development by creating an account on GitHub.
GitHub · github.com [1]
This setup fixed my nvim syntax highlighting in helm templates.
Note
This post is a thought [2]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://github.com/ngalaiko/tree-sitter-go-template
[2]: /thoughts/
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.
[1]
Slow # [2]
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 started trying to build this site in a cronjob, It was taking 20 minutes
to build, and something I noticed was that markata was taking minutes to run
glob ( search for files ), normally this happens in a few ms and I never
notice this step.
[3]
I just moved into the master node and the results were wild at ~30x faster
Permissions # [4]
I have seen where you can get diffent permissions on the nfs share based on
user id. Since I’m homelabbing here I only have one user per machine. As you
step into enterprise level VMs wi...
Depot Status
Latest service status for Depot
Depot Status · status.depot.dev [1]
Depot’s uptime seems to be great. I definitely hit some issues with it this afternoon 12/24/24 that were not reported. I wonder if my issues were with the fly integration. Maybe fly ran out of credits to depot or something.
Note
This post is a thought [2]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://status.depot.dev/
[2]: /thoughts/
Deploy to Fly using a Depot builder
Using Fly.io's new Depot builder, we'll walk you through how to deploy a TypeScript service globally with speed.
Depot · depot.dev [1]
Here the integration to depot appears to be opt in using the --depot flag on fly deploy. This must have changed over time though because today it was giving me issues and I had to opt out using fly deploy --depot='false'. Looks like a great service and I just learned about them on their bad day.
Note
This post is a thought [2]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://depot.dev/blog/how-to-build-with-depot-on-fly
[2]: /thoughts/
Depot
Exponentially faster builds for everyone.
Depot · depot.dev [1]
Just learned about depot today ironically because it seems to be down and fly is using them under the hood to do the container builds, seems like a really great service for fast builds accross your team.
Note
This post is a thought [2]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://depot.dev/
[2]: /thoughts/
docker context (and an issue to question your sanity) | Nic Payne
docker contexts are great, would recommend putting them in your prompt though (via starship or something else)... here's why I like to manage my containers
pype.dev [1]
Dang context can really cause you to pull your hair out. Context seems so freaking convenient, but I’ve avoided it and just ssh in for these reasons. Maybe I’ll come around eventually but for now ssh is my friend.
Note
This post is a thought [2]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://pype.dev/docker-context-and-an-issue-to-question-your-sanity
[2]: /thoughts/
Add a healthcheck to your FastAPI app | Nic Payne
I'm building a few FastAPI apps to throw in docker and run on my homelab... I wanted to add healthchecks and here's a simple way to do it Make sure to
pype.dev [1]
Nice example of adding a healthcheck to fastapi [2], and integrating it with docker. Don’t forget to include curl in the install, nice touch.
Note
This post is a thought [3]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://pype.dev/add-a-healthcheck-to-your-fastapi-app
[2]: /fastapi/
[3]: /thoughts/
External Link
X (formerly Twitter) · x.com [1]
switching cloud providers, theres no easy way. K8s was supposed to get us there, haha, the deep integrations with each vendor just keep locking us in
Note
This post is a thought [2]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://x.com/changelog/status/1860697708463378497
[2]: /thoughts/
-
This is a really amazing documentary of argocd. I got into k8s pretty late in the game. Which is pretty typical for me. As I went to use k8s for the first time i was using workflows, then cd. both of these tools had a level of polish that made them seem like they had been there forever and not quite as young as they actually are.
I thought it was interesting how they focused on how the name must be two syllables or less, start with a or b, logo needs to be cutesy funny and recognizable seemed interesting, but puts them at the top of lists and makes them look like they’ve been there forever.
Note
This post is a thought [1]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: /thoughts/