cdk8s - Kubernetes Manifests With GoLang, TypeScript, Python And Java

  Рет қаралды 9,209

DevOps Toolkit

DevOps Toolkit

Күн бұрын

Пікірлер: 39
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
What do you think about cdk8s? Does it make sense to use GoLang, TypeScript, Python or Java to create Kubernetes manifests?
@KnThSelf2ThSelfBTrue
@KnThSelf2ThSelfBTrue 2 жыл бұрын
In a large engineering organization where there are very few people working on low-level Kubernetes configuration, I love the ability to implement TypeScript libraries published to an NPM repository which define and export classes extending imported Kubernetes types or CRDs, but hiding most of the configuration options of those objects. It creates a GitOps-friendly layer of injection where a small infrastructure team can ensure everyone has all the standard configurations for their use-case without having to micromanage their manifests.
@carloscab3854
@carloscab3854 2 жыл бұрын
@@KnThSelf2ThSelfBTrue with CUE you don't need to do all that.
@jirityr
@jirityr Жыл бұрын
Comparing to Helm, this is too complicated. Helm has loops, conditionals and you can create library charts for reusable bits. And you don't have to generate and store YAML files, you just use Flux or Argo to deploy the chart. Really, just learn Helm and you can forget about anything else...
@Dan-rx8wf
@Dan-rx8wf 2 жыл бұрын
you know it's a good day when you see DevOps Toolkit posting new video! 🙂Thank you for sharing your knowledge and keeping us up-to-date. cdk8s is interesting solution to every day problems
@punasusi6791
@punasusi6791 2 жыл бұрын
Comparison of the tools, with 'when this one is better' suggestions would be VERY helpful :)
@cheebadigga4092
@cheebadigga4092 2 жыл бұрын
+1
@cheebadigga4092
@cheebadigga4092 2 жыл бұрын
Very informative, as always. Thank you! I'll probably play around with it, I've been meaning to get into operator/CRD development anyways so this might be just what I need.
@valour.se47
@valour.se47 2 жыл бұрын
Love it, even for simple usecases the cognitive load is much less then to skim through yamls you wrote 3 months ago. Just re genearate new updated files.
@arcanernz
@arcanernz 2 жыл бұрын
We use cdk already so cdk8s seems like a great fit.
@dougsellner9353
@dougsellner9353 2 жыл бұрын
Thanks, Perhaps for a complex controller but I believe one should have a set of helm chart templates the org strings together, so if a cluster pattern changes it can be made in one core/central place.
@dirien
@dirien 2 жыл бұрын
Always nice to see alternatives to plain old YAML!
@idsvandermolen4549
@idsvandermolen4549 2 жыл бұрын
I'm quite often figuring out how to be able to generate manifests for mutiple "stacks", which require slight variations like development vs production settings, resource requirements etc. And it is not only limited to K8s manifests, but often you need to be able to create variations of YAML config files etc as well. In these cases I find kustomize only limited for K8s manifests, helm quickly becomes a templating pain etc. Also being able to use "external" libraries will be helpful. Jsonnet is a bit too immature, just like Grafana Tanka. So that leaves some kind of higher level programming language to generate the variations, possibly from some base YAML input files. cdk8s might be in the sweet spot to simplify and replace a home-grown framework
@JaydeepDave12
@JaydeepDave12 2 жыл бұрын
cdk8s could be useful with combination of terraform cdk or aws cdk, to setup a cluster. I would prefer to use what Kubernetes understands, yaml. kubectl get .. -o yaml -> copy it -> change stuff -> put it in a helm chart. Easy to debug.
@vadimbauer7424
@vadimbauer7424 2 жыл бұрын
cdk8s, generates vanilla k8s yaml manifest, that you can even take a wrap in helm charts. and deploy with helm.
@JaydeepDave12
@JaydeepDave12 2 жыл бұрын
@@vadimbauer7424 Exactly my point. For simple tasks or common usage I would skip the coding part, and directly grab yamls from somewhere. For a big SaaS service provider probably this is very useful, when classes are used to create resources.
@charlesdeuter
@charlesdeuter 6 ай бұрын
I don't necessarily prefer declarative languages for state. But I definitely like utilities for building a lot of very similar things at once, the thing that I find weird is that these are all object oriented and not functional. Pure functions are perfect if you're generating a json/yaml output.
@shinebayar
@shinebayar 2 жыл бұрын
ArgoCD + CDK8S is a perfect match.
@thomasguttler5179
@thomasguttler5179 Жыл бұрын
Why not kpt? It looks good. But I have the gut feeling that only few people use it.
@DevOpsToolkit
@DevOpsToolkit Жыл бұрын
The last time I checked it I fel in love with it. I think it has great potential but also that it is a bit green and still trying to figure out the story behind itself. So, I have it in the "wait a bit longer" list for now. With a bit more time it will probably move into "use it".
@wiktorworobiec5800
@wiktorworobiec5800 2 жыл бұрын
hey Victor, can You please describe in a brief words how do You use noip for Your k8s sandboxes and demos? I am looking for an entry point for further research. Thanks
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
I'm using nip,io. Is that what you're referring to? It's simple. You prefix it with the ip through which the service is accessible (e.g. 127.0.0.1 if it's localhost, IP of the load balancer, etc.). From there on, nip.io forwards the requests to that IP. So, for example, if the address is something.1.2.3.4.nip.io, the requests will be forwarded to 1.2.3.4.
@manikantareddyp1594
@manikantareddyp1594 2 жыл бұрын
yes it will be really helpfull..
@chrisreilly4105
@chrisreilly4105 Жыл бұрын
It would be great to see some content that compares and contrasts cdk8s, pulumi, and AWS CDK or others in the “infrastructure as actual code” category 🙏🙌
@DevOpsToolkit
@DevOpsToolkit Жыл бұрын
Great suggestion. Adding it to my TODO list... :)
@57skies
@57skies 2 жыл бұрын
I am a bit confused as a minor contributor in spring-cloud-kubernetes... We already have two clients in java (fabric8 and k8s-native) that already can do this. So how is cdk8s any different?
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
I haven't used those (haven't been working with java for a long time) so I cannot compare them :(
@vadimbauer7424
@vadimbauer7424 2 жыл бұрын
I think you are referring to fabric8io/kubernetes-client. The major difference is that cdk8s is not an SDK or client library for the k8s api, such as fabric8io/kubernetes-client. You write code that generate yaml, so it's by nature declarative wrapped in a programming language. So conceptually is closer to cdk, pulumi, and terraform then to the k8s api
@neeltnt1992
@neeltnt1992 2 жыл бұрын
Is there something that can create similar templates for Kustomize? Like put env variable prod and stage as input to the code and it can generate overlay’s for Stage and Prod in Kustomize
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
Not yet. Take a look at github.com/aws/aws-cdk/issues/22293
@neeltnt1992
@neeltnt1992 2 жыл бұрын
@@DevOpsToolkit thanks
@thewiz3255
@thewiz3255 2 жыл бұрын
Maybe someone knows, but i am trying to import crossplane kubernetes object into cdk8s ( my composition uses objects from that provider). i'm getting a bunch of errors about Property 'entries' does not exist in type 'typeof Object' and parameters implicitly have an 'any' type. I am able to import the AWS crossplane custom resources i'm using, just not the kubernetes crossplane object custom resources.
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
I’m using cdk8s with Crossplane but haven’t experienced that issue so I’m not sure how to fix it :(
@LazarTas
@LazarTas 2 жыл бұрын
Soooo this i like Pulumis tool for generating code from yaml just in reverse 😁. Since im deep in Pulumi we will se if this can be useful for anything. One thing for example is to convert crds to typescript since Pulumis converter only supports basic k8s objects. And, just want to add, writing k8s as a code is not about simplicity in the first place in comparison to yaml, it is about briny higher programming logic to the table, for complex deployments.
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
Being able to bring in CRDs is the major advantage. Other than that, if you are already using Pulumi, there is no good reason to switch.
@carloscab3854
@carloscab3854 2 жыл бұрын
CUE is the way.
@bautistamadruga3267
@bautistamadruga3267 2 жыл бұрын
Does this tool works with argocd?
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
It does. The output consists of k8s resources defined in yaml that can be applied with anything, including Argo CD.
@WildLifeBackyardCamera
@WildLifeBackyardCamera 2 жыл бұрын
we use jsonnet 😭
How To Shift-Left Stateful Kubernetes Applications Management
21:17
DevOps Toolkit
Рет қаралды 3,6 М.
Vampire SUCKS Human Energy 🧛🏻‍♂️🪫 (ft. @StevenHe )
0:34
Alan Chikin Chow
Рет қаралды 138 МЛН
Day 2, FN: Smart, Sustainable and Resilient Economy
3:14:40
GIAN 2024 IIT KGP
Рет қаралды 31
THIS is the BEST Way to Write HTTP Services in Golang
13:53
Learning cdk8s - A quick intro (Kubernetes)
11:18
James Quigley
Рет қаралды 6 М.
Why I’m Switching To Go in 2024
8:10
Awesome
Рет қаралды 100 М.
10 Must-Have Kubernetes Tools
18:53
DevOps Toolkit
Рет қаралды 40 М.
Kubernetes Notifications, Troubleshooting, And Automation With Robusta
29:46
KEDA: Kubernetes Event-Driven Autoscaling
16:02
DevOps Toolkit
Рет қаралды 29 М.
Is Rust the New King of Data Science?
15:38
Code to the Moon
Рет қаралды 140 М.