dh-proteus 0.2.8 → 0.3.3
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/Gemfile.lock +6 -28
- data/lib/proteus/backend/backend.rb +6 -4
- data/lib/proteus/commands/apply.rb +0 -4
- data/lib/proteus/global_commands/validate.rb +25 -0
- data/lib/proteus/helpers.rb +9 -1
- data/lib/proteus/version.rb +1 -1
- metadata +7 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6a2fc0b898fae5d35182d34a30ee925d3b1f017514b9a5ea5bf1ef7a0f61a099
|
|
4
|
+
data.tar.gz: 5c2c564881da7463672c297ca56b95329f784266d8f7018850f74bc2d5936e59
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: acf91c5fa344141e5b704a72180e9e1ef375df52ce8122819ff7c9e36e465b99d0fb485c9a3d3cab86fcbbf72455a5b0989f4bce700127c5d59e695859b27cc7
|
|
7
|
+
data.tar.gz: 294544ff72bc27ac86c7e4cf925d9a00a0579e16e1d37f1048482003fb28c6809b92dbabac4dea087ccfafc816b35b85ba80d27ac21ff76a56226a1617dc5bae
|
data/Gemfile.lock
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
dh-proteus (0.
|
|
4
|
+
dh-proteus (0.3.3)
|
|
5
5
|
activesupport (~> 5.1.1)
|
|
6
|
-
aws-sdk-elasticsearchservice (~> 1.4.0)
|
|
7
|
-
aws-sdk-rds (~> 1.11.0)
|
|
8
|
-
aws-sdk-route53 (~> 1.7.0)
|
|
9
6
|
erubis (~> 2.7.0)
|
|
10
7
|
thor (~> 0.20.0)
|
|
11
8
|
|
|
@@ -17,33 +14,14 @@ GEM
|
|
|
17
14
|
i18n (>= 0.7, < 2)
|
|
18
15
|
minitest (~> 5.1)
|
|
19
16
|
tzinfo (~> 1.1)
|
|
20
|
-
aws-eventstream (1.0.3)
|
|
21
|
-
aws-partitions (1.189.0)
|
|
22
|
-
aws-sdk-core (3.59.0)
|
|
23
|
-
aws-eventstream (~> 1.0, >= 1.0.2)
|
|
24
|
-
aws-partitions (~> 1.0)
|
|
25
|
-
aws-sigv4 (~> 1.1)
|
|
26
|
-
jmespath (~> 1.0)
|
|
27
|
-
aws-sdk-elasticsearchservice (1.4.0)
|
|
28
|
-
aws-sdk-core (~> 3)
|
|
29
|
-
aws-sigv4 (~> 1.0)
|
|
30
|
-
aws-sdk-rds (1.11.0)
|
|
31
|
-
aws-sdk-core (~> 3)
|
|
32
|
-
aws-sigv4 (~> 1.0)
|
|
33
|
-
aws-sdk-route53 (1.7.0)
|
|
34
|
-
aws-sdk-core (~> 3)
|
|
35
|
-
aws-sigv4 (~> 1.0)
|
|
36
|
-
aws-sigv4 (1.1.0)
|
|
37
|
-
aws-eventstream (~> 1.0, >= 1.0.2)
|
|
38
17
|
coderay (1.1.1)
|
|
39
|
-
concurrent-ruby (1.1.
|
|
18
|
+
concurrent-ruby (1.1.8)
|
|
40
19
|
diff-lcs (1.3)
|
|
41
20
|
erubis (2.7.0)
|
|
42
|
-
i18n (1.
|
|
21
|
+
i18n (1.8.8)
|
|
43
22
|
concurrent-ruby (~> 1.0)
|
|
44
|
-
jmespath (1.4.0)
|
|
45
23
|
method_source (0.8.2)
|
|
46
|
-
minitest (5.
|
|
24
|
+
minitest (5.14.3)
|
|
47
25
|
pry (0.10.4)
|
|
48
26
|
coderay (~> 1.1.0)
|
|
49
27
|
method_source (~> 0.8.1)
|
|
@@ -65,7 +43,7 @@ GEM
|
|
|
65
43
|
slop (3.6.0)
|
|
66
44
|
thor (0.20.3)
|
|
67
45
|
thread_safe (0.3.6)
|
|
68
|
-
tzinfo (1.2.
|
|
46
|
+
tzinfo (1.2.9)
|
|
69
47
|
thread_safe (~> 0.1)
|
|
70
48
|
|
|
71
49
|
PLATFORMS
|
|
@@ -79,4 +57,4 @@ DEPENDENCIES
|
|
|
79
57
|
rspec (~> 3.0)
|
|
80
58
|
|
|
81
59
|
BUNDLED WITH
|
|
82
|
-
2.
|
|
60
|
+
2.2.3
|
|
@@ -13,10 +13,12 @@ module Proteus
|
|
|
13
13
|
@context = context
|
|
14
14
|
@environment = environment
|
|
15
15
|
|
|
16
|
-
@config[:providers].
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@
|
|
16
|
+
@config[:providers].each do |provider|
|
|
17
|
+
provider[:environments].each do |env|
|
|
18
|
+
env[:match].each do |m|
|
|
19
|
+
if @environment == m
|
|
20
|
+
@provider_environment = env
|
|
21
|
+
end
|
|
20
22
|
end
|
|
21
23
|
end
|
|
22
24
|
end
|
|
@@ -7,10 +7,7 @@ module Proteus
|
|
|
7
7
|
desc 'apply', 'Applies the current terraform code'
|
|
8
8
|
long_desc <<-LONGDESC
|
|
9
9
|
Applies the current terraform code
|
|
10
|
-
|
|
11
|
-
With --limit option, Terraform will only apply changes for the the specified resources
|
|
12
10
|
LONGDESC
|
|
13
|
-
option :limit, type: :array, aliases: "-l", required: false, default: nil
|
|
14
11
|
def apply
|
|
15
12
|
init(verbose: parent_options[:verbose])
|
|
16
13
|
|
|
@@ -30,7 +27,6 @@ module Proteus
|
|
|
30
27
|
terraform apply \
|
|
31
28
|
-input=true \
|
|
32
29
|
-refresh=true \
|
|
33
|
-
#{limit(options[:limit])} \
|
|
34
30
|
#{plan_file(context, environment)}
|
|
35
31
|
APPLY_COMMAND
|
|
36
32
|
|
|
@@ -14,8 +14,33 @@ module Proteus
|
|
|
14
14
|
long_desc <<-LONGDESC
|
|
15
15
|
Renders templates for all environments, reporting validation errors.
|
|
16
16
|
LONGDESC
|
|
17
|
+
option :selective, type: :boolean, default: false
|
|
17
18
|
def validate
|
|
19
|
+
# case 1: changes in root => run full validation
|
|
20
|
+
# case 2: no changes in root => run contexts only
|
|
21
|
+
status = `git --no-pager diff origin/master --stat --name-only`.split("\n")
|
|
22
|
+
|
|
23
|
+
run_full_validation = if status.map { |l| !l.include?('/') }.any? || !options[:selective]
|
|
24
|
+
say "Found changes in the root of the repository or --selective is not set. Running full validation.", :green
|
|
25
|
+
true
|
|
26
|
+
else
|
|
27
|
+
say "Running selective validation.", :green
|
|
28
|
+
false
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
selected_contexts = status.collect do |s|
|
|
32
|
+
parts = s.split("/")
|
|
33
|
+
parts.size > 1 ? parts[1] : nil
|
|
34
|
+
end.reject { |s| s.nil? }.uniq
|
|
35
|
+
|
|
18
36
|
self.class.contexts.each do |context|
|
|
37
|
+
unless run_full_validation
|
|
38
|
+
if !selected_contexts.include?(context.name)
|
|
39
|
+
say "Skipping context #{context.name}.", :green
|
|
40
|
+
next
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
19
44
|
context.environments.each do |environment|
|
|
20
45
|
module_manager = Proteus::Modules::Manager.new(context: context.name, environment: environment)
|
|
21
46
|
module_manager.render_modules
|
data/lib/proteus/helpers.rb
CHANGED
|
@@ -33,7 +33,15 @@ module Proteus
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def current_user
|
|
36
|
-
ENV['CURRENT_USER_NAME'] ? ENV['CURRENT_USER_NAME'] : Etc.getpwnam(Etc.getlogin).gecos
|
|
36
|
+
user = ENV['CURRENT_USER_NAME'] ? ENV['CURRENT_USER_NAME'] : Etc.getpwnam(Etc.getlogin).gecos
|
|
37
|
+
if user.empty?
|
|
38
|
+
puts "Please set your git username properly:"
|
|
39
|
+
puts "git config --global user.name \"FIRST_NAME LAST_NAME\""
|
|
40
|
+
puts "git config --global user.email \"YOUR_NAME@example.com\""
|
|
41
|
+
exit 1
|
|
42
|
+
else
|
|
43
|
+
user
|
|
44
|
+
end
|
|
37
45
|
end
|
|
38
46
|
|
|
39
47
|
def slack_webhook
|
data/lib/proteus/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dh-proteus
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Simon Albrecht
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-02-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -108,7 +108,7 @@ dependencies:
|
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
110
|
version: 2.7.0
|
|
111
|
-
description:
|
|
111
|
+
description:
|
|
112
112
|
email:
|
|
113
113
|
- simon.albrecht@deliveryhero.com
|
|
114
114
|
executables:
|
|
@@ -184,7 +184,7 @@ metadata:
|
|
|
184
184
|
homepage_uri: https://github.com/deliveryhero/proteus
|
|
185
185
|
source_code_uri: https://github.com/deliveryhero/proteus
|
|
186
186
|
changelog_uri: https://github.com/deliveryhero/proteus/CHANGELOG
|
|
187
|
-
post_install_message:
|
|
187
|
+
post_install_message:
|
|
188
188
|
rdoc_options: []
|
|
189
189
|
require_paths:
|
|
190
190
|
- lib
|
|
@@ -199,9 +199,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
199
199
|
- !ruby/object:Gem::Version
|
|
200
200
|
version: '0'
|
|
201
201
|
requirements: []
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
signing_key:
|
|
202
|
+
rubygems_version: 3.2.3
|
|
203
|
+
signing_key:
|
|
205
204
|
specification_version: 4
|
|
206
205
|
summary: Proteus is a Terraform wrapper application.
|
|
207
206
|
test_files: []
|