simplygenius-atmos 0.9.0 → 0.9.1
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 +65 -0
- data/exe/atmos-docker +10 -14
- data/lib/simplygenius/atmos/terraform_executor.rb +5 -1
- data/lib/simplygenius/atmos/ui.rb +4 -2
- data/lib/simplygenius/atmos/version.rb +1 -1
- data/lib/simplygenius/atmos.rb +9 -0
- 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: c9f69449d48427430bc31762edb6359ac810e1fc32cf94d8ce051df7a6cb92b4
|
|
4
|
+
data.tar.gz: 1dcb2ed97a319a93f5f87462c1553c898132f23f04dc90cf43807a87cc196ae3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ef543813c52188072ddf10a179174fb6aee0b19fbcc6787fe0d10c928875481606554b18b43d782724624f1f3d61ee8d500dd9bb89cb1ac21bb3d61663541933
|
|
7
|
+
data.tar.gz: 9a020c0a2b66a38e0a2f2145e03fdedede9792c18c83906c1b7191de1c7affa06d58e2fba573ebf751db58dbacea0be9d9b0abd26593cdf40f5dad82a2ca43b3
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,68 @@
|
|
|
1
|
+
0.9.1 (11/30/2018)
|
|
2
|
+
------------------
|
|
3
|
+
|
|
4
|
+
* fix some json weirdness with ruby v2.3 vs 2.5 and active support [82c02d1](https://github.com/simplygenius/atmos/commit/82c02d1)
|
|
5
|
+
* docker tweaks [f44c9b1](https://github.com/simplygenius/atmos/commit/f44c9b1)
|
|
6
|
+
* warn instead of trace for empty recipe config [7c83238](https://github.com/simplygenius/atmos/commit/7c83238)
|
|
7
|
+
* fix docker based runtime, pass through more mounts and skip aws cli based auth lookup as it slowed things down too much [f9844e9](https://github.com/simplygenius/atmos/commit/f9844e9)
|
|
8
|
+
|
|
9
|
+
0.9.0 (10/18/2018)
|
|
10
|
+
------------------
|
|
11
|
+
|
|
12
|
+
* change terraform plugin sharing to do so by copying the plugins to the home directory location that is searched by terraform . [9779685](https://github.com/simplygenius/atmos/commit/9779685)
|
|
13
|
+
* fix comment [58e51a1](https://github.com/simplygenius/atmos/commit/58e51a1)
|
|
14
|
+
* handle empty config files [8f48c98](https://github.com/simplygenius/atmos/commit/8f48c98)
|
|
15
|
+
* push working group up to main cli and add to atmos config so that we can reference it in backend state key [ca87c24](https://github.com/simplygenius/atmos/commit/ca87c24)
|
|
16
|
+
* move all but config location to atmos runtime config [3f86a3e](https://github.com/simplygenius/atmos/commit/3f86a3e)
|
|
17
|
+
* fix dev tools [1edf4e2](https://github.com/simplygenius/atmos/commit/1edf4e2)
|
|
18
|
+
* version constrain all the dependencies [cdce71f](https://github.com/simplygenius/atmos/commit/cdce71f)
|
|
19
|
+
* make explicit the use of working_group for state key by passing in atmos_working_group as a terraform variable [83a581f](https://github.com/simplygenius/atmos/commit/83a581f)
|
|
20
|
+
* move atmos vars in yml into their own namespace [705beda](https://github.com/simplygenius/atmos/commit/705beda)
|
|
21
|
+
* force hashie version [e52cd93](https://github.com/simplygenius/atmos/commit/e52cd93)
|
|
22
|
+
* fix to work with ruby 2.3 [b2612ec](https://github.com/simplygenius/atmos/commit/b2612ec)
|
|
23
|
+
* log load path [3b4945d](https://github.com/simplygenius/atmos/commit/3b4945d)
|
|
24
|
+
* add ability to add to ruby load path from cli/config [e13935b](https://github.com/simplygenius/atmos/commit/e13935b)
|
|
25
|
+
* allow templates to directly reference scoped context with method_missing (lets skip assigning a var when asking questions) [8cf203e](https://github.com/simplygenius/atmos/commit/8cf203e)
|
|
26
|
+
* fix doc strinng [7257229](https://github.com/simplygenius/atmos/commit/7257229)
|
|
27
|
+
* add choose to ui in templates [efb7047](https://github.com/simplygenius/atmos/commit/efb7047)
|
|
28
|
+
* add update to generator to allow applying all previously installed templates [2faa6e9](https://github.com/simplygenius/atmos/commit/2faa6e9)
|
|
29
|
+
* make state file be plain yaml (no atmos class refs) [625d508](https://github.com/simplygenius/atmos/commit/625d508)
|
|
30
|
+
* allow disabling built in sourcepaths from cli [64a2c18](https://github.com/simplygenius/atmos/commit/64a2c18)
|
|
31
|
+
* refactor loading of env/providers so they can be in a dedicated file [fedf915](https://github.com/simplygenius/atmos/commit/fedf915)
|
|
32
|
+
* extract recipes to own yml [518e1b7](https://github.com/simplygenius/atmos/commit/518e1b7)
|
|
33
|
+
* plugin config tweaks [3cbc19e](https://github.com/simplygenius/atmos/commit/3cbc19e)
|
|
34
|
+
* allow custom config sources [9d82d09](https://github.com/simplygenius/atmos/commit/9d82d09)
|
|
35
|
+
* refactor template/context/hash mess into template class, fix a number of issues with context, disallow duplicate template names for now, add initial state tracking [e00a4dc](https://github.com/simplygenius/atmos/commit/e00a4dc)
|
|
36
|
+
* add context, allow UI to get answers from context, fix dependency traversal to handle context [43584d3](https://github.com/simplygenius/atmos/commit/43584d3)
|
|
37
|
+
* cleanup plugins, allow per-plugin config [89c9f96](https://github.com/simplygenius/atmos/commit/89c9f96)
|
|
38
|
+
* handle inline as an option to notify [de7afff](https://github.com/simplygenius/atmos/commit/de7afff)
|
|
39
|
+
* remove debug [463ad0d](https://github.com/simplygenius/atmos/commit/463ad0d)
|
|
40
|
+
* fix sourcepath directory expansion [e41304c](https://github.com/simplygenius/atmos/commit/e41304c)
|
|
41
|
+
* rework generators to allow disambiguation template name duplication across sources, and to prepare for saving a list of all installed templates and fully qualifying templates names by source [b06fa68](https://github.com/simplygenius/atmos/commit/b06fa68)
|
|
42
|
+
* separate plugin loading from initialization [e0801d0](https://github.com/simplygenius/atmos/commit/e0801d0)
|
|
43
|
+
* add in simplygenius to namespace, refactor to handle namespacing better (Module.nesting) across code/tests [168af71](https://github.com/simplygenius/atmos/commit/168af71)
|
|
44
|
+
* update pro release sources [454b054](https://github.com/simplygenius/atmos/commit/454b054)
|
|
45
|
+
* helper for local plugin dev [1479604](https://github.com/simplygenius/atmos/commit/1479604)
|
|
46
|
+
* add basic plugin mechanism and refactor terraform output filtering as a plugin [29e32a3](https://github.com/simplygenius/atmos/commit/29e32a3)
|
|
47
|
+
* add passthrough to highline choose for menus [d9cda18](https://github.com/simplygenius/atmos/commit/d9cda18)
|
|
48
|
+
* write auth cache when auto renewing session [bc2f8f9](https://github.com/simplygenius/atmos/commit/bc2f8f9)
|
|
49
|
+
* handle interrupts [f8db090](https://github.com/simplygenius/atmos/commit/f8db090)
|
|
50
|
+
* try to fix travis error [cceaf43](https://github.com/simplygenius/atmos/commit/cceaf43)
|
|
51
|
+
* newer bundler [eaffeba](https://github.com/simplygenius/atmos/commit/eaffeba)
|
|
52
|
+
* fix test [030d8c4](https://github.com/simplygenius/atmos/commit/030d8c4)
|
|
53
|
+
* version update [0257e0c](https://github.com/simplygenius/atmos/commit/0257e0c)
|
|
54
|
+
* use eq [8e7eccc](https://github.com/simplygenius/atmos/commit/8e7eccc)
|
|
55
|
+
* show exe output on fail [e2fecf4](https://github.com/simplygenius/atmos/commit/e2fecf4)
|
|
56
|
+
* fix/add tests for username in assume role session [5ff99ff](https://github.com/simplygenius/atmos/commit/5ff99ff)
|
|
57
|
+
* add username to assume role session name for easier tracking, e.g. in cloudtrail [585a974](https://github.com/simplygenius/atmos/commit/585a974)
|
|
58
|
+
* added custom merge logic that works better and removes hacks [d668dd9](https://github.com/simplygenius/atmos/commit/d668dd9)
|
|
59
|
+
* fix homogenize of atmos_config, and don't homogenize yaml that gets directly added so that yml can be used to set values for maps/list for declared vars [7e1c221](https://github.com/simplygenius/atmos/commit/7e1c221)
|
|
60
|
+
* do an additive merge of lists in config as its more useable in the average case of adding to a default [d9d654d](https://github.com/simplygenius/atmos/commit/d9d654d)
|
|
61
|
+
* test more ruby versions [8733d46](https://github.com/simplygenius/atmos/commit/8733d46)
|
|
62
|
+
* fix permalink to atmos-pro [c0e6a57](https://github.com/simplygenius/atmos/commit/c0e6a57)
|
|
63
|
+
* readme tweaks [16db27a](https://github.com/simplygenius/atmos/commit/16db27a)
|
|
64
|
+
* helper for tagging recipe repos when releasing [9632bee](https://github.com/simplygenius/atmos/commit/9632bee)
|
|
65
|
+
|
|
1
66
|
0.7.1 (05/03/2018)
|
|
2
67
|
------------------
|
|
3
68
|
|
data/exe/atmos-docker
CHANGED
|
@@ -4,24 +4,20 @@
|
|
|
4
4
|
set -e
|
|
5
5
|
|
|
6
6
|
APP_VOLUME=${IMAGE_APP_VOLUME:-/app}
|
|
7
|
+
ATMOS_IMAGE=${ATMOS_IMAGE:-simplygenius/atmos}
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
else
|
|
14
|
-
echo "Usage through docker requires that access keys to be set in the environment"
|
|
15
|
-
echo "Install the aws cli to automatically look them up based on a profile name"
|
|
16
|
-
exit 1
|
|
9
|
+
home_mounts=".aws .terraform.d .atmos.yml"
|
|
10
|
+
mounts=""
|
|
11
|
+
for mount in $home_mounts; do
|
|
12
|
+
if [[ -e $HOME/$mount ]]; then
|
|
13
|
+
mounts="$mounts --mount type=bind,source=$HOME/$mount,target=/root/$mount"
|
|
17
14
|
fi
|
|
18
|
-
|
|
15
|
+
done
|
|
19
16
|
|
|
20
17
|
docker run \
|
|
21
18
|
--interactive --tty --rm \
|
|
22
19
|
--volume "$(pwd)":"${APP_VOLUME}" \
|
|
23
20
|
--volume /var/run/docker.sock:/var/run/docker.sock \
|
|
24
|
-
|
|
25
|
-
--env
|
|
26
|
-
|
|
27
|
-
simplygenius/atmos "$@"
|
|
21
|
+
$mounts \
|
|
22
|
+
--env-file <(env | grep "^AWS\|^ATMOS\|^TF") \
|
|
23
|
+
$ATMOS_IMAGE "$@"
|
|
@@ -18,7 +18,11 @@ module SimplyGenius
|
|
|
18
18
|
|
|
19
19
|
def initialize(process_env: ENV)
|
|
20
20
|
@process_env = process_env
|
|
21
|
-
|
|
21
|
+
recipe_config_path = "recipes.#{Atmos.config.working_group}"
|
|
22
|
+
@recipes = Array(Atmos.config[recipe_config_path])
|
|
23
|
+
if @recipes.blank?
|
|
24
|
+
logger.warn("Check your configuration, there are no recipes in '#{recipe_config_path}'")
|
|
25
|
+
end
|
|
22
26
|
end
|
|
23
27
|
|
|
24
28
|
def run(*terraform_args, skip_backend: false, skip_secrets: false, get_modules: false, output_io: nil)
|
|
@@ -2,6 +2,7 @@ require_relative '../atmos'
|
|
|
2
2
|
require 'highline'
|
|
3
3
|
require 'rainbow'
|
|
4
4
|
require 'yaml'
|
|
5
|
+
require 'json'
|
|
5
6
|
require 'open3'
|
|
6
7
|
require 'os'
|
|
7
8
|
require 'hashie'
|
|
@@ -121,12 +122,13 @@ module SimplyGenius
|
|
|
121
122
|
elsif OS.mac? && ! force_inline
|
|
122
123
|
display_method = modal ? "displayDialog" : "displayNotification"
|
|
123
124
|
|
|
125
|
+
# Usse to_json as JSON.generate doesn't work for strings on ruby 2.3
|
|
124
126
|
dialogScript = <<~EOF
|
|
125
127
|
var app = Application.currentApplication();
|
|
126
128
|
app.includeStandardAdditions = true;
|
|
127
129
|
app.#{display_method}(
|
|
128
|
-
#{
|
|
129
|
-
withTitle: #{
|
|
130
|
+
#{message.to_json}, {
|
|
131
|
+
withTitle: #{title.to_json},
|
|
130
132
|
buttons: ['OK'],
|
|
131
133
|
defaultButton: 1
|
|
132
134
|
})
|
data/lib/simplygenius/atmos.rb
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
require_relative 'atmos/version'
|
|
2
|
+
|
|
3
|
+
# FIXME: Force active support json to prevent some weird errors. We don't really rely
|
|
4
|
+
# on it, but guessing some gem does and causes a breakage when calling to_json in
|
|
5
|
+
# ui.rb when running its spec:
|
|
6
|
+
# NameError: uninitialized constant ActiveSupport::JSON Did you mean? JSON
|
|
7
|
+
#
|
|
8
|
+
require 'active_support/json'
|
|
9
|
+
require 'active_support/core_ext/object/json'
|
|
10
|
+
|
|
2
11
|
require 'active_support/core_ext/string'
|
|
3
12
|
require 'active_support/concern'
|
|
4
13
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: simplygenius-atmos
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.9.
|
|
4
|
+
version: 0.9.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matt Conway
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-
|
|
11
|
+
date: 2018-11-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|