hiera-aws 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rubocop.yml +1 -1
- data/README.md +8 -1
- data/hiera-aws.gemspec +1 -1
- data/lib/hiera/backend/aws/elasticache.rb +19 -21
- data/lib/hiera/backend/aws/rds.rb +1 -1
- data/lib/hiera/backend/aws/version.rb +1 -1
- data/lib/hiera/backend/aws_backend.rb +1 -1
- data/spec/aws_elasticache_spec.rb +4 -1
- metadata +19 -31
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f5b0d54142dbe9c5ab4ae5bca2c50a48dafc0a65
|
4
|
+
data.tar.gz: b4a17bbc96478779d2b819faf36d9078bc9ec3d8
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 382da2fccca8a46b53acd289663a4d54c538c4c8b30de6b0ad7e9216d1a3fa0d3666ef2c948bc85714fc6c29e324c64e57c9c56d82bda186bf99a499e3b21e88
|
7
|
+
data.tar.gz: 8b7995e6b0b4af55a45f80165a9b6bdbffb25f6a4436848956840d3a20601416f65641026715c87313c4cef0de4c16aaab2d5a41787f4204c90556069ab34ab8
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -68,7 +68,6 @@ The backend currently supports the following keys that you can pass to the
|
|
68
68
|
|
69
69
|
Returns an array of all Redis cluster nodes for the CloudFormation stack of an
|
70
70
|
EC2 instance. The instance is identified by the Puppet fact `$ec2_instance_id`.
|
71
|
-
The returned array has the format `["host1", "host2"]`.
|
72
71
|
|
73
72
|
Usage:
|
74
73
|
|
@@ -76,6 +75,14 @@ Usage:
|
|
76
75
|
cluster_nodes = hiera("redis_cluster_nodes_for_cfn_stack")
|
77
76
|
```
|
78
77
|
|
78
|
+
For each Redis cluster node in the array the following hash is returned:
|
79
|
+
|
80
|
+
```json
|
81
|
+
{
|
82
|
+
"endpoint" => { "address" => "some.redis.endpoint", "port" => 6379 },
|
83
|
+
}
|
84
|
+
```
|
85
|
+
|
79
86
|
### redis_cluster_replica_groups_for_cfn_stack
|
80
87
|
|
81
88
|
Returns an array of the Redis Replication Groups of all Redis cluster nodes for
|
data/hiera-aws.gemspec
CHANGED
@@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "bundler"
|
24
24
|
spec.add_development_dependency "rake"
|
25
25
|
spec.add_development_dependency "rspec"
|
26
|
-
spec.add_development_dependency "rubocop"
|
26
|
+
spec.add_development_dependency "rubocop", "~> 0.21.0"
|
27
27
|
end
|
@@ -5,9 +5,24 @@ class Hiera
|
|
5
5
|
module Aws
|
6
6
|
# Implementation of Hiera keys for aws/elasticache
|
7
7
|
class ElastiCache < Base
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
def redis_cluster_replica_groups_for_cfn_stack
|
9
|
+
cluster_replica_groups_for_cfn_stack(:redis)
|
10
|
+
end
|
11
|
+
|
12
|
+
def redis_cluster_nodes_for_cfn_stack
|
13
|
+
cluster_nodes_for_cfn_stack(:redis).map do |node|
|
14
|
+
{ "endpoint" => stringify_keys(node.fetch(:endpoint)) }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def memcached_cluster_nodes_for_cfn_stack
|
19
|
+
cluster_nodes_for_cfn_stack(:memcached).map do |node|
|
20
|
+
node.fetch(:endpoint)[:address]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
11
26
|
def cfn_stack_name(instance_id)
|
12
27
|
client = AWS::EC2.new
|
13
28
|
instances = client.instances[instance_id]
|
@@ -47,13 +62,8 @@ class Hiera
|
|
47
62
|
raise MissingFactError, "ec2_instance_id not found" unless ec2_instance_id
|
48
63
|
|
49
64
|
stack_name = cfn_stack_name(ec2_instance_id)
|
50
|
-
endpoints = []
|
51
65
|
clusters = cache_clusters_in_cfn_stack(stack_name, cluster_engine)
|
52
|
-
clusters.
|
53
|
-
nodes = cluster.fetch(:cache_nodes)
|
54
|
-
endpoints += nodes.map { |node| node[:endpoint][:address] }
|
55
|
-
end
|
56
|
-
endpoints
|
66
|
+
clusters.reduce([]) { |a, e| a + e.fetch(:cache_nodes) }
|
57
67
|
end
|
58
68
|
|
59
69
|
def cluster_replica_groups_for_cfn_stack(cluster_engine = nil)
|
@@ -85,18 +95,6 @@ class Hiera
|
|
85
95
|
}
|
86
96
|
end
|
87
97
|
end
|
88
|
-
|
89
|
-
def redis_cluster_replica_groups_for_cfn_stack
|
90
|
-
cluster_replica_groups_for_cfn_stack(:redis)
|
91
|
-
end
|
92
|
-
|
93
|
-
def redis_cluster_nodes_for_cfn_stack
|
94
|
-
cluster_nodes_for_cfn_stack(:redis)
|
95
|
-
end
|
96
|
-
|
97
|
-
def memcached_cluster_nodes_for_cfn_stack
|
98
|
-
cluster_nodes_for_cfn_stack(:memcached)
|
99
|
-
end
|
100
98
|
end
|
101
99
|
end
|
102
100
|
end
|
@@ -18,7 +18,7 @@ class Hiera
|
|
18
18
|
Hiera.debug("AWS backend initialized")
|
19
19
|
end
|
20
20
|
|
21
|
-
def lookup(key, scope, order_override, resolution_type)
|
21
|
+
def lookup(key, scope, order_override, resolution_type) # rubocop:disable UnusedMethodArgument
|
22
22
|
answer = nil
|
23
23
|
|
24
24
|
Hiera.debug("Looking up '#{key}' in AWS backend")
|
@@ -65,7 +65,10 @@ class Hiera
|
|
65
65
|
allow(client).to receive(:describe_cache_clusters).and_return(cache_clusters)
|
66
66
|
AWS::ElastiCache::Client.stub(:new => client)
|
67
67
|
|
68
|
-
expect(elasticache.redis_cluster_nodes_for_cfn_stack).to eq [
|
68
|
+
expect(elasticache.redis_cluster_nodes_for_cfn_stack).to eq [
|
69
|
+
{ "endpoint" => { "address" => "1.1.1.1", "port" => 1234 } },
|
70
|
+
{ "endpoint" => { "address" => "2.2.2.2", "port" => 1234 } },
|
71
|
+
]
|
69
72
|
end
|
70
73
|
end
|
71
74
|
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hiera-aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mathias Lafeldt
|
@@ -11,88 +10,78 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date: 2014-
|
13
|
+
date: 2014-05-08 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: aws-sdk
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
|
-
- -
|
19
|
+
- - '>='
|
22
20
|
- !ruby/object:Gem::Version
|
23
21
|
version: '0'
|
24
22
|
type: :runtime
|
25
23
|
prerelease: false
|
26
24
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
25
|
requirements:
|
29
|
-
- -
|
26
|
+
- - '>='
|
30
27
|
- !ruby/object:Gem::Version
|
31
28
|
version: '0'
|
32
29
|
- !ruby/object:Gem::Dependency
|
33
30
|
name: bundler
|
34
31
|
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
32
|
requirements:
|
37
|
-
- -
|
33
|
+
- - '>='
|
38
34
|
- !ruby/object:Gem::Version
|
39
35
|
version: '0'
|
40
36
|
type: :development
|
41
37
|
prerelease: false
|
42
38
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
39
|
requirements:
|
45
|
-
- -
|
40
|
+
- - '>='
|
46
41
|
- !ruby/object:Gem::Version
|
47
42
|
version: '0'
|
48
43
|
- !ruby/object:Gem::Dependency
|
49
44
|
name: rake
|
50
45
|
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
46
|
requirements:
|
53
|
-
- -
|
47
|
+
- - '>='
|
54
48
|
- !ruby/object:Gem::Version
|
55
49
|
version: '0'
|
56
50
|
type: :development
|
57
51
|
prerelease: false
|
58
52
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
53
|
requirements:
|
61
|
-
- -
|
54
|
+
- - '>='
|
62
55
|
- !ruby/object:Gem::Version
|
63
56
|
version: '0'
|
64
57
|
- !ruby/object:Gem::Dependency
|
65
58
|
name: rspec
|
66
59
|
requirement: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
60
|
requirements:
|
69
|
-
- -
|
61
|
+
- - '>='
|
70
62
|
- !ruby/object:Gem::Version
|
71
63
|
version: '0'
|
72
64
|
type: :development
|
73
65
|
prerelease: false
|
74
66
|
version_requirements: !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
67
|
requirements:
|
77
|
-
- -
|
68
|
+
- - '>='
|
78
69
|
- !ruby/object:Gem::Version
|
79
70
|
version: '0'
|
80
71
|
- !ruby/object:Gem::Dependency
|
81
72
|
name: rubocop
|
82
73
|
requirement: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
74
|
requirements:
|
85
|
-
- -
|
75
|
+
- - ~>
|
86
76
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
77
|
+
version: 0.21.0
|
88
78
|
type: :development
|
89
79
|
prerelease: false
|
90
80
|
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
none: false
|
92
81
|
requirements:
|
93
|
-
- -
|
82
|
+
- - ~>
|
94
83
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
84
|
+
version: 0.21.0
|
96
85
|
description: Hiera AWS Backend
|
97
86
|
email:
|
98
87
|
- mathias.lafeldt@jimdo.com
|
@@ -122,27 +111,26 @@ files:
|
|
122
111
|
homepage: https://github.com/Jimdo/hiera-aws
|
123
112
|
licenses:
|
124
113
|
- Apache 2.0
|
114
|
+
metadata: {}
|
125
115
|
post_install_message:
|
126
116
|
rdoc_options: []
|
127
117
|
require_paths:
|
128
118
|
- lib
|
129
119
|
required_ruby_version: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
120
|
requirements:
|
132
|
-
- -
|
121
|
+
- - '>='
|
133
122
|
- !ruby/object:Gem::Version
|
134
123
|
version: '0'
|
135
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
|
-
none: false
|
137
125
|
requirements:
|
138
|
-
- -
|
126
|
+
- - '>='
|
139
127
|
- !ruby/object:Gem::Version
|
140
128
|
version: '0'
|
141
129
|
requirements: []
|
142
130
|
rubyforge_project:
|
143
|
-
rubygems_version: 1.
|
131
|
+
rubygems_version: 2.1.11
|
144
132
|
signing_key:
|
145
|
-
specification_version:
|
133
|
+
specification_version: 4
|
146
134
|
summary: Hiera AWS Backend
|
147
135
|
test_files:
|
148
136
|
- spec/aws_backend_spec.rb
|