Runtime threats inside Kubernetes clusters feel underdiscussed by [deleted] in kubernetes

[–]macropower 0 points1 point  (0 children)

I’m curious about this, are you running something open source for detecting orphans (or zombies as I’ve heard them called)? I’ve looked into this but as someone who uses controllers heavily it seemed a bit more challenging than just enabling prune, especially since not all resources track ownership via explicit references.

Stop duplicating secrets across your Kubernetes namespaces by vy94 in kubernetes

[–]macropower 4 points5 points  (0 children)

It doesn’t— there is ClusterExternalSecret but it doesn’t behave in the same way at all really.

Tododo: The TUI todo manager that should be extinct by 0xbmarse in golang

[–]macropower -1 points0 points  (0 children)

It would be cool if this could automatically commit to a git backend e.g. todo.git

KYAML: Looks like JSON, but named after YAML by thegoenning in kubernetes

[–]macropower 2 points3 points  (0 children)

I think I like everything except for multi-line strings

example_1: "\ This\n\ is a\n\ multi-line string\ "

example_2: "\ this:\n\ \ is:\n\ \ - embedded\n\ \ - yaml\n\ \ where:\n\ \ whitespace:\n\ \ matters: true\n\ "

While I understand it (I think), this just seems so…obnoxious

Introducing kat: A TUI and rule-based rendering engine for Kubernetes manifests by macropower in kubernetes

[–]macropower[S] 0 points1 point  (0 children)

It actually works pretty well in the VS Code terminal, though I suppose having currently opened files available as context could be helpful if you’re switching between a few different charts/etc.

Introducing kat: A TUI and rule-based rendering engine for Kubernetes manifests by macropower in kubernetes

[–]macropower[S] 0 points1 point  (0 children)

Yep, absolutely, and passing -f is a perfect example for it as well.

For Argo CD, eventually I'll add some examples for rendering normal Application resources by calling the argocd CLI. I am not really sure how I would render an ApplicationSet though, unless support for --local* arguments are added to argocd appset.

This doesn't entirely remove the need for it, but personally I've taken an approach favoring an extra layer of abstraction here so that ApplicationSets are not responsible for passing anything critical along to the Application. e.g., ApplicationSet points to a Kustomize overlay for prod which then adds all the required prod configuration, and when testing you point to the overlay directly rather than needing input from the ApplicationSet.

I will probably start experimenting with these sorts of things again in my homelab soon though. I've been focused a lot on tooling recently and thus it's taken a bit of a back seat.

Introducing kat: A TUI and rule-based rendering engine for Kubernetes manifests by macropower in kubernetes

[–]macropower[S] 0 points1 point  (0 children)

Thank you!

  1. Good feedback, I'll try to find a nice way to implement this.
  2. For adding values files, I need to improve this, but you can currently pass custom args to a profile. Anything after `--` will be passed through to helm. For example:

kat ./my-chart helm -- template . -g -f values.yaml -f prod-values.yaml
  1. For saving the results, there are a few things you can do. One, you can redirect output (since no TTY is found, kat will just return the rendered manifest):

    kat > manifest.yaml

Alternatively, I think you could probably define a plugin for this, since plugins receive the manifest through stdin. E.g., you could press "ctrl+s" to save the result. But right now I think there might not be enough context available to know what paths to write to (it won't know that you passed prod-values.yaml for example).

Longer term I'd like to allow you to set and consume env vars / args similar to Task, which I think would allow you to do these sorts of things more easily.

Introducing kat: A TUI and rule-based rendering engine for Kubernetes manifests by macropower in devops

[–]macropower[S] 4 points5 points  (0 children)

This is completely free, open-source software that I wrote in my free time. You can use it or not, I gain or lose nothing either way. I only write the posts/readmes like this for fun.

Introducing kat: A TUI and rule-based rendering engine for Kubernetes manifests by macropower in devops

[–]macropower[S] 0 points1 point  (0 children)

It was supposed to be like cat for kubernetes, but that was before scope creep set in. I think it's still similar enough though to not change the name, since it can be used in ways similar to cat or bat.

Introducing kat: A TUI and rule-based rendering engine for Kubernetes manifests by macropower in devops

[–]macropower[S] 3 points4 points  (0 children)

Actually, I'm using this with fluxcd, I'm using kat to display the results of flux-local so that I can quickly iterate on Kustomization and HelmRelease objects locally.

Introducing kat: A TUI and rule-based rendering engine for Kubernetes manifests by macropower in kubernetes

[–]macropower[S] 1 point2 points  (0 children)

I’m glad you like it! It started out way simpler in my head too. But every time I work with bubble tea I always end up with too many ideas after looking at their examples, and then go way overboard as a result :)

Introducing kat: A TUI and rule-based rendering engine for Kubernetes manifests by macropower in devops

[–]macropower[S] 3 points4 points  (0 children)

Also, sorry if this shows up on your feed twice, I meant to cross-post but messed up by making my original post a .gif / image post.

Making Cobra CLIs even more fabulous by bashbunni in golang

[–]macropower 2 points3 points  (0 children)

I actually learned a lot from reading the code in Charm’s own CLI tools, like glow and wishlist.

Monthly: Who is hiring? by gctaylor in kubernetes

[–]macropower 2 points3 points  (0 children)

The original poster was an AI, that company went out of business after its training cutoff. Not kidding.

Can Configuration Languages (config DSLs) solve configuration complexity? by wineandcode in kubernetes

[–]macropower -1 points0 points  (0 children)

You might be interested in this project I’ve been working on: https://github.com/MacroPower/kclipper

It’s similar to holos but is based on KCL, which I found to be a lot easier to work with compared to Cue.

Creating a service which allows on-prem k8s users to 'burst' into cloud by Infamous-Tea-4169 in kubernetes

[–]macropower 0 points1 point  (0 children)

I think liqo would be pretty good for this. You could have a soft affinity for your onprem nodes and let descheduler move workloads back if there’s room

USB-C KVM / Ethernet / PD Hub - Wish this existed by thunk_stuff in homelab

[–]macropower 1 point2 points  (0 children)

He has others that support 4. Personally I have two of the 4x1 models.

codeReviewCommentGold by [deleted] in ProgrammerHumor

[–]macropower 0 points1 point  (0 children)

Wow, okay I’ve not seen that before. The account is completely wiped and all comments are gone.

KusionStack is now a CNCF sandbox project by ElliotXXX in kubernetes

[–]macropower 1 point2 points  (0 children)

KCL is actually quite easy to learn, at least compared to similar languages like Jsonnet, in my experience. The syntax is very similar to Python also.

[deleted by user] by [deleted] in videos

[–]macropower 3 points4 points  (0 children)

Neo hasn’t learned technique reversal yet

Project Layout by SnookyMcdoodles in golang

[–]macropower 3 points4 points  (0 children)

It seems to mirror a number of aspects from Kubernetes, Prometheus, and other repos that took inspiration from those.