hiera-aws 0.3.0 → 0.4.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 +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
|