summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: 76b9b5ec60178f48e3e9bd1daf3592e43b2e080f (plain)
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
# Changelog for argocd-image-updater

This is the change log for `argocd-image-updater`. Please read thoroughly
when you upgrade versions, as there might be non-obvious changes that need
handling on your side.

## Unreleased

### Upgrade notes (no really, you MUST read this)

* **Attention**: By default, `argocd-image-updater` now uses the K8s API to retrieve applications, instead of the Argo CD API. Also, it is now recommended to install in the same namespace as Argo CD is running in (`argocd` by default). For existing installations, which are running in a dedicated namespace.

  To retain previous behaviour, set `applications_api: argocd` in `argocd-image-updater-config` ConfigMap before updating. However, it is recommended to move your installation into the `argocd` namespace (or wherever your Argo CD is installed to)

* The permissions for the `argocd-image-updater-sa` ServiceAccount have been adapted to allow read access to resources of type `Secret` and `argoproj.io/Application`

### Bug fixes

* fix: install missing git binary (#148)
* fix: run 'git add' for create files before pushing back (#143)

### New features

* feat: support managing Application CRD using K8S client (#144)
* feat: Allow reuse of Argo CD repo credentials
* feat: Git write-back of parameters (#133)

### Other changes

* refactor: make argocd-image-updater-config volume mapping optional (#145)

## 2020-12-06 - Release v0.8.0

### Upgrade notes (no really, you MUST read this)

* **Attention**: For the `latest` update-strategy, `argocd-image-updater` now fetches v2 manifests by default, instead of the v1 manifests in previous versions. This is to improve compatibility with registry APIs, but may result in a significant higher number of manifest pulls. Due to the recent pull limits imposed by Docker Hub, it is **not recommended** to use `latest` updated strategy with Docker Hub registry anymore if those pull limits are enforced on your account and/or images, especially if you have more than a couple of tags in your image's repository. Fetching meta data for any given tag counts as two pulls from the view point of Docker Hub.

* The default rate limit for API requests is 20 requests per second per registry. If this is too much for your registry, please lower this value in the `registries.conf` by setting `ratelimit` to a lower value.

### Bug fixes

* fix: Correctly apply ignore list when matchfunc is not set (#116)
* fix: Prevent nil pointer dereference in image creds (#126)

### New features

* feat: Get tag creation date also from v2 manifest schemas (#115)
* feat: add argocd-image-updater test command (#117)
* feat: Implement rate limiter and metadata parallelism (#118)
* feat: Support for getting pull creds from external scripts (#121)
* feat: Export Prometheus compatible metrics (#123)
* feat: Support for expiring credentials (#124)

### Other changes

* chore: Update to Golang v1.14.13

## 2020-09-27 - Release v0.7.0

### Upgrade notes (no really, you MUST read this)

**Deprecation notice:** The annotation `argocd-image-updater.argoproj/<image>.tag-match` has been deprecated in favour of `argocd-image-updater.argoproj/<image>.allow-tags` to be consistent with the new `argocd-image-updater.argoproj/<image>.ignore-tags` annotation. The old annotation will still work, but a warning message will be issued in the log. Users are encouraged to rename their annotations asap, as the `tag-match` annotation is subject to removal in a future version of the image updater.

### Bug fixes
* fix: Correctly parse & use pull secret entries without protocol

### New features

* feat: Support for GitHub Container Registry (ghcr.io)
* feat: Allow setting log level from configmap (and environment)
* feat: Allow ignoring set of tags

### Other changes

* refactor: Introduce allow-tags and deprecate tag-match annotation
* chore: Externalize version & build information


## 2020-09-25 - Release v0.6.2

### Upgrade notes (no really, you MUST read this)
N/A

### Bug fixes
* fix: Tag sort mode for custom registries aren't honored

### New features
* feat: Allow configuration of default namespace for registries

### Other changes
N/A

## 2020-09-22 - Release v0.6.1

### Upgrade notes (no really, you MUST read this)
N/A

### Bug fixes
* fix: Make insecure TLS connections to registries actually work

### New features
N/A

### Other changes
N/A

## 2020-09-22 - Release v0.6.0

### Upgrade notes (no really, you MUST read this)
N/A

### Bug fixes

* fix: Use default Helm parameter names if none given in annotations 
* fix: Application spec updates should be atomic

### New features

* feat: Allow insecure TLS connections to registries

### Other changes

* chore: Update Argo CD client to 1.7.4
* chore: Update K8s client to v1.18.8

## 2020-09-10 - Release v0.5.1

### Upgrade notes (no really, you MUST read this)
N/A

### Bug fixes

* fix: Correctly parse version constraints containing equal signs

### New features
N/A

### Other changes
N/A

## 2020-08-29 - Release v0.5.0

### Upgrade notes (no really, you MUST read this)

If you use the `latest` or `name` update strategy and relied on the semantic
version constraint to limit the list of tags to consider, you will need to
use an additional `tag-match` annotation to limit the tags. The constraint
will only be used for update strategy `semver` from v0.5.0 onwards.

### Bug fixes

* fix: Do not constraint tags to semver if update strategy is latest
* fix: Multiple same images in the same application not possible

### New features

* feat: Allow filtering applications by name patterns

### Other changes

* enhancement: Slightly increase verbosity in default log level
* enhancement: Provide default RBAC rules for serviceaccount
* enhancement: Warm-up cache before starting image cycle

## 2020-08-18 - Release v0.4.0

### Upgrade notes (no really, you MUST read this)

N/A

### Bug fixes

* fix: Properly load registry configuration
* fix: Use a default path for registries.conf
* fix: Make installation base compatible with Kustomize v2

### New features

* feat: Allow filtering of tags using built-in filter functions
* feat: Allow specifying per-image pull secrets
* feat: Support GitHub Docker registry

### Other changes

* refactor: Lots of refactoring "under the hood"

## 2020-08-11 - Release v0.3.1

### Upgrade notes (no really, you MUST read this)

### Bug fixes

* fix: Only fetch metadata when require by update strategy

### New features

### Other changes

## 2020-08-10 - Release v0.3.0

### Upgrade notes (no really, you MUST read this)

* Syntax change for running: `argocd-image-updater run [flags]` instead of `argocd-image-updater [flags]` has now to be used
* **Attention:** Helm annotation names have changed from `<image_alias>.image-{name,tag,spec}` to `<image_alias>.helm.image-{name,tag,spec}`
* Specifying target image name for Kustomize applications now require their own annotation, the image alias is not re-used for this anymore

### Bug fixes

* fix: Possible race while waiting for app updating goroutines

### New features

* feat: Allow setting the sort mode for tags per image via annotation

### Other changes

* refactor: Change run behaviour by providing `run` and `version` commands
* enhancement: Provide a `version` command to print out version information
* enhancement: Allow storing metadata for image tags
* enhancement: Fetch tag metadata along with tags and store creation timestamp
* enhancement: Introduce simple cache for immutable metadata
* refactor: Make version constraints parametrizable
* enhancement: Allow sorting of tags by semver, date or name
* refactor: Give annotation names their own namespace-like living room
* enhancement: Kustomize target image name got its own annotation

## 2020-08-06 - Release v0.2.0

### Upgrade notes (no really, you MUST read this)

### Bug fixes

* fix: Correctly get Helm target parameter names from annotations
* fix: Enforce sane concurrency limit

### New features

* feat: Introduce dry run mode
* feat: Allow for concurrent update of multiple applications

### Other changes

refactor: Reduced number of necessary ArgoCD API requests (#4)

## 2020-08-06 - Release v0.1.1

Quick bug-fix release to get rid of some left-over working names

### Upgrade notes (no really, you MUST read this)

### Bug fixes

* Changed the binary name from `argocd-image-controller` (old working name) to
`argocd-image-updater`.

### New features

N/A

### Other changes

N/A

## 2020-08-05 - Release v0.1.0

Initial release.

### Upgrade notes (no really, you MUST read this)

N/A

### Bug fixes

N/A

### New features

N/A

### Other changes