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

prevents garbage collection from removing pinned images #103299

Merged
merged 3 commits into from Nov 16, 2021

Conversation

wgahnagl
Copy link
Contributor

@wgahnagl wgahnagl commented Jun 29, 2021

What type of PR is this?

/kind feature

What this PR does / why we need it:

prevents garbage collection from removing pinned images

Which issue(s) this PR fixes:

#101808
implements this

Special notes for your reviewer:

Does this PR introduce a user-facing change?

allows users to prevent garbage collection on pinned images 

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

[KEP] https://github.com/kubernetes/enhancements/pull/2694

@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/feature Categorizes issue or PR as related to a new feature. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Jun 29, 2021
@k8s-ci-robot k8s-ci-robot added needs-priority Indicates a PR lacks a `priority/foo` label and requires one. sig/node Categorizes an issue or PR as relevant to SIG Node. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Jun 29, 2021
@ehashman ehashman added this to Triage in SIG Node PR Triage Jun 29, 2021
@ehashman
Copy link
Member

Is there a KEP or issue tracking this?

@wgahnagl wgahnagl force-pushed the addPinned branch 2 times, most recently from b51f03b to 9c683d1 Compare July 2, 2021 17:27
@haircommander
Copy link
Contributor

this was combined with CRI beta kep: kubernetes/enhancements#2694

@haircommander
Copy link
Contributor

/retest

@k8s-ci-robot k8s-ci-robot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Jul 8, 2021
@wgahnagl
Copy link
Contributor Author

wgahnagl commented Jul 8, 2021

/priority important-soon

@k8s-ci-robot k8s-ci-robot added priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. and removed needs-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Jul 8, 2021
pkg/kubelet/images/image_gc_manager.go Outdated Show resolved Hide resolved
pkg/kubelet/images/image_gc_manager.go Outdated Show resolved Hide resolved
staging/src/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto Outdated Show resolved Hide resolved
@@ -193,6 +193,25 @@ func TestDeleteUnusedImagesExemptSandboxImage(t *testing.T) {
require.NoError(t, err)
}

func TestDeletePinnedImage(t *testing.T) {
Copy link
Member

Choose a reason for hiding this comment

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

I'd recommend adding cases for:

  • List with no pinned images
  • List with only pinned images
  • List with mixed images

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added!

For the CRI implementation to be able to indicate to the Kubelet that an image should not be garbage collected.

Signed-off-by: Peter Hunt <pehunt@redhat.com>
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Nov 2, 2021
@wgahnagl
Copy link
Contributor Author

wgahnagl commented Nov 3, 2021

@pacoxu sorry this took so long! Ptal!

Copy link
Member

@endocrimes endocrimes left a comment

Choose a reason for hiding this comment

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

logic lgtm, minor test cleanup comments

@@ -206,6 +206,105 @@ func TestDeleteUnusedImagesExemptSandboxImage(t *testing.T) {
require.NoError(t, err)
}

func TestDeletePinnedImage(t *testing.T) {
mockCtrl := gomock.NewController(t)
defer mockCtrl.Finish()
Copy link
Member

Choose a reason for hiding this comment

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

no need to call Finish when passing a testing.T into NewController as of go1.14 (https://pkg.go.dev/github.com/golang/mock/gomock#Controller.Finish)

Suggested change
defer mockCtrl.Finish()

require.NoError(t, err)
assert.EqualValues(0, spaceFreed)
assert.Len(fakeRuntime.ImageList, 2)
}
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
}
}

Copy link
Member

@pacoxu pacoxu left a comment

Choose a reason for hiding this comment

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

/lgtm
Seems good now.

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Nov 4, 2021
@ehashman ehashman moved this from Needs Reviewer to Needs Approver in SIG Node PR Triage Nov 4, 2021
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mrunalp, wgahnagl

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/kubelet cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. release-note Denotes a PR that will be considered when it comes time to generate release notes. sig/node Categorizes an issue or PR as relevant to SIG Node. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
Development

Successfully merging this pull request may close these issues.

None yet

8 participants