{"action":"created","issue":{"url":"https://api.github.com/repos/lyft/goruntime/issues/15","repository_url":"https://api.github.com/repos/lyft/goruntime","labels_url":"https://api.github.com/repos/lyft/goruntime/issues/15/labels{/name}","comments_url":"https://api.github.com/repos/lyft/goruntime/issues/15/comments","events_url":"https://api.github.com/repos/lyft/goruntime/issues/15/events","html_url":"https://github.com/lyft/goruntime/issues/15","id":321662287,"node_id":"MDU6SXNzdWUzMjE2NjIyODc=","number":15,"title":"Failure on kubernetes due to walking hidden subdirectories","user":{"login":"BenPope","id":922500,"node_id":"MDQ6VXNlcjkyMjUwMA==","avatar_url":"https://avatars1.githubusercontent.com/u/922500?v=4","gravatar_id":"","url":"https://api.github.com/users/BenPope","html_url":"https://github.com/BenPope","followers_url":"https://api.github.com/users/BenPope/followers","following_url":"https://api.github.com/users/BenPope/following{/other_user}","gists_url":"https://api.github.com/users/BenPope/gists{/gist_id}","starred_url":"https://api.github.com/users/BenPope/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BenPope/subscriptions","organizations_url":"https://api.github.com/users/BenPope/orgs","repos_url":"https://api.github.com/users/BenPope/repos","events_url":"https://api.github.com/users/BenPope/events{/privacy}","received_events_url":"https://api.github.com/users/BenPope/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-05-09T17:40:47Z","updated_at":"2018-09-13T17:40:32Z","closed_at":null,"author_association":"NONE","body":"I've tried to deploy https://github.com/lyft/ratelimit to Kubernetes, but it fails to find the correct configuration because goruntime first traverses a hidden directory, and then fails with a duplicate domain on the configuration it should actually load.\r\n\r\nWhen Kubernetes mounts a configMap, it does symlink trickery to allow for atomic swapping; e.g.,:\r\n```\r\nbash-4.4$ ls -al \r\ntotal 32\r\ndrwxrwxrwx 3 root root 4096 May  9 17:03 .\r\ndrwxr-xr-x 3 root root 4096 May  9 17:03 ..\r\ndrwxr-xr-x 2 root root 4096 May  9 17:03 ..2018_05_09_17_03_25.201237914\r\nlrwxrwxrwx 1 root root   31 May  9 17:03 ..data -> ..2018_05_09_17_03_25.201237914\r\nlrwxrwxrwx 1 root root   18 May  9 17:03 config.yaml -> ..data/config.yaml\r\nbash-4.4$ ls -al ..2018_05_09_17_03_25.201237914 \r\ntotal 24\r\ndrwxr-xr-x 2 root root 4096 May  9 17:03 .\r\ndrwxrwxrwx 3 root root 4096 May  9 17:03 ..\r\n-rw-r--r-- 1 root root  210 May  9 17:03 config.yaml\r\n```\r\ngoruntime first loads `..2018_05_09_17_03_25.201237914/config.yaml`, and then `./config.yaml` is rejected with a duplicate `domain`.  Due to the way goruntime forms a hierarchical key, ratelimit is unable to find suitable configuration.\r\n\r\nWould it make sense to prevent walking directories that start with a dot?  I guess they don't make a lot of sense given that the hierarchical key separator is also a dot.\r\n\r\nI'm happy to make a PR if there is general agreement."},"comment":{"url":"https://api.github.com/repos/lyft/goruntime/issues/comments/421091169","html_url":"https://github.com/lyft/goruntime/issues/15#issuecomment-421091169","issue_url":"https://api.github.com/repos/lyft/goruntime/issues/15","id":421091169,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMTA5MTE2OQ==","user":{"login":"junr03","id":6007532,"node_id":"MDQ6VXNlcjYwMDc1MzI=","avatar_url":"https://avatars0.githubusercontent.com/u/6007532?v=4","gravatar_id":"","url":"https://api.github.com/users/junr03","html_url":"https://github.com/junr03","followers_url":"https://api.github.com/users/junr03/followers","following_url":"https://api.github.com/users/junr03/following{/other_user}","gists_url":"https://api.github.com/users/junr03/gists{/gist_id}","starred_url":"https://api.github.com/users/junr03/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/junr03/subscriptions","organizations_url":"https://api.github.com/users/junr03/orgs","repos_url":"https://api.github.com/users/junr03/repos","events_url":"https://api.github.com/users/junr03/events{/privacy}","received_events_url":"https://api.github.com/users/junr03/received_events","type":"User","site_admin":false},"created_at":"2018-09-13T17:40:32Z","updated_at":"2018-09-13T17:40:32Z","author_association":"CONTRIBUTOR","body":"Additionally, I would propose making the feature configurable."}}
{"actor":{"display_login":"junr03"}}