crossplane / crossplane/upjet

Conditional late initialization configuration

Open
#214 0 comments 2 reactions 0 assignees View on GitHub
enhancement is:triaged v2
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.