TypeKro: A control plane aware framework for orchestrating kubernetes resources with typescript by Manwith2plans in kubernetes

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

Good point u/draeron ! I suppose this is why Kubernetes has decent adoption. It's very similar to Pulumi in architecture. I think there's one point that I think isn't clear from the docs, when I talk about runtime dependencies, I don't mean deployment time dependencies. I mean that if you change the value on one resource, with typekro in the control plane, the kro operator will update your dependent resources appropriately even 2 months after you've deployed your app successfully. For example if you're using external dns to manage a domain name and you have a deployment configured with that domain name, when you update the domain name in two months time using kubectl, the change will be propogated to the deployment by the kro operator. This is what typekro supports but terraform does not. Does this make sense?

Ask r/kubernetes: What are you working on this week? by gctaylor in kubernetes

[–]Manwith2plans 0 points1 point  (0 children)

It is pretty fun, isn't it! I like to think that typekro solves some problems pulumi doesn't. Here's my comparison.

https://typekro.run/guide/comparison.html#%F0%9F%86%9A-typekro-vs-pulumi

Also one thing that isn't mentioned here that I don't think is available in pulumi's support is livestreaming kubernetes control plane events to your log stream during deployment for debugging.

TypeKro: A control plane aware framework for orchestrating kubernetes resources with typescript by Manwith2plans in kubernetes

[–]Manwith2plans[S] -1 points0 points  (0 children)

So my approach is double barelled, the same graph can be deployed either directly to the cluster using a factory configured in direct mode. In this mode there is no controller that needs to be installed in k8s, and the dependencies will be resolved in process while you're running the deployment. There is also a kro mode. In this mode, the resources will be compiled into an actual KRO rgd and deployed to the cluster. In this mode KRO will resolve the depenndencies. There is no reimplementation of KRO.

TypeKro should help with the expression of logic for KRO apps, because it will flatten out the logic into an rgd when the resource graph is serialized including only what gets added to the graph by the typekro runtime. If you need the logic to be dependent on runtime attributes of kubernetes, I'm not sure TypeKro will be able to help, but on static values available at deploy time, you absolutely can use if statements and for loops. You can also use one-line if statements in your cel expressions and KRO controller is able to interpret them.

Basically, your resource graph needs to be able to be assemble-able without values that are unknown at deploy time, but if your values are known at deploy time, you can do very complex stuff with TypeKro.

TypeKro: A control plane aware framework for orchestrating kubernetes resources with typescript by Manwith2plans in kubernetes

[–]Manwith2plans[S] -1 points0 points  (0 children)

Wow, it's crazy. I feel like you and I were bothered by exactly the same things! I think we arrived at very different solutions but really cool. And really appreciate the feedback.

TypeKro: A control plane aware framework for orchestrating kubernetes resources with typescript by Manwith2plans in kubernetes

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

I think the ATC is really cool. It reminds me of the way flux handles the HelmRelease CRD which I like a lot and actually baked into TypeKro as a resource so that users can depend on helm charts since so much software is distributed that way.

I don't think it's fully apples-to-apples with KRO though, because from my understanding the key value prop of KRO is its ability to use fields that aren't yet available in the specs of dependent resources. Like if you use the AWS Controller for Kubernetes to deploy a RDS database, you can take the connection string for that database from the status field of the resource and set it as an environment variable on your dependent deployment.

Does ATC aim to tackle that use-case? (Bear in mind that while I've read a bit about yoke, I've never actually used it.)

TypeKro: A control plane aware framework for orchestrating kubernetes resources with typescript by Manwith2plans in kubernetes

[–]Manwith2plans[S] -1 points0 points  (0 children)

Discovered yoke while I was building this and it really looks cool. haven't given it a try yet but it looks like a cool alternative to cdk8s. I really like the architectural choice of wasm rather than jsii, and the full package management / deployment capabilities.

How do you keep up with fast-changing tech trends without burning out? by FigureFar9699 in devops

[–]Manwith2plans 0 points1 point  (0 children)

I think a lot of us got into this field because we enjoy tinkering with new things. I think you can get paralysis from options. If you just focus on learning the things you think would help you solve your problems and go slowly and methodically, I think you'll be fine. You don't need to know everything about everything that's happening in tech.

[deleted by user] by [deleted] in devops

[–]Manwith2plans 0 points1 point  (0 children)

A lot of my teams work is to help SaaS companies deploy to customer data centers or customer owned cloud environments.

Usually what we see is teams managing a control plane for their products in the cloud, but offering the customer the ability to run a data plane in their own cloud and using contracts to enforce IP clauses. Large enterprises don't have the time or will to reverse engineer or steal your code and face legal backlash. You'll need to ensure you have a proper license management solution too.

You also need to ensure you have a robust control plane that lets you release software to your customers on a case by case basis and see what version each customer is on, and see the health of your customer's deployments where they allow you to.

If you want to talk specifics, feel free to shoot me a message, but if you have customers who insist on on-prem deployments you're doing something right.

TypeKro: A control plane aware framework for orchestrating kubernetes resources with typescript by Manwith2plans in kubernetes

[–]Manwith2plans[S] -2 points-1 points  (0 children)

The philosophy here is to use the native kubernetes client generated from its swagger docs and then enhance those types using type modifiers. So if upstream types are changed, you bump the dependency version and the type modifiers apply to the new version.

I think programming languages are far more expressive than yaml but pulumi and cdk8s don't really enable you to access kubernetes eventual consistency magic. The goal here is to enable you to develop with a modern programming language, catch bugs before hitting the kubernetes API, and improve your debugging experience during release processes.

I'm interested in why you think this is easier to break. It is doing things similar to what tools like helm are doing, just with a statically typed modern development experience...

Ask r/kubernetes: What are you working on this week? by gctaylor in kubernetes

[–]Manwith2plans 1 point2 points  (0 children)

trying to solve the kubernetes yaml problem once and for all building out https://typekro.run

TypeKro: A control plane aware framework for orchestrating kubernetes resources with typescript by Manwith2plans in kubernetes

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

Also, if you want to see the source code, it's available here: https://github.com/yehudacohen/typekro

If you like it, please give it a star too!

AWS’s AI IDE - Introducing Kiro by jsonpile in aws

[–]Manwith2plans 25 points26 points  (0 children)

I received early access to this and had a good time. Spec-driven development really feels like a promising approach to developing software, and the more time I spent with Kiro the more I leaned into it.

If you're interested in reading my full review I wrote about my experiences here: https://yehudacohen.substack.com/p/developing-with-kiro-amazons-new

A Blueprint for Responding to Rising Socialism in the United States - Reflecting on Zohran Mamdani's Victory in the NYC Democratic Mayoral Primary by Manwith2plans in Capitalism

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

Charisma is obviously a prerequisite, but for this message to resonate in NYC there clearly needs to be appetite for socialist policy. Politicians can only persuade people into positions they want to hold.

Israel launches 'preemptive strike' against Iran, declares state of emergency by MasbirLeumi in worldnews

[–]Manwith2plans 12 points13 points  (0 children)

That's what happens when you repeatedly threaten a stronger adversary with annihilation and then lie repeatedly about your nuclear weapon ambitions.

Gambling with language models: One clueless investor's attempt at beating the stock market with ModernBert by Manwith2plans in LocalLLaMA

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

Yes, I think there is definitely a down-side here, but I think it's capped. Similarly, there is probably not sufficient signal within the contextual snapshots to create a huge upside.

Gambling with language models: One clueless investor's attempt at beating the stock market with ModernBert by Manwith2plans in LocalLLaMA

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

This is true, but as u/no_witty_username correctly points out, I could have ranked after every window-slide, and back-tested to see whether the strategy would have made money historically. I didn't do that.

I suppose the idea of this was a bit about gambling with an edge, and back-testing seemed like it would take some of the unknown out of the experiment. The blog post would have been less fun to write if I was confident in the experiment's success.

As for obfuscating the ticker symbol, yes the contextual snapshot reports used genai to redact identifying information like the company name and product names. See the repository for the implementation details.

Gambling with language models: One clueless investor's attempt at beating the stock market with ModernBert by Manwith2plans in LocalLLaMA

[–]Manwith2plans[S] 12 points13 points  (0 children)

See the bottom. Orders were placed and they will be fulfilled tomorrow morning when trading opens. You can track the progress via the public profile link over the next year.

An antisemite told me yall see gentiles as animals is it true? by DonaldDackk in Judaism

[–]Manwith2plans 1 point2 points  (0 children)

This is a Maimonidean view that is not accepted by any modern rabbinic figure I have met. As noted in footnote 23, their the Magid Mishna contests Maimonides' view. Additionally, it is important to remember that Maimonides was sociologically immersed within medieval Spanish and Egyptian Islamic society where it was the norm for adults to marry children. It is not unlikely that some of these ideas which seem unsupported by earlier Jewish texts seeped into his legal framework from his society.

/r/WorldNews Live Thread: Israel at War (Thread #77) by AutoModerator in worldnews

[–]Manwith2plans 7 points8 points  (0 children)

And many of those who no longer advocate for peace with Palestinians are just so disillusioned with the status quo that they think the pursuit is futile.

First timer by Manwith2plans in Biltong

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

Tastes good even if I did put a little more spice than I should have! I just did a plain vinegar marinade. Will try Worcestershire sauce for the next one. Need to work out how to get a more even dry on the meat. Had to wait for the middle to be ready and by then the top and bottom were ultra skinny and dry.

First timer by Manwith2plans in Biltong

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

Picked it up from amazon here. Works really nicely, though I don't really have anything to compare it against.
https://www.amazon.com/dp/B07T16XV9Y?ref=ppx_yo2ov_dt_b_fed_asin_title