{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/9870","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/9870/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/9870/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/9870/events","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/9870","id":88762981,"number":9870,"title":"Allow Recyclers to be configurable","user":{"login":"markturansky","id":8001968,"avatar_url":"https://avatars.githubusercontent.com/u/8001968?v=3","gravatar_id":"","url":"https://api.github.com/users/markturansky","html_url":"https://github.com/markturansky","followers_url":"https://api.github.com/users/markturansky/followers","following_url":"https://api.github.com/users/markturansky/following{/other_user}","gists_url":"https://api.github.com/users/markturansky/gists{/gist_id}","starred_url":"https://api.github.com/users/markturansky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markturansky/subscriptions","organizations_url":"https://api.github.com/users/markturansky/orgs","repos_url":"https://api.github.com/users/markturansky/repos","events_url":"https://api.github.com/users/markturansky/events{/privacy}","received_events_url":"https://api.github.com/users/markturansky/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"}],"state":"open","locked":false,"assignee":{"login":"thockin","id":5595220,"avatar_url":"https://avatars.githubusercontent.com/u/5595220?v=3","gravatar_id":"","url":"https://api.github.com/users/thockin","html_url":"https://github.com/thockin","followers_url":"https://api.github.com/users/thockin/followers","following_url":"https://api.github.com/users/thockin/following{/other_user}","gists_url":"https://api.github.com/users/thockin/gists{/gist_id}","starred_url":"https://api.github.com/users/thockin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thockin/subscriptions","organizations_url":"https://api.github.com/users/thockin/orgs","repos_url":"https://api.github.com/users/thockin/repos","events_url":"https://api.github.com/users/thockin/events{/privacy}","received_events_url":"https://api.github.com/users/thockin/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/milestones/11","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/milestones/v1.0-post","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/milestones/11/labels","id":1035380,"number":11,"title":"v1.0-post","description":"Things that are triaged and decided not for inclusion to v1.0","creator":{"login":"brendandburns","id":5751682,"avatar_url":"https://avatars.githubusercontent.com/u/5751682?v=3","gravatar_id":"","url":"https://api.github.com/users/brendandburns","html_url":"https://github.com/brendandburns","followers_url":"https://api.github.com/users/brendandburns/followers","following_url":"https://api.github.com/users/brendandburns/following{/other_user}","gists_url":"https://api.github.com/users/brendandburns/gists{/gist_id}","starred_url":"https://api.github.com/users/brendandburns/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brendandburns/subscriptions","organizations_url":"https://api.github.com/users/brendandburns/orgs","repos_url":"https://api.github.com/users/brendandburns/repos","events_url":"https://api.github.com/users/brendandburns/events{/privacy}","received_events_url":"https://api.github.com/users/brendandburns/received_events","type":"User","site_admin":false},"open_issues":486,"closed_issues":92,"state":"open","created_at":"2015-03-23T22:54:17Z","updated_at":"2015-07-17T05:45:30Z","due_on":null,"closed_at":null},"comments":26,"created_at":"2015-06-16T15:39:19Z","updated_at":"2015-07-17T12:04:16Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/9870","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/9870","diff_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/9870.diff","patch_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/9870.patch"},"body":"The current PV Recyclers are hard-coded to use busybox w/ a specific command.  Consider this the default implementation.\r\n\r\nMove the default implementation higher up the stack to allow override of the recyclers.\r\n\r\nBig TODO in this PR to allow configuration of volume plugins by a controller.  Defaults were moved to the binary itself (app.Plugins) in the interim.  \r\n\r\n@smarterclayton @thockin "},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/comments/122256915","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/9870#issuecomment-122256915","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/9870","id":122256915,"user":{"login":"markturansky","id":8001968,"avatar_url":"https://avatars.githubusercontent.com/u/8001968?v=3","gravatar_id":"","url":"https://api.github.com/users/markturansky","html_url":"https://github.com/markturansky","followers_url":"https://api.github.com/users/markturansky/followers","following_url":"https://api.github.com/users/markturansky/following{/other_user}","gists_url":"https://api.github.com/users/markturansky/gists{/gist_id}","starred_url":"https://api.github.com/users/markturansky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markturansky/subscriptions","organizations_url":"https://api.github.com/users/markturansky/orgs","repos_url":"https://api.github.com/users/markturansky/repos","events_url":"https://api.github.com/users/markturansky/events{/privacy}","received_events_url":"https://api.github.com/users/markturansky/received_events","type":"User","site_admin":false},"created_at":"2015-07-17T12:04:16Z","updated_at":"2015-07-17T12:04:16Z","body":"The question, then, is whether or not we want PVs to have a recycler than can differ from other PVs of that same type.  \r\n\r\nIf we want to scrub some NFS volumes one way and another set of NFS volumes with a different scrubber, the \"scrubber template\" approach works.   If we want a single scrubber implementation, adding an CLI flag gives us that and keeps it out of the API.\r\n\r\nOr we do both -- CLI gives us a default per cluster installation and adding an optional template to the PV allows configuring a scrubber per PV.\r\n\r\nThe code for either of these approaches is clear to me and I can do the implementation quickly, once we nail down requirements/tech design.  \r\n\r\n"}}