Skip to content

Add DynamoDB update code path #1029

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
a-hilaly opened this issue Oct 15, 2021 · 4 comments
Closed

Add DynamoDB update code path #1029

a-hilaly opened this issue Oct 15, 2021 · 4 comments
Assignees
Labels
kind/enhancement Categorizes issue or PR as related to existing feature enhancements. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. service/dynamodb Indicates issues or PRs that are related to dynamodb-controller.

Comments

@a-hilaly
Copy link
Member

Currently the DynamoDB controller only support create and delete operations. We should add Update operation code path as well.
/assign

@a-hilaly
Copy link
Member Author

Since ACK treats GlobalTables and Tables as two different and independent resources, we still need to understand what are about the boundaries between these two resources from the DynamoDB Table/GlobalTable controller plane view, and what are/are there any overlapping calls that might impact two different resources (Table and GlobalTable).

Questions to answer/investigate:

  • How does the GlobalTable controller plane remove Replication group? are the deletion actions queued? Is it possible to interrupt the deletion by adding more replication groups?
  • Let's assume we request a deletion of all the replication groups. What happens if a user calls after a short amount of time UpdateGlobalTable to re-increase the GlobalTable ReplicationGroup? Will the deletion still happen or will be interrupted?
  • How does a “UpdateTable” call (used to update the replicas GlobalSecondaryIndexes ) impacts DescribeGlobalTable response?
  • And vice versa does a UpdateGlobalTable impacts the response of a DescribeTable ?

a-hilaly added a commit to a-hilaly/ack-dynamodb-controller that referenced this issue Dec 22, 2021
Issue: aws-controllers-k8s/community#1029

This patch adds hooks and delta helpers to properly update Table tags.

Description of changes:
- Drop the generate updateTable function and use a custom one
- Add hooks to properly compute the tags delta and make necessary API
calls to update them
- Add e2e tests for table tag updates
ack-bot pushed a commit to aws-controllers-k8s/dynamodb-controller that referenced this issue Dec 22, 2021
Issue: aws-controllers-k8s/community#1029

This patch adds hooks and delta helpers to properly update Table tags.

Description of changes:
- Drop the generate updateTable function and use a custom one
- Add hooks to properly compute the tags delta and make necessary API
calls to update them
- Add e2e tests for table tag updates

By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license.
@a-hilaly
Copy link
Member Author

This issue also includes:

@vijtrip2 vijtrip2 added the lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. label Feb 14, 2022
@a-hilaly a-hilaly added service/dynamodb Indicates issues or PRs that are related to dynamodb-controller. and removed DynamoDB labels Dec 13, 2022
@jljaco jljaco added the priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. label Mar 30, 2023
ack-prow bot pushed a commit to aws-controllers-k8s/dynamodb-controller that referenced this issue Apr 6, 2023
Issues:

- aws-controllers-k8s/community#1000
- aws-controllers-k8s/community#1029
- aws-controllers-k8s/community#1596

Description of changes:
- Add `Table` custom update code
- Add `Table` custom preCompare delta code (to properly compare
`GlobalSecondaryIndexes` ,`AttributeDefinitions` and `KeySchemas`)
- Add unit tests for custom compare code for `GlobalSecondaryIndexes`
- Make `KeySchema` an immutable field.
- Gradually update `GlobalSecondaryIndexes` when multiple ones are
update/removed or added.
- Add custom code to properly populate `BillingMode` and
`SSESpecification` and `TableClass`
- Add e2e tests for each new support field update + one test to ensure
  that multi-field updates at once can be properly handled

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
@a-hilaly
Copy link
Member Author

a-hilaly commented Apr 6, 2023

Fixed and released in dynamodb v1.1.0
/close

@ack-prow ack-prow bot closed this as completed Apr 6, 2023
@ack-prow
Copy link

ack-prow bot commented Apr 6, 2023

@a-hilaly: Closing this issue.

In response to this:

Fixed and released in dynamodb v1.1.0
/close

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement Categorizes issue or PR as related to existing feature enhancements. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. service/dynamodb Indicates issues or PRs that are related to dynamodb-controller.
Projects
No open projects
Status: Done
Development

No branches or pull requests

5 participants