terraspace 2.2.17 → 2.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +1 -1
- data/lib/terraspace/all/grapher.rb +5 -1
- data/lib/terraspace/all/runner.rb +8 -0
- data/lib/terraspace/command.rb +1 -1
- data/lib/terraspace/terraform/remote_state/fetcher.rb +1 -1
- data/lib/terraspace/version.rb +1 -1
- metadata +3 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f83fd95749307479542afb2f0dba2b15a298d57ee3114c769cceca7015d6036
|
4
|
+
data.tar.gz: 69877057d0f1eea7a6df17d457ea94928dd0491e0a6d07184b3a430c9ce13cc6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b715f342f28a2783a16b2dcd72b15c83e4d90327ec1f893db8de2fbcfabc7baa8656b2a6da054d49a995527ad505e03e9116269aaf89f62a4bf62055d51be6a4
|
7
|
+
data.tar.gz: 35bdaa1626bb52beaba8b3924385eb264b84d561dcdd47fdd9ec917d81bd3aba3eb24c5d2db94387c3852996c5038b9042bc4164355c496758d5dd0607cabecf
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [2.2.18] - 2025-07-21
|
7
|
+
- [#351](https://github.com/boltops-tools/terraspace/pull/351) Fix dead links in README.me
|
8
|
+
- [#365](https://github.com/boltops-tools/terraspace/pull/365) RFC: Support `json` format with `graph` command
|
9
|
+
- [#366](https://github.com/boltops-tools/terraspace/pull/366) skip check terraspace project for "check" command
|
10
|
+
- [#367](https://github.com/boltops-tools/terraspace/pull/367) Fix state file fetching race condition
|
11
|
+
|
6
12
|
## [2.2.17] - 2024-05-30
|
7
13
|
- [#347](https://github.com/boltops-tools/terraspace/pull/347) fixing typo in untaint help file
|
8
14
|
- [#348](https://github.com/boltops-tools/terraspace/pull/348) Allow up to terraform `1.5.7`
|
data/README.md
CHANGED
@@ -111,7 +111,7 @@ To install modules:
|
|
111
111
|
|
112
112
|
* [DRY](https://terraspace.cloud/docs/intro/how-terraspace-works/): You can keep your code DRY. Terraspace builds your Terraform project with common `app` and `config/terraform` structure that gets built each deploy. You can override the settings if needed, like for using existing backends. See: [Existing Backends](https://terraspace.cloud/docs/state/existing/).
|
113
113
|
* [Generators](https://terraspace.cloud/docs/generators/): Built-in generators to quickly create the starter module. Focus on code instead of boilerplate structure.
|
114
|
-
* [Multiple Environments](https://terraspace.cloud/docs/patterns/multiple-envs/): [Tfvars](https://terraspace.cloud/docs/
|
114
|
+
* [Multiple Environments](https://terraspace.cloud/docs/patterns/multiple-envs/): [Tfvars](https://terraspace.cloud/docs/layering/) & [Layering](https://terraspace.cloud/docs/layering/layering/) allow you to the same code with different tfvars to create multiple environments. Terraspace conventionally loads tfvars from the `tfvars` folder. Rich layering support allows you to build different environments like dev and prod with the same code. Examples are in [Full Layering](https://terraspace.cloud/docs/layering/full-layering/).
|
115
115
|
* [Deploy Multiple Stacks](https://terraspace.cloud/docs/intro/deploy-all/): The ability to deploy multiple stacks with a single command. Terraspace calculates the [dependency graph](https://terraspace.cloud/docs/dependencies/) and deploys stacks in the right order. You can also target specific stacks and deploy [subgraphs](https://terraspace.cloud/docs/dependencies/subgraphs/).
|
116
116
|
* [Secrets Support](https://terraspace.cloud/docs/helpers/aws/secrets/): Terraspace has built-in secrets support for [AWS Secrets Manager](https://terraspace.cloud/docs/helpers/aws/secrets/), [AWS SSM Parameter Store](https://terraspace.cloud/docs/helpers/aws/ssm/), [Azure Key Vault](https://terraspace.cloud/docs/helpers/azure/secrets/), [Google Secrets Manager](https://terraspace.cloud/docs/helpers/google/secrets/). Easily set variables from Cloud secrets providers.
|
117
117
|
* [Terrafile](https://terraspace.cloud/docs/terrafile/): Terraspace makes it easy to use Terraform modules sourced from your own git repositories, other git repositories, or the Terraform Registry. The git repos can be private or public. This is an incredibly powerful feature of Terraspace because it opens up a world of modules for you to use. Use any module you want.
|
@@ -12,6 +12,10 @@ module Terraspace::All
|
|
12
12
|
graph = build_graph
|
13
13
|
if @options[:format] == "text"
|
14
14
|
text(graph.top_nodes)
|
15
|
+
elsif @options[:format] == "json"
|
16
|
+
puts (graph.build.map do |batch|
|
17
|
+
batch.map { |stack| stack.name }
|
18
|
+
end).to_json
|
15
19
|
else
|
16
20
|
draw(graph.nodes)
|
17
21
|
end
|
@@ -117,7 +121,7 @@ module Terraspace::All
|
|
117
121
|
|
118
122
|
# Check if Graphiz is installed and prints a user friendly message if it is not installed.
|
119
123
|
def check_graphviz!
|
120
|
-
return if @options[:format]
|
124
|
+
return if ['text', 'json'].include?(@options[:format])
|
121
125
|
|
122
126
|
installed = system("type dot > /dev/null 2>&1") # dot is a command that is part of the graphviz package
|
123
127
|
return if installed
|
@@ -29,6 +29,7 @@ module Terraspace::All
|
|
29
29
|
|
30
30
|
def deploy_batches
|
31
31
|
truncate_logs if ENV['TS_TRUNCATE_LOGS']
|
32
|
+
remove_remote_state_cache
|
32
33
|
build_modules
|
33
34
|
@batches.each_with_index do |batch,i|
|
34
35
|
logger.info "Batch Run #{i+1}:"
|
@@ -57,6 +58,13 @@ module Terraspace::All
|
|
57
58
|
report_errors # reports finall errors and possibly exit
|
58
59
|
end
|
59
60
|
|
61
|
+
def remove_remote_state_cache
|
62
|
+
remote_state_dir = "#{Terraspace.tmp_root}/remote_state"
|
63
|
+
|
64
|
+
logger.debug "Removing #{remote_state_dir}"
|
65
|
+
FileUtils.rm_rf(remote_state_dir)
|
66
|
+
end
|
67
|
+
|
60
68
|
def deploy_stack(node)
|
61
69
|
build_stack(node.name)
|
62
70
|
run_terraspace(node.name)
|
data/lib/terraspace/command.rb
CHANGED
@@ -117,7 +117,7 @@ module Terraspace
|
|
117
117
|
return if subcommand?
|
118
118
|
return if command_name.nil?
|
119
119
|
return if help_flags.include?(Terraspace.argv.last) # IE: -h help
|
120
|
-
return if %w[-h -v --version check_setup completion completion_script help new setup test version].include?(command_name)
|
120
|
+
return if %w[-h -v --version check check_setup completion completion_script help new setup test version].include?(command_name)
|
121
121
|
return if File.exist?("#{Terraspace.root}/config/app.rb")
|
122
122
|
return unless Terraspace.check_project
|
123
123
|
logger.error "ERROR: It doesn't look like this is a terraspace project. Are you sure you are in a terraspace project?".color(:red)
|
@@ -126,7 +126,7 @@ module Terraspace::Terraform::RemoteState
|
|
126
126
|
end
|
127
127
|
|
128
128
|
def state_path
|
129
|
-
"#{Terraspace.tmp_root}/remote_state/#{@child.build_dir}/state.json"
|
129
|
+
"#{Terraspace.tmp_root}/remote_state/#{Process.pid}/#{@child.build_dir}/state.json"
|
130
130
|
end
|
131
131
|
|
132
132
|
# Note we already validate mod exist at the terraform_output helper. This is just in case that logic changes.
|
data/lib/terraspace/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terraspace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: activesupport
|
@@ -346,7 +345,6 @@ dependencies:
|
|
346
345
|
- - ">="
|
347
346
|
- !ruby/object:Gem::Version
|
348
347
|
version: '0'
|
349
|
-
description:
|
350
348
|
email:
|
351
349
|
- tung@boltops.com
|
352
350
|
executables:
|
@@ -955,7 +953,6 @@ metadata:
|
|
955
953
|
homepage_uri: https://terraspace.cloud
|
956
954
|
source_code_uri: https://github.com/boltops-tools/terraspace
|
957
955
|
changelog_uri: https://github.com/boltops-tools/terraspace/blob/master/CHANGELOG.md
|
958
|
-
post_install_message:
|
959
956
|
rdoc_options: []
|
960
957
|
require_paths:
|
961
958
|
- lib
|
@@ -970,8 +967,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
970
967
|
- !ruby/object:Gem::Version
|
971
968
|
version: '0'
|
972
969
|
requirements: []
|
973
|
-
rubygems_version: 3.
|
974
|
-
signing_key:
|
970
|
+
rubygems_version: 3.6.7
|
975
971
|
specification_version: 4
|
976
972
|
summary: 'Terraspace: The Terraspace Framework'
|
977
973
|
test_files:
|