dh-proteus 0.2.8 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|