Getting Started with Crossplane: A Glimpse Into the Future | Tutorial (Part 1)

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

КОМЕНТАРІ • 128

  • @DevOpsToolkit
    @DevOpsToolkit  10 місяців тому +67

    What do you think about series of tutorial videos like this one? Is that something I should focus on in this channel?

    • @NoNickeDGR
      @NoNickeDGR 10 місяців тому +4

      Will be nice :)

    • @annusingh4694
      @annusingh4694 10 місяців тому +3

      I like this a lot. We get deep dives from an expert 💯

    • @IshitaPatil-uf4lh
      @IshitaPatil-uf4lh 10 місяців тому +2

      Series of tutorials will go a long way for us to implement and learn. It will be very helpful

    • @autohmae
      @autohmae 10 місяців тому +2

      Good introduction, looking forward to the rest.

    • @jcog84
      @jcog84 10 місяців тому +1

      Excellent

  • @bjugdbjk
    @bjugdbjk 9 місяців тому +8

    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.

  • @CTWilliams89
    @CTWilliams89 10 місяців тому +2

    This is awesome found my project for this weekend and it helps me solve a problem I recognized at a new job. Thank you!

  • @victory-eze
    @victory-eze 4 місяці тому +1

    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

  • @edwardpius5367
    @edwardpius5367 10 місяців тому +2

    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!

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

    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!

  • @GiorgosFiotakis
    @GiorgosFiotakis 10 місяців тому +2

    Again Victor amazing job ! You truly showcase the value and the potential once again ! Keep up the great work !!!!

  • @parimalaprao
    @parimalaprao 10 місяців тому +3

    Previously, I had asked you for a book on Crossplane and you got us Tutorial Series, Thanks a lot

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

      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.

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

      @@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!

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

      @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...

    • @parimalaprao
      @parimalaprao 10 місяців тому +1

      What is name of the book?

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

      @parimalaprao Crossplane: Cloud Native Control Plane.

  • @vimalneha
    @vimalneha 10 місяців тому +1

    Excellent work Viktor!

  • @Andreybishevsky
    @Andreybishevsky 10 місяців тому +1

    Great video thanks you so much Viktor!🎉

  • @ofemi
    @ofemi 10 місяців тому +1

    I've been expecting some like this.
    Looking forward to next video

  • @zubairhaque2706
    @zubairhaque2706 10 місяців тому +1

    Learn by doing! Hands on great job viktor

  • @remi2215
    @remi2215 9 місяців тому +2

    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.

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

      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.

  • @jackconlon1777
    @jackconlon1777 20 хвилин тому +1

    Having problems with my GKE SSD Quotas. My limit is 250G but the cluster claim is trying to use 300G. How can I reconfigure it to only use 250M?

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

    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.

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

      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.

    • @hophop521
      @hophop521 10 місяців тому +1

      these are the topics that I am looking for as well! Thank you, Viktor!@@DevOpsToolkit

  • @xaviermillot2433
    @xaviermillot2433 10 місяців тому +2

    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?

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

      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.

  • @SiCrip09
    @SiCrip09 10 місяців тому +2

    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 😸

    • @DevOpsToolkit
      @DevOpsToolkit  10 місяців тому +4

      That's coming. XRDs will be covered in the third part.

  • @pavelpikat8950
    @pavelpikat8950 10 місяців тому +1

    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)

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

      `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.

  • @morozov_official
    @morozov_official 10 місяців тому +2

    Victor, greetings! You need to describe how to create your own provider "on premise". In the simplest example.

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

      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.

    • @harahara200812
      @harahara200812 10 місяців тому +1

      +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.

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

      @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.

  • @marceloaguero
    @marceloaguero 10 місяців тому +1

    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)?

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

      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.

  • @romosa25
    @romosa25 10 місяців тому +2

    What happen to resources created by Crossplane when cluster cluster is deployed to experienced some issues?

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

      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.

  • @flyingwings-learningisfun
    @flyingwings-learningisfun 2 місяці тому +1

    We need something which you craete from scratch using documentation that would be really useful for begineers like me

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

      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.

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

    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

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

      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.

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

      Also for info gist scripts reference mentions cluster-01, but in reality it is cluster01 ( at least for Azure AKS )

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

      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 )

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

      Is it `az aks get-credentials...` command in the first part (the one used in the video where this comment is)?

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

      @@DevOpsToolkit Yes. Nothing dramatic, but I thought you would like to know ;)

  • @hophop521
    @hophop521 10 місяців тому +1

    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) ?

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

      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.

    • @hophop521
      @hophop521 10 місяців тому +1

      @@DevOpsToolkit thank you for the hint :)

  • @lhxperimental
    @lhxperimental 9 місяців тому +1

    Does it require a Hyperscaler? What about on prem clusters?

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

      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.

  • @AndrewWeed
    @AndrewWeed 10 місяців тому +1

    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)?

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

      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).

    • @AndrewWeed
      @AndrewWeed 10 місяців тому +1

      @@DevOpsToolkit Thanks so much! Being new to NixOS was not helping! Now running the whole OS on nixos-unstable.

    • @AndrewWeed
      @AndrewWeed 9 місяців тому +1

      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.

  • @cybersholt
    @cybersholt 10 місяців тому +1

    Sounds like NixOS for cloud platforms. Which makes a lot of sense.

  • @oleksandrsimonov9200
    @oleksandrsimonov9200 10 місяців тому +1

    What is don’t like is that license can be changed. So why I’m using direct service controllers from AWS and Azure

    • @DevOpsToolkit
      @DevOpsToolkit  10 місяців тому +4

      Crossplane licence cannot change. It is owned by CNCF.

  • @memo.i.garcia
    @memo.i.garcia 10 місяців тому +2

    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.

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

      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?

  • @alanmckeon8321
    @alanmckeon8321 5 місяців тому +1

    Is there a part 2 yet?

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

      All 6 were published on this channel. More will come when new stable features are added.

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

    Victor , I am kind of stuck in the setup section. can I get some help?

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

      Should I create a kubeconfig.yaml file in the crossplane-tutorial directory ?

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

      Yes. That's what the setup script is doing.

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

      Pick a time from calendar.app.google/MRbyC9Q44DUF4bWZ9 and we can go through it together.

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

      @@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 ?

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

      @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).

  • @ivar786
    @ivar786 4 місяці тому +1

    Installed crossplane but unable to provision postgreSQL database

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

      Ping me on LinkedIn or Twitter and we can go through it together.

  • @dandogamer
    @dandogamer 10 місяців тому +1

    Is there any plans for control plane to support civo?

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

      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.

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

      ...or raise an issue in the provider repo to show interest in it and, maybe, motivate them to update it.

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

    How it is different than kubestack?

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

      Terraform is not designed to run in kubernetes natively so any type of an operator that wraps terraform projects is bound to have issues since it'll constantly fight against kubernetes patterns. As a minimum, they would need to figure out how to split projects into individual resources and manage them (drift detection, reconciliation, etc.) separately.
      Continue with the videos in the tutorial and, assuming you are "comfortable" with kubernetes, you'll see the difference.

    • @mahis0076
      @mahis0076 Місяць тому

      @@DevOpsToolkit❤

  • @devopsjockey
    @devopsjockey 10 місяців тому +1

    Prerequisites

  • @chatterjeeriju56
    @chatterjeeriju56 4 місяці тому +1

    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

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

      Not sure... I tend to always use Ingress for anything accessible from outside the cluster.

  • @bules12
    @bules12 10 місяців тому +1

    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?

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

      Crossplane serves Bety different purpose from Fargate and Karpenter. You would use Crossplane to create and manage Fargate cluster and networking and everything else.

    • @bules12
      @bules12 10 місяців тому +1

      @@DevOpsToolkit great to know! Didn’t thought about mixing everything 😊

  • @soulspirit86
    @soulspirit86 9 місяців тому +1

    nice tutorial. but spinning up a db.m5.large for over 100$ a month just for this demo is a bit silly.

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

      You're right. I'll change it to a smaller size.

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

      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.

    • @soulspirit86
      @soulspirit86 9 місяців тому +1

      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