shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

271
active users

#k8sdev

1 post1 participant0 posts today
"Musty Bits" McGee<p><span class="h-card" translate="no"><a href="https://hachyderm.io/@seanhood" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>seanhood</span></a></span> there's a few key changes in my design<br>1. A full, functional programming language for inflating configuration into manifest files. We publish a versioned library of this as an OCI artifact, and any resources or changes the library doesn't support yet can be done by passing a closure/function to an escape hatch.<br>2. Kubernetes is THE control plane. Anything that would have been terraform is now Crossplane or ACK or whatever operator. No living in two worlds or picking the best-of-the-worst couplings between TF and K8s <br>3. The control plane desired stare should include any cross-resource dependencies. It's still GitOps but there should be no need for any write back or chore commits. This is where the custom operator comes in, though potentially Kro could work.</p><p><a href="https://eigenmagic.net/tags/Kubernetes" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubernetes</span></a> <a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/k8s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8s</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a></p>
"Musty Bits" McGee<p>After a couple hours of very less-coding and more-pacing-and-thinking I've wrangled the blockers and have started on actual implementation of the cluster autoscaler.</p><p>I can see a couple spots that are going to get much more complex - caching informers, backoffs, tracking desired state, and background reconciliation loops.</p><p>Exciting at least! Working for hours to change a handful of lines is ....rewarding but also uncomfortable.</p><p><a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a></p>
"Musty Bits" McGee<p>Interesting but what-you'd-expect container caching enhancement to Kubernetes architecture.</p><p>Does make me wonder if you could do the caching at the content-addressed-storage layer with distributed s3 and data locality via redirects and maybe presigned URLs...</p><p><a href="https://www.youtube.com/watch?v=trFILyK6mPw" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">youtube.com/watch?v=trFILyK6mP</span><span class="invisible">w</span></a></p><p><a href="https://eigenmagic.net/tags/Kubernetes" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubernetes</span></a> <a href="https://eigenmagic.net/tags/k8s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8s</span></a> <a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a></p>
"Musty Bits" McGee<p>Great post on authoring Kubernetes controllers with examples and lots of onward reading</p><p><a href="https://ahmet.im/blog/controller-pitfalls/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">ahmet.im/blog/controller-pitfa</span><span class="invisible">lls/</span></a></p><p><a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a></p>
"Musty Bits" McGee<p>KwoK is hilarious to me. Like I *get* why it exists it's just funny to take the ONE, *absolutely* necessary program for a cluster and be like "naaah, we'll mock it"<br><a href="https://eigenmagic.net/tags/k8s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8s</span></a> <a href="https://eigenmagic.net/tags/Kubernetes" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubernetes</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a> <a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a></p>
"Musty Bits" McGee<p>Operator works fine against a cluster, testing framework fails.</p><p>Tracked it down and the test call to create my Custom Resource wipes the TypeMeta off it. But...why?</p><p><a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a> <a href="https://eigenmagic.net/tags/Kubebuilder" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubebuilder</span></a></p>
"Musty Bits" McGee<p>Started wrangling this test framework and the moment I got past just getting it working it revealed a bug to me.</p><p>Now that's instant gratification.</p><p><a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a> <a href="https://eigenmagic.net/tags/Kubebuilder" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubebuilder</span></a></p>
"Musty Bits" McGee<p>Operator is now retrieving dynamic resources</p><p>WE! HAVE! LIFT-OFF!</p><p><a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a></p>
"Musty Bits" McGee<p>Decided to use my morning quiet/productive hour to start test writing for my operator.</p><p>Immediately hit a brick wall as the provided test harness falls over before even running any tests :neocat_woozy: </p><p>Perhaps we will try again tomorrow.</p><p><a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a> <a href="https://eigenmagic.net/tags/KubeBuilder" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubeBuilder</span></a></p>
"Musty Bits" McGee<p>From-the-trenches dense talk on authoring kubernetes operators</p><p><a href="https://www.youtube.com/watch?v=tnSraS9JqZ8" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">youtube.com/watch?v=tnSraS9JqZ</span><span class="invisible">8</span></a></p><p><a href="https://eigenmagic.net/tags/Kubernetes" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubernetes</span></a> <a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/k8s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8s</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a></p>
"Musty Bits" McGee<p>Holy shit that was a slog but we have it.</p><p>Dynamically constructed and applied arbitrary Kubernetes resources, with patched-in data from configMaps.</p><p>Still needs a bunch of work but I think the main battle with Kubebuilder/GoLang's type system is over for the most part.</p><p><a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/K8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>K8sDev</span></a> <a href="https://eigenmagic.net/tags/Kubernetes" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubernetes</span></a> <a href="https://eigenmagic.net/tags/k8s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8s</span></a></p>
"Musty Bits" McGee<p>I'm making an operator that manages arbitrary resources at runtime using `runtime.RawExtension` </p><p> I'd like the resource to be owned using `controllerutil.SetControllerReference` but it takes `metav1.Object` interface, which is understandably broad.</p><p>Is there any way around implementing metav1.Object wrapping basically `[]byte` of JSON?</p><p>Should I be using `runtime.Scheme` here? Any examples anyone knows of?</p><p><a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/Kubernetes" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubernetes</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a> <a href="https://eigenmagic.net/tags/k8s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8s</span></a> <a href="https://eigenmagic.net/tags/Kubebuilder" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubebuilder</span></a></p>
"Musty Bits" McGee<p>What's the eminent Go library for JSON patching and deep merging?</p><p>I need to update values on arbitrary data structures for Kubernetes at runtime. I was going to use `k8s.io/client-go/util/jsonpath` but it looks like it's only for /retrieving/ values, not mutating them.</p><p>If I can't strictly use the same syntax as Kubernetes then maybe RFC6902 is a reasonable second approach?</p><p><a href="https://www.rfc-editor.org/rfc/rfc6902" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="">rfc-editor.org/rfc/rfc6902</span><span class="invisible"></span></a></p><p><a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/Kubernetes" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubernetes</span></a> <a href="https://eigenmagic.net/tags/GoLang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>GoLang</span></a> <a href="https://eigenmagic.net/tags/k8s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8s</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a></p>
"Musty Bits" McGee<p>Explanation of details and the _why_ of the 10h default resync interval on Kubebuilder.</p><p><a href="https://github.com/kubernetes-sigs/controller-runtime/issues/521" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/kubernetes-sigs/con</span><span class="invisible">troller-runtime/issues/521</span></a></p><p><a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a> <a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/KubeBuilder" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubeBuilder</span></a></p>
"Musty Bits" McGee<p>Oh hell yes, might have found just the thing that unblocks my custom operator. Just about in time for a real need for it.</p><p>I need basically an unstructured object in the API so I can do some runtime manipulation. I still have to conquer making this work in GoLang's type system but I think marshaling it to JSON and just patching that will work without being too inelegant (read: hacky).</p><p><a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a> <a href="https://eigenmagic.net/tags/Kubernetes" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubernetes</span></a></p>
"Musty Bits" McGee<p>Been doing some Kubernetes API design today. It's thoughtful but not in quite the way other software design has felt.</p><p>I suppose the constraints make it easier to avoid some common mistakes. Spending quite a bit of effort though just wrangling GoLang types and kubebuilder annotations to try and get it how it ought to be.</p><p><a href="https://eigenmagic.net/tags/Kubernetes" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubernetes</span></a> <a href="https://eigenmagic.net/tags/K8s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>K8s</span></a> <a href="https://eigenmagic.net/tags/KubernetesDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>KubernetesDev</span></a> <a href="https://eigenmagic.net/tags/K8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>K8sDev</span></a> <a href="https://eigenmagic.net/tags/PlatformEngineering" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PlatformEngineering</span></a></p>
"Musty Bits" McGee<p>oh lol they're trying to make Ansible "a thing" with the operator framework.</p><p>At this point it's not even Ansible it's just Jinja2 with Ansible opinions about templating</p><p><a href="https://sdk.operatorframework.io/docs/building-operators/ansible/tutorial/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">sdk.operatorframework.io/docs/</span><span class="invisible">building-operators/ansible/tutorial/</span></a></p><p><a href="https://eigenmagic.net/tags/k8s" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8s</span></a> <a href="https://eigenmagic.net/tags/k8sDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>k8sDev</span></a> <a href="https://eigenmagic.net/tags/Kubernetes" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kubernetes</span></a> <a href="https://eigenmagic.net/tags/PlatformEngineering" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PlatformEngineering</span></a> <a href="https://eigenmagic.net/tags/DevOps" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DevOps</span></a></p>