Git Product home page Git Product logo

Comments (9)

ljfranklin avatar ljfranklin commented on July 26, 2024

@analytically unfortunately this resource can't use the built-in remote state backends at all right now. Concourse resources are required to implement a check function that can look for new versions of a resource. To have tighter control over the state files, the resource currently supports only S3. However, now that backends are listed directly in the Terraform config files it becomes even more desirable to support all the backends. I'll have to do some more thinking on this.

Out of curiosity, would you use any backends other than S3?

from terraform-resource.

analytically avatar analytically commented on July 26, 2024

I'm just using S3.

from terraform-resource.

ljfranklin avatar ljfranklin commented on July 26, 2024

Opened a Concourse issue here to see if the Concourse team has any ideas for a nice implementation around supporting state backends.

Also if anyone has a strong need for backend support other than the current S3 support this resource provides, please leave a comment 👍

from terraform-resource.

Seraf avatar Seraf commented on July 26, 2024

Hello,

That's gonna be a mandatory change to run it automatically before any terraform command because of : https://github.com/hashicorp/terraform/blob/master/CHANGELOG.md#0100-beta1-unreleased

I don't like to have a dependency to terraform's server/availability.
Maybe could it be possible to have an option to share attach an external volume that may contains the providers binaries ? What do you think about it ?

from terraform-resource.

ljfranklin avatar ljfranklin commented on July 26, 2024

@Seraf thanks for the heads up, I'll start looking into how to handle that breaking change. Definitely agree that adding a runtime dependency on Terraform's servers isn't great. Baking the providers into the docker image and rebuilding on a daily timer or similar doesn't seem too bad.

from terraform-resource.

Seraf avatar Seraf commented on July 26, 2024

I agree but then we'll loose the capability to stick with a specific provider version. I'll try to think about how could it be handled

from terraform-resource.

Seraf avatar Seraf commented on July 26, 2024

@ljfranklin, I thought a little bit about it, I'm not sure that a docker image with providers will be enough : because of the version constraint in configuration, the providers will be setup in the local .terraform folder.
It also means that each project using different providers should have their own terraform image. Sounds a bit complicated to maintain in the long run.
But anyway, I think it's the same deal than npm, composer, bundle and all these libraries managers, it needs some "cache" from concourse itself. Maybe worth to use http://concourse.ci/running-tasks.html#caches to deal with it ?

Also, there was a new update about the apply feature : https://github.com/hashicorp/terraform/blob/master/website/upgrade-guides/0-10.html.markdown#interactive-approval-in-terraform-apply

It will be a breaking change for the way terraform is used by the terraform resource, so it needs to be handled before switching to the 0.10 version

from terraform-resource.

ljfranklin avatar ljfranklin commented on July 26, 2024

Here's a branch with the 0.10 changes. This calls init before running other CLI commands in order to download the providers. Will merge after the Terraform team officially releases 0.10.

@Seraf after looking at the provider distribution more closely, it does seem difficult to cache all the providers in the docker image. I'm leaning towards no caching for now and we'll see if anyone has reliability issues when fetching providers from the Hashicorp servers.

@analytically even though the resource now runs init, it still won't support the built-in state backends just yet. Still on my radar though.

from terraform-resource.

ljfranklin avatar ljfranklin commented on July 26, 2024

The latest image now includes Terraform v0.10.0 which makes calling init mandatory. Spinning out a separate issue for supporting remote state backends: #39.

from terraform-resource.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.