Conditional late initialization configuration
- Dominant language
- Go
- Stars
- 481
- Forks
- 131
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 11
Description
### What problem are you facing?
Crossplane performs [late initialization](https://docs.crossplane.io/v1.12/concepts/managed-resources/#late-initialization) to fully represent the external resource in the Kube API by filling the spec of the Managed resource with the default values from the cloud provider. Upjet automates this and exposes a [configuration interface](https://github.com/upbound/upjet/blob/main/docs/add-new-resource-long.md#late-initialization-configuration) to ignore provided field paths in case of a conflict that couldn't be automatically resolved.
We observe some cases where these conflicts only happen under certain conditions, for example:
- With [AWS Lambda Function](https://github.com/upbound/provider-aws/issues/692#issuecomment-1548184664), skip late initialization of `source_code_hash` if `imageUri` is provided, not `s3_key` or `filename`.
- With [AWS RDS DB Instance](https://github.com/upbound/provider-aws/issues/723), skip late initialization of "allocated_storage", "engine", "engine_version", "password" and "username" if `replicateSourceDb` is set.
### How could Upjet help solve your problem?
Provide a configuration interface for late initialization that would enable conditional late initialization.
Contributor guide
Assessment
This issue has not been assessed yet.