cfn-guardian 0.1.0 → 0.6.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.dockerignore +1 -0
- data/.github/workflows/build-gem.yml +25 -0
- data/.github/workflows/release-gem.yml +25 -0
- data/.github/workflows/release-image.yml +33 -0
- data/.rspec +1 -0
- data/Dockerfile +19 -0
- data/Gemfile.lock +39 -21
- data/README.md +9 -378
- data/cfn-guardian.gemspec +7 -5
- data/docs/alarm_templates.md +130 -0
- data/docs/cli.md +182 -0
- data/docs/composite_alarms.md +24 -0
- data/docs/custom_checks/azure_file_check.md +28 -0
- data/docs/custom_checks/domain_expiry.md +10 -0
- data/docs/custom_checks/http.md +59 -0
- data/docs/custom_checks/log_group_metric_filters.md +27 -0
- data/docs/custom_checks/nrpe.md +29 -0
- data/docs/custom_checks/port.md +40 -0
- data/docs/custom_checks/sftp.md +73 -0
- data/docs/custom_checks/sql.md +44 -0
- data/docs/custom_checks/tls.md +25 -0
- data/docs/custom_metrics.md +71 -0
- data/docs/event_subscriptions.md +67 -0
- data/docs/maintenance_mode.md +85 -0
- data/docs/notifiers.md +33 -0
- data/docs/overview.md +22 -0
- data/docs/resources.md +93 -0
- data/docs/variables.md +58 -0
- data/lib/cfnguardian.rb +325 -37
- data/lib/cfnguardian/cloudwatch.rb +132 -0
- data/lib/cfnguardian/codecommit.rb +54 -0
- data/lib/cfnguardian/codepipeline.rb +138 -0
- data/lib/cfnguardian/compile.rb +142 -18
- data/lib/cfnguardian/config/defaults.yaml +103 -0
- data/lib/cfnguardian/deploy.rb +2 -16
- data/lib/cfnguardian/display_formatter.rb +163 -0
- data/lib/cfnguardian/drift.rb +79 -0
- data/lib/cfnguardian/error.rb +4 -0
- data/lib/cfnguardian/log.rb +0 -1
- data/lib/cfnguardian/models/alarm.rb +193 -59
- data/lib/cfnguardian/models/check.rb +128 -33
- data/lib/cfnguardian/models/composite.rb +21 -0
- data/lib/cfnguardian/models/event.rb +201 -49
- data/lib/cfnguardian/models/event_subscription.rb +96 -0
- data/lib/cfnguardian/models/metric_filter.rb +28 -0
- data/lib/cfnguardian/resources/amazonmq_rabbitmq.rb +136 -0
- data/lib/cfnguardian/resources/application_targetgroup.rb +2 -0
- data/lib/cfnguardian/resources/azure_file.rb +20 -0
- data/lib/cfnguardian/resources/base.rb +155 -33
- data/lib/cfnguardian/resources/ec2_instance.rb +11 -0
- data/lib/cfnguardian/resources/ecs_service.rb +2 -2
- data/lib/cfnguardian/resources/http.rb +17 -1
- data/lib/cfnguardian/resources/internal_http.rb +74 -0
- data/lib/cfnguardian/resources/internal_port.rb +33 -0
- data/lib/cfnguardian/resources/internal_sftp.rb +58 -0
- data/lib/cfnguardian/resources/log_group.rb +26 -0
- data/lib/cfnguardian/resources/network_targetgroup.rb +1 -0
- data/lib/cfnguardian/resources/port.rb +25 -0
- data/lib/cfnguardian/resources/rds_cluster.rb +14 -0
- data/lib/cfnguardian/resources/rds_instance.rb +73 -0
- data/lib/cfnguardian/resources/redshift_cluster.rb +2 -2
- data/lib/cfnguardian/resources/sftp.rb +50 -0
- data/lib/cfnguardian/resources/sql.rb +3 -3
- data/lib/cfnguardian/resources/tls.rb +66 -0
- data/lib/cfnguardian/s3.rb +3 -2
- data/lib/cfnguardian/stacks/main.rb +94 -72
- data/lib/cfnguardian/stacks/resources.rb +111 -43
- data/lib/cfnguardian/string.rb +12 -0
- data/lib/cfnguardian/version.rb +1 -1
- metadata +133 -10
data/lib/cfnguardian/string.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
class String
|
2
|
+
include Term::ANSIColor
|
3
|
+
|
2
4
|
def to_underscore
|
3
5
|
self.gsub(/::/, '/').
|
4
6
|
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
@@ -16,4 +18,14 @@ class String
|
|
16
18
|
map(&:capitalize).join.
|
17
19
|
gsub(/[^0-9A-Za-z]/, '')
|
18
20
|
end
|
21
|
+
|
22
|
+
def to_heading
|
23
|
+
self.split('_').collect(&:capitalize).join(' ')
|
24
|
+
end
|
25
|
+
|
26
|
+
def word_wrap(with=100)
|
27
|
+
self.scan(/\S.{0,#{with}}\S(?=\s|$)|\S+/).
|
28
|
+
map {|line| line + "\n"}.
|
29
|
+
join('')
|
30
|
+
end
|
19
31
|
end
|
data/lib/cfnguardian/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfn-guardian
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guslington
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '2'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
|
-
name:
|
68
|
+
name: term-ansicolor
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
71
|
- - "~>"
|
@@ -84,13 +84,33 @@ dependencies:
|
|
84
84
|
- - "<"
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
version: '2'
|
87
|
+
- !ruby/object:Gem::Dependency
|
88
|
+
name: aws-sdk-s3
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - "~>"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '1.60'
|
94
|
+
- - "<"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2'
|
97
|
+
type: :runtime
|
98
|
+
prerelease: false
|
99
|
+
version_requirements: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.60'
|
104
|
+
- - "<"
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '2'
|
87
107
|
- !ruby/object:Gem::Dependency
|
88
108
|
name: aws-sdk-cloudformation
|
89
109
|
requirement: !ruby/object:Gem::Requirement
|
90
110
|
requirements:
|
91
111
|
- - "~>"
|
92
112
|
- !ruby/object:Gem::Version
|
93
|
-
version: '1'
|
113
|
+
version: '1.31'
|
94
114
|
- - "<"
|
95
115
|
- !ruby/object:Gem::Version
|
96
116
|
version: '2'
|
@@ -100,7 +120,67 @@ dependencies:
|
|
100
120
|
requirements:
|
101
121
|
- - "~>"
|
102
122
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1'
|
123
|
+
version: '1.31'
|
124
|
+
- - "<"
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '2'
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: aws-sdk-cloudwatch
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - "~>"
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '1.28'
|
134
|
+
- - "<"
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '2'
|
137
|
+
type: :runtime
|
138
|
+
prerelease: false
|
139
|
+
version_requirements: !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - "~>"
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '1.28'
|
144
|
+
- - "<"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '2'
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
name: aws-sdk-codecommit
|
149
|
+
requirement: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '1.28'
|
154
|
+
- - "<"
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '2'
|
157
|
+
type: :runtime
|
158
|
+
prerelease: false
|
159
|
+
version_requirements: !ruby/object:Gem::Requirement
|
160
|
+
requirements:
|
161
|
+
- - "~>"
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: '1.28'
|
164
|
+
- - "<"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '2'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: aws-sdk-codepipeline
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '1.28'
|
174
|
+
- - "<"
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '2'
|
177
|
+
type: :runtime
|
178
|
+
prerelease: false
|
179
|
+
version_requirements: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - "~>"
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '1.28'
|
104
184
|
- - "<"
|
105
185
|
- !ruby/object:Gem::Version
|
106
186
|
version: '2'
|
@@ -124,14 +204,14 @@ dependencies:
|
|
124
204
|
requirements:
|
125
205
|
- - "~>"
|
126
206
|
- !ruby/object:Gem::Version
|
127
|
-
version: '
|
207
|
+
version: '13.0'
|
128
208
|
type: :development
|
129
209
|
prerelease: false
|
130
210
|
version_requirements: !ruby/object:Gem::Requirement
|
131
211
|
requirements:
|
132
212
|
- - "~>"
|
133
213
|
- !ruby/object:Gem::Version
|
134
|
-
version: '
|
214
|
+
version: '13.0'
|
135
215
|
description: Manages AWS cloudwatch alarms with default templates using cloudformation
|
136
216
|
email:
|
137
217
|
- itsupport@base2services.com
|
@@ -140,25 +220,62 @@ executables:
|
|
140
220
|
extensions: []
|
141
221
|
extra_rdoc_files: []
|
142
222
|
files:
|
223
|
+
- ".dockerignore"
|
224
|
+
- ".github/workflows/build-gem.yml"
|
225
|
+
- ".github/workflows/release-gem.yml"
|
226
|
+
- ".github/workflows/release-image.yml"
|
143
227
|
- ".gitignore"
|
228
|
+
- ".rspec"
|
229
|
+
- Dockerfile
|
144
230
|
- Gemfile
|
145
231
|
- Gemfile.lock
|
146
232
|
- LICENSE.txt
|
147
233
|
- README.md
|
148
234
|
- Rakefile
|
149
235
|
- cfn-guardian.gemspec
|
236
|
+
- docs/alarm_templates.md
|
237
|
+
- docs/cli.md
|
238
|
+
- docs/composite_alarms.md
|
239
|
+
- docs/custom_checks/azure_file_check.md
|
240
|
+
- docs/custom_checks/domain_expiry.md
|
241
|
+
- docs/custom_checks/http.md
|
242
|
+
- docs/custom_checks/log_group_metric_filters.md
|
243
|
+
- docs/custom_checks/nrpe.md
|
244
|
+
- docs/custom_checks/port.md
|
245
|
+
- docs/custom_checks/sftp.md
|
246
|
+
- docs/custom_checks/sql.md
|
247
|
+
- docs/custom_checks/tls.md
|
248
|
+
- docs/custom_metrics.md
|
249
|
+
- docs/event_subscriptions.md
|
250
|
+
- docs/maintenance_mode.md
|
251
|
+
- docs/notifiers.md
|
252
|
+
- docs/overview.md
|
253
|
+
- docs/resources.md
|
254
|
+
- docs/variables.md
|
150
255
|
- exe/cfn-guardian
|
151
256
|
- lib/cfnguardian.rb
|
257
|
+
- lib/cfnguardian/cloudwatch.rb
|
258
|
+
- lib/cfnguardian/codecommit.rb
|
259
|
+
- lib/cfnguardian/codepipeline.rb
|
152
260
|
- lib/cfnguardian/compile.rb
|
261
|
+
- lib/cfnguardian/config/defaults.yaml
|
153
262
|
- lib/cfnguardian/deploy.rb
|
263
|
+
- lib/cfnguardian/display_formatter.rb
|
264
|
+
- lib/cfnguardian/drift.rb
|
265
|
+
- lib/cfnguardian/error.rb
|
154
266
|
- lib/cfnguardian/log.rb
|
155
267
|
- lib/cfnguardian/models/alarm.rb
|
156
268
|
- lib/cfnguardian/models/check.rb
|
269
|
+
- lib/cfnguardian/models/composite.rb
|
157
270
|
- lib/cfnguardian/models/event.rb
|
271
|
+
- lib/cfnguardian/models/event_subscription.rb
|
272
|
+
- lib/cfnguardian/models/metric_filter.rb
|
158
273
|
- lib/cfnguardian/resources/amazonmq_broker.rb
|
274
|
+
- lib/cfnguardian/resources/amazonmq_rabbitmq.rb
|
159
275
|
- lib/cfnguardian/resources/apigateway.rb
|
160
276
|
- lib/cfnguardian/resources/application_targetgroup.rb
|
161
277
|
- lib/cfnguardian/resources/autoscaling_group.rb
|
278
|
+
- lib/cfnguardian/resources/azure_file.rb
|
162
279
|
- lib/cfnguardian/resources/base.rb
|
163
280
|
- lib/cfnguardian/resources/cloudfront_distribution.rb
|
164
281
|
- lib/cfnguardian/resources/domain_expiry.rb
|
@@ -170,14 +287,22 @@ files:
|
|
170
287
|
- lib/cfnguardian/resources/elastic_loadbalancer.rb
|
171
288
|
- lib/cfnguardian/resources/elasticache_replication_group.rb
|
172
289
|
- lib/cfnguardian/resources/http.rb
|
290
|
+
- lib/cfnguardian/resources/internal_http.rb
|
291
|
+
- lib/cfnguardian/resources/internal_port.rb
|
292
|
+
- lib/cfnguardian/resources/internal_sftp.rb
|
173
293
|
- lib/cfnguardian/resources/lambda.rb
|
294
|
+
- lib/cfnguardian/resources/log_group.rb
|
174
295
|
- lib/cfnguardian/resources/network_targetgroup.rb
|
175
296
|
- lib/cfnguardian/resources/nrpe.rb
|
297
|
+
- lib/cfnguardian/resources/port.rb
|
298
|
+
- lib/cfnguardian/resources/rds_cluster.rb
|
176
299
|
- lib/cfnguardian/resources/rds_cluster_instance.rb
|
177
300
|
- lib/cfnguardian/resources/rds_instance.rb
|
178
301
|
- lib/cfnguardian/resources/redshift_cluster.rb
|
302
|
+
- lib/cfnguardian/resources/sftp.rb
|
179
303
|
- lib/cfnguardian/resources/sql.rb
|
180
304
|
- lib/cfnguardian/resources/sqs_queue.rb
|
305
|
+
- lib/cfnguardian/resources/tls.rb
|
181
306
|
- lib/cfnguardian/s3.rb
|
182
307
|
- lib/cfnguardian/stacks/main.rb
|
183
308
|
- lib/cfnguardian/stacks/resources.rb
|
@@ -188,7 +313,6 @@ homepage: https://github.com/base2Services/cfn-guardian
|
|
188
313
|
licenses:
|
189
314
|
- MIT
|
190
315
|
metadata:
|
191
|
-
allowed_push_host: https://rubygems.org
|
192
316
|
homepage_uri: https://github.com/base2Services/cfn-guardian
|
193
317
|
source_code_uri: https://github.com/base2Services/cfn-guardian
|
194
318
|
changelog_uri: https://github.com/base2Services/cfn-guardian
|
@@ -207,8 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
331
|
- !ruby/object:Gem::Version
|
208
332
|
version: '0'
|
209
333
|
requirements: []
|
210
|
-
|
211
|
-
rubygems_version: 2.7.6
|
334
|
+
rubygems_version: 3.1.4
|
212
335
|
signing_key:
|
213
336
|
specification_version: 4
|
214
337
|
summary: Manages AWS cloudwatch alarms with default templates using cloudformation
|