Terraform vs. Crossplane vs. Ansible - Rivals or Allies?

  Рет қаралды 13,881

DevOps Toolkit

DevOps Toolkit

Күн бұрын

In this video we dive deep into the world of Infrastructure as Code (IaC) and resource management and explore tools like Terraform, Crossplane, Ansible, Helm, and a few others. Are they competitors, or can they function as allies within your DevOps toolkit?
#Terraform #Ansible #Crossplane
Consider joining the channel: / devopstoolkit
▬▬▬▬▬▬ 🔗 Additional Info 🔗 ▬▬▬▬▬▬
➡ Transcript: devopstoolkit....
▬▬▬▬▬▬ 💰 Sponsorships 💰 ▬▬▬▬▬▬
If you are interested in sponsoring this channel, please use calendar.app.g... to book a timeslot that suits you, and we'll go over the details. Or feel free to contact me over Twitter or LinkedIn (see below).
▬▬▬▬▬▬ 👋 Contact me 👋 ▬▬▬▬▬▬
➡ Twitter: / vfarcic
➡ LinkedIn: / viktorfarcic
▬▬▬▬▬▬ 🚀 Other Channels 🚀 ▬▬▬▬▬▬
🎤 Podcast: www.devopspara...
💬 Live streams: / devopsparadox

Пікірлер: 72
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
Do you think that solutions like Ansible, Terraform/Pulumi/Helm, and Crossplane should be combined or one of those is enough.
@DerJoe92
@DerJoe92 4 ай бұрын
I'd say don't use Ansible for sending requests anywhere (except for Git* APIs maybe). Crossplane can very well be combined with one of the other three but I don't see the point in chaining Terraform, Helm or any of those. That would only make everything more obscure, I guess.
@mmtdavi
@mmtdavi 4 ай бұрын
I like to use Terraform for building backbone infrastructure (core resources, in general), and to combine Crossplane with Helm to build app related objects (the same way Helm templates defines how our app Deployment and HPA looks like, Crossplane defines it's IAM Role, IAM Policy, Route53 Record, Vault Role, Database connections, etc).
@Ciranoeusebi
@Ciranoeusebi 4 ай бұрын
I'm currently working on using the Ansible and Terraform providers for crossplane. The idea being generating compositions based on TF providers that already exist or ansible roles that we have already built. i.e: "VMAccess" is a composition that uses an ansible role (through the Crossplane Ansible Provider) to add an ssh key into a server. We can then use any k8s visualizer to see who has access to which VM effectively avoiding building APIs for granting/removing/reporting on permission since k8s+crossplane+ansible work together as one
@isaacaymerich2741
@isaacaymerich2741 4 ай бұрын
you only need nix: terranix, kubenix, nixos enjoy :)
@RobertFabiano
@RobertFabiano 4 ай бұрын
Mind blown 🤯 thank you. Going to share this video with anyone who needs it.
@GeraldOSullivan
@GeraldOSullivan 4 ай бұрын
Very insightful. Your point about having a control plane on this side of the API requests in a hybrid environment is well made. Well done Victor.
@jean-gertnesselbosch9879
@jean-gertnesselbosch9879 Ай бұрын
very instructive ! got the idea now of what crossplane is for. thank you !
@diegoamaya6591
@diegoamaya6591 4 ай бұрын
Enlightening analysis, very helpful to plenty discussion many of us (have been/ are dealing with), totally agree, thanks
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
Thanks a ton @diegoamaya6591
@pirolas001
@pirolas001 4 ай бұрын
Another great video!! A lot of work into it! I'm sharing it once again! Thank you for these!
@meshuga27
@meshuga27 4 ай бұрын
Terraform has been created about 14 years ago and is here to stay for specific use cases, especially with IBM support now… Crossplane won’t replace Terraform as it requires k8s, that’s not always there. Infra tools area is quite disruptive and changing, exciting to see what future will bring 🙂
@vimalneha
@vimalneha 4 ай бұрын
What an informative video! I virtually wrote each line of the talk.
@SiCrip09
@SiCrip09 4 ай бұрын
My girlfriend remarked on how this guy never styles his hair, to which I replied, “That’s because we prioritize crafting excellent code over having perfectly styled hair.” 😂
@anastasiiakhoronzhuk9969
@anastasiiakhoronzhuk9969 4 ай бұрын
😂😂😂
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
I literally do not have a single comb. The style of my hair mostly depends on random movements I make while washing it.
@LawZist
@LawZist 4 ай бұрын
Shorter hair style can fit you very well. Anyhow, love your videos!
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
@LawZist the only problem is lazyness. I tend to go to a hairdresser only after I realized that i look like a caveman. That's typically twice a year. Then i tell my barber to cut as short as possible so that i don't have to come again any time soon.
@uidx-bob
@uidx-bob 3 ай бұрын
@@DevOpsToolkitI feel you may be my lost brother. I operate the same way. I just wear a baseball hat once I go caveman and go full Sasquatch for a few more months before the hair cut. 😂
@DerJoe92
@DerJoe92 4 ай бұрын
We are planning to adopt Talos Linux in our datacenters which I am really excited about, because it is a 100% API-driven OS. If it works, it's gonna let us ditch a large amount of all the self-crafted, half-automated, and maintenance-heavy scripts, pipelines & Ansible playbooks for provisioning and configuring infrastructure and shift towards APIs even for the machines and OSs 😏
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
That's how it should. We should reject using any solution that cannot be managed through an API.
@maneshipocrates2264
@maneshipocrates2264 4 ай бұрын
Thanks for this video and maybe a part II :). But wonderful and clear to me - who just started this cloud journey.
@himbary
@himbary 2 ай бұрын
Thanks, great history lesson
@javisartdesign
@javisartdesign 4 ай бұрын
good points! very useful information. thanks
@ev4043-x6e
@ev4043-x6e 3 ай бұрын
"Kumbaya my Lord" I didn't know this song Now I know a new song
@tiriyoncontinuum9519
@tiriyoncontinuum9519 19 күн бұрын
3:31 it's CONTROL, not COHTROL leviosa hehe, cyrillic
@tomasferrari92
@tomasferrari92 4 ай бұрын
Good one Viktor 👌
@east4ming
@east4ming 4 ай бұрын
With IBM's acquisition of hashicorp, perhaps Terraform and Ansible will be more deeply integrated?
@arnabseal7629
@arnabseal7629 4 ай бұрын
I wholeheartedly think that pulumi should be included here as well.
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
My bad. I should have been clearer that Pulumi follows the same logic (within the context of that video) as Terraform.
@arnabseal7629
@arnabseal7629 4 ай бұрын
Agreed. We have a super clean setup of redfish -> cobbler -> pulumi -> kubevela + argo. Works like a charm.
@ramonsong6707
@ramonsong6707 4 ай бұрын
@@arnabseal7629 I saw the Pulumi logo several times 15:47
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
@ramonsong6707 yeah. I mentioned it a few times. Within the context of that video if falls into the same category as terraform or even helm.
@IvanRizzante
@IvanRizzante 4 ай бұрын
Thanks for another great video! I think there is confusion about the differences between the different kind of tool, I feel the same whenever I hear that true GitOps can be obtained outside of Kubernetes, with the so called "Infrastructure as a Code" tools. Thanks for clarifying!
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
In theory, GitOps can be done outside Kubernets. In practice, as far as I know, no one built such a solution. Many say they did but those can be easily verified by asking them whether such solutions implement all four GitOps principles (opengitops.dev). The truth is that Kubernetes has quite a few baked-in capabilities that make GitOps much easier to implement. That's probably the reason why we don't see it outside Kubernetes. P.S. We had GitOps long time ago with Chef and Puppet (except that it was more like SvnOps) but those died in the meantime.
@IvanRizzante
@IvanRizzante 4 ай бұрын
@@DevOpsToolkit that's what I meant. I hear many saying: I do GitOps because I use Terraform but I don't think they catch the difference! Thanks for the clarification
@manikanta202
@manikanta202 3 ай бұрын
Viktor, this may not be relevant to this video but wanted to ask this...when using argo cd and crossplane together, which controller does the reconciliation of resources? Is it argo controller or crossplane controller? and how?
@DevOpsToolkit
@DevOpsToolkit 3 ай бұрын
Argo CD creates/updates/deletes resources defined in Git. Those resources can be, for example, Crossplane claims. Crossplane, on the other hand, reconciles all the child resources of those claims (what you define in Compositions) and, just as Argo CD looks for drifts between what is in Git and what is in a cluster, Crossplane looks for drifts between managed resources (those managed by compositions) and "real" resources (e.g., AWS, GCP, Azure, Kubernetes, GitHub, etc.). Does that explanation help?
@manikanta202
@manikanta202 3 ай бұрын
@@DevOpsToolkit yes... I was missing the Managed resource piece(which is specific to crossplane).. thank you for clarifying on that.
@ramonsong6707
@ramonsong6707 4 ай бұрын
Viktor, this video is gold, simple and well explained. From here to Hollywood and getting an OSCAR? I would like to manage OS through an API too, sucks ssh-ing or ssm-ing to change something, can I use ansible with Crossplane to expose an API to OS?
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
Crossplane is aimed towards enabling you to build your own APIs so you could create one for an OS, but that would be a strech. More often than not, third-parties should expose their "stuff" as API and you should focus on what matters to you (to your own services).
@DerJoe92
@DerJoe92 4 ай бұрын
You definitely should take a look at Talos Linux. We are testing it right now so I can't give you an experienced pov but it looks very promising. It is focused on running Kubernetes and is completely API-driven. It doesn't even have a shell but comes with its own CLI.
@not_a_human_being
@not_a_human_being 12 күн бұрын
Lol, I guess I'm one of the screaming at the screen. No, but seriously, I have code running locally, now I want it in the cloud. That's one task, and one tool should solve it. That's all. I don't think that's too much to ask.
@DevOpsToolkit
@DevOpsToolkit 12 күн бұрын
In that case your best bet is probably Ansible. Both terraform and crossplane require a bit of setup (in cloud?) before they're operational.
@not_a_human_being
@not_a_human_being 12 күн бұрын
@@DevOpsToolkit Thank you for your advice!
@prettybasic9545
@prettybasic9545 2 ай бұрын
bro is flexing his editing skills
@Jk-N8P
@Jk-N8P 4 ай бұрын
Thank you very much. Can you do a video on Harness CICD tool. There's been a drive to move from Azure DevOps to Harness in our organisation. Will be helpful if you can share your views.
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
I'm not sure I'll do harness. It's a tool of the past that is not adopted by many these days and is typically used by those who adopted it a while ago.
@davemeech
@davemeech 4 ай бұрын
Intro set expectations, I'm excited to get offended and angry.
@davemeech
@davemeech 4 ай бұрын
Update: great video, but I'm not outraged. Actually I'm outraged by the absence of content that induced outrage. Legally speaking, does that still count?
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
@davemeech i thought that saying that terraform and helm are essentially doing the same thing would be outrageous enough.
@davemeech
@davemeech 4 ай бұрын
I haven't used helm yet, perhaps I'm still in the infancy of my DevOps maturity. There we go, that's what I'll be outraged about.
@FirstJejoo
@FirstJejoo 4 ай бұрын
Petarda! 🎉
@DSDSDS1235
@DSDSDS1235 Ай бұрын
"cloud is sus" bro
@matscloud
@matscloud 4 ай бұрын
So... You can use crossplane even if you dont use k8s at all? I guess just like terraform and pulumi you could use cdk for aws, and terraform for your on prem, if thats where you come from?
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
I'm not sure I understood your question. Do you mean that you do not need to manage kubernetes clusters with Crossplane (but some other type of resources)?
@matscloud
@matscloud 4 ай бұрын
@@DevOpsToolkit yeah... Imagine if we didn't use k8s at all... And we wanted a control Plane trat can translate and do a drift detection between JSON for Devs... And Terraform CDK Pulumi that we use to actually manage Cloud APIs... Would CrossPlane work for that?
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
@matscloud why not use kubernetes? Before you answer that question, let me stress out that kubernetes is not used only as a platform to run apps packaged as container images. Even if you do not rin your apps in kubernetes you can still use kubernetes for many other things. That can be for control planes like those enabled by crossplane, for managing virtual machines with kubevirt, for running ci/CD pipelines, etc. As for continuous drift detection and reconciliation... We saw that the only reasonable way to do that is by performing it in individual resources and not projects as a whole. If you prefer terraform or a similar tool you would first need to break projects into individual resources and then do continuous drift detection and reconciliation on each of them. Not using kubernetes for that would be silly since that's hard to do and is already baked into kubernetes. What you can do (apart from breaking projects into resources) is create some sort of kubernetes operatora for terraform or whatever you're using. What I'm trying to say is not whether to use terraform or something else but, rather, that ignoring kubernetes would be a waste since it already comes with many important features baked into it. Use it to create APIs and to manage resources of any kind whereever they are. Know, whether what's managing those resources inside kubernetes is based on terraform, pulumi, crossplane, kubevirt, or anything else is of secondary importance. When we get a kubernetes controller that does something we stop caring what is powering such a controller.
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
@matscloud I forgot to comment on APIs. When I talk about them, I assume that you use to manage Cloud APIs. I was referring to your APIs. If you want to enable devs to do something, give them APIs to do that. Do not give them files and CLIs. Now, the only reasonable way to create APIs today (at least when managing resources is concerned) is by creating kubernetes CRDs. There are plenty of ways to do that.
@meyou118
@meyou118 4 ай бұрын
talos?
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
Talos is great but I'm not sure how it fits into the context of this video.
@goodvibes-gvo
@goodvibes-gvo 4 ай бұрын
And the project never got delivered!
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
Which project?
@JohnNguyen-x1w
@JohnNguyen-x1w 4 ай бұрын
Calm the fuck down. No I can't 😅
@gackerman99
@gackerman99 2 ай бұрын
as a scrub I learn so much basically every video you post. worries me though. there's too much to learn. not much hope for me
@DevOpsToolkit
@DevOpsToolkit 2 ай бұрын
One of my goals is to hell with that by providing info people can use to decide what is worth investing in and what is not.
@gackerman99
@gackerman99 2 ай бұрын
@@DevOpsToolkit yes, that's a good point. being economical with one's attention is important given the breadth of the subject. but it often feels to me like I'm under pressure to know everything about everything so I get worried when I realize how much I don't know.
@chadsly2
@chadsly2 4 ай бұрын
I haven't found the need to add Crossplane or Pulumi, yet. Other than that, I'm not sure how you can remove Terraform, Ansible, or Helm (or similar to Helm).
@DevOpsToolkit
@DevOpsToolkit 4 ай бұрын
I agree that you should not remove those. You need a tool that translates code to API requests. What you might be missing is a way to build your own APIs.
@Kxebs
@Kxebs 4 ай бұрын
Great explanation!
Nix for Everyone: Unleash Devbox for Simplified Development
20:16
DevOps Toolkit
Рет қаралды 15 М.
The joker favorite#joker  #shorts
00:15
Untitled Joker
Рет қаралды 30 МЛН
Крутой фокус + секрет! #shorts
00:10
Роман Magic
Рет қаралды 18 МЛН
Your CI/CD Pipelines Are Wrong - From Monoliths To Events
22:41
DevOps Toolkit
Рет қаралды 13 М.
How to Get a Job in Cybersecurity (Tips from a Recruiter)
6:23
Avidity Recruitment
Рет қаралды 1,5 М.
The Home Server I've Been Wanting
18:14
Hardware Haven
Рет қаралды 22 М.
Developer Platform Consoles Should Be Dumb
20:18
DevOps Toolkit
Рет қаралды 7 М.
Say Goodbye to Containers - Ephemeral Environments with Nix Shell
16:58
Unleashing WebAssembly in Kubernetes with Kwasm
15:16
DevOps Toolkit
Рет қаралды 6 М.
How To Create A Complete Internal Developer Platform (IDP)?
27:01
DevOps Toolkit
Рет қаралды 34 М.