community
community copied to clipboard
Handle server side field overrides
Is your feature request related to a problem? During reconciliation, ACK service controller consumes the custom resource spec (i.e. desired state) from “etcd” and then creates/updates the AWS resource to match that desired state. ACK service controller uses the custom resource spec fields to construct Create/Update AWS API request.
However, some AWS API’s behavior does not completely rely on the fields present in Create/Update AWS API request alone. In the backend, these AWS APIs sometime update the value of field present in request with newly calculated value which represents the latest state of the resource in AWS. AWS APIs return these updated values with Create/Update API output and Read/List/Describe API output after resource creation.
Following problem arise due to this behavior of AWS APIs,
- When an AWS API does not strictly use the property value as is in the backend, but updates it, the desired spec of the K8s resource in the “etcd” does not correctly represent the actual state of resource in AWS. This is a problem because for K8s user, the spec of custom resource is the source of truth for state of K8s resource.
Describe the solution you'd like ACK controller should store these overrides in custom resource's metadata.annotations and use it to infer the desired state of a resource.
this proposal seems worth finally taking a look at, proposal in https://github.com/aws-controllers-k8s/community/pull/856
/close
largely implemented by late initialize feature.
@knottnt: Closing this issue.
In response to this:
/close
largely implemented by late initialize feature.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.