This is insane, Most valuable playlist it gonna be in Devops perspective. Thanks a ton for your efforts! your channel deserves lot of traction, hope this playlist will get you 100k soon! Thaks again brother.
I really love your videos. I got started not too long ago in Crossplane thanks to your previous videos. I was also looking for some training in Crossplane. So, this video (series) will help me a lot in getting to know more about the nitty gritty about Crossplane (especially creating XRDs). Merci Beaucoup!
I love the quality of your videos, they are simply amazing. your gears are really great and the lightening is perfect. and the way you teach is awesome. Thank you
@@DevOpsToolkitHi Victor, I've already bought the book, but on the leanpub it is still saying, that it is only 80% finished. When do you expect it be finished? Thanks!
@M79L i do not plan to finish it any time soon. The idea is to keep adding chapters as crossplane features graduate from alpha to beta (stable). Think of it as a project with updates...
It seems like a crossplane is also running in a k8s cluster but where is the latter ? Does your nix env install it in local ? Ho I saw on your GitHub your using kind.
I use Nix only for tooling I need to work on a project. The apps, including Crossplane, are running in a similar way as production, and that, in my case, means Kubernetes. In the case of that video, I'm using Nix to install the CLIs (including `kind`) and then spin up a local cluster (KinD in Docker) where Crossplane and other apps are installed. In a real-world scenario, it would be a "real" cluster but for demo purposes KinD is good enough.
Thanks for another great video! I like the idea of a Crossplane tutorial like this. I find there's confusion around some Crossplane base concepts (like Compositions, Claims, CompositeResource...) so I would spend some time on those. Also Crossplane Functions are good candidates for a tutorial, even though I see you have a dedicated video for those.
Each of the videos will go into one of the concepts behind Crossplane, just as it's in the book. The next one is about Managed Resources, the one after that about Compositions, then Configurations, and, finally (for now), about Functions. That's what's in it for now and that should cover all important concepts. One rule I established is NOT to cover alpha features. As they graduate to beta, I will be adding them as new chapters in the book and additional videos here. On top of that, I might cover non-Crossplane things that integrate well with Crossplane, but I cannot promise those just yet.
I'll add "how to create your own provider" to my TODO list. I can't guarantee that it will be on-prem and, even if it is, it'll still depend on a specific API that you might or might not have running in your data center. What matters are the pronciples and logic so you should be able to adapt it to whatever you use.
+1 Victor, it would be great how it can be hooked up to an existing k8s cluster. For tutorial purposes, it is ok to use a database running on the cluster itself. This way this tutorial would be more useful and won't require much expense.
@harahara200812 that's true but that would not allow me to show all the features of crossplane that I'll show. I did my best to keep the costs to a minimum. You'll see that each chapter/video destroys everything at the end so you will run resources for a limited time.
Amazing, and happy to see CrossPlane getting attention! When I first saw CrossPlane I had an aha moment - clearly the future. Curious: your thoughts on CrossPlane vs TF?
I have a rule to avoid talking about projects that might be competitors of those I'm involved in. That's the best way for me to avoid being branded as subjective. So, since I started working activelly on Crossplane, I stopped talking about Terraform, Pulumi, and similar tools. I don't see them as direct competitors (I think Crossplane is a different category), but others do.
The goal of that tutorial is to learn crossplane from scratch. The only prerequisite is at least basic understanding of kubernetes. Other than that, gists used in the tutorial should do everything.
My only problems with "jack of all trades" solutions is that as soon as you leave the happy path shown in demos, you need to resort to all sorts of esoteric workarounds to make things work.
I would not say that it is jack of all trades. Crossplane is focused on managing resources. That's what it does. Do you have an example of something that required esoteric workarounds?
Victor, Crossplane is great, but can you help me with one thing here - since I also know you are a big fan of Kustomize. We use Kustomize, and it's very convinient to update an image in the overlay with 'kustomize image edit'. If we abstract Deployment into a Claim, won't we lose that piece of tooling? How would a team easily update their image tag in the Claim? (other than going to Git and updating it manually every time)
`kustomize image edit` is not designed to anything but `Deployment` resources so that would not work. You would need to change YAML without Kustomize just as you would need to change any aspect of Kustomize but image. You can still use overlays though. Personally, since those changes typically happen in pipelines, I don't think it's big of a problem to execute `yq --inplace "..." something.yaml`. Also, there are many tools besides Kustomize to template or overlay YAML. Helm, ytt, CUE, Pkl, Jsonnet, etc.
If for some reason Crossplane Is not operational, resources it create keep running. They are just not managed by crossplane until it becomes operational again.
It's been a while since i got free credits from cloud providers. If I remember correctly, google gives $250 that can be spent on any services and what we're doing probably won't pass $10-30. Not sure whether azure and AWS give credits like that or force you to use specific services and specific sizes.
The capabilities depend on which providers you apply. There is a bigger focus on hyperscalers than onprem, especially since onprem can be many different things. In the worst case scenario you can create a provider that fits your needs.
something that I am missing from the videos and upbound documentation is how to describe the type of map[string] string like resourceGroupNameSelector in the CRD schema - as a string or map or map(string) ?
If you open the spec of the API you're using you should see the type of each field (e.g. object, string, array, etc.). Specs for all the providers are in marketplace.upbound.io and for the core APIs in the docs in crossplane.io.
Nix install fails on my side due to the azure cli : "ModuleNotFounderror: No module names 'nail' " . It works OK however if I remove the azure CLI from the list of the packages
Can you exist the Nix Shell, execure `nix-collect-garbage` and then run `nix-shell --run $SHELL` again? I suspect that one of the dependencies (e.g., Python) is messing it up. The `nix-collect-garbage` command should delete all Nix dependencies so that you can start over.
I'm new to NixOS and to Crossplane. I am curious why there does not seem to be a crossplane-cli nix package, even though it is in shell.nix. How would I declaratively get the crossplane-cli (which is currently called crank, I guess)?
It is available, but in the "unstable" channel. If you go to search.nixos.org and search for it, you'll have to click the "unstable" button to see it. search.nixos.org is not very intuitive and has quite a few things missing (e.g., list of versions). nixhub.io might be a better place to search for packages (even though it suffers from some other problems).
You may want to make a note that the SSH key cannot have a passphrase protecting it for ArgoCD to use it. This was a source of significant troubleshooting on my part.
@@DevOpsToolkit Hi Victor , I cant thank you enough for this. I have blocked some time for us on the 17th . but meanwhile , i want to unblock myself . is there a forum I can post my question with whatever error I am getting ?
@anupamojha1896 looking forward to the chat. In the meantime, crossplane slack is probably the best place to get a quick answer. I'm there under vfarcic (but can't guarantee when I'll answer).
I thought about using crossplane but then my client told me: Hey I need this application to scale automatically So I learnt about Karpenter and Fargate and thought: well, I shouldn’t need Crossplane if I’m using those tools right?
Crossplane serves Bety different purpose from Fargate and Karpenter. You would use Crossplane to create and manage Fargate cluster and networking and everything else.
I have run the script in an EC2 instance and had port forwarded and also allowed port 8080 in the SG, but I am still unable to browse the argocd instance in the :8080 from my laptop.. What can be the issue? @DevOpsToolkit
As a side note... I assume that people following those videos will not run clusters more than for a few hours in total. I made sure that each ends up with total destruction.
yes, that destruction script is pretty nice. as I said, I really appreciate what you created here. will for sure follow the whole series@@DevOpsToolkit
What do you think about series of tutorial videos like this one? Is that something I should focus on in this channel?
Will be nice :)
I like this a lot. We get deep dives from an expert 💯
Series of tutorials will go a long way for us to implement and learn. It will be very helpful
Good introduction, looking forward to the rest.
Excellent
This is insane, Most valuable playlist it gonna be in Devops perspective.
Thanks a ton for your efforts!
your channel deserves lot of traction, hope this playlist will get you 100k soon! Thaks again brother.
Victor, thank u so much for this video! Your effort is inspiring. We are currently reviewing crossplane at work and it looks amazing. Thank u!
This is awesome found my project for this weekend and it helps me solve a problem I recognized at a new job. Thank you!
I really love your videos. I got started not too long ago in Crossplane thanks to your previous videos. I was also looking for some training in Crossplane. So, this video (series) will help me a lot in getting to know more about the nitty gritty about Crossplane (especially creating XRDs).
Merci Beaucoup!
I love the quality of your videos, they are simply amazing. your gears are really great and the lightening is perfect. and the way you teach is awesome. Thank you
Previously, I had asked you for a book on Crossplane and you got us Tutorial Series, Thanks a lot
There's a book based on the same material. I published it few days ago. I'll publish a link to it tomorrow in a post.
@@DevOpsToolkitHi Victor, I've already bought the book, but on the leanpub it is still saying, that it is only 80% finished. When do you expect it be finished? Thanks!
@M79L i do not plan to finish it any time soon. The idea is to keep adding chapters as crossplane features graduate from alpha to beta (stable). Think of it as a project with updates...
What is name of the book?
@parimalaprao Crossplane: Cloud Native Control Plane.
Again Victor amazing job ! You truly showcase the value and the potential once again ! Keep up the great work !!!!
Excellent work Viktor!
Learn by doing! Hands on great job viktor
I've been expecting some like this.
Looking forward to next video
Great video thanks you so much Viktor!🎉
It seems like a crossplane is also running in a k8s cluster but where is the latter ? Does your nix env install it in local ?
Ho I saw on your GitHub your using kind.
I use Nix only for tooling I need to work on a project. The apps, including Crossplane, are running in a similar way as production, and that, in my case, means Kubernetes. In the case of that video, I'm using Nix to install the CLIs (including `kind`) and then spin up a local cluster (KinD in Docker) where Crossplane and other apps are installed. In a real-world scenario, it would be a "real" cluster but for demo purposes KinD is good enough.
I can totally see this future coming 🚀, but I still didn't start with Crossplane. Would be nice to see a tutorial on how to create XRDs the easy way 😸
That's coming. XRDs will be covered in the third part.
Thanks for another great video! I like the idea of a Crossplane tutorial like this. I find there's confusion around some Crossplane base concepts (like Compositions, Claims, CompositeResource...) so I would spend some time on those. Also Crossplane Functions are good candidates for a tutorial, even though I see you have a dedicated video for those.
Each of the videos will go into one of the concepts behind Crossplane, just as it's in the book. The next one is about Managed Resources, the one after that about Compositions, then Configurations, and, finally (for now), about Functions. That's what's in it for now and that should cover all important concepts. One rule I established is NOT to cover alpha features. As they graduate to beta, I will be adding them as new chapters in the book and additional videos here. On top of that, I might cover non-Crossplane things that integrate well with Crossplane, but I cannot promise those just yet.
these are the topics that I am looking for as well! Thank you, Viktor!@@DevOpsToolkit
Victor, greetings! You need to describe how to create your own provider "on premise". In the simplest example.
I'll add "how to create your own provider" to my TODO list. I can't guarantee that it will be on-prem and, even if it is, it'll still depend on a specific API that you might or might not have running in your data center. What matters are the pronciples and logic so you should be able to adapt it to whatever you use.
+1
Victor, it would be great how it can be hooked up to an existing k8s cluster. For tutorial purposes, it is ok to use a database running on the cluster itself. This way this tutorial would be more useful and won't require much expense.
@harahara200812 that's true but that would not allow me to show all the features of crossplane that I'll show.
I did my best to keep the costs to a minimum. You'll see that each chapter/video destroys everything at the end so you will run resources for a limited time.
Amazing, and happy to see CrossPlane getting attention! When I first saw CrossPlane I had an aha moment - clearly the future. Curious: your thoughts on CrossPlane vs TF?
I have a rule to avoid talking about projects that might be competitors of those I'm involved in. That's the best way for me to avoid being branded as subjective. So, since I started working activelly on Crossplane, I stopped talking about Terraform, Pulumi, and similar tools. I don't see them as direct competitors (I think Crossplane is a different category), but others do.
We need something which you craete from scratch using documentation that would be really useful for begineers like me
The goal of that tutorial is to learn crossplane from scratch. The only prerequisite is at least basic understanding of kubernetes. Other than that, gists used in the tutorial should do everything.
Sounds like NixOS for cloud platforms. Which makes a lot of sense.
My only problems with "jack of all trades" solutions is that as soon as you leave the happy path shown in demos, you need to resort to all sorts of esoteric workarounds to make things work.
I would not say that it is jack of all trades. Crossplane is focused on managing resources. That's what it does.
Do you have an example of something that required esoteric workarounds?
Victor, Crossplane is great, but can you help me with one thing here - since I also know you are a big fan of Kustomize. We use Kustomize, and it's very convinient to update an image in the overlay with 'kustomize image edit'. If we abstract Deployment into a Claim, won't we lose that piece of tooling? How would a team easily update their image tag in the Claim? (other than going to Git and updating it manually every time)
`kustomize image edit` is not designed to anything but `Deployment` resources so that would not work. You would need to change YAML without Kustomize just as you would need to change any aspect of Kustomize but image. You can still use overlays though.
Personally, since those changes typically happen in pipelines, I don't think it's big of a problem to execute `yq --inplace "..." something.yaml`.
Also, there are many tools besides Kustomize to template or overlay YAML. Helm, ytt, CUE, Pkl, Jsonnet, etc.
What happen to resources created by Crossplane when cluster cluster is deployed to experienced some issues?
If for some reason Crossplane Is not operational, resources it create keep running. They are just not managed by crossplane until it becomes operational again.
Hi! Is it possible to do everything that this tutorial implies in any of the free services of cloud providers (for example AWS free tier)?
It's been a while since i got free credits from cloud providers. If I remember correctly, google gives $250 that can be spent on any services and what we're doing probably won't pass $10-30. Not sure whether azure and AWS give credits like that or force you to use specific services and specific sizes.
Is there a part 2 yet?
All 6 were published on this channel. More will come when new stable features are added.
Does it require a Hyperscaler? What about on prem clusters?
The capabilities depend on which providers you apply. There is a bigger focus on hyperscalers than onprem, especially since onprem can be many different things. In the worst case scenario you can create a provider that fits your needs.
What is don’t like is that license can be changed. So why I’m using direct service controllers from AWS and Azure
Crossplane licence cannot change. It is owned by CNCF.
something that I am missing from the videos and upbound documentation is how to describe the type of map[string] string like resourceGroupNameSelector in the CRD schema - as a string or map or map(string) ?
If you open the spec of the API you're using you should see the type of each field (e.g. object, string, array, etc.). Specs for all the providers are in marketplace.upbound.io and for the core APIs in the docs in crossplane.io.
@@DevOpsToolkit thank you for the hint :)
Installed crossplane but unable to provision postgreSQL database
Ping me on LinkedIn or Twitter and we can go through it together.
Nix install fails on my side due to the azure cli : "ModuleNotFounderror: No module names 'nail' " . It works OK however if I remove the azure CLI from the list of the packages
Can you exist the Nix Shell, execure `nix-collect-garbage` and then run `nix-shell --run $SHELL` again? I suspect that one of the dependencies (e.g., Python) is messing it up. The `nix-collect-garbage` command should delete all Nix dependencies so that you can start over.
Also for info gist scripts reference mentions cluster-01, but in reality it is cluster01 ( at least for Azure AKS )
I mean the resource group created on Azure is called cluster01, whereas the gist for Azure mentions cluster-01 ( id vs metadata name I guess )
Is it `az aks get-credentials...` command in the first part (the one used in the video where this comment is)?
@@DevOpsToolkit Yes. Nothing dramatic, but I thought you would like to know ;)
I'm new to NixOS and to Crossplane. I am curious why there does not seem to be a crossplane-cli nix package, even though it is in shell.nix. How would I declaratively get the crossplane-cli (which is currently called crank, I guess)?
It is available, but in the "unstable" channel. If you go to search.nixos.org and search for it, you'll have to click the "unstable" button to see it.
search.nixos.org is not very intuitive and has quite a few things missing (e.g., list of versions). nixhub.io might be a better place to search for packages (even though it suffers from some other problems).
@@DevOpsToolkit Thanks so much! Being new to NixOS was not helping! Now running the whole OS on nixos-unstable.
You may want to make a note that the SSH key cannot have a passphrase protecting it for ArgoCD to use it. This was a source of significant troubleshooting on my part.
Victor , I am kind of stuck in the setup section. can I get some help?
Should I create a kubeconfig.yaml file in the crossplane-tutorial directory ?
Yes. That's what the setup script is doing.
Pick a time from calendar.app.google/MRbyC9Q44DUF4bWZ9 and we can go through it together.
@@DevOpsToolkit Hi Victor , I cant thank you enough for this. I have blocked some time for us on the 17th . but meanwhile , i want to unblock myself . is there a forum I can post my question with whatever error I am getting ?
@anupamojha1896 looking forward to the chat. In the meantime, crossplane slack is probably the best place to get a quick answer. I'm there under vfarcic (but can't guarantee when I'll answer).
Is there any plans for control plane to support civo?
Unfortinately, Civo provider has not been updated since the initial release so their managed database is not in it. Some would need to add it first.
...or raise an issue in the provider repo to show interest in it and, maybe, motivate them to update it.
Prerequisites
I thought about using crossplane but then my client told me: Hey I need this application to scale automatically
So I learnt about Karpenter and Fargate and thought: well, I shouldn’t need Crossplane if I’m using those tools right?
Crossplane serves Bety different purpose from Fargate and Karpenter. You would use Crossplane to create and manage Fargate cluster and networking and everything else.
@@DevOpsToolkit great to know! Didn’t thought about mixing everything 😊
I have run the script in an EC2 instance and had port forwarded and also allowed port 8080 in the SG, but I am still unable to browse the argocd instance in the :8080 from my laptop.. What can be the issue? @DevOpsToolkit
Not sure... I tend to always use Ingress for anything accessible from outside the cluster.
nice tutorial. but spinning up a db.m5.large for over 100$ a month just for this demo is a bit silly.
You're right. I'll change it to a smaller size.
As a side note... I assume that people following those videos will not run clusters more than for a few hours in total. I made sure that each ends up with total destruction.
yes, that destruction script is pretty nice. as I said, I really appreciate what you created here. will for sure follow the whole series@@DevOpsToolkit