Skip to content
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

changes to update resources based on predetermined interval #571

Merged
merged 10 commits into from
Oct 7, 2022

Conversation

kumaritanushree
Copy link
Contributor

@kumaritanushree kumaritanushree commented Aug 4, 2022

What this PR does / why we need it:

Kapp will update resources based on predetermined interval set. To set the interval user needs to add annotation kapp.k14s.io/renew-duration to the resource

Which issue(s) this PR fixes:

Fixes #224

Does this PR introduce a user-facing change?

New annotation has been introduced called kapp.k14s.io/renew-duration to set the duration at which user want to renew their resources.

Additional Notes for your reviewer:

Review Checklist:
  • Follows the developer guidelines
  • Relevant tests are added or updated
  • Relevant docs in this repo added or updated
  • Relevant carvel.dev docs added or updated in a separate PR and there's
    a link to that PR
  • Code is at least as readable and maintainable as it was before this
    change

Additional documentation e.g., Proposal, usage docs, etc.:

Proposal

Copy link
Member

@praveenrewar praveenrewar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will take another look at the implementation in some time.

pkg/kapp/clusterapply/add_or_update_change.go Outdated Show resolved Hide resolved
pkg/kapp/cmd/app/deploy.go Outdated Show resolved Hide resolved
test/e2e/priodic_update_test.go Outdated Show resolved Hide resolved
test/e2e/priodic_update_test.go Outdated Show resolved Hide resolved
test/e2e/priodic_update_test.go Outdated Show resolved Hide resolved
test/e2e/priodic_update_test.go Outdated Show resolved Hide resolved
pkg/kapp/cmd/app/deploy.go Outdated Show resolved Hide resolved
pkg/kapp/cmd/app/deploy.go Outdated Show resolved Hide resolved
pkg/kapp/cmd/app/deploy.go Outdated Show resolved Hide resolved
pkg/kapp/cmd/app/deploy.go Outdated Show resolved Hide resolved
pkg/kapp/config/default.go Outdated Show resolved Hide resolved
pkg/kapp/diff/prepare_res_with_periodic_ann.go Outdated Show resolved Hide resolved
pkg/kapp/diff/prepare_res_with_periodic_ann.go Outdated Show resolved Hide resolved
pkg/kapp/clusterapply/add_or_update_change.go Outdated Show resolved Hide resolved
pkg/kapp/diff/prepare_res_with_periodic_ann.go Outdated Show resolved Hide resolved
pkg/kapp/diff/prepare_res_with_periodic_ann.go Outdated Show resolved Hide resolved
pkg/kapp/diff/prepare_res_with_periodic_ann.go Outdated Show resolved Hide resolved
pkg/kapp/diff/prepare_res_with_periodic_ann.go Outdated Show resolved Hide resolved
pkg/kapp/diff/prepare_res_with_periodic_ann.go Outdated Show resolved Hide resolved
pkg/kapp/diff/prepare_res_with_periodic_ann.go Outdated Show resolved Hide resolved
@kumaritanushree kumaritanushree marked this pull request as draft September 6, 2022 06:22
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
@kumaritanushree kumaritanushree marked this pull request as ready for review September 15, 2022 11:32
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/config/default.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
@kumaritanushree kumaritanushree force-pushed the task/224-priodic-resource-creation branch 2 times, most recently from ec3a576 to c2e70d7 Compare September 16, 2022 12:54
Copy link
Contributor

@100mik 100mik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bunch of comments!
Main intention being to decouple renewed resource from versioned resources.
Still need to think about what we call things finally.

Kudos for the exhaustive tests, it handles every case I could think of! We should verify it does not add a flake because 2s might be less for slower hosts

pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
Copy link
Contributor

@100mik 100mik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How the feature is structured looks great to me!

@kumaritanushree mentioned that today if the user chooses to recreate on update, the last-renewed annotation is not retained. Maybe we should verify if the rebase rule is working.

I do not see a lot of harm in the timer being reset in this case (right away at least). But worth verifying. I am pointing towards the rebase rule as it looks like the feature works otherwise in other case as we check existing resources directly.

Lets also check the tests for flakiness since there's sleeping involved.

TL;DR Next steps:

  1. Verify rebase rule
  2. Ensure tests are not flaky (a few re runs on the GitHub action worker maybe?)

pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/changes_set_with_periodic_rs.go Outdated Show resolved Hide resolved
pkg/kapp/cmd/app/deploy.go Outdated Show resolved Hide resolved
pkg/kapp/diff/change_set_with_versioned_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/changes_set_with_periodic_rs.go Outdated Show resolved Hide resolved
pkg/kapp/diff/changes_set_with_periodic_rs.go Outdated Show resolved Hide resolved
@kumaritanushree kumaritanushree force-pushed the task/224-priodic-resource-creation branch 2 times, most recently from 5a96c0e to e0a6ef1 Compare September 28, 2022 08:47
Copy link
Member

@praveenrewar praveenrewar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apart from the small nits, it looks good to me.

pkg/kapp/diff/renewable_resources.go Outdated Show resolved Hide resolved
test/e2e/renewable-resources_test.go Outdated Show resolved Hide resolved
@kumaritanushree kumaritanushree force-pushed the task/224-priodic-resource-creation branch 3 times, most recently from 4b0f079 to d656739 Compare October 3, 2022 14:08
@kumaritanushree kumaritanushree force-pushed the task/224-priodic-resource-creation branch from d656739 to ed4b40f Compare October 4, 2022 11:51
Copy link
Contributor

@100mik 100mik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!
I would prefer not having the unstopped functions, but dedicating a new structure to each one of them feels a bit extra

@@ -295,3 +275,40 @@ func existingVersionedResources(rs []ctlres.Resource) versionedResources {
}
return result
}

func newGroupedVersionedResources(rs []ctlres.Resource) map[string][]ctlres.Resource {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I would prefer it if this function and the next one are either scoped to a struct, maybe we can move stuff that are used by other parts of the code to a single place at a later point. Not a blocker but a nice to have

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@praveenrewar praveenrewar merged commit e14948a into develop Oct 7, 2022
Copy link
Contributor

@sethiyash sethiyash left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

kapp deploy triggers a new versioned asset based on a predetermined interval
6 participants