[{"data":1,"prerenderedAt":290},["ShallowReactive",2],{"project-13105871":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":41,"post_text":44,"what":45,"said":69,"maker_in_thread":143,"shape":150,"grid":155,"attempts":252,"same_week":253,"maker_shows":42,"maker_hidden":282,"reader_version":283,"card":284},"13105871","konfd","Manage Kubernetes secrets and configmaps with Go templates","title","Show HN: konfd – Manage Kubernetes secrets and configmaps with Go templates","https:\u002F\u002Fgithub.com\u002Fkelseyhightower\u002Fkonfd","github.com","kelseyhightower",1480951417,2016,115,40,308,2264,14,"notable","infrastructure","kubernetes configuration management","cli",[24,25,26,27],"kubernetes","configmap","go templates","secrets","curious",-0.083,{"positive":31,"neutral":32,"mixed":33,"critical":34},1,4,0,2,7,{"execution":37,"privacy":38,"idea":39,"design":40},{"positive":33,"critical":33},{"positive":33,"critical":31},{"positive":33,"critical":31},{"positive":31,"critical":33},[42,33,33,31,33,33,33,33,33,33,33,33,33,33,33,33,31,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,42,33,43,42,42],3,5,null,{"problem":46,"audience":44,"pricing":44,"motivation":44,"time_to_build":44,"stack":54,"openness":66,"stage":67,"team_size":68},{"value":47,"source":48,"evidence":49},"Generating complete config files in a pod namespace from other Kubernetes resources without external config backends","commenter",[50],{"id":51,"by":52,"text":53},"13106157","gabrtv","More great stuff from Kelsey... My tldr; konfd writes out k8s configmaps based on other k8s resources like secrets, configmaps, etc. Really useful for writing out complete config…",[55,62],{"value":56,"source":48,"evidence":57},"Go",[58],{"id":59,"by":60,"text":61},"13109031","kozikow","I propose an alternative to templates: Use go objects to define your config. Better dynamicity, readability and typesafety. See my post…",{"value":63,"source":48,"evidence":64},"Kubernetes",[65],{"id":51,"by":52,"text":53},"open_source","prototype","unknown",{"praise":70,"objections":79,"requests":99,"questions":114,"alternatives":119},[71],{"value":72,"source":48,"evidence":73},"Useful for writing config files into pod namespaces without external backends",[74,75],{"id":51,"by":52,"text":53},{"id":76,"by":77,"text":78},"13108819","fcantournet","Hi kelsey, this is pretty nice ! Is there any way to bribe you into slowing down on the awesome sauce delivery pipeline so people can catch up !? asking for a friend. If you find…",[80,95],{"value":81,"source":48,"evidence":82},"Kubernetes secrets are stored unencrypted in etcd, so calling them secrets is misleading",[83,87,91],{"id":84,"by":85,"text":86},"13107142","otterley","Kelsey, I (and others) would kindly appreciate it if you'd stop calling anything in Kubernetes as it exists today a \"secret\" and writing new code to further encourage its use.…",{"id":88,"by":89,"text":90},"13107903","TheDong","If someone can access your etcd, they can write new pods to run into it which will then be distributed to nodes to run. Those new pods could reference existing secrets, be in any…",{"id":92,"by":93,"text":94},"13108980","tonyhb","Aren't secrets stored unecrypted in kube? I'd hesitate to call them secrets, though config looks good.",{"value":96,"source":48,"evidence":97},"Watch-based updates would be faster and more efficient than a sync loop",[98],{"id":51,"by":52,"text":53},[100,107],{"value":101,"source":48,"evidence":102},"Add a watch mode instead of polling on syncInterval",[103,104],{"id":51,"by":52,"text":53},{"id":105,"by":11,"text":106},"13106289","This is great feedback. I'm still on the fence about a watch mode for the following reasons: 1. The template configmap will not change as often as the secrets and configmap…",{"value":108,"source":48,"evidence":109},"Integrate Vault with Kubernetes secrets",[110,111],{"id":84,"by":85,"text":86},{"id":112,"by":11,"text":113},"13107572","First, thanks for taking the time to offer feedback regarding what we call \"secrets\" in Kubernetes. As you've rightfully pointed out the current implementation of \"secrets\" are…",[115],{"value":116,"source":48,"evidence":117},"Why use ConfigMaps for templates instead of a third-party resource",[118],{"id":76,"by":77,"text":78},[120,125,132,136],{"value":121,"source":48,"evidence":122},"HashiCorp Vault",[123,124],{"id":84,"by":85,"text":86},{"id":112,"by":11,"text":113},{"value":126,"source":48,"evidence":127},"envconsul",[128],{"id":129,"by":130,"text":131},"13114723","Terretta","Also consider Consul\u002FVault so you can leverage the remarkably uncoupled portability of envconsul: https:\u002F\u002Fgithub.com\u002Fhashicorp\u002Fenvconsul \u002F\u002F PS. To help avoid confusion, I wish…",{"value":133,"source":48,"evidence":134},"Go objects to generate Kubernetes configs",[135],{"id":59,"by":60,"text":61},{"value":137,"source":48,"evidence":138},"vault-controller",[139],{"id":140,"by":141,"text":142},"13107199","coleca","Didn't he already do this? https:\u002F\u002Fgithub.com\u002Fkelseyhightower\u002Fvault-controller",{"comments":32,"answered":31,"key":144},[145,146,147],{"id":105,"text":106},{"id":112,"text":113},{"id":148,"text":149},"13107745","We all want a strong foundation and will continue to work to create one. In parallel, many of us like building and sharing things, and given that most things in Kubernetes are…",{"commenters":151,"max_depth":152,"maker_replies":32,"first_comment_mins":153,"lifespan_hours":154},19,11,27,71,[156,158,159,163,165,167,169,172,174,177,180,184,186,189,192,195,197,200,202,203,205,207,210,212,214,216,219,222,225,228,230,232,235,237,239,241,243,245,248,250],[51,33,42,157,52,33],"project\u002Fneutral\u002Fexecution",[105,33,33,157,11,31],[160,33,33,161,162,33],"13108155","other\u002Fneutral\u002Fidea","andrewstuart2",[84,31,31,164,85,33],"maker\u002Fcritical\u002Fprivacy",[140,31,33,166,141,33],"commenter\u002Fneutral\u002Fnone",[168,31,33,166,85,33],"13107231",[170,31,33,166,171,33],"13107341","metral",[173,31,33,166,85,33],"13107377",[175,31,33,166,176,33],"13110039","elsonrodriguez",[178,31,33,179,85,33],"13110782","other\u002Fneutral\u002Fprivacy",[181,31,33,182,183,33],"13111661","other\u002Fneutral\u002Fnone","meddlepal",[185,31,33,182,85,33],"13111692",[187,31,33,182,188,33],"13111676","iamdeedubs",[190,31,33,166,191,33],"13107410","markbnj",[193,31,33,194,85,33],"13107527","other\u002Fcritical\u002Fprivacy",[112,31,33,196,11,31],"maker\u002Fneutral\u002Fprivacy",[198,31,31,199,85,33],"13107671","maker\u002Fcritical\u002Fidea",[148,31,33,201,11,31],"maker\u002Fneutral\u002Fnone",[129,31,33,166,130,33],[88,31,33,204,89,33],"commenter\u002Fcritical\u002Fprivacy",[206,31,33,204,85,33],"13108245",[208,31,33,166,209,33],"13108583","soamv",[211,31,33,204,85,33],"13108663",[213,31,33,166,89,33],"13109924",[215,31,33,204,85,33],"13110217",[217,31,33,166,218,33],"13111121","mugsie",[220,31,33,166,221,33],"13111298","robszumski",[223,31,33,224,85,33],"13111612","other\u002Fcritical\u002Fdocs",[226,31,33,227,218,33],"13114134","commenter\u002Fneutral\u002Fdocs",[229,31,33,166,85,33],"13123817",[231,31,33,166,218,33],"13130415",[233,31,33,166,234,33],"13122824","iamskeptic",[236,31,33,166,85,33],"13123318",[238,31,33,166,234,33],"13125041",[240,31,33,166,85,33],"13125496",[76,34,42,242,77,33],"maker\u002Fneutral\u002Fdesign",[244,34,33,242,11,31],"13109617",[246,34,43,247,77,33],"13109643","maker\u002Fpositive\u002Fdesign",[59,42,42,249,60,33],"project\u002Fneutral\u002Fidea",[92,32,42,251,93,33],"project\u002Fneutral\u002Fprivacy",[],[254,259,264,268,273,278],{"id":255,"name":256,"points":257,"category":258},"13095553","Handicareers.com",303,"web_saas",{"id":260,"name":261,"points":262,"category":263},"13120111","itsupport.grammable.me",285,"other",{"id":265,"name":266,"points":267,"category":258},"13079102","LaptopHits.com",254,{"id":269,"name":270,"points":271,"category":272},"13116727","Victory",220,"dev_tools",{"id":274,"name":275,"points":276,"category":277},"13121402","CakeResume",195,"productivity",{"id":279,"name":280,"points":281,"category":272},"13116426","Gomix",185,false,"v2",{"id":285,"name":5,"line":6,"ai":282,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":286,"top":18,"kw":287,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":288,"url":9,"mix":289,"praise":72,"objection":81,"sub":21},13105871,-0.08,[24,25,26,27],"3001000000000000100000000000000000030533",[31,32,33,34],1794036550321]