consult 1.0.0.pre2 → 1.0.0
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/.github/workflows/ci.yml +75 -0
- data/.rspec +1 -1
- data/CHANGELOG.md +1 -0
- data/CODEOWNERS +1 -0
- data/Dockerfile +13 -0
- data/Gemfile +11 -0
- data/README.md +8 -0
- data/bin/console +0 -0
- data/bin/consult +0 -0
- data/bin/setup +0 -0
- data/consult.gemspec +0 -9
- data/lib/consult/template.rb +5 -1
- data/lib/consult/version.rb +1 -1
- data/lib/consult.rb +3 -1
- metadata +8 -118
- data/.circleci/config.yml +0 -79
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76b94b56a94ff354ad82df46b823adc23c911b4acc377aff3232271dfaeb2b4e
|
4
|
+
data.tar.gz: ab8885c93afd32eb6aed12d1fd8fe3102a419efc8ae1a4dac483ae41a003359b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c55a14f4e4ba227de03fa508907be7edd1e5912602794d8520192ed70d05cdbb7bd2feeae0b73ef1ce33b273bf7c40b8b5e5fd6074bf98937b702127e5addd9
|
7
|
+
data.tar.gz: 9431a33406b7b535be98ba6ef18694370acd0eea21e45e0f9ea0066a356abdfc1a6e59bd137357004a8e7917581e862ce97c299ad411a0b4d4ac5fb631849127
|
@@ -0,0 +1,75 @@
|
|
1
|
+
name: ci
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
push:
|
6
|
+
branches:
|
7
|
+
- master
|
8
|
+
|
9
|
+
concurrency:
|
10
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
11
|
+
cancel-in-progress: true
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
test:
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
|
17
|
+
strategy:
|
18
|
+
matrix:
|
19
|
+
ruby-version:
|
20
|
+
- '2.5'
|
21
|
+
- '2.7'
|
22
|
+
- '3.0'
|
23
|
+
- '3.1'
|
24
|
+
- '3.2'
|
25
|
+
- '3.3'
|
26
|
+
|
27
|
+
name: test (ruby ${{ matrix.ruby-version }})
|
28
|
+
|
29
|
+
services:
|
30
|
+
consul:
|
31
|
+
image: consul:1.3.0
|
32
|
+
ports:
|
33
|
+
- "8500:8500"
|
34
|
+
|
35
|
+
vault:
|
36
|
+
image: vault:0.11.3
|
37
|
+
ports:
|
38
|
+
- "8200:8200"
|
39
|
+
env:
|
40
|
+
VAULT_DEV_ROOT_TOKEN_ID: 94e1a9ed-5d72-5677-27ab-ebc485cca368
|
41
|
+
|
42
|
+
permissions:
|
43
|
+
contents: read
|
44
|
+
checks: write
|
45
|
+
|
46
|
+
env:
|
47
|
+
LATEST_RUBY_VERSION: '3.3'
|
48
|
+
BUNDLE_ONLY: default test
|
49
|
+
CI: true
|
50
|
+
|
51
|
+
steps:
|
52
|
+
- uses: actions/checkout@v4
|
53
|
+
|
54
|
+
- uses: ruby/setup-ruby@v1
|
55
|
+
with:
|
56
|
+
ruby-version: ${{ matrix.ruby-version }}
|
57
|
+
bundler-cache: true
|
58
|
+
|
59
|
+
- run: ./spec/support/populate_consul.sh
|
60
|
+
|
61
|
+
- run: bundle exec rspec
|
62
|
+
|
63
|
+
- uses: joshmfrankel/simplecov-check-action@main
|
64
|
+
if: matrix.ruby-version == env.LATEST_RUBY_VERSION
|
65
|
+
with:
|
66
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
67
|
+
check_job_name: "SimpleCov (ruby ${{ matrix.ruby-version }})"
|
68
|
+
on_fail_status: neutral
|
69
|
+
|
70
|
+
- uses: actions/upload-artifact@v4
|
71
|
+
with:
|
72
|
+
name: coverage-ruby-${{ matrix.ruby-version }}-${{ github.head_ref || github.ref_name }}-${{ github.sha }}
|
73
|
+
path: |
|
74
|
+
coverage/
|
75
|
+
if-no-files-found: ignore
|
data/.rspec
CHANGED
data/CHANGELOG.md
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
* Enable defining vars at the env block level, rather than only on template blocks
|
11
11
|
* Create directories for rendered files as needed
|
12
12
|
* Add the `skip_missing_template` config for templates
|
13
|
+
* Expand support to from Ruby 2.5 to Ruby 3.3
|
13
14
|
|
14
15
|
#### 0.11.0
|
15
16
|
|
data/CODEOWNERS
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
* @veracross/product-tech-leads
|
data/Dockerfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
FROM ruby:3.1
|
2
|
+
|
3
|
+
WORKDIR /consult
|
4
|
+
|
5
|
+
COPY Gemfile consult.gemspec ./
|
6
|
+
COPY lib/consult/version.rb ./lib/consult/version.rb
|
7
|
+
RUN bundle package --all --no-install
|
8
|
+
RUN bundle install
|
9
|
+
|
10
|
+
COPY . .
|
11
|
+
|
12
|
+
ENTRYPOINT ["ruby", "bin/consult"]
|
13
|
+
CMD ["--help"]
|
data/Gemfile
CHANGED
@@ -4,3 +4,14 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in consult.gemspec
|
6
6
|
gemspec
|
7
|
+
|
8
|
+
group :development, :test do
|
9
|
+
gem 'bundler'
|
10
|
+
gem 'guard'
|
11
|
+
gem 'guard-rspec'
|
12
|
+
gem 'pry-byebug'
|
13
|
+
gem 'rake'
|
14
|
+
gem 'rspec', '~> 3.0'
|
15
|
+
gem 'rspec_junit_formatter', '~> 0.4.1'
|
16
|
+
gem 'simplecov', '~> 0.22'
|
17
|
+
end
|
data/README.md
CHANGED
@@ -48,6 +48,14 @@ Consult: Rendered my_config
|
|
48
48
|
Consult: Rendered secrets
|
49
49
|
```
|
50
50
|
|
51
|
+
The Consult CLI is also available via Docker:
|
52
|
+
|
53
|
+
```bash
|
54
|
+
$ docker run --rm -v .:/app veracross/consult:latest --directory /app
|
55
|
+
```
|
56
|
+
|
57
|
+
If your templates reference `localhost` (such as the templates in the `spec` directory of this repo), add `--net host` to the command.
|
58
|
+
|
51
59
|
### Configuration
|
52
60
|
|
53
61
|
```yaml
|
data/bin/console
CHANGED
File without changes
|
data/bin/consult
CHANGED
File without changes
|
data/bin/setup
CHANGED
File without changes
|
data/consult.gemspec
CHANGED
@@ -26,13 +26,4 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.add_dependency 'diplomat', '~> 2.6'
|
28
28
|
spec.add_dependency 'vault', '>= 0.10.0', '< 1.0.0'
|
29
|
-
|
30
|
-
spec.add_development_dependency 'bundler'
|
31
|
-
spec.add_development_dependency 'guard'
|
32
|
-
spec.add_development_dependency 'guard-rspec'
|
33
|
-
spec.add_development_dependency 'pry-byebug'
|
34
|
-
spec.add_development_dependency 'rake'
|
35
|
-
spec.add_development_dependency 'rspec', '~> 3.0'
|
36
|
-
spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4.1'
|
37
|
-
spec.add_development_dependency 'simplecov', '~> 0.16.1'
|
38
29
|
end
|
data/lib/consult/template.rb
CHANGED
@@ -24,7 +24,11 @@ module Consult
|
|
24
24
|
end
|
25
25
|
|
26
26
|
# Attempt to render
|
27
|
-
renderer =
|
27
|
+
renderer = if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.7.0')
|
28
|
+
ERB.new(contents, trim_mode: '-')
|
29
|
+
else
|
30
|
+
ERB.new(contents, nil, '-')
|
31
|
+
end
|
28
32
|
result = renderer.result(binding)
|
29
33
|
|
30
34
|
puts "Consult: Rendering #{name}" + (save ? " to #{dest}" : "...") if verbose?
|
data/lib/consult/version.rb
CHANGED
data/lib/consult.rb
CHANGED
@@ -5,6 +5,8 @@ require 'yaml'
|
|
5
5
|
require 'erb'
|
6
6
|
require 'vault'
|
7
7
|
require 'diplomat'
|
8
|
+
# https://github.com/WeAreFarmGeek/diplomat/issues/26
|
9
|
+
require 'ostruct'
|
8
10
|
|
9
11
|
require_relative './consult/version'
|
10
12
|
require_relative './consult/utilities'
|
@@ -41,7 +43,7 @@ module Consult
|
|
41
43
|
@all_config ||= {}
|
42
44
|
|
43
45
|
@config = @all_config[:shared].to_h.deep_merge @all_config[env&.to_sym].to_h
|
44
|
-
@templates = @config[:templates]&.map { |name, config| Template.new(name, config.merge(verbose: verbose
|
46
|
+
@templates = @config[:templates]&.map { |name, config| Template.new(name, config.merge({verbose: verbose, env_vars: @config[:vars]})) } || []
|
45
47
|
|
46
48
|
@force_render = force_render
|
47
49
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: consult
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Fraser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: diplomat
|
@@ -44,118 +44,6 @@ dependencies:
|
|
44
44
|
- - "<"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 1.0.0
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: bundler
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '0'
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: guard
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '0'
|
68
|
-
type: :development
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: guard-rspec
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - ">="
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '0'
|
82
|
-
type: :development
|
83
|
-
prerelease: false
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - ">="
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '0'
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: pry-byebug
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - ">="
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '0'
|
96
|
-
type: :development
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - ">="
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0'
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: rake
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - ">="
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - ">="
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '0'
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: rspec
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '3.0'
|
124
|
-
type: :development
|
125
|
-
prerelease: false
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - "~>"
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: '3.0'
|
131
|
-
- !ruby/object:Gem::Dependency
|
132
|
-
name: rspec_junit_formatter
|
133
|
-
requirement: !ruby/object:Gem::Requirement
|
134
|
-
requirements:
|
135
|
-
- - "~>"
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version: 0.4.1
|
138
|
-
type: :development
|
139
|
-
prerelease: false
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
141
|
-
requirements:
|
142
|
-
- - "~>"
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: 0.4.1
|
145
|
-
- !ruby/object:Gem::Dependency
|
146
|
-
name: simplecov
|
147
|
-
requirement: !ruby/object:Gem::Requirement
|
148
|
-
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: 0.16.1
|
152
|
-
type: :development
|
153
|
-
prerelease: false
|
154
|
-
version_requirements: !ruby/object:Gem::Requirement
|
155
|
-
requirements:
|
156
|
-
- - "~>"
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
version: 0.16.1
|
159
47
|
description: Manage consul/vault backed template files in Ruby.
|
160
48
|
email:
|
161
49
|
- jeff.fraser@veracross.com
|
@@ -164,12 +52,14 @@ executables:
|
|
164
52
|
extensions: []
|
165
53
|
extra_rdoc_files: []
|
166
54
|
files:
|
167
|
-
- ".
|
55
|
+
- ".github/workflows/ci.yml"
|
168
56
|
- ".gitignore"
|
169
57
|
- ".rspec"
|
170
58
|
- ".rubocop.yml"
|
171
59
|
- ".ruby-version"
|
172
60
|
- CHANGELOG.md
|
61
|
+
- CODEOWNERS
|
62
|
+
- Dockerfile
|
173
63
|
- Gemfile
|
174
64
|
- Guardfile
|
175
65
|
- LICENSE.txt
|
@@ -205,11 +95,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
95
|
version: '0'
|
206
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
97
|
requirements:
|
208
|
-
- - "
|
98
|
+
- - ">="
|
209
99
|
- !ruby/object:Gem::Version
|
210
|
-
version:
|
100
|
+
version: '0'
|
211
101
|
requirements: []
|
212
|
-
rubygems_version: 3.
|
102
|
+
rubygems_version: 3.3.3
|
213
103
|
signing_key:
|
214
104
|
specification_version: 4
|
215
105
|
summary: Manage consul/vault backed template files in Ruby.
|
data/.circleci/config.yml
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
version: 2.1
|
2
|
-
|
3
|
-
jobs:
|
4
|
-
test:
|
5
|
-
parameters:
|
6
|
-
ruby_version:
|
7
|
-
type: string
|
8
|
-
|
9
|
-
docker:
|
10
|
-
- image: cimg/ruby:<< parameters.ruby_version >>
|
11
|
-
- image: consul:1.3.0
|
12
|
-
- image: vault:0.11.3
|
13
|
-
environment:
|
14
|
-
- VAULT_DEV_ROOT_TOKEN_ID=94e1a9ed-5d72-5677-27ab-ebc485cca368
|
15
|
-
# - SKIP_SETCAP=skip
|
16
|
-
# cap_add:
|
17
|
-
# - IPC_LOCK
|
18
|
-
|
19
|
-
working_directory: ~/repo
|
20
|
-
|
21
|
-
steps:
|
22
|
-
- checkout
|
23
|
-
|
24
|
-
- restore_cache:
|
25
|
-
name: restore gem cache
|
26
|
-
keys:
|
27
|
-
- v1-bundle-<< parameters.ruby_version >>-{{ .Branch }}-{{ checksum "consult.gemspec" }}
|
28
|
-
- v1-bundle-<< parameters.ruby_version >>-{{ .Branch }}-
|
29
|
-
- v1-bundle-<< parameters.ruby_version >>-
|
30
|
-
|
31
|
-
- run:
|
32
|
-
name: install dependencies
|
33
|
-
command: |
|
34
|
-
bundle check --path ./vendor/bundle || bundle install --jobs=3 --retry=3 --path vendor/bundle
|
35
|
-
bundle clean
|
36
|
-
|
37
|
-
- save_cache:
|
38
|
-
name: save gem cache
|
39
|
-
paths:
|
40
|
-
- ./vendor/bundle
|
41
|
-
key: v1-bundle-<< parameters.ruby_version >>-{{ .Branch }}-{{ checksum "consult.gemspec" }}
|
42
|
-
|
43
|
-
- run:
|
44
|
-
name: setup fixture data
|
45
|
-
command: |
|
46
|
-
./spec/support/populate_consul.sh
|
47
|
-
|
48
|
-
- run:
|
49
|
-
name: run tests
|
50
|
-
command: |
|
51
|
-
mkdir /tmp/test-results
|
52
|
-
|
53
|
-
TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | \
|
54
|
-
circleci tests split --split-by=timings)"
|
55
|
-
|
56
|
-
bundle exec rspec \
|
57
|
-
--format progress \
|
58
|
-
--format RspecJunitFormatter \
|
59
|
-
--out /tmp/test-results/rspec.xml \
|
60
|
-
--format progress \
|
61
|
-
$TEST_FILES
|
62
|
-
|
63
|
-
- store_test_results:
|
64
|
-
path: /tmp/test-results
|
65
|
-
|
66
|
-
- store_artifacts:
|
67
|
-
path: ./coverage
|
68
|
-
destination: coverage
|
69
|
-
|
70
|
-
workflows:
|
71
|
-
test_supported_ruby_versions:
|
72
|
-
jobs:
|
73
|
-
- test:
|
74
|
-
matrix:
|
75
|
-
parameters:
|
76
|
-
ruby_version:
|
77
|
-
- '2.5'
|
78
|
-
- '2.7'
|
79
|
-
- '3.1'
|