Comments (9)
Thanks @pselle for the update.
Here's our use-case.
Cloud Posse is a massive user of Terraform, as well as dozens of other tools. We distribute our toolchain as alpine, debian, and redhat packages so we have a consistent way for each distribution to install the tools. These are tools we use in our docker images, local development and test infrastructure. Having a package management system makes that very easy for our community and customers.
We now rely on terraform-config-inspect
for our tests to pass. We use it to ensure all modules are pinned to a version and not a branch.
problem
Every package management system out there relies on semver. In order to release a package for terraform-config-inspect
we need to have a semantic version associated with it.
Additionally, without releases, it's hard to pin to a version. Granted we could pin to a SHA, the sha is not a valid semver.
Depending on go get
as the installer requires a go build system, which limits adoption. At the same time, the terraform-config-inspect
tool is not limited to developers of terraform-the-language; it's useful for developers using the language, who don't have go setup.
solution
Our solution to releases is very easy and could be adopted by this project.
The gist of it is always cut a release on merge to master. I could also share how we do it, but sounds like GitHub actions like the one we use are not in scope. =)
It'd be helpful to understand what the opposition is to cutting releases and distributing binaries? =)
from terraform-config-inspect.
Code for PR is already there.
Bonial-International-GmbH@c38bd00
from terraform-config-inspect.
@osterman We do not intend to add releases to this project. However, it would be helpful if you shared a bit more about the use cases why/where you're using terraform-config-inspect and why a binary release would be helpful to that workflow.
from terraform-config-inspect.
hello @osterman
we also use terraform a lot at Claranet and I use terraform-config-inspect in some of our CIs also to check some things but more to "parse" hcl module config (i.e. to get default value of variables).
I also would prefer to rely on release but I use a docker image (https://hub.docker.com/repository/docker/claranet/terraform-ci) to workaround this (CI uses this image ensuring the "version" is the always the same even if it does not point to any tag/release while the docker image is not updated itself).
To check if a module is pinned I use https://github.com/terraform-linters/tflint/ with the rule terraform_module_pinned_source
may be it can help you.
from terraform-config-inspect.
Thanks @xp-1000 that's a good tip!
from terraform-config-inspect.
It'd be helpful to understand what the opposition is to cutting releases and distributing binaries?
I too would like to know what the opposition is to cutting releases?
R.
from terraform-config-inspect.
Same need for a release. We use terraform-config-inspect to generate a web page with all the Terraform projects at our organization for tracking purpose. This web page contains for each project the list of modules and providers used.
from terraform-config-inspect.
Any update?
from terraform-config-inspect.
👀
from terraform-config-inspect.
Related Issues (20)
- Add endline position for all entities
- Add "profile" information on AWS provider
- unable to install HOT 3
- Disambiguate variable defaults with "empty" values from undefined
- Feature Request: Support sensitive attribute for outputs HOT 3
- Panic when calling LoadModuleFromFile HOT 3
- Use finalized io/fs.FS interface definitions HOT 1
- Feature Request: Support sensitive attribute for variables HOT 1
- 'go get ...' install method fails on MacOS/homebrew HOT 2
- Module directory main.tf does not exist or cannot be read. HOT 1
- Incompatible types using embed.FS type in LoadModuleFromFilesystem HOT 2
- Unable to get locals block data HOT 1
- Variable validation block is not parsed HOT 11
- Json UNMarshal of tfconfig.Module fails due to ResourceMode not supporting UNmarshalJSON HOT 1
- Recursive child modules?
- Support rich provider configurations
- Fail to install under go version 1.17 HOT 1
- Add CLI Version flag
- Add output `type`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from terraform-config-inspect.