forked from kelseyhightower/confd
-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathCHANGELOG
More file actions
500 lines (419 loc) · 25.4 KB
/
CHANGELOG
File metadata and controls
500 lines (419 loc) · 25.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
### Unreleased
* refactor: Deduplicate no-op WatchPrefix and Close across polling-only backends (2026-04-19) (#588)
- Add `NoopWatcher` and `NoopCloser` embeddable structs to `pkg/backends/types`
- Migrate all 7 polling-only backends (acm, dynamodb, env, imds, secretsmanager, ssm, vault) to embed both structs
- Remove 14 identical method implementations; polling-only nature of each backend is now explicit via the embedded type names
- Closes #550
* chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.32.13 to 1.32.16 (#585)
* chore(deps): bump github.com/aws/aws-sdk-go-v2/service/ssm from 1.68.4 to 1.68.5 (#584)
* chore(deps): bump go.etcd.io/etcd/client/v3 from 3.6.8 to 3.6.10 (#583)
* chore(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager from 1.41.1 to 1.41.6 (#582)
* chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.41.5 to 1.41.6 (#581)
* perf: Skip stage file write when rendered content is unchanged (2026-04-19) (#586)
- Add `contentUnchanged()` to `fileStager`: compares rendered bytes against dest file (mode + ownership + size + MD5) before staging
- Refactor `process()` to render first, check `contentUnchanged()`, and early-return without staging on the no-change path
- Eliminates temp file create/write/rename/delete on the common steady-state no-change path
- Closes #548
* refactor: Extract shared AWS SDK init helper into awsutil package (2026-04-19) (#587)
- Add `pkg/backends/awsutil.LoadAWSConfig` centralizing region detection (env → IMDS → SDK defaults), config loading, and credential validation
- Migrate acm, ssm, secretsmanager, and dynamodb backends to use the shared helper, removing ~120 lines of duplicated boilerplate
- Add `dialTimeout` parameter to `dynamodb.NewDynamoDBClient` for consistency with other AWS backends
- Closes #549
* chore: Ignore root-level confd binary in .gitignore (2026-04-18) (#580)
* fix: Handle os.Remove errors when cleaning stage files (2026-04-18) (#579)
- Replace all bare `os.Remove` calls on stage files with `removeStageFile` helper
- Silently ignore `ErrNotExist` (expected after atomic rename), log Warning for other errors
- Add `stage_file_cleanup_errors_total` Prometheus counter for observability
- Move `removeStageFile` to `file_stager.go` alongside all other staging logic
- Extend metrics tests to cover `StageFileCleanupErrors` initialization and recording
- Closes #556
* fix: Resolve gosec code scanning alerts (2026-04-18) (#578)
- Suppress false positives with `#nosec` annotations for G117, G204, G304, G703, G115 — all operator-configured paths/commands or internal-only hash input
- Handle previously unhandled errors from `Close()` and `os.Remove()` calls in redis, vault, and template packages with warning/error logging
- Extract `closePubSubLocked()` and `removeStageFile()` helpers to deduplicate repeated cleanup patterns
### v0.41.0 (2026-04-18)
* fix: Windows support — skip chown and owner/group lookup on Windows (#574)
- `os.Chown` is unsupported on Windows; `chownFile` is now a no-op on Windows
- `user.Lookup`/`user.LookupGroup` return SID strings on Windows that cannot be
parsed as numeric IDs; `resolveOwnership` skips user/group lookup on Windows
and logs a warning if `owner`/`group` are set in the template config
- Add `cross-platform.yml` CI workflow running unit tests on `windows-latest`
and `macos-latest`
* fix: Non-blocking errChan sends in monitorPrefix and monitorForBatch — prevents watch goroutines from stalling under error bursts when all backends fail simultaneously; dropped errors are logged at Warning level (#560)
* fix: Propagate context through Vault and Zookeeper GetValues — `--backend-timeout` and caller cancellation now take effect for Vault (updated vaultLogical interface to use `*WithContext` variants) and Zookeeper (goroutine+select wrappers for blocking calls) (#566)
* fix: Close cached per-resource backend clients on shutdown — prevents connection/resource leaks when template resources override the global backend; lock is released before Close() to prevent deadlock (#564)
* perf: Cache template resources across interval cycles — eliminates per-tick filesystem walk, TOML parse, and TemplateResource construction in intervalProcessor; resources loaded once at startup, reloaded only on SIGHUP (#553)
* perf: Replace time.After with time.NewTicker in intervalProcessor — avoids per-tick timer allocation and timer goroutine leak on shutdown (#553)
* feat: Add 28 utility template functions (#272)
- Defaults & conditionals: `default`, `ternary`, `coalesce`, `empty`
- JSON: `toJson`, `fromJson`, `toPrettyJson`
- Formatting: `indent`, `nindent`, `quote`, `squote`
- Regex: `regexMatch`, `regexFind`, `regexReplaceAll`
- Strings: `trimPrefix`, `repeat`, `nospace`, `snakecase`, `camelcase`, `kebabcase`
- Collections: `dict`, `list`, `hasKey`, `keys`, `values`, `append`, `pluck`
- Hashing: `sha256sum`
### v0.40.0
This release represents a significant evolution of confd with major architectural improvements, new features, and performance optimizations. The version jump from v0.33.0 to v0.40.0 reflects the scope of these changes.
**BREAKING CHANGES**:
* **CLI migrated to Kong with backend subcommands**: The CLI now uses `confd <backend> [flags]` syntax instead of `confd --backend=<backend>`. For example, `confd --backend=etcd --node=http://localhost:2379` becomes `confd etcd --node=http://localhost:2379`. (#357)
* **Logging migrated from logrus to slog**: confd now uses Go's standard library `log/slog` for structured logging. Log output format has changed. Use `--log-format=json` for machine-parseable logs. (#420)
* **Redis client migrated from redigo to go-redis/v9**: Internal implementation change that may affect connection behavior. (#376)
**New Features**:
* feat: Add AWS EC2 IMDS backend for Instance Metadata Service v2 (#431)
* feat: Add Prometheus metrics and observability instrumentation (`--metrics-addr`) (#416)
* feat: Add health check endpoints (`/health`, `/ready`, `/ready/detailed`) (#429)
* feat: Standardize HealthCheck implementations across all backends (#427)
* feat: Add error aggregation and failure modes (`--failure-mode=best-effort|fail-fast`) (#426)
* feat: Extract hardcoded timeouts and retry delays to configuration flags (#425)
* feat: Add `templates_loaded` and `watched_keys` gauge metrics (#424)
* feat: Add structured logging with timing metrics to critical paths (#420)
* feat: Add template compilation caching for improved performance (#368)
* feat: Add per-resource backend configuration support (#359)
* feat: Add configuration validation, template enhancements, and watch mode improvements (#360)
* feat(redis): Implement exponential backoff for connection retries (#405)
* feat: Add official Docker images published to Docker Hub and GHCR (#463)
* feat: Multi-architecture Docker support (linux/amd64, linux/arm64)
* feat(packaging): Add RPM and DEB package support via nFPM (#520)
* feat(cli): Add comprehensive environment variable support (#516)
**Performance Improvements**:
* perf: Use conditional defer in process() to avoid overhead when metrics disabled (#462)
* perf: Pool map allocations in memkv List/ListDir operations (#461)
* perf: Optimize IsConfigChanged to reduce syscalls (#460)
* perf: Avoid FuncMap copy on every include call (#459)
* perf: Add TTL-based caching for template file stat checks (#458)
* perf: Cache prefixed keys on TemplateResource initialization (#457)
* perf: Pre-compile command templates in CommandExecutor (#456)
* perf: Pre-allocate template slice in getTemplateResources (#454)
**Bug Fixes**:
* fix: Address high severity bugs - goroutine leaks, FD leaks, data races (#493, #494, #496, #497)
* fix: File backend wildcard keys filtered out (#498)
* fix: Preflight now uses per-resource backend for key checks (#495)
* fix: Inject version from git tag at build time (#522)
* fix(redis): Support multiple prefixes in WatchPrefix (#510)
* fix(imds): Close response body in HealthCheck and New (#511)
* fix(imds): Avoid trailing slash in user-data cache key (#500)
* fix(backends): Respect context cancellation in WatchPrefix stubs (#512)
* fix(template): Use atomic.Bool for reloadRequested to prevent data race (#504)
* fix(template): Reduce backend fetch log verbosity (#506)
* fix(config): Return error for invalid duration values in confd.toml (#505)
* fix(zookeeper): Propagate errors from recursive nodeWalk calls (#499)
* fix: Exclude timeout fields from client cache hash (#455)
* fix(vault): Improve flatten() function type safety (#433)
* fix(redis): Add automatic reconnection for PubSub watch mode (#408)
**Refactoring**:
* refactor: Refactor TemplateResource to follow Single Responsibility Principle (#409)
* refactor: Propagate context.Context through backend calls (#379)
* refactor: Internalize memkv package from abandoned upstream (#369)
* refactor: Standardize error wrapping across codebase (#423)
* refactor(vault): Replace panic-based error handling with explicit error returns (#378)
* refactor(vault): Consolidate duplicate recursive listing functions (#404)
**Testing**:
* Complete E2E test migration to Go testcontainers framework (#464-476)
* test(template): Add integration tests for watch reconnection after backend failures (#519)
* Comprehensive integration test suite reorganized into categorical structure (#432)
* Test coverage improved significantly across all backends
* Added integration tests for health, metrics, failure modes, includes, and signals (#430)
**Infrastructure**:
* Update Go version to 1.25 (#415)
* Numerous dependency updates for security and compatibility
### v0.33.0
* feat: Add AWS Secrets Manager backend support (#356)
* feat: Migrate AWS backends from SDK v1 to v2 (#355)
* feat: Add private key export support for ACM backend (#329)
* feat: Add AWS ACM backend support (#328)
* chore: Add benchmark suite for template and backend performance (#353)
* chore: Code quality cleanup and godoc improvements (#352)
* fix: Update Makefile for goreleaser v2 compatibility
### v0.32.0
**BREAKING CHANGE**: The global `prefix` setting in `confd.toml` is now concatenated with resource-level `prefix` values in template resource files (`conf.d/*.toml`) instead of overriding them. For example, if `confd.toml` has `prefix = "production"` and a resource has `prefix = "myapp"`, the effective prefix is now `/production/myapp` instead of `/production`. To restore the previous behavior, remove the `prefix` setting from your template resource files. (#324)
* feat: Add JSON log format support via `--log-format` flag (#327)
* feat: Add template variable support (`{{.src}}`, `{{.dest}}`) in `reload_cmd` (#326)
* docs: Update CHANGELOG with releases v0.19.2 through v0.31.1 (#325)
* chore: Fix goreleaser v2 deprecation warnings
### v0.31.1
* chore: Update goreleaser config to version 2
* fix: Update go.mod to mark etcd/api/v3 as direct dependency
### v0.31.0
* test: Improve Etcd and Consul backend test coverage (#322)
* test: Improve Vault and Zookeeper test coverage (#321)
* test: Improve Redis and Etcd test coverage (#320)
* test: Improve test coverage from 13% to 40% (#319)
* Update Go to 1.23.12 (#309)
* Update deprecated use of ioutil (#286, #271)
* Bump golang.org/x/crypto from 0.40.0 to 0.45.0 (#318)
* Bump go.etcd.io/etcd/client/v3 from 3.5.18 to 3.6.6
* Bump github.com/hashicorp/vault/api from 1.15.0 to 1.22.0
* Bump github.com/hashicorp/consul/api from 1.29.4 to 1.31.2
* Bump github.com/fsnotify/fsnotify from 1.7.0 to 1.9.0
* Bump github.com/BurntSushi/toml from 1.4.0 to 1.5.0
### v0.30.0
**BREAKING CHANGE**: Vault KV v2 configurations that include `/data/` in the key path are no longer supported. The Vault backend now properly handles the `/data/` path component internally. Use `prefix` for the Secrets Engine path instead.
* refactor: Broadly refactor Vault client to properly handle KV v1 and KV v2 (#270)
* Upgrade Go version from 1.20 to 1.21 (#242)
* Add proper integration check for nested config (#248)
* Bump github.com/hashicorp/go-retryablehttp from 0.7.1 to 0.7.7 (#258)
* Bump github.com/hashicorp/vault/api from 1.9.1 to 1.13.0
* Bump github.com/hashicorp/consul/api from 1.26.1 to 1.28.3
* Bump go.etcd.io/etcd/client/v3 from 3.5.11 to 3.5.13
* Bump github.com/gomodule/redigo from 1.8.9 to 1.9.2
* Bump golang.org/x/crypto from 0.14.0 to 0.17.0
* Bump golang.org/x/net from 0.17.0 to 0.23.0
### v0.20.0
* Update Go version from 1.19.5 to 1.20 (#200)
* Bump github.com/hashicorp/consul/api from 1.18.0 to 1.26.1 (#199)
* Bump go.etcd.io/etcd/client/v3 from 3.5.7 to 3.5.11 (#195)
* Bump github.com/hashicorp/vault/api from 1.8.3 to 1.9.1 (#192)
* Bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 (#198)
* Bump github.com/sirupsen/logrus from 1.9.0 to 1.9.3
* Bump github.com/BurntSushi/toml from 1.2.1 to 1.3.2 (#196)
* Bump golang.org/x/net from 0.1.0 to 0.17.0
### v0.19.2
* fix: Allow env var precedence for SSM region (#133)
* fix: Updates golang.org/x/text to 0.3.8 (#137)
* Bump github.com/aws/aws-sdk-go from 1.44.95 to 1.44.196 (#158)
* Bump github.com/hashicorp/vault/api from 1.7.2 to 1.8.3
* Bump go.etcd.io/etcd/client/v3 from 3.5.4 to 3.5.7 (#153)
* Bump github.com/hashicorp/consul/api from 1.14.0 to 1.18.0 (#144)
* Bump github.com/fsnotify/fsnotify from 1.5.4 to 1.6.0 (#127)
### v0.19.1
285633b - Properly set errors for SSM GetParametersByPath... (abtreece)
26630d6 - Bump github.com/aws/aws-sdk-go from 1.44.93 to 1.44.94 (#116) (dependabot[bot])
0e10015 - Update Go and modules to fix security vulns (abtreece)
8a76b9a - Bump github.com/aws/aws-sdk-go from 1.43.36 to 1.44.66 (#103) (dependabot[bot])
e23edaa - Bump github.com/sirupsen/logrus from 1.8.1 to 1.9.0 (#101) (dependabot[bot])
7bbfe48 - Bump github.com/go-zookeeper/zk from 1.0.2 to 1.0.3 (#100) (dependabot[bot])
4360288 - Bump github.com/hashicorp/consul/api from 1.12.0 to 1.13.1 (#97) (dependabot[bot])
99511a3 - Bump github.com/hashicorp/vault/api from 1.5.0 to 1.7.2 (#92) (dependabot[bot])
58f6e64 - Bump go.etcd.io/etcd/client/v3 from 3.5.2 to 3.5.4 (#83) (dependabot[bot])
b898672 - Bump github.com/fsnotify/fsnotify from 1.5.1 to 1.5.4 (#82) (dependabot[bot])
ed47168 - Bump github/codeql-action from 1 to 2 (#80) (dependabot[bot])
### v0.19.0
33216b5 - feat: enable confd to exit when no backend is set (#75) (abtreece)
03e9f16 - Bump github.com/BurntSushi/toml from 1.0.0 to 1.1.0 (#74) (dependabot[bot])
a1d6c34 - Bump github.com/aws/aws-sdk-go from 1.43.17 to 1.43.36 (#73) (dependabot[bot])
c032a4b - Bump github.com/hashicorp/vault/api from 1.4.1 to 1.5.0 (#70) (dependabot[bot])
8a60902 - Bump actions/setup-go from 2 to 3 (#72) (dependabot[bot])
aa99418 - Bump github.com/aws/aws-sdk-go from 1.43.12 to 1.43.17 (#67) (dependabot[bot])
87165aa - Upgrade Go to 1.17 and Refactor the project layout (abtreece)
e2c53f0 - Bump github.com/aws/aws-sdk-go from 1.43.7 to 1.43.12 (#65) (dependabot[bot])
99a8eaa - Bump actions/checkout from 2 to 3 (#64) (dependabot[bot])
47b02bd - Update release drafter for main branch change (abtreece)
7268fd0 - Add dependencies to the standard labels def (abtreece)
1ba912c - Bump github.com/aws/aws-sdk-go from 1.43.2 to 1.43.7 (#63) (dependabot[bot])
4aae0e0 - Update release-drafter to inlude deps as minor (abtreece)
8a701c3 - Bump github.com/fsnotify/fsnotify from 1.4.9 to 1.5.1 (#58) (dependabot[bot])
1907719 - Bump github.com/aws/aws-sdk-go from 1.42.51 to 1.43.2 (#59) (depe
ndabot[bot])
e055751 - Update go-zookeeper to use active fork (#61) (abtreece)
d03d32d - Switch GHA Integration tests to use containers (abtreece)
### v0.18.4
68189a1 - Update app versions for backend integrations (abtreece)
6e3d2b3 - Bump github.com/aws/aws-sdk-go from 1.37.12 to 1.42.51 (#55) (dependabot[bot])
9fe5cb9 - Bump github.com/BurntSushi/toml from 0.3.1 to 1.0.0 (#54) (dependabot[bot])
de54d0f - Bump github.com/sirupsen/logrus from 1.7.1 to 1.8.1 (#47) (dependabot[bot])
7626b49 - Bump github.com/hashicorp/consul/api from 1.8.1 to 1.12.0 (#46) (dependabot[bot])
bb60ba8 - Bump go.etcd.io/etcd from 3.3.25+incompatible to 3.3.27+incompatible (#45) (dependabot[bot])
b71f33b - Bump github.com/garyburd/redigo from 1.6.2 to 1.6.3 (#44) (dependabot[bot])
50a83cd - Bump actions/setup-java from 2.4.0 to 2.5.0 (#42) (dependabot[bot])
c67be37 - Bump github/super-linter from 4.7.3 to 4.8.4 (#40) (dependabot[bot])
7867119 - Bump actions/setup-java from 2.3.0 to 2.4.0 (#41) (dependabot[bot])
d20ae45 - fix: Allow connections to etcd SSL sites without certs (#38) (METO)
### v0.18.3
6d3d05d - fix: Allow YAML files to have no extension (#35) (Britt Treece)
### v0.18.2
71ac3ef - feat: Add IP lookup by interface to template funcs (#33) (Britt Treece)
fc07d09 - Bump github/super-linter from 4.6.1 to 4.7.3 (#32) (dependabot[bot])
1dbc88b - Bump actions/setup-java from 2.2.0 to 2.3.0 (#29) (dependabot[bot])
8c5bdeb - Bump github/super-linter from 4.6.0 to 4.6.1 (#28) (dependabot[bot])
25eac0d - Bump actions/setup-java from 2.1.0 to 2.2.0 (#27) (dependabot[bot])
a8584a1 - Add exec to new file integration scripts (Britt Treece)
20e6201 - Allow json and yaml for file backend (#25) (Andrew Heberle)
d772b9c - Bump actions/setup-java from 1 to 2.1.0 (#18) (dependabot[bot])
344c8a1 - Bump github/super-linter from 3.15.5 to 4.6.0 (#26) (dependabot[bot])
### v0.18.1
064faf8 - Advance Go to 1.16.4, drop UPX, Switch to goreleaser for builds
afcf000 - Advance Go to 1.15.12 and update Makefile (abtreece)
79bf98b - Bump github/super-linter from v3.15.3 to v3.15.5 (#11) (dependabot[bot])
6bf2dbc - Bump github/super-linter from v3.15.1 to v3.15.3 (dependabot[bot])
c3cec66 - Bump github/super-linter from v3 to v3.15.1 (dependabot[bot])
9842e18 - Move divergent fork note to top of README (Britt Treece)
4f8e4f1 - Add Dependabot configurations for gomod and gha (Britt Treece)
### v0.18.0
dbd6fba - Add CodeQL status badge to README (abtreece)
121302c - Add GitHubs CodeQL workflow (Britt Treece)
30d805b - Add support for Raspberry PI (arm32) (Andreas Treichel)
25fe810 - Update badges for GitHub Actions (abtreece)
d8de2d5 - Update build container to 1.15.8 (abtreece)
aeedaf2 - Setup GitHub Actions (abtreece)
bae400b - Remove unsupported etcdv2 and update modules (abtreece)
096dc50 - Update travis link in README (Britt Treece)
db4a9e4 - Update version for next release (Britt Treece)
### v0.17.2
b13e4ce - Update versions of Consul and Vault for integrations (Britt Treece)
999f5ad - Merge branch 'add-vault-kv-v2-functionality' of https://github.com/abtreece/confd into add-vault-kv-v2-functionality (Britt Treece)
1d3e336 - continued work towards vault kv v2 (Britt Treece)
c1a9e74 - first stab at adding data path to v2 (Britt Treece)
7208c4e - Add Vault KV V2 integration tests (Britt Treece)
772974f - Bump version to v0.17.2-dev (Britt Treece)
bd7afc2 - continued work towards vault kv v2 (Britt Treece)
acec797 - first stab at adding data path to v2 (Britt Treece)
047d016 - Add Vault KV V2 integration tests (Britt Treece)
### v0.17.1
374cfa8 Add hostname via os.Hostname to template funcs
0d858d1 Support symlinks in recursivelookup
e7a0ab9 Fix owner / group support
### v0.17.0
80e6b82 Update go.sum for latest versions
d97a601 set GO111MODULE=on for travisci
0c99a41 Switch to Go Modules for dependency management
ebc65e6 Bump Zookeeper version to 3.4.14 for integration tests
441e74e Removes crypt feature due to stale dependencies
be5ae0f Relink the project to github.com/abtreece/confd
b163f25 Define ClientInsecure
cba5a09 vendor updated deps
4975585 Further update deps
a6bb111 Add override for self referential dep
c23d0b9 Upgrade deps
9719ee4 docs: Add SSM backend specific documentation
1913dff Add region determination from ec2metadata
a3508de Refactor AWS session creation for shared config
### v0.16.0
28f72608 Release arm64 binaries
4528af01 Add option to specify auth backend mount path in Vault
b51998d6 new etcdv3 implementation
fa37c993 isFileExist() was not defined in windows
a23aa1c7 Update Vault Kubernetes authentication doc
9b0ce8e6 Fix vendor name for logrus
ccc17eb5 fix fileStat close when open failed on windows
e3864219 add parseBool to template_funcs
94bf80e7 Add Kubernetes auth for Vault backend
304efb5a Add AppRole authN for Vault backend
fb208461 Redis Backend Updates: WatchPrefix Support, Hash Support, Standard Redis Key Naming Convention
36d874f5 Fix bug with multiple watches for etcdv3
1fd12493 backend/etcd: add scheme to srv discovered endpoints
a88c922a Vault TLS certificates auth method
b77b9232 Add atoi function to template funcs and test
### v0.15.0
0c4cb29e Don't pass empty prefix to zookeeper nodeWalk
5d6e2790 Update template.md - added forgotten verb
19d6514d remove fmt.Println
802e6a11 Added windows cmd support
59001ca3 Fix handling of absent parameters for ssm backend
8419c708 AWS SSM - don't treat "ParameterNotFound" as a fatal error
0a09632a Add support for consul BasicAuth
adf8d486 Fix panic during Consul client creation
027be91f Update docker Multi-Stage build
376d3f99 fix etcdv3 client watch: reuse previous watch to avoid memory leak
f711530d fix(confd): etcd curl err when make integration
### v0.14.0
95ba861f Replace godep with dep
cb53644c Template integration with https://github.com/xordataexchange/crypt provided values
6da43945 add go version and git commit sha1 to version string
8f052819 yaml/json file backend
61652a2c Add AWS SSM Parameter Store backend
### v0.13.0
181e3e3 Update dependencies
509268d Remove StackEngine backend
3a61969 Add further installation instructions
dd47bbb Introducing WaitPrefix for the Rancher backend
35ffe8f Adding nested key support to Vault backend v2
f1833a6 ETCD V3 support
89c59d4 Feature new template func add
2b080af added some additional text/template sorting methods
fbea3b9 Fixes #562 by not adding the URL scheme to the node at DNS lookup time
ab93ff1 Windows support
695e62e add trimSuffix template function
3049df8 Add base64 encode/decode template helpers
485b31c improved etcd watch support
8528d3c added support to specify a redis database (in the connection string)
### v0.12.0
5f3f79d Change etcd node port because the official port of etcd is 2379
9073dae Fix typo in docs
0ea1edb Remove unnecessary loop in Consul backend.
dbbee0a Fix travis configuration to use latest dynamoDB binary
ad5f74f Fix typo in quick-start-guide.md
7ac1091 Upgrade Dockerfile to use latest stable Alpine which has Go 1.6
20b3d37 add env backend integration tests
c6622ed updated template docs
9d57489 Specify default Vault backend node
b34d223 Add simple redis example since one was missing from quickstart
32d46e5 Fix typo in template-resources.md
7c89004 Fix up Rancher metadata service description and links
2a54c58 Fix missing braces and extra parenthesis on formatted datatime example
6e198db Fix DynamoDB credentials handling
705f2ee Fix dynamodb nil pointers
e48e48f Use SVG for the build image
6bb3c21 Add file exists function to template functions
57b649d zookeeper watch support
59da585 extended getenv & map template functions
d423123 updated README for vault
e60c2e2 Add support for redis password authentication
f3a02e7 Adding example goreman Procfile for etcd
aae4190 updated Dockerfile.build.alpine
cf62311 update some docs
54f715c Add lookupSRV function.
7afb8d6 fixed broken etcd watch support
5a5af59 switched to new etcd client
5d2955a Remove gb install
1577855 Fix typos in docs/tomcat-sample.md
d133c25 Added support for Vault backend
071e6ab IP dns resolving function for templates
ccf2486 redis: try to recover from closed connections
66a31bf Add support for etcd BasicAuth
d9ea46c Added documentation for stackengine as a backend
a1dee21 add -sync-only flag
c615c18 update checklist
233ac99 Add more debugging output for onetime and env.
d7f835d Create tomcat-sample.md
### v0.11.0
46d3c69 load template resources every interval
6b01b27 Add Rancher Metadata backend
bec0b60 link to the right command-line-flags doc
be20ca7 Fix typo in templates.md
745cf2b add default node for zookeeper backend
0dd4c53 Add StackEngine backend support
f446ce4 Load AWS credentials through a provider chain
f206b47 Add strings.Replace support
### v0.10.0
70cf76a move contrib to root dir
34a0ff7 Updating README.md to include new backends
fee8361 Fix broken links to documentation
d9d4cb1 Use the gb tool for dep management and building.
1ef34cb template: don't crash on template error
7531530 Log command output on error
fed32fe Draft: Support for DynamoDB
7f59d50 Use correct application name for ZooKeeper example
03a7c7e feat: add strings.Contains support
6307c26 change opdemand emails to engine yard
5350113 client cert config from environment variables
b6f414e Adding better support for Consul, enabling SSL/TLS client config
e94151b update release checklist
ce4eb5c bump to v1.0.0-dev
503d745 remove --quiet, --debug and --verbose
c9cefaf random doc fixes
### v0.9.0
8888b7a Add maintainers file
431e31b add release checklist document
f782957 bump etcd to v2.0.9 for integration tests
1b2d669 *feature) add recursive get toml files.
94fc0a6 allow override of BIN_DIR
7cce514 log that we're skipping config file to debug
6e0cbfc Enable watch from the config file
0410cbd bump version to 0.8.0
c7f53e1 add go 1.4 to travis.ci version matrix
7a2e2f4 Add toUpper, toLower support
4a8e079 Fix "The event in requested index is outdated and cleared" error
211a5cb add --log-level flag
0a0858c fix godeps
821cd61 properly format error messages
2ad79d6 general integration test nitpicks
913eb2e hook up etcd integration tests
2ad2fd4 Improved docs for how to use go templates to traverse json
7b4f06a hook up consul integration tests to travis
ae640bf hook up redis integration tests
828d568 remove unused service templates
7d374e6 remove unused log_test
68eb9ad Add simple redis support
b4c103c Revert "Added jsonGet support to template_funcs"
1e08562 Added jsonGet support to template_funcs
f84b57d add scripts for building, installing and testing confd