• Mniot
      link
      fedilink
      English
      arrow-up
      7
      ·
      3 days ago

      OpenTofu is mostly getting users from the corporate world. My work is on Slack and we’re moving to OT. The lowest-friction for me as an OT-when-at-work user is to add another Slack. (I’d personally rather that they used an open platform. But it’s easy for me to see why they didn’t.)

      • Maestro@fedia.io
        link
        fedilink
        arrow-up
        3
        ·
        3 days ago

        What is a good open platform for the tech business? My corp want to go full Teams, which sucks even more than Slack. At least most tooling has a Slack integration of some sort.

        • Mniot
          link
          fedilink
          English
          arrow-up
          2
          ·
          3 days ago

          I don’t know. I might say “Matrix” and run a private server? But that’s a bunch of IT work. It’s attractive to use a SaaS because you don’t have to do any long-term planning or hiring; just pay Slack a crazy amount of money and it all works.

          Corps also like a commercial paid service because they get a contract with an SLA (even if it’s rare to actually get anything from these SLAs).

        • Paragone
          link
          fedilink
          English
          arrow-up
          2
          ·
          3 days ago

          Is https://huly.io/ any good?

          https://elest.io/open-source/huly offers managed-hosting, but their “if you want REAL support, that is $50/mo extra subscription” thing is something to consider…

          There’s got to be something that they’re offering, there ( I’m probably going to be using hosted-Lemmy for my publishing-platform, soon, so these questions are oblique to mine )

          _ /\ _

    • Bogasse@lemmy.ml
      link
      fedilink
      arrow-up
      7
      ·
      3 days ago

      Plus, I don’t find slack super competitive in terms of features & usability.

      I remember having a much better experience with mattermost.

    • IsThisAnAI@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      3 days ago

      Because most successful open source has commercial backing. Funny enough, most developers like to get paid.

  • idefix@sh.itjust.works
    link
    fedilink
    arrow-up
    24
    arrow-down
    1
    ·
    3 days ago

    I felt completely lost. What is Terraform?

    Terraform is a tool that codifies cloud APIs into declarative configuration files to automate infrastructure provisioning and management

    Not exactly sure what that means, but that may help someone!

    • BlackEco@lemmy.blackeco.com
      link
      fedilink
      arrow-up
      37
      ·
      edit-2
      3 days ago

      Terraform is part of a movement called “Infrastructure as Code” (IaC) which allows engineers to define their cloud infrastructure using code.

      This is extremely useful as it allows you to:

      • version infrastructure changes

      • automate resource and configuration creation and management

      • have reproducible environments (think production and staging envs, or deploying a new production env to another datacenter)

      Terraform (and OpenTofu) is different to most IaC project as it is agnostic of cloud providers: you can use it to deploy infrastructure to multiple providers, where their competitors are limited to their own platform (I think of AWS’s Cloud Development Kit)

      • Feyd
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        3 days ago

        In my experience with AWS, you run into issues using terraform that CDK just doesn’t have. I’d rather have a different reliable system for each cloud environment than one system that is suboptimal for each environment. Since the providers are different, you don’t really have anything in common besides using HCL as the language anyway.

        • ScoreDivision
          link
          fedilink
          arrow-up
          1
          ·
          3 days ago

          Out of curiosity, what kind of issues have you faced? I work with aws in gov and terraform is used for everything, I’ve not encountered any issues as of yet.

          • Feyd
            link
            fedilink
            arrow-up
            1
            ·
            3 days ago

            The one that comes to mind is changing the security group for lambdas from an auto generated one (unspecified in terraform) to a specified one. It had some kind of chicken/egg situation so I ended up having to run two change sets - one to have both security groups set then another to remove the extra. Had to do the same thing in cdk and it just worked. There have been other similar things where everything is fine until you hit some edge case and then you’re just wasting time and money doing acrobatics to work around the quirks (that don’t exist in cdk).

            I’m not in the devops group and they’re attached to TF for some reason so I don’t get a say in what we use, but I am the “everything is busted call in anyone that can help” guy so I end up dealing with the problems lol

      • Mniot
        link
        fedilink
        English
        arrow-up
        3
        ·
        3 days ago

        it is agnostic of cloud providers: you can use it to deploy infrastructure to multiple providers

        Nicely put. I frequently see the first part of this sentence and not the second. (Maybe I only pay attention to the first part and then disappoint myself…)

        Terraform/Tofu allow me to use the same basic syntax and to have one project that controls AWS/GCP/K8s/my home servers, but I cannot use it to describe “a running server process” and just deploy that on any of those places. Instead I’d need to have like aws_beanstalk_service { ... } and gcp_application { ... } and kubernetes_manifest { ... } and systemd_service { ... } and the contents of those blocks would be totally different (and I’d need a bunch of different ancillary blocks for each of those).

    • CameronDev
      link
      fedilink
      arrow-up
      8
      arrow-down
      3
      ·
      3 days ago

      Its for easily deploying virtual machines. You can specify the VM specs, give it an install disk and some instructions, and it will churn out a VM for you.

      Honestly, it’s not great in my experience, nothing about it is common or portable, so if you change your VM host, it might all fall apart.

      • BlackEco@lemmy.blackeco.com
        link
        fedilink
        arrow-up
        7
        ·
        3 days ago

        It’s for far more than just deploying VMs: you can create pretty much anything you can on a cloud provider, such as databases, network rules, access tokens, object storage, etc.

        • CameronDev
          link
          fedilink
          arrow-up
          5
          arrow-down
          3
          ·
          edit-2
          3 days ago

          Yeah, but I was trying to keep the description basic, to avoid turning it into a buzzword salad.

          Have you used it much? Like it? Hate it? I’m curious to know others thoughts on it.

      • pezhore@infosec.pub
        link
        fedilink
        arrow-up
        4
        ·
        3 days ago

        nothing about it is common or portable, so if you change your VM host, it might all fall apart.

        Disclaimer, I’m pretty much elbow deep into terraform daily and have written/contributed to a few providers.

        A lot of this is highly dependent upon the providers (the thing that allows the Terraform engine to interface with APIs for AWS, Proxmox, vSphere, etc. The Telmate Proxmox provider in particular is/was quite awful with not realizing a provisioned VM had moved to a new host.

        Also, the default/tutorial code tends to be not very flexible. The game changer for me was using the built-in functions for decoding yaml from a config file (like yamldecode(file(config.yml)) in a locals block. You can then specify your desired infrastructure with yaml and (if you write your Terraform code correctly) you can blowout hundreds of VMs, policies, firewall rules, dns records etc with a single manifest. I’ve also used the local_file resource with a Terraform file template to dynamically create an Ansible inventory file based on what’s deployed.

        • CameronDev
          link
          fedilink
          arrow-up
          1
          ·
          3 days ago

          I was using it to deploy VMs to vsphere, and to test, started by deploying against a local KVM. Got it all working, copied the config to my prod vsphere, hoping I could just update the creds, and bunch of the KVM flags didn’t work for vsphere, so I had to fix/rewrite them, which wasted a lot of time.

          TF would be amazing if it was a single API that appled generically to all backends. And it sorta is for the most part, but there are just a few footguns that can really spoil the mood. If they had a core API and anything non-portable was clearly documented, that would be good as well.

          • pezhore@infosec.pub
            link
            fedilink
            arrow-up
            3
            ·
            3 days ago

            Yeah, that’s the other thing to keep in mind, since the KVM APIs are different from the vSphere APIs, you can’t just swap providers without changes. But if you were going from a test vSphere stack to a prod, you could update the endpoint and be just fine.

            Hashicorp has caught some shit in the past about claiming the code covers multiple providers. Technically, it can if you do weird shit with modules, but in reality there isn’t a clean way to have a single, easily understandable project that can provision to multiple platforms.

        • CameronDev
          link
          fedilink
          arrow-up
          1
          ·
          3 days ago

          Which part? Thats exactly what I’ve used terraform for, it might not be the full capabilities of it, but its one of the main use case?

    • Kissaki
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 days ago

      Infrastructure configuration that is automatically applied to the cloud infrastructure. Like starting and stopping new instances and services, changing connections between them, etc. (I assume anyway.)

    • anyhow2503@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      3 days ago

      Imagine a tool that gives you a language in which you can describe the hardware resources you want from a cloud provider. Say you want multiple different classes of servers with different sets of firewall rules. Something like Terraform allows you to put that into a text-based form, make changes to it, re-run the tool and expect resources to be created, changed and destroyed to match what you wrote down.

  • ragebutt@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    14
    ·
    3 days ago

    Based on the name I thought this was gonna be some platform to make homemade tofu more accessible to people and I was thinking “it’s really not all that hard to make, that’s kind of silly”

    going after big nasoya

  • Colloidal
    link
    fedilink
    English
    arrow-up
    5
    ·
    3 days ago

    I don’t get it. Why go through the trouble and stay in a license that still allows Hashicorp / IBM to benefit from community contributions?

    • litchralee@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      9
      arrow-down
      4
      ·
      edit-2
      3 days ago

      stay in a license that still allows Hashicorp / IBM to benefit from community contributions?

      I don’t see how this is the case. As Hashicorp explains, they switched from the open-source Mozilla Public License 2.0 (MPL) to the proprietary Business Source License (BSL) in order to apply restrictions upon users of Terraform:

      Organizations providing competitive offerings to HashiCorp will no longer be permitted to use the community edition products free of charge under our BSL license.

      The terms of the MPL and BSL are incompatible, insofar that Hashicorp cannot unilaterally relicense MPL code from OpenTofu into BSL code in Terraform. But Hashicorp could still use/incorporate OpenTofu MPL code into Terraform, provided that they honor the rest of the obligations of the MPL.

      This is exactly the same situation as what Hashicorp was obliged to do before the licensing kerfuffle, so it cuts against Hashicorp’s objective: why continue developing legacy Terraform if OpenTofu is going to provide continuity? Perhaps they only intend to develop new, exclusive features that build upon the common legacy code, but users would now retain an option to reject those pricy add-ons and just stick with the free, open-source functionality from OpenTofu.

      It seems to me less about giving the finger to Hashicorp and more about giving users a choice in the matter. Without OpenTofu, the userbase are forced into the BSL terms of Terraform, where Hashicorp could unilaterally prohibit any production use by yet another license change. That’s no way to live or work, with such a threat hanging overhead. OpenTofu lifts that threat by providing competition, and so maybe does kinda throw the finger at Hashicorp anyway.

      On the flip side, precisely because MPL code cannot be unilaterally relicensed to BSL, if OpenTofu starts to gain new features that Terrarform doesn’t have, Hashicorp can incorporate those features but they won’t be unique. Why would a paying customer give money to Hashicorp for something that OpenTofu provides for free? The ecosystem of features cuts both ways.

      Finally, it gives Hashicorp an out: if they acquiesce in future, their BSL code can be unilaterally relicensed as MPL once more, thus allowing code sharing with OpenTofu. Had OpenTofu picked a different license, this could have been much harder. But as described in the OpenTofu manifesto, continuity was the goal.

      • Colloidal
        link
        fedilink
        English
        arrow-up
        4
        ·
        2 days ago

        First of all thank you for your thoughtful response. I do disagree on a few key points though:

        The terms of the MPL and BSL are incompatible, insofar that Hashicorp cannot unilaterally relicense MPL code from OpenTofu into BSL code in Terraform. But Hashicorp could still use/incorporate OpenTofu MPL code into Terraform, provided that they honor the rest of the obligations of the MPL.

        When you can still use code from a license and distribute the end result under a different license, that means they are compatible. Just like the MIT is compatible with any other license.

        if OpenTofu starts to gain new features that Terrarform doesn’t have, Hashicorp can incorporate those features but they won’t be unique.

        So they are benefiting from improvements made in OpenTofu.

        Why would a paying customer give money to Hashicorp for something that OpenTofu provides for free?

        To access the features that are exclusive to Terraform. Companies spend unglodly amounts of money to pay for MS Sharepoint (completely different product, just giving an example of an expensive product with competitive groupware options in the market). Why wouldn’t they pay for Terraform, especially if it included a support contract? I think you are severely underestimating the willingness of customers to pay for service if you don’t think that would happen.

        And all features henceforth developed for Terraform would be exclusive to it, while all features developed for OpenTofu would be available to Terraform because the MPL is such a pushover license that doing so is trivial. OpenTofu will always stay behind in this scheme. In other words, any developer contributing to OpenTofu is donating work to IBM. I bet they are more than okay with that.

        Had they moved new OpenTofu contributions to a strong copyleft license, OpenTofu would lose nothing, while Hashicorp/IBM would lose the freeloading of FOSS developer’s contributions. IBM still has an out in this scenario, which is offering services to paying customers, just like Hashicorp did before the licensing fiasco. It’s a lucrative business model, and one they are good at.