58 pointsby freeqaz7 hours ago6 comments
  • tbrownaw3 minutes ago
    Seems a bit convoluted.

    Compare for example, event sourcing. In that case, you keep a log of all actions taken, and determine the current state by replacing that log.

    Here, you have an action that you want to take (order a pizza). But you can't just do that directly, because it's too simple. So instead you tell yourself "I currently have 0 pizzas" (the initial empty state file) and "I want to have one pizza" (your configuration), and you ask it "how do I get there from here".

    And then after that is where the real trouble starts. You eat your pizza. You now have resource drift. If you try to correct that drift (does this provider even implement that?), terraform will think it needs to order you another pizza, because it still thinks you want to have one pizza. If you don't fix the drift, then next time you want a pizza you'll have to tell it that actually you want two pizzas. Because what you actually want is an action, but you have to work backwards from the current state (or rather, what terraform thinks the current state is) and what state to tell it you want in order to make it calculate they action.

    All of which is more or less the opposite of event sourcing. Instead of wanting a state and having to apply a sequence of events to get that state, you want an event and have to calculate a sequence of state diffs that will produce that event.

  • kylecazar2 hours ago
    "This is not a joke provider. Or, it kind of is a joke, but even though it's a joke it will still order you a pizza. You are going to get a pizza. You should be careful with this provider, if you don't want a pizza."

    I laughed...

    • abound2 hours ago
      My personal favorite bit:

      > 8) As far as I know, there is no programmatic way to `destroy` an existing pizza. `terraform destroy` is implemented on the client side, by consuming the pizza.

      10/10 infrastructure-as-code-based humor.

  • MNThomson2 hours ago
    Author here. I got nerdsniped at 2AM a few years back, never expected to see this on HN!
    • bostonsrean hour ago
      Do you have to run destroy first to order the same order again a second time?
      • jen2042 minutes ago
        I’d imagine taint would also do the trick.
  • dgrin91an hour ago
    Today I learned that dominos has a public API for ordering pizza? Or is this some reverse engineered shenanigans? I'm not a Domino's fan, but I need to find this pizzapi
  • fjaysdfsy2 hours ago
    I don't use Terraform/OpenTofu anymore. Thankfully you can enjoy this in Pulumi with their new TF provider support: https://www.pulumi.com/blog/any-terraform-provider
  • JojoFatsani4 hours ago
    Do they make a tofu pizza?