{"action":"created","issue":{"url":"https://api.github.com/repos/appc/spec/issues/165","labels_url":"https://api.github.com/repos/appc/spec/issues/165/labels{/name}","comments_url":"https://api.github.com/repos/appc/spec/issues/165/comments","events_url":"https://api.github.com/repos/appc/spec/issues/165/events","html_url":"https://github.com/appc/spec/issues/165","id":56388962,"number":165,"title":"spec: propose mapping of a hardware device","user":{"login":"brianredbeard","id":57542,"avatar_url":"https://avatars.githubusercontent.com/u/57542?v=3","gravatar_id":"","url":"https://api.github.com/users/brianredbeard","html_url":"https://github.com/brianredbeard","followers_url":"https://api.github.com/users/brianredbeard/followers","following_url":"https://api.github.com/users/brianredbeard/following{/other_user}","gists_url":"https://api.github.com/users/brianredbeard/gists{/gist_id}","starred_url":"https://api.github.com/users/brianredbeard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianredbeard/subscriptions","organizations_url":"https://api.github.com/users/brianredbeard/orgs","repos_url":"https://api.github.com/users/brianredbeard/repos","events_url":"https://api.github.com/users/brianredbeard/events{/privacy}","received_events_url":"https://api.github.com/users/brianredbeard/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/appc/spec/labels/help%20wanted","name":"help wanted","color":"159818"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-02-03T15:04:34Z","updated_at":"2015-05-04T03:43:16Z","closed_at":null,"body":"After an offline discussion with @vbatts & @jonboulle wanted to begin the discussion of support for hardware devices and beginning to map out what that looks like.  To give the reader three examples we'll use software defined radios and NTP (which, in this day and age is increasingly a SDR), and [USB Armory](http://www.inversepath.com/usbarmory.html) - a hardware module with the ability to be used as an authentication token.\r\n\r\nIn the case of software defined radios a user has a device with a chipset when can change the tuned frequency through the use of software.  One no longer needs a specific device built to listen on a frequency (in this example we'll use [APRS](http://en.wikipedia.org/wiki/Automatic_Packet_Reporting_System)) but can write a piece of code which tunes the chipset to 144.390 MHz and can receive packets over the air. This allows for receiving weather data, transmission of short text data, and telemetry from moving craft (in the past I have used this for transmission of telemetry data from a [space blimp] (http://wiki.hacdc.org/index.php/HacDC_Spaceblimp_5)).  Many pieces of SDR software have complex setup requirements which could greatly be simplified through the use of containers.  Going further being able to have multiple containers on a host where each is connected to a different hardware device would allow for isolators guarantee a higher degree of stability from buggy software and potentially complex processing blocks (in the case of GNURadio).\r\n\r\nIn the more general case an enterprise may utilize a combination of GPS and GPRS hardware devices with NTP to run a series of stratum one clocks to guarantee strict timing precision for the use of encryption and routing protocols.\r\n\r\nIn the case of USB Armory an organization could store secrets in the device and then pass it directly into a container where only the container could unlock the device.\r\n\r\nAlso, as there is still a limited discussion about this I get the sense that many folks are still looking at this with an eye towards web based workloads.  I think that \r\nIn proceeding forward there are three primary considerations:\r\n\r\n  1. Specification of a generic format for defining the hardware requirements of a container\r\n  1. Specification of the mechanism for providing that device _to_ the container from the host\r\n  1. Specification of the mechanism for consumption of a device provided _from_ the host to the container\r\n\r\nI could foresee an initial discussion of this starting with one of two patterns:  Use of major/minor device which should work on all POSIX compliant systems or use of UDEV rules which places a dependency on UDEV which some users will find undesirable or impossible to implement (I could make a guess about @mpasternacki here.)"},"comment":{"url":"https://api.github.com/repos/appc/spec/issues/comments/98582388","html_url":"https://github.com/appc/spec/issues/165#issuecomment-98582388","issue_url":"https://api.github.com/repos/appc/spec/issues/165","id":98582388,"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},"created_at":"2015-05-04T03:43:16Z","updated_at":"2015-05-04T03:43:16Z","body":"FTR: we do similar things in Borg and we just hardcode cases and paths.  But then we have an actual \"home\" directory for apps that we construct, and can leave clues (symlinks) in."}}