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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec8023758e5b18fa45f15235bb0e3a85b7fb7a5663f0d07a23ec5115342ef9e1
4
- data.tar.gz: acefd153cfd10dac01f9dd3e315e5dcfd4252f5bb2e6b0dfc5624b34190c569f
3
+ metadata.gz: 1f83fd95749307479542afb2f0dba2b15a298d57ee3114c769cceca7015d6036
4
+ data.tar.gz: 69877057d0f1eea7a6df17d457ea94928dd0491e0a6d07184b3a430c9ce13cc6
5
5
  SHA512:
6
- metadata.gz: fa0efda34bdb11e2394065dbcb5661c4f6a30e35e928821e1e9c0cea129df1ac03a2f224e18e45fc204cc85c545ea68e4a05426843096ee7d3ee9425a9746712
7
- data.tar.gz: 4d9c05b50e2fc9baf0454fdfd473fd70e509775211a71ee9f8df14ba60618e67386bca2f8a562a62f1b253b9f6ab37a166f889b49a9fa41bb24945ba9c8b76e5
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/tfvars/) & [Layering](https://terraspace.cloud/docs/tfvars/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/tfvars/full-layering/).
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] == 'text'
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)
@@ -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.
@@ -1,3 +1,3 @@
1
1
  module Terraspace
2
- VERSION = "2.2.17"
2
+ VERSION = "2.2.18"
3
3
  end
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.17
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: 2024-05-30 00:00:00.000000000 Z
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.4.19
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: