{"action":"created","issue":{"url":"https://api.github.com/repos/projectatomic/commissaire/issues/126","repository_url":"https://api.github.com/repos/projectatomic/commissaire","labels_url":"https://api.github.com/repos/projectatomic/commissaire/issues/126/labels{/name}","comments_url":"https://api.github.com/repos/projectatomic/commissaire/issues/126/comments","events_url":"https://api.github.com/repos/projectatomic/commissaire/issues/126/events","html_url":"https://github.com/projectatomic/commissaire/issues/126","id":155221746,"number":126,"title":"Kubernetes storage engine","user":{"login":"petervo","id":10439156,"avatar_url":"https://avatars.githubusercontent.com/u/10439156?v=3","gravatar_id":"","url":"https://api.github.com/users/petervo","html_url":"https://github.com/petervo","followers_url":"https://api.github.com/users/petervo/followers","following_url":"https://api.github.com/users/petervo/following{/other_user}","gists_url":"https://api.github.com/users/petervo/gists{/gist_id}","starred_url":"https://api.github.com/users/petervo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petervo/subscriptions","organizations_url":"https://api.github.com/users/petervo/orgs","repos_url":"https://api.github.com/users/petervo/repos","events_url":"https://api.github.com/users/petervo/events{/privacy}","received_events_url":"https://api.github.com/users/petervo/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/projectatomic/commissaire/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":{"login":"ashcrow","id":22706,"avatar_url":"https://avatars.githubusercontent.com/u/22706?v=3","gravatar_id":"","url":"https://api.github.com/users/ashcrow","html_url":"https://github.com/ashcrow","followers_url":"https://api.github.com/users/ashcrow/followers","following_url":"https://api.github.com/users/ashcrow/following{/other_user}","gists_url":"https://api.github.com/users/ashcrow/gists{/gist_id}","starred_url":"https://api.github.com/users/ashcrow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ashcrow/subscriptions","organizations_url":"https://api.github.com/users/ashcrow/orgs","repos_url":"https://api.github.com/users/ashcrow/repos","events_url":"https://api.github.com/users/ashcrow/events{/privacy}","received_events_url":"https://api.github.com/users/ashcrow/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2016-05-17T10:03:35Z","updated_at":"2016-05-17T15:13:42Z","closed_at":null,"body":"When running commissaire as a pod in kubernetes/openshift I think it's reasonable to assume that 1) There will only ever be one cluster, and 2) Commissaire's and Kubernetes' view of the cluster should be identical at all times.\r\n\r\nThis got me thinking that perhaps in this mode we can eliminate the need for a separate etcd instance by having an alternate CherryPyStorePlugin class that instead of writing to etcd, stores and retrieves it's data using annotations on the node objects in kubernetes' API.\r\n\r\nI started playing with this idea a bit and ended up getting it sort of working by using the provided key combined with the json data to figure out what kubernetes object to retrieve/store data on. I didn't take this very far, while it does seem that this can work, it also is pretty hacky and likely to be fragile.\r\n\r\nSo I guess I have two questions here:\r\n\r\n1) Do you think that this is a goal worth pursuing. I think it is, if for no other reason than in this common use case you avoid whole classes of problems by not having to worry about commissaire and kubernetes being out of sync. You also avoid any questions about persistent storage for etcd in the pod.\r\n\r\n2) Assuming we want to pursue this how do you feel about expanding and formalizing the CherryPyStorePlugin API a little to include a bit more context than just list,get,set,delete. That way we can make the class plugable and support alternative implementations."},"comment":{"url":"https://api.github.com/repos/projectatomic/commissaire/issues/comments/219749887","html_url":"https://github.com/projectatomic/commissaire/issues/126#issuecomment-219749887","issue_url":"https://api.github.com/repos/projectatomic/commissaire/issues/126","id":219749887,"user":{"login":"mbarnes","id":56718,"avatar_url":"https://avatars.githubusercontent.com/u/56718?v=3","gravatar_id":"","url":"https://api.github.com/users/mbarnes","html_url":"https://github.com/mbarnes","followers_url":"https://api.github.com/users/mbarnes/followers","following_url":"https://api.github.com/users/mbarnes/following{/other_user}","gists_url":"https://api.github.com/users/mbarnes/gists{/gist_id}","starred_url":"https://api.github.com/users/mbarnes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbarnes/subscriptions","organizations_url":"https://api.github.com/users/mbarnes/orgs","repos_url":"https://api.github.com/users/mbarnes/repos","events_url":"https://api.github.com/users/mbarnes/events{/privacy}","received_events_url":"https://api.github.com/users/mbarnes/received_events","type":"User","site_admin":false},"created_at":"2016-05-17T15:13:42Z","updated_at":"2016-05-17T15:13:42Z","body":"Avoiding synchronization problems with (1) sounds like a win to me, though I don't know Kubernetes well enough to comment on the particulars.  Agree with @ashcrow on (2): worth doing regardless."}}