github.com/opendevstack/tailor@v1.3.5-0.20220119161809-cab064e60a67/CHANGELOG.md (about) 1 # Changelog 2 3 ## Unreleased 4 5 ## [1.3.4] - 2022-01-19 6 7 ### Fixed 8 9 - Excluded kinds are exported from the server ([#245](https://github.com/opendevstack/tailor/issues/245)) 10 11 ## [1.3.3] - 2021-12-17 12 13 ### Fixed 14 15 - Parallel execution errors out with: `Cannot stat ".combined.env"` ([#243](https://github.com/opendevstack/tailor/issues/243)) 16 17 ## [1.3.2] - 2021-06-30 18 19 ### Fixed 20 21 - Avoid panic on template with empty parameters([#238](https://github.com/opendevstack/tailor/pull/238)) 22 - Preserve svc cluster ips by default ([#242](https://github.com/opendevstack/tailor/pull/242)) 23 24 ## [1.3.1] - 2021-02-11 25 26 ### Added 27 28 - Add support for `StatefulSet` resources ([#235](https://github.com/opendevstack/tailor/pull/235)). 29 30 ## [1.3.0] - 2020-11-13 31 32 ### Changed 33 34 - Use `oc get` without `--export` flag, which has been removed in Kubernetes 1.19 ([#230](https://github.com/opendevstack/tailor/pull/230)). 35 36 ## [1.2.2] - 2020-10-27 37 38 ### Added 39 40 - Handle `HorizontalPodAutoscaler` resoures ([#227](https://github.com/opendevstack/tailor/pull/227)). 41 42 ## [1.2.1] - 2020-09-21 43 44 ### Changed 45 46 - Export resources and process templates concurrently ([#220](https://github.com/opendevstack/tailor/pull/220)). This should not cause any change in behaviour, but you should notice Tailor being faster, especially against slow clusters. 47 48 ### Fixed 49 50 - Ignore `managedFields` ([#222](https://github.com/opendevstack/tailor/pull/222)). The fixed problem only occurs when Tailor is used against OpenShift 4. 51 52 ## [1.2.0] - 2020-08-10 53 54 ### Added 55 56 - Handle `Job` resoures ([#212](https://github.com/opendevstack/tailor/pull/212)). 57 58 ### Changed 59 60 - Do not print timestamps when errors occur ([b378a89](https://github.com/opendevstack/tailor/commit/b378a89be243037c00bee0d2c9fdb9870b69b69e)). 61 - Change test infrastructure to GitHub Actions ([#186](https://github.com/opendevstack/tailor/pull/186) and [#216](https://github.com/opendevstack/tailor/pull/216)), and implement easier to maintain approach for end-to-end tests ([#215](https://github.com/opendevstack/tailor/pull/215) and [#219](https://github.com/opendevstack/tailor/pull/219)). 62 63 ### Fixed 64 65 - Export `LimitRange` and `Quota` resources ([decfae9](https://github.com/opendevstack/tailor/commit/decfae93d5542c0d9ca9e9b3c61e8e697d88c124)). Support for those resources was added in 1.0.0, but they were not exported, only applied. Note that this change may lead to differences in diff output compared to 1.1.4. 66 67 ## [1.1.4] - 2020-07-20 68 69 ### Fixed 70 71 - Replace only whole words with `${TAILOR_NAMESPACE}` ([#211](https://github.com/opendevstack/tailor/pull/211)). Note that while this should yield better results than the previous behaviour, there might be rare situations where Tailor misses to replace the namespace now. 72 73 ## [1.1.3] - 2020-07-01 74 75 ### Added 76 77 - Allow `--exclude` to be repeated ([#208](https://github.com/opendevstack/tailor/pull/208)). 78 79 ### Changed 80 81 - Improve hint when recreation is prevented ([4e2d04a](https://github.com/opendevstack/tailor/commit/4e2d04a402acb74e925c129dd55b3f31bf2d92e5)). 82 83 ## [1.1.2] - 2020-06-22 84 85 ### Fixed 86 87 - Do not trim all annotations during export by default. Instead, only a few known annotations are removed (`kubectl.kubernetes.io/last-applied-configuration`, `openshift.io/image.dockerRepositoryCheck`). If you want to trim other annotations, there is a new flag `--trim-annotation`. The flag can be repeated, and allows either exact match or prefix match (e.g. `openshift.io/`). ([#207](https://github.com/opendevstack/tailor/pull/207)). 88 - Recreate may fail ([#204](https://github.com/opendevstack/tailor/pull/204)). 89 90 ## [1.1.1] - 2020-06-18 91 92 ### Fixed 93 94 - Create `ServiceAccount` and `RoleBinding` resources before e.g. `DeploymentConfig` resources to avoid pod startup failure due to missing service accounts ([#202](https://github.com/opendevstack/tailor/pull/202)). 95 96 ## [1.1.0] - 2020-06-16 97 98 ### Added 99 100 - Allow users to selectively apply changes ([#198](https://github.com/opendevstack/tailor/pull/198)). 101 102 ### Changed 103 104 - Use Go 1.14 ([#196](https://github.com/opendevstack/tailor/pull/196)). 105 - Trim host paths from executable ([#196](https://github.com/opendevstack/tailor/pull/196)). 106 107 ### Fixed 108 109 - Fail with proper error when template parameter does not have `name` property ([#197](https://github.com/opendevstack/tailor/pull/197)). 110 - Fix panic on invalid template ([#200](https://github.com/opendevstack/tailor/pull/200)). 111 112 ## [1.0.0] - 2020-05-20 113 114 ### Added 115 116 - Support `Deployment` resource ([#189](https://github.com/opendevstack/tailor/pull/189)). 117 - Support `LimitRange` and `ResourceQuota` resources ([#194](https://github.com/opendevstack/tailor/pull/194)). 118 - Export with parameterised namespace by default ([#192](https://github.com/opendevstack/tailor/pull/192)). 119 120 ### Changed 121 122 - Use `oc get --export` instead of deprecated `oc export`. This allows to use Tailor with OpenShift 4 - however there is no manual or automated test setup yet which means OpenShift 4 is not officially supported yet ([#160](https://github.com/opendevstack/tailor/pull/160)). 123 124 ### Fixed 125 126 - Handle missing EOL in params file ([#185](https://github.com/opendevstack/tailor/pull/185)). 127 - Comparing `CronJob`s works now ([#158](https://github.com/opendevstack/tailor/issues/158)). 128 - Respect `--exclude` flag when exporting ([#149](https://github.com/opendevstack/tailor/issues/149)). 129 - Exporting just one resource works as expected now ([#188](https://github.com/opendevstack/tailor/issues/188)). 130 - Abort generating keys if files are already present ([#193](https://github.com/opendevstack/tailor/pull/193)). 131 132 ## [0.13.1] - 2020-03-23 133 134 ### Fixed 135 136 - Avoid `--force` flag when run against local cluster ([#182](https://github.com/opendevstack/tailor/pull/182)). 137 138 ## [0.13.0] - 2020-03-20 139 140 ### Added 141 142 - Prefer `Tailorfile.NAMESPACE` over `Tailorfile`, see [#172](https://github.com/opendevstack/tailor/pull/172). 143 144 - Add namespace env file if it exists, see [#173](https://github.com/opendevstack/tailor/pull/173). 145 146 - Add `--verify` flag to check if any drift is present after applying ([#179](https://github.com/opendevstack/tailor/pull/179)). 147 148 ### Changed 149 150 - Use `oc apply` instead of generating patches ([#168](https://github.com/opendevstack/tailor/pull/168)). 151 The change removes the custom Tailor annotations in favour of 152 the `kubectl.kubernetes.io/last-applied-configuration` annotation. 153 If there are any issues with unexpected drift or problems when reconciling, 154 please consult https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/. 155 156 ### Fixed 157 158 - Exit with 1 when no diff is performed ([#175](https://github.com/opendevstack/tailor/issues/175)). 159 160 - Do not calculate drift when adding empty string to missing fields ([#180](https://github.com/opendevstack/tailor/pull/180)). 161 162 - Patching of arrays can fail (see [#92](https://github.com/opendevstack/tailor/issues/92). 163 This was fixed by using `oc apply` as outlined above. 164 165 ### Removed 166 167 - Remove --context-dir support ([#176](https://github.com/opendevstack/tailor/pull/176)). 168 169 170 ## [0.12.0] - 2020-01-31 171 172 ### Added 173 174 - Introduce new flag `--preserve-immutable-fields`. It has the same effect as 175 specifying `--preserve` for all immutable fields (such as 176 `pvc:/spec/accessModes`). For more background, see [#162](https://github.com/opendevstack/tailor/issues/162). 177 178 ### Changed 179 180 - Rename `status` to `diff` and `update` to `apply`. For backwards compatibility, 181 two aliases `status` and `update` have been created. As a consequence, `--diff` 182 has been renamed to `--format`. See 183 [#163](https://github.com/opendevstack/tailor/pull/163). 184 185 - Rename `--ignore-path` to `--preserve` See 186 [#165](https://github.com/opendevstack/tailor/pull/165). For backwards 187 compatibility, `--ignore-path` is still supported (though deprecated). 188 189 - Return with non-zero exit code when detected drift is not reconciled. This 190 allows scripts to know whether the user confirmed to apply the changes or not. 191 See [#166](https://github.com/opendevstack/tailor/pull/166). 192 193 ## [0.11.0] - 2019-11-29 194 195 ### Added 196 - Support cron jobs resources. See [#155](https://github.com/opendevstack/tailor/issues/155). 197 198 ## [0.10.4] - 2019-11-25 199 200 ### Fixed 201 - Resolve `--param-file` and `--private-key` relative to context directory. See 202 [#152](https://github.com/opendevstack/tailor/pull/152) and 203 [#153](https://github.com/opendevstack/tailor/pull/153) 204 205 ## [0.10.3] - 2019-10-18 206 207 ### Fixed 208 - Avoid drift in annotations after creation of resource ([#142](https://github.com/opendevstack/tailor/issues/142)) 209 - Remove legacy fields `/userNames` and `/groupNames` from `Rolebinding` 210 resources. Those fields are added by `oc export` but might cause issues when 211 set to `null`. Tailor removes those now, so only changes in `subjects` have 212 any effect. See [#140](https://github.com/opendevstack/tailor/issues/140). 213 - Do not escape field names when adding annotations object, as when 214 `/metadata/annotations` is added, the keys inside need to contain raw slashes 215 (`/`) instead of escaped ones (`~1`). Only when annotations already exist, 216 keys containing a slash need to escape them. See 217 [#145](https://github.com/opendevstack/tailor/issues/145). 218 219 ## [0.10.2] - 2019-10-09 220 221 ### Fixed 222 - Export of resources with `/metadata/generateName` instead of `/metadata/name` 223 failed as Tailor expects every resource to have a name. Now Tailor will 224 fallback to `generateName`, see [#135](https://github.com/opendevstack/tailor/issues/135). 225 226 ## [0.10.1] - 2019-10-07 227 228 ### Fixed 229 - Deletion of resources does not show notice anymore ([#131](https://github.com/opendevstack/tailor/issues/131)) 230 - Textual diff reflects actual changes corretly now. In 0.10.0, it showed some 231 deletions which were not part of the JSON patches. See [#130](https://github.com/opendevstack/tailor/issues/130). 232 233 ## [0.10.0] - 2019-09-30 234 235 ### Added 236 237 - Support multiple context directories. This basically allows to execute Tailor 238 once for multiple directories. Alongside, template and param dir flags have 239 been cleaned up. See [#113](https://github.com/opendevstack/tailor/issues/113) 240 for more details. 241 242 ### Changed 243 244 - Hide internal annotations ([#112](https://github.com/opendevstack/tailor/issues/122)) 245 - Unify annotation names. You can delete existing annotations in OCP starting 246 with `original-values.tailor.io` and 247 `managed-annotations.tailor.opendevstack.org`. Note that this is a breaking change: Tailor will show drift on e.g. image references in `DeploymentConfig` resources. Once `tailor update` has run (if the referenced image tag did not change, no de-deployment will happen), the drift disappears. See [#76](https://github.com/opendevstack/tailor/issues/76). 248 - Avoid drift on empty values to reduce template boilerplate ([#107](https://github.com/opendevstack/tailor/issues/107)) 249 - Hide secrets drift by default. If drift should be shown, pass `--reveal-secrets` ([#109](https://github.com/opendevstack/tailor/issues/109)) 250 - Prevent resource recreation by default. If re-creation should be allowed, pass `--allow-recreate` ([#111](https://github.com/opendevstack/tailor/issues/111)) 251 - Extract OpenShift client to allow easier testing. This should have no effect 252 on the tool itself ([#118](https://github.com/opendevstack/tailor/issues/118)) 253 - Adopt github.com/golang-standards/project-layout. This should have no effect 254 on the tool itself. 255 256 257 ## [0.9.5] - 2019-07-22 258 259 ### Added 260 - Exclusion of kinds/resources/labels via the `--exclude` flag ([#115](https://github.com/opendevstack/tailor/issues/115)). 261 262 ### Changed 263 - Addressed issues reported by golangci-lint ([#119](https://github.com/opendevstack/tailor/issues/119), thanks @u5surf). 264 265 ## [0.9.4] - 2019-04-23 266 267 ### Fixed 268 - Do not issue removal patches when a path with an array value is ignored 269 - Item is not found when both name and selector is given (oc returns a single item then instead of a list). 270 271 ## [0.9.3] - 2019-03-15 272 273 ### Fixed 274 275 - `TAILOR_NAMESPACE` detection was not working ([#100](hhttps://github.com/opendevstack/tailor/issues/100)). 276 277 ## [0.9.2] - 2019-01-18 278 279 ### Changed 280 - The `oc` binary might have a different version than the targeted cluster. This 281 can lead to incorrect behaviour (e.g. constant drift). To avoid this, Tailor 282 now checks whether the client and server version match and refuses to 283 continue if this is not the case. Users running Tailor against multiple 284 clusters with differing versions can now specify the `oc` binary to use via 285 `--oc-binary` or disregard the warning and proceed with `--force`. As a 286 side-effect of this change, all operations require an `oc login` now. See 287 [#88](https://github.com/opendevstack/tailor/pull/88). 288 - In OCP versions above 3.9, a new field `lastTriggeredImage` is added to 289 `imageChangeParams` automatically. The value is not known to template authors 290 and consequently stripped from the export before comparison ([#90](https://github.com/opendevstack/tailor/pull/90)). 291 292 ### Fixed 293 294 - Malformed templates caused a panic previously. Now a human-friendly error is 295 displayed pointing at the syntax problem ([#85](https://github.com/opendevstack/tailor/pull/85)). 296 297 ## [0.9.1] - 2018-11-27 298 299 ### Added 300 301 - Automatically pass `TAILOR_NAMESPACE` param to templates if they define it in 302 the `parameters` section. The value is set to the namespace that Tailor runs 303 against (#77). 304 305 ### Changed 306 307 - Unify log output during update (#78). 308 - Remove metadata from template as it is unsused by Tailor (#74). 309 - Ignore selector (e.g. set in a `Tailorfile`) when a specific resource is 310 given as Openshift does not accept both selector and resource (#72). 311 - Surface errors during export as template (#70). 312 313 ### Fixed 314 315 - Remove annotations from exported templates also in case they contain slashes 316 (#73). 317 318 319 ## 0.9.0 (2018-10-29) 320 321 * [Feature] Rewrite diff engine. Tailor now uses `oc patch` under the hood to 322 to update resources (instead of `oc apply`). The new behaviour is more correct 323 and less dangerous. (#49) 324 * [Feature] Warn before all resources are deleted. `--force` has to be given to 325 proceed in this case. (#66) 326 * [Feature] Implement flag to ignore paths, `--ignore-path`. Paths can be 327 ignored for all kinds, for one kind or for one resource. (#63) 328 * [Feature] Add change summary at the end of `status` and `update` commands. 329 * [Feature] Support multiple param files via repearing `--param-file`. (#56) 330 * [Feature] Check if OCP project exists during initialisation. (#55) 331 * [Fix] Apply resource changes in specific order, starting with resources that 332 do not have dependencies. (#54) 333 * [Task] Treat creationTimestamp as platform managed field (#51) 334 * [Task] Switch to Go 1.11 modules (#52) 335 336 ## 0.8.0 (2018-08-01) 337 338 * [Feature] Implement general handling of immutable fields. Previously Tailor tried to modify the resource which resulted in an error, now it recreates the resource (#33). 339 * [Feature] Add `--debug` flag, which contains debug information, reducing the amount of printed information when `--verbose` is given. `--debug` implies `--verbose`. 340 * [Fix] Image reference changed accidentally when other parts of the DeploymentConfig changed (#38). 341 * [Fix] Propagate exit code from `oc` properly when running `tailor update`. 342 343 ## 0.7.0 (2018-07-30) 344 345 * [Feature] Support multiple labels (#7). 346 * [Feature] Allow comments in `Tailorfile` (either `#` or `//`). 347 * [Fix] Allow whitespace around flags and their arguments in `Tailorfile`. 348 * [Fix] Check param dir existance if explicitly given (#24). 349 * [Fix] Don't panic when params are duplicated (#12). 350 * [Fix] Prevent original values annotation in exports (#3 and #5). 351 * [Task] Improve text about resource limiting (#25). 352 * [Task] Improve diff description (#6). 353 * [Task] Show found resources (#14). 354 355 ## 0.6.1 (2018-07-26) 356 357 * [Fix] Respect flags defined in Tailorfile that have default values (#22). 358 359 ## 0.6.0 (2018-07-25) 360 361 * [Feature] `Tailorfile` support. 362 * [Task] Use compact help template (which allows to show help for just one command). 363 * [Fix] Fix wrong export target when just one resource is specified (#11). 364 * [Fix] Percent signs (%) are not automatically encoded (duplicated) to prevent issues (#4). 365 * [Fix] Error when deleting resource due to `--selector` not allowed during delete operation (#13). 366 367 ## 0.5.1 (2018-07-12) 368 369 * Fix exiting with 1 and error statement all the time even though everything went fine. 370 371 ## 0.5.0 (2018-07-12) 372 373 * Rename `ocdiff` to `tailor` and release on GitHub. 374 375 ## 0.4.0 376 377 * Prevent rendering when no public key files are found. 378 * Check if file exists at beginning of reveal command. 379 * Proper error message if editor is not found in PATH. 380 * Fix wrong export when a single resource was targeted. 381 * Prefer folder `public-keys` over working dir if present when looking for public keys. 382 * Increase specifity of blacklisted key regexes. 383 * Prefer folder `<namespace>`` over working dir if present when looking for param files. 384 * Deal with modified values by saving the original value in an annotation and resetting the key to that value before comparing. 385 386 ## 0.3.0 387 388 * Compile and compare single list instead of multiple lists. This reduces the number of API calls required and allows to export properly. 389 390 ## 0.2.0 391 392 * Secrets handling (PGP encryption) 393 394 ## 0.1.0 395 396 Initial version