terraspace_plugin_aws 0.3.5 → 0.3.6
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 +3 -0
- data/README.md +4 -0
- data/lib/terraspace_plugin_aws/interfaces/helper/secret.rb +5 -0
- data/lib/terraspace_plugin_aws/interfaces/helper/secret_base.rb +14 -1
- data/lib/terraspace_plugin_aws/interfaces/helper/ssm.rb +8 -0
- data/lib/terraspace_plugin_aws/interfaces/helper.rb +2 -2
- data/lib/terraspace_plugin_aws/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cdced79235a57025ab37b33dbdf98d9146caffaa4f3eac5f40b2a657a99ea3ca
|
4
|
+
data.tar.gz: 154369a87b3ffb7fb8290a4b3564108b976e1f7826b0f36fa737b88050e4755c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 42ebf3fabea658ddb1876aaefa972888e2d2b958239eed92ad9ad9dd3a4d23dea83d67beefbdce28512585a3ceecdb7f904dc08ce8ce87859dcd3e354ada313e
|
7
|
+
data.tar.gz: 84c6a6dc52b9f645f5dab2ab1284eccca1d152034106b4a694f42294149d441aaa5bffc0e67cc37e17c5d990758396dadef0761617a3a606372ecc25954d5ea3
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,9 @@
|
|
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/).
|
5
5
|
|
6
|
+
## [0.3.6] - 2022-01-04
|
7
|
+
- [#17](https://github.com/boltops-tools/terraspace_plugin_aws/pull/17) aws_secret and aws_ssm: support expansion automatically
|
8
|
+
|
6
9
|
## [0.3.5] - 2021-12-30
|
7
10
|
- [#15](https://github.com/boltops-tools/terraspace_plugin_aws/pull/15) block public access support
|
8
11
|
- [#16](https://github.com/boltops-tools/terraspace_plugin_aws/pull/16) tagging support for s3 bucket and dynamodb table
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Terraspace AWS Plugin
|
2
2
|
|
3
|
+
[](https://www.boltops.com)
|
4
|
+
|
3
5
|
AWS Cloud support for terraspace.
|
4
6
|
|
5
7
|
## Installation
|
@@ -12,6 +14,8 @@ gem 'terraspace_plugin_aws'
|
|
12
14
|
|
13
15
|
## Configure
|
14
16
|
|
17
|
+
Terraspace Docs: [AWS Terraspace Plugin](https://terraspace.cloud/docs/plugins/aws/)
|
18
|
+
|
15
19
|
Optionally configure the plugin. Here's an example `aws.rb` for your terraspace project.
|
16
20
|
|
17
21
|
config/plugins/aws.rb
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module TerraspacePluginAws::Interfaces::Helper
|
2
2
|
class Secret < SecretBase
|
3
3
|
def fetch(secret_id)
|
4
|
+
secret_id = expansion(secret_id) if expand?
|
4
5
|
value = fetch_value(secret_id)
|
5
6
|
value = Base64.strict_encode64(value).strip if @base64
|
6
7
|
value
|
@@ -13,6 +14,10 @@ module TerraspacePluginAws::Interfaces::Helper
|
|
13
14
|
logger.info "WARN: secret_id #{secret_id} not found".color(:yellow)
|
14
15
|
logger.info e.message
|
15
16
|
"NOT FOUND #{secret_id}" # simple string so Kubernetes YAML is valid
|
17
|
+
rescue Aws::SecretsManager::Errors::ValidationException => e
|
18
|
+
logger.info "WARN: secret_id #{secret_id} not found".color(:yellow)
|
19
|
+
logger.info e.message
|
20
|
+
"INVALID NAME #{secret_id}" # simple string so tfvars valid
|
16
21
|
end
|
17
22
|
end
|
18
23
|
end
|
@@ -4,10 +4,23 @@ module TerraspacePluginAws::Interfaces::Helper
|
|
4
4
|
class SecretBase
|
5
5
|
include TerraspacePluginAws::Clients
|
6
6
|
include TerraspacePluginAws::Logging
|
7
|
+
extend Memoist
|
7
8
|
|
8
|
-
def initialize(options={})
|
9
|
+
def initialize(mod, options={})
|
10
|
+
@mod = mod
|
9
11
|
@options = options
|
10
12
|
@base64 = options[:base64]
|
11
13
|
end
|
14
|
+
|
15
|
+
private
|
16
|
+
delegate :expansion, to: :expander
|
17
|
+
def expander
|
18
|
+
TerraspacePluginAws::Interfaces::Expander.new(@mod)
|
19
|
+
end
|
20
|
+
memoize :expander
|
21
|
+
|
22
|
+
def expand?
|
23
|
+
!(@options[:expansion] == false || @options[:expand] == false)
|
24
|
+
end
|
12
25
|
end
|
13
26
|
end
|
@@ -1,6 +1,10 @@
|
|
1
1
|
module TerraspacePluginAws::Interfaces::Helper
|
2
2
|
class SSM < SecretBase
|
3
|
+
include Terraspace::Compiler::Dsl::Syntax::Mod::Backend
|
4
|
+
extend Memoist
|
5
|
+
|
3
6
|
def fetch(name)
|
7
|
+
name = expansion(name) if expand?
|
4
8
|
value = fetch_value(name)
|
5
9
|
value = Base64.strict_encode64(value).strip if @base64
|
6
10
|
value
|
@@ -13,6 +17,10 @@ module TerraspacePluginAws::Interfaces::Helper
|
|
13
17
|
logger.info "WARN: name #{name} not found".color(:yellow)
|
14
18
|
logger.info e.message
|
15
19
|
"NOT FOUND #{name}" # simple string so tfvars valid
|
20
|
+
rescue Aws::SSM::Errors::ValidationException => e
|
21
|
+
logger.info "WARN: name #{name} not found".color(:yellow)
|
22
|
+
logger.info e.message
|
23
|
+
"INVALID NAME #{name}" # simple string so tfvars valid
|
16
24
|
end
|
17
25
|
end
|
18
26
|
end
|
@@ -3,12 +3,12 @@ module TerraspacePluginAws::Interfaces
|
|
3
3
|
include Terraspace::Plugin::Helper::Interface
|
4
4
|
|
5
5
|
def aws_secret(name, options={})
|
6
|
-
Secret.new(options).fetch(name)
|
6
|
+
Secret.new(@mod, options).fetch(name)
|
7
7
|
end
|
8
8
|
cache_helper :aws_secret
|
9
9
|
|
10
10
|
def aws_ssm(name, options={})
|
11
|
-
SSM.new(options).fetch(name)
|
11
|
+
SSM.new(@mod, options).fetch(name)
|
12
12
|
end
|
13
13
|
cache_helper :aws_ssm
|
14
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terraspace_plugin_aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-dynamodb
|