Crossplane Compositions | Tutorial (Part 3)

Поділитися
Вставка
  • Опубліковано 7 лис 2024

КОМЕНТАРІ • 49

  • @mcnairymichael
    @mcnairymichael 7 місяців тому +4

    10 minutes in I had an "Ah ha!!!" moment. I was working on an API for a new kubernetes resource in golang using gin. Now I realize I do not need to do that. If I create the Custom Resource Definition and deploy it to kubernetes then it does it for me. Boom goes the dynamite! Thank you Victor, for "eventual demystificaiton" via all your videos.

  • @tomasferrari92
    @tomasferrari92 5 місяців тому +4

    damn, Crossplane is much more than what I thought it was. Great work Viktor! thanks

  • @IvanRizzante
    @IvanRizzante 22 дні тому +1

    @DevOpsToolkit I have a question about Compositions which could be a subject for a short video. How do you validate the Claim inputs that users provide? Say that you have ArgoCD which deploys the Claim's as soon as they appear in git. You would want to intercept any invalid input as soon as possible, ideally even before ArgoCD tries to deploy the Claim manifest in your Kubernetes cluster. How do you do that?
    I thought one possibility would be using pull requests or dedicated folders, which would allow pipelines to analyze the Claim's you're trying to create before feeding them to ArgoCD.

    • @DevOpsToolkit
      @DevOpsToolkit  22 дні тому +1

      That's a good one. I'll make a short video about it. I expect it to go live in a few weeks.

  • @amoenus_dev
    @amoenus_dev 7 місяців тому +1

    Was anticipating this part :) Great info

  • @raphdom
    @raphdom 7 місяців тому +2

    Hey Viktor, thank you for all the series. It is very hard to find a "pristine" content like this so far about crossplane, you are doing a really, really great job. One question is, I am working in a serverless app model using crossplane and start to see the compositions growing and growing and a lot of complexity. So instead I am now working with kubevela to try to remove and/or "standardize" to OAM apps. Do you think that Application centric for developers is the way, or crossplane will replace that with something more simple for really developers that wants to define a simple YAML without knows/care much about Kubernetes objects?

    • @DevOpsToolkit
      @DevOpsToolkit  7 місяців тому +1

      The only advantage of kubevela was flexibility gained by working with traits. Since Crossplane introduced Functions, that advantage is gone and now i do not see a reason for using KubeVela.
      The important note is that Crossplane is not about managing infra but managing resources of any kind, including resources required to run apps.

  • @PooPa-i8k
    @PooPa-i8k Місяць тому +1

    Love the videos Viktor, working on selling Crossplane to my company as we speak. It feels like magic. I had a quick question -- what are the differences between PatchSets and Patches when you use them in a composition? I can't find documentation anywhere. But I'm able to get away with just using patches.

    • @DevOpsToolkit
      @DevOpsToolkit  Місяць тому +1

      If you adopt functions (which i strongly recommend) you will not need patches (which are annoyingly verbose).

    • @DevOpsToolkit
      @DevOpsToolkit  Місяць тому +1

      I just reañized that i did not answer your question directly. Patchsets are groups of patches that you can define globally and apply to individual resources as a way to save yourself from defining the same patches over and over again.

    • @PooPa-i8k
      @PooPa-i8k Місяць тому +1

      @@DevOpsToolkit Ahh that makes total sense. Diving into functions now. Thanks for the quick response. Huge fan of all your work here and on the podcast :)

  • @edwardpius5367
    @edwardpius5367 7 місяців тому +1

    Thanks Victor for this. I was especially looking for defining XRDs and this video definitely helped me in understanding the configuration of XRDs.
    By the way, since I will not be attending the Paris KubeCon (hope to be in Salt Lake City in November), I went ahead and bought your book as well.

    • @DevOpsToolkit
      @DevOpsToolkit  7 місяців тому

      In that case, I owe you a coffee when we meet in Salt Lake City.

    • @edwardpius5367
      @edwardpius5367 7 місяців тому +1

      Definitely looking forward to it.

  • @meseavlad
    @meseavlad 2 місяці тому

    Great Videos!
    One question, can you update the resources under Compositions the same way as you updated Managed Resources in the previous video?

    • @DevOpsToolkit
      @DevOpsToolkit  2 місяці тому

      Yeah. You can update any part of a composition and if you apply it those updates will propagate to all the claims.

    • @meseavlad
      @meseavlad 2 місяці тому

      @@DevOpsToolkit Thanks alot, I really appreciate your response and your content is also great!

  • @countbrapcula-espana
    @countbrapcula-espana 5 місяців тому +1

    Buenos dias Victor. I purchased your Crossplane book from Amazon right when it became available. The book text is excellent however I don't know if I got an alpha release of the book because the drawings look like they were scribbled incoherently by a drunken kindergartener. I thought perhaps if I purchase the PDF from you or wait another month or two that those scribble drawings with charcoal crayon are not properly rendered Lucidchart or other I can associate with the (#) 's you tied your text to. Did I get an alpha copy?

    • @countbrapcula-espana
      @countbrapcula-espana 5 місяців тому +1

      Victor was that the case of too early of copy or are those drawings final ?

    • @DevOpsToolkit
      @DevOpsToolkit  5 місяців тому

      @countbrapcula-espana the drawings are final. That's the style I normally use (free hand).

    • @countbrapcula-espana
      @countbrapcula-espana 5 місяців тому +1

      Ok. Gracias Victor. You're channel has made me very knowledgeable. Thank you for all your good stuff.

  • @oleksandrtsybulin7844
    @oleksandrtsybulin7844 5 місяців тому

    Thanks, really insightful!

  • @IvanRizzante
    @IvanRizzante 7 місяців тому +1

    Thanks for another great video! I find it amazing that a simple thing like creating secrets in the same namespaces as claims are was so hidden until this video!
    One thing I'd like to point out: Kubernetes provider can be configured also with DeploymentRuntimeConfig and other new features.
    Also I wonder if there will be any chance to talk about how to manage security and permissions greater detail, since for now we just said that they should be managed using policies or RBAC

    • @DevOpsToolkit
      @DevOpsToolkit  7 місяців тому +1

      There should be at least one video about kyverno and crossplane on this channel. I'll also add it to my to-do list to explore it further.

    • @IvanRizzante
      @IvanRizzante 7 місяців тому +1

      @@DevOpsToolkit thank you, another thing it would be good exploring IMHO is version management for XRDs

    • @DevOpsToolkit
      @DevOpsToolkit  7 місяців тому +1

      I'll add it to the to-do list.

  • @obsessedops
    @obsessedops 7 місяців тому +2

    Seems like one is trying to create 4th hyperscaler ontop of existing 3 with Crossplane while leveraging upstream APIs.
    Part1&2 were insightful, while 3rd is overwhelming for anyone except PE who writes controllers, operators, CR,CRDs.
    Not to mention k8s itself is not providing LTS, with so many XR,XRDs it would be challenging for sure.
    Head-to-head comparing of creating base component TF is way easier (read- readability, knowledge required to get started) than crossplane.
    I am fan of the way Victor bashing other existing tool and advertising 'crossplane' as one stop solution! But part3 of CP series exposed CP is may not the answer.
    CP's weakness are covered with grayscale portion in videos I admire victor for being honest!!
    While CP can do lot more other things than Infra provisioning with providers, so does terraform. I don't see a solid reason to invest human resources & time to create another cloud-(that to w/o UI) would rather spent on 'Dev's to make them educated about cloud, TF & friends.
    🙇🏽‍♂️

  • @phillipsma
    @phillipsma 7 місяців тому +1

    Great content once again. A question if I may. Assuming devs make use of only the available claim resources rather than lower-level resources, could they define their own composition of claims to define a system-wide environment, perhaps at 2 layers; firstly infra resources, and secondly app resources? I realise this probably sounds monolithic in nature but fits with some aspects of any system, i.e. a shared SQLServer, k8 cluster, storage account, cosmosdb, etc are all system-wide resources potentially, regardless of what apps are deployed. It also makes for the creation of ephemeral environments as simple as deployment of a single claim?

    • @DevOpsToolkit
      @DevOpsToolkit  7 місяців тому

      A composition is a collection of resources of any kind (as long as that kind. That means that a composition can also contain composite resources. Hence, the short answer to your question is yes.

    • @phillipsma
      @phillipsma 7 місяців тому +1

      Thanks @@DevOpsToolkit , I am finding composition quite compelling and powerful. Verbosity of yaml and lacking some patch transform functionality (string replace for example) is where I struggle a bit, hence started experimenting with KCL function to alleviate some aspects around readability, schemas, etc. Keep the vids coming!

    • @DevOpsToolkit
      @DevOpsToolkit  7 місяців тому

      @phillipsma it's quite possible that patch and transform will be removed from compositions since that can now be done with functions. You're free to construct resources any way you like, including kcl.

  • @fpvclub7256
    @fpvclub7256 6 місяців тому +1

    I just had an epiphany ( I think ) ... Our favourite things are K8s Platform + Declarative Resource Definitions + GitOps. While, one of my other favourite things is Uptime-Kuma. Could we use Crossplane to create a kuma CRD that would allow us to declaratively define kuma groups and monitors in our charts/yaml ??? This would be amazing. actually, it would be beyond amazing.. Do you have any videos on how to create a custom CRD using crossplane, or is it coming up soon in your crossplane multi part series? I would love to attempt to build this, or extend something existing if you think its do-able..

    • @DevOpsToolkit
      @DevOpsToolkit  6 місяців тому

      I'm not sure I understood the question. That video is creating a CRD. That's what compositions do. They create CRDs and controllers.

    • @fpvclub7256
      @fpvclub7256 6 місяців тому +1

      @@DevOpsToolkit Just re-watched them and it makes more sense now, thanks. The key I think is creating the uptime-kuma provider that interfaces directly with the app. Doing some reading on this part now. Hopefully its not too complicated, its been a while since I've done any development :D

  • @gabrielo5700
    @gabrielo5700 7 місяців тому +2

    This is amazing but is quite a steep learning curve, how possible do you see transitioning from Terraform to Crossplane in an existing organization?

    • @DevOpsToolkit
      @DevOpsToolkit  7 місяців тому +1

      I would not transition directly from terraform to Crossplane. Crossplane assumes experience with Kubernetes. Manyo of the features in Crossplane feel natural to Kubernetes experts but strange to the rest. Hence, I recommend Crossplane only to those who are comfortable with kubernetes.

    • @krinwang9545
      @krinwang9545 7 місяців тому +1

      @@DevOpsToolkit We can view terraform plan before apply it. Is there any similar feature in crossplane? We don't want to recreate/delete a database due to a typo in crossplane.

    • @DevOpsToolkit
      @DevOpsToolkit  7 місяців тому +1

      That is a common question when people start exploring crossplane but rarely requested later once they get familiar with it. Crossplane works very differently from terraform. It is based on creating services (compositions) that are heavily tested. Later on, people create instances of those services so there is not such a need for a plan. That is especially true when crossplane is combined with other tools from the kubernetes ecosystem like kyverno for policies, argo CD for gitops, etc.

  • @M79L
    @M79L 7 місяців тому +1

    Hi Victor, I have bought the book on leanpub, but it still says that it is 80% finished. Is it an error? Or there will some other update later.. Thanks

    • @DevOpsToolkit
      @DevOpsToolkit  7 місяців тому +1

      I'm planning to keep it up to date with upcoming features so it won't be done any time soon. I'll just keep updating it as crossplane keeps progressing.

    • @M79L
      @M79L 7 місяців тому +1

      @@DevOpsToolkit- thanks thats actually a perfect answer :)

  • @OpenEmoto
    @OpenEmoto 7 місяців тому +3

    Looks like a pile of leaky abstractions for the intercloud era.

  • @phamcongtoan1399
    @phamcongtoan1399 7 місяців тому +1

    I'm new, what are these video about?

    • @DevOpsToolkit
      @DevOpsToolkit  7 місяців тому +1

      It's a third video in a tutorial about Crossplane. I suggest you watch the first one that provides the overview of what it's all about. You'll find it at ua-cam.com/video/bBpE0rfE-JM/v-deo.html.

    • @phamcongtoan1399
      @phamcongtoan1399 7 місяців тому +1

      @@DevOpsToolkit thank you very much

  • @vishalglobally
    @vishalglobally 2 місяці тому

    why do u call cloud providers as hypervisors?

    • @DevOpsToolkit
      @DevOpsToolkit  2 місяці тому +1

      I believe that, for example, GitHub, DataDog, Civo, and manyany others are all cloud services. By saying hyperscalers my intention is to be more specific that I'm referencing AWS, Azure, Google Cloud, Alibaba, and similar.

    • @vishalglobally
      @vishalglobally 2 місяці тому +1

      makes sense - btw fantastic video series, really enjoying it 😃

  • @IvanRizzante
    @IvanRizzante 7 місяців тому +1

    Thanks for another great video! I find it amazing that a simple thing like creating secrets in the same namespaces as claims are was so hidden until this video!
    One thing I'd like to point out: Kubernetes provider can be configured also with DeploymentRuntimeConfig and other new features.
    Also I wonder if there will be any chance to talk about how to manage security and permissions greater detail, since for now we just said that they should be managed using policies or RBAC