{"action":"opened","issue":{"url":"https://api.github.com/repos/appc/spec/issues/365","labels_url":"https://api.github.com/repos/appc/spec/issues/365/labels{/name}","comments_url":"https://api.github.com/repos/appc/spec/issues/365/comments","events_url":"https://api.github.com/repos/appc/spec/issues/365/events","html_url":"https://github.com/appc/spec/issues/365","id":72923786,"number":365,"title":"Images: Differentiating WHAT and HOW","user":{"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},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-05-04T05:07:45Z","updated_at":"2015-05-04T05:07:45Z","closed_at":null,"body":"Sorry if this has been hashed to death, but it bothers me. Sort of a lot.\r\n\r\nIncluding execution details (isolators like memory and CPU) is an \"interesting\" decision.  Docker has a pretty clean separation of \"what\" to run and \"how\" to run it, which makes containers very composable and useful in varying contexts.  E.g. the `mysql` image  for my 8GB laptop and my 128GB prod server is the same image.\r\n\r\nEmbedding the how (e.g. how much memory to allow) into an image sort of ties an image down to a specific use-case.  It also opens the door to scary spec statements like \"Execution details specified in image dependencies are ignored\".  This implies that the way to operate is to do the equivalent of Dockerfile's \"FROM\" on the reusable thing (e.g. mysql) into content-identical \"laptop-mysql\" and \"prod-mysql\" images, with different memory limits.  This means that the image you use to test is NOT the image you use in prod.  This is, IMO, an anti-pattern and should be discouraged strongly.  It also immediately creates two classes of images - those that provide \"how\" details (leaves) and those that don't (stems).\r\n\r\nImages are the permanent artifact of WHAT.  Pods are the artifact of what+how.  What justifies keeping isolators in images as opposed to just in pods?"}}