rake_vault 0.1.0.pre.5 → 0.1.0.pre.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99db32c0edc26b78c7a0e8f4b6f7c165f0b21132c376fcd0405139707eb0f479
4
- data.tar.gz: f47d19e2dd4b744e98d44b5e0d7050c61147e87652ffad55fe3889fc807bbecd
3
+ metadata.gz: b01699d74e5893f3eb8f978f1ca03bb8e2986601d50f06c080c01c12f3f6382b
4
+ data.tar.gz: 69daea8a65712ebf4df4cb334171a64afc3ba05be03e30d804a8033b09a46c7b
5
5
  SHA512:
6
- metadata.gz: 90c85056a77d92adbc1fadd4cf913b1d6813a50a3a67d628d84cc9758189b2d3767a37b4b71d2f4856e2b1a3a992903cc4214c9e0337edb783fc0e26b5fd84f0
7
- data.tar.gz: 9bcdc62fcaa3dc3651e284ee450993f324a36d8b7281695d7a249aa75d86d59dbb03f83421d0d87f148132460790fda986a283099bccb5f05cf94bb0f56d9fcc
6
+ metadata.gz: 07a9779bd95c58ea2ab7bdb523fe88c903da9528ec3a0c0738fb26b85edec14bb6852515f289328dcfce0f9e2d2b589d99e4293eaad780caef2551d5b67c6775
7
+ data.tar.gz: 8a7faa744063b0fc8ecdd8281630a8026bfee1d246e98cebe73b748e691894dad119cbee354e5aefc7cc036bf211cd40778de44107957b37b4e4c99e091dd53a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake_vault (0.1.0.pre.5)
4
+ rake_vault (0.1.0.pre.8)
5
5
  colored2 (~> 3.1)
6
6
  rake_dependencies (~> 3.1)
7
7
  rake_factory (~> 0.23)
@@ -45,7 +45,7 @@ GEM
45
45
  sawyer (~> 0.9)
46
46
  open4 (1.3.4)
47
47
  parallel (1.22.1)
48
- parser (3.1.2.0)
48
+ parser (3.1.2.1)
49
49
  ast (~> 2.4.1)
50
50
  public_suffix (4.0.7)
51
51
  rainbow (3.1.1)
@@ -90,17 +90,17 @@ GEM
90
90
  diff-lcs (>= 1.2.0, < 2.0)
91
91
  rspec-support (~> 3.11.0)
92
92
  rspec-support (3.11.0)
93
- rubocop (1.33.0)
93
+ rubocop (1.34.1)
94
94
  json (~> 2.3)
95
95
  parallel (~> 1.10)
96
- parser (>= 3.1.0.0)
96
+ parser (>= 3.1.2.1)
97
97
  rainbow (>= 2.2.2, < 4.0)
98
98
  regexp_parser (>= 1.8, < 3.0)
99
99
  rexml (>= 3.2.5, < 4.0)
100
- rubocop-ast (>= 1.19.1, < 2.0)
100
+ rubocop-ast (>= 1.20.0, < 2.0)
101
101
  ruby-progressbar (~> 1.7)
102
102
  unicode-display_width (>= 1.4.0, < 3.0)
103
- rubocop-ast (1.19.1)
103
+ rubocop-ast (1.21.0)
104
104
  parser (>= 3.1.1.0)
105
105
  rubocop-rake (0.6.0)
106
106
  rubocop (~> 1.0)
@@ -152,4 +152,4 @@ DEPENDENCIES
152
152
  simplecov
153
153
 
154
154
  BUNDLED WITH
155
- 2.3.19
155
+ 2.3.20
@@ -1,13 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'rake_factory'
4
+ require_relative '../token_file'
4
5
 
5
6
  module RakeVault
6
7
  module Tasks
7
8
  class AppRoleAuth < RakeFactory::Task
8
9
  default_name :login
9
- action do |_t|
10
- puts 'done'
10
+ default_prerequisites(RakeFactory::DynamicValue.new do |t|
11
+ [t.ensure_task_name]
12
+ end)
13
+ default_description(RakeFactory::DynamicValue.new do |_task|
14
+ 'Login with app role using vault'
15
+ end)
16
+ parameter :address
17
+ parameter :ensure_task_name, default: :'vault:ensure'
18
+ parameter :path, default: 'auth/approle/login'
19
+ parameter :role_id
20
+ parameter :secret_id
21
+
22
+ action do |task|
23
+ role_id = task.role_id ? "role_id=#{task.role_id}" : nil
24
+ secret_id = task.secret_id ? "secret_id=#{task.secret_id}" : nil
25
+
26
+ stdout = StringIO.new
27
+
28
+ RubyVault.configure(stdout: stdout)
29
+ RubyVault.write(
30
+ address: task.address,
31
+ path: task.path,
32
+ data: [role_id, secret_id].compact,
33
+ format: 'json'
34
+ )
35
+ RubyVault.reset!
36
+ RakeVault::TokenFile.write(stdout.string)
11
37
  end
12
38
  end
13
39
  end
@@ -7,8 +7,16 @@ module RakeVault
7
7
  module Tasks
8
8
  class OidcAuth < RakeFactory::Task
9
9
  default_name :login
10
+ default_prerequisites(RakeFactory::DynamicValue.new do |t|
11
+ [t.ensure_task_name]
12
+ end)
13
+ default_description(RakeFactory::DynamicValue.new do |_t|
14
+ 'Login with oidc using vault'
15
+ end)
10
16
  parameter :role
11
17
  parameter :address
18
+ parameter :ensure_task_name, default: :'vault:ensure'
19
+ parameter :no_print, default: false
12
20
 
13
21
  action do |task|
14
22
  auth = task.role ? ["role=#{task.role}"] : []
@@ -16,7 +24,8 @@ module RakeVault
16
24
  RubyVault.login(
17
25
  method: 'oidc',
18
26
  auth: auth,
19
- address: task.address
27
+ address: task.address,
28
+ no_print: task.no_print
20
29
  )
21
30
  end
22
31
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RakeVault
4
+ module TokenFile
5
+ def self.write(json_string)
6
+ json = JSON.parse(json_string)
7
+ token = json['auth']['client_token']
8
+ RakeVault::TokenFile.write_token_to_file(token)
9
+ end
10
+
11
+ def self.write_token_to_file(token)
12
+ file = File.open('~/.vault-token', 'w')
13
+ file.write(token)
14
+ file.close
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RakeVault
4
- VERSION = '0.1.0.pre.5'
4
+ VERSION = '0.1.0.pre.8'
5
5
  end
data/lib/rake_vault.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require 'rake_vault/tasks'
4
4
  require 'rake_vault/task_sets'
5
5
  require 'rake_vault/version'
6
+ require 'rake_vault/token_file'
6
7
 
7
8
  module RakeVault
8
9
  def self.define_installation_tasks(opts = {})
@@ -12,4 +13,8 @@ module RakeVault
12
13
  def self.define_oidc_auth_task(opts = {}, &block)
13
14
  RakeVault::Tasks::OidcAuth.define(opts, &block)
14
15
  end
16
+
17
+ def self.define_app_role_auth_task(opts = {}, &block)
18
+ RakeVault::Tasks::AppRoleAuth.define(opts, &block)
19
+ end
15
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake_vault
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre.5
4
+ version: 0.1.0.pre.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - InfraBlocks Maintainers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-09 00:00:00.000000000 Z
11
+ date: 2022-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored2
@@ -283,6 +283,7 @@ files:
283
283
  - lib/rake_vault/tasks.rb
284
284
  - lib/rake_vault/tasks/app_role_auth.rb
285
285
  - lib/rake_vault/tasks/oidc_auth.rb
286
+ - lib/rake_vault/token_file.rb
286
287
  - lib/rake_vault/version.rb
287
288
  - rake_vault.gemspec
288
289
  homepage: https://github.com/infrablocks/rake_vault