v1.0.0
v1.0.0
contains major performance improvements for reconciling Terraform
resources.
This release introduces two new managed.Connecter
s and two new managed.ExternalClient
s (controller.noForkExternal
and the controller.noForkAsyncExternal
) for reconciling Terraformed resources without forking any Terraform CLI or Terraform provider processes.
The new external client implementation consumes the Terraform provider's Go provider schema and invokes the CRUD functions registered in that schema via the terraform-plugin-sdk utility functions.
The new external clients employ an in-memory Terraform state cache as these clients no longer construct Terraform workspaces while reconciling their resources.
New external clients provide significant CPU and memory footprint reduction compared to traditional external clients. Below is an example result from Upbound Official provider-aws
using the new external client for 1K and 10K MR. These results are shared not to provide a Sizing Guide but as a reference to understand the improvements in performance metrics. Also, the experiment sets of tests are shared:
-
Objective: 10K UserPolicyAttachment MRs
-
Parallelization: 500 reconcile workers
-
Poll period: 10min
-
Node: m5.2xlarge (8vCPU, 32GiB RAM)
Average TTR Peak TTR Average Memory Peak Memory Average CPU Peak CPU 4.40 secs 79 secs 775.41 MiB 1185.62 MiB 15.25% 20.90% -
Objective: 1K UserPolicyAttachment MRs
-
Parallelization: 500 reconcile workers
-
Poll period: 10min
-
Node: m5.2xlarge (8vCPU, 32GiB RAM)
Average TTR Peak TTR Average Memory Peak Memory Average CPU Peak CPU 4.15 secs 44 secs 630.39 MiB 948.35 MiB 9.06% 12.69%
What's Changed
- Adding a PlanGeneratorOption for excluding Kubernetes scenario based steps from Filesystem scenario by @sergenyalcin in #265
- Don't scrape empty files by @marcoths in #268
- Fix of duplicate resource reading by @sergenyalcin in #270
- Adding ResourcePreProcessor interface by @sergenyalcin in #267
- remove finalizers before deleting migrated old MRs by @erhancagirici in #272
- Improve CEL message by @lsviben in #274
- updated the management policies upgrade doc by @lsviben in #248
- Add jitter to reconcile delay for managed.Reconciler by @turkenf in #281
- Bump Github workflow dependencies by @turkenf in #285
- Updates source code for ownership change by @jeanduplessis in #279
- Granular management policy - promote to BETA by @turkenh in #288
- Add NoFork External Connectors & Clients by @ulucinar in #294
New Contributors
- @marcoths made their first contribution in #268
- @erhancagirici made their first contribution in #272
Full Changelog: v0.10.0...v1.0.0