Skip to content

Handle server side field overrides #855

@vijtrip2

Description

@vijtrip2

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/designCategorizes issue or PR as related to a technical design.kind/enhancementCategorizes issue or PR as related to existing feature enhancements.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.priority/backlogHigher priority than priority/awaiting-more-evidence.

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions