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.
@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.
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?
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.
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.
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.
@@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 :)
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.
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?
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
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. 🙇🏽♂️
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?
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.
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!
@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.
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 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
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.
@@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.
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.
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
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.
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.
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.
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
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.
damn, Crossplane is much more than what I thought it was. Great work Viktor! thanks
@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.
That's a good one. I'll make a short video about it. I expect it to go live in a few weeks.
Was anticipating this part :) Great info
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?
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.
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.
If you adopt functions (which i strongly recommend) you will not need patches (which are annoyingly verbose).
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.
@@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 :)
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.
In that case, I owe you a coffee when we meet in Salt Lake City.
Definitely looking forward to it.
Great Videos!
One question, can you update the resources under Compositions the same way as you updated Managed Resources in the previous video?
Yeah. You can update any part of a composition and if you apply it those updates will propagate to all the claims.
@@DevOpsToolkit Thanks alot, I really appreciate your response and your content is also great!
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?
Victor was that the case of too early of copy or are those drawings final ?
@countbrapcula-espana the drawings are final. That's the style I normally use (free hand).
Ok. Gracias Victor. You're channel has made me very knowledgeable. Thank you for all your good stuff.
Thanks, really insightful!
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
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.
@@DevOpsToolkit thank you, another thing it would be good exploring IMHO is version management for XRDs
I'll add it to the to-do list.
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.
🙇🏽♂️
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?
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.
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!
@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.
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..
I'm not sure I understood the question. That video is creating a CRD. That's what compositions do. They create CRDs and controllers.
@@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
This is amazing but is quite a steep learning curve, how possible do you see transitioning from Terraform to Crossplane in an existing organization?
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.
@@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.
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.
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
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.
@@DevOpsToolkit- thanks thats actually a perfect answer :)
Looks like a pile of leaky abstractions for the intercloud era.
I'm new, what are these video about?
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.
@@DevOpsToolkit thank you very much
why do u call cloud providers as hypervisors?
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.
makes sense - btw fantastic video series, really enjoying it 😃
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