Perl 6 - the future is here, just unevenly distributed

IRC log for #salt, 2017-12-10

| Channels | #salt index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 saltslackbridge joined #salt
00:04 alexlist joined #salt
00:11 Hybrid1 joined #salt
00:14 kellyp joined #salt
00:15 aidin joined #salt
00:35 DanyC joined #salt
00:51 aidin joined #salt
00:53 Manor joined #salt
00:59 Manor joined #salt
01:00 Brew joined #salt
01:05 pipps joined #salt
01:10 Pulp joined #salt
01:36 DanyC joined #salt
01:44 esharpmajor joined #salt
01:48 cgiroua joined #salt
01:48 aidin joined #salt
02:08 Manor joined #salt
02:14 mcqueenorama joined #salt
02:15 mcqueenorama i'm seeing problems with "make test" in some salt-formulas from the salt-formulas repos.  Are those things normally well maintained and expected to be passing tests?
02:15 mcqueenorama for instance salt-formula-nginx gives this:
02:15 mcqueenorama - Rendering SLS 'base:nginx.server' failed: Jinja variable 'salt.utils.odict.OrderedDict object' has no attribute 'pkgs'
02:16 mcqueenorama salt-formula-linux fails for another reason.
02:16 mcqueenorama i just cloned it and ran make test
02:16 jrklein joined #salt
02:34 skinkitten joined #salt
02:36 * MTecknology votes for never using formulas
02:37 DanyC joined #salt
03:00 ilbot3 joined #salt
03:00 Topic for #salt is now Welcome to #salt! <+> Latest Versions: 2016.11.8, 2017.7.2 <+> Support: https://www.saltstack.com/support/ <+> Logs: http://irclog.perlgeek.de/salt/ <+> Paste: https://gist.github.com/ <+> See also: #salt-devel, #salt-offtopic, and https://saltstackcommunity.herokuapp.com (for slack) <+> We are volunteers and may not have immediate answers
03:01 MTecknology lots of formulas were written once and forgotten and almost all of them do things a bit different from the last and ... ya, I just don't like them at all.
03:01 XenophonF that's pretty extreme
03:01 XenophonF I respectfully disagree
03:02 XenophonF Formulas can encapsulate a lot of domain-specific knowledge---like any library.
03:02 nomeed joined #salt
03:02 XenophonF They suffer from the same kinds of issues as libraries, though, including technical debt, poorly defined interfaces, etc.
03:03 XenophonF salt-formula could use a re-write
03:03 XenophonF (just to pick one example)
03:03 XenophonF i re-wrote apache-formula for my own use but ended up going back to the official one
03:03 MTecknology They're good to use as examples, but beyond that we'll agree to disagree
03:04 XenophonF true
03:04 XenophonF my point is that Salt (and Ansible and Puppet etc etc) are already hard enough to learn
03:04 MTecknology (or a quick test to try out an unfamiliar app)
03:04 XenophonF my goal with formulas is to make my configs as cookie-cutter as possible
03:04 MTecknology formulas make learning salt harder IMO
03:05 XenophonF and to leverage the community to reduce my workload as much as possible
03:05 XenophonF b/c the reality is that no one on my team except me is writing states :(
03:06 MTecknology that was my situation running >500 unique snowflakes and ~10 cattle
03:07 mcqueenorama yes i was thinking of using them to speed up some quick demo, but its slowing me down instead. It seems like things changed in the deps and now they require changes to use
03:07 mcqueenorama so i have to figure out more stuff
03:08 zerocool_ joined #salt
03:08 MTecknology Is there anything special you're trying to do with nginx?  Without trying to manage certs, it /should/ be pretty much pkg.installed, file.managed (maybe a few of them), and service.running.
03:10 mcqueenorama no its standard simpe stuff, but i wanted to adopt the standard practices of the community, and it looked like the salt-formula repo is intended to be a community repo
03:10 mcqueenorama i'm surprised the tests don't pass
03:15 MTecknology XenophonF: One of the complaints I have with nginx is how much crap you usually have to shove into pillar to make the states function, to the point that 80% of the config was probably written by pillar. They also tend to manage too much and make future system upgrades a nightmare. Also, they seem to usually suffer bit rot, and when they don't, you have to always be diligent about what
03:15 MTecknology changes they made and make sure to run them through proper testing before letting them hit production. When you write your own states, you know what changes were made, why, and what impact they'll have across the network.
03:16 saltslackbridge <adammike> My issue with the published formulas on github is that they're too complicated. They try to account for every corner case of any possible config and it makes things complex
03:16 saltslackbridge <adammike> whereas you can probably accomplish what you need for your use case in 10% of the code/complexity
03:16 saltslackbridge <adammike> but it won't be as flexible
03:16 MTecknology In cases like the nginx and apache formulas, they seem to expect you to manage certs their exact way... but in my environment, I have certs managed in three different ways, in a fraction of work the formula does.
03:18 saltslackbridge <adammike> Pillars are expensive, too.. When I write formulas I aim for 90+ % of my systems to not require pillars, and only override defaults with pillars for the edge cases
03:18 XenophonF how are pillars expensive?
03:18 saltslackbridge <adammike> but that goes back to the whole snowflakes vs cattle discussion
03:19 saltslackbridge <adammike> they're not expensive, but they're one of the most resource intensive operations in salt
03:20 MTecknology With forumlas, they tend to get kinda expensive, with all sorts of merging
03:20 saltslackbridge <adammike> especially if you're using git pillars
03:20 saltslackbridge <adammike> and you have separate repos for each pillar
03:26 MTecknology mcqueenorama: This is basically what I'm using now-> https://gist.github.com/MTecknology/834a8b10a80503dcd57f65c184737d86   It could probably be done better, but it's simple, easy to follow, and it works.
03:27 mcqueenorama actually I was messing with haproxy, the nginx did work well, though its tests failed
03:28 mcqueenorama i was pushing out a PR to fix the README for the haproxy formula, but the tests are blocking that and I don't want to debug whatever that is
03:28 mcqueenorama thanks that's a good one
03:30 mcqueenorama that fancy include stuff in the pillar.sls is new to me
03:31 mcqueenorama in here: sys/websites/init.sls
03:32 mcqueenorama that tilde is a concat operator I guess
03:32 MTecknology yup
03:33 MTecknology That stuff is some relatively recent magic. I've been renaming my entire network to a special naming scheme so that I can start to drive my entire infrastructure from netbox and git repos with minimal changes for new deployments.
03:34 MTecknology mt_utils.app_group_from_id('prd-ns-01.core.domain.tld') --> 'prd_ns'   So if prd_ns.sls exists in the directory it gets loaded, otherwise it doesn't.
03:34 mcqueenorama where is that include rooted? in pillar_root or what?
03:35 MTecknology pillar root, ya
03:36 MTecknology Unfortunately, jinja include can't handle relative paths so I have to write out the same path instead of using the exact same init file every time.
03:39 promorphus joined #salt
03:45 Manor joined #salt
04:13 shiranaihito joined #salt
04:14 kellyp joined #salt
04:18 MTecknology mcqueenorama: random thought- I /was/ going to deploy haproxy, but then I realized it can't handle UDP so I ended up using nginx instead.
04:23 mcqueenorama yea i know nginx does it too.  I used to use haproxy so i like it.  I don't have a good reason for using it now, except I used it some years ago
04:30 MTecknology I /wanted/ to use haproxy. It gives you a pretty web ui with red/green/blue status and all sorts of nice things, but the lack of UDP support was a show stopper for me. :(
04:35 mcqueenorama yea its that lame old web ui.  I like it
05:00 indistylo joined #salt
05:04 Guest73 joined #salt
05:08 indistylo joined #salt
05:12 Manor joined #salt
05:43 aidin joined #salt
05:47 Manor joined #salt
05:47 aviau joined #salt
06:43 shripadr joined #salt
06:48 Manor joined #salt
06:49 noobiedubie joined #salt
07:26 Manor joined #salt
07:27 mcqueenorama I got rid of the haproxy formula and it was WAY easier.
07:27 mcqueenorama like these guys say: https://www.digitalocean.com/community/tutorials/saltstack-infrastructure-creating-salt-states-for-haproxy-load-balancers
07:28 mcqueenorama couldn't get a loop going for the backend group going in the yaml used by the formula
08:10 inad922 joined #salt
08:11 mcqueenorama joined #salt
08:13 MTecknology heheh, considering it's a digitalocean how-to, I'm almost surprised they didn't start of by compiling salt :P
08:21 mcqueeno1ama joined #salt
08:25 MTecknology mcqueeno1ama: dunno if this would interesting you - https://gist.github.com/MTecknology/834a8b10a80503dcd57f65c184737d86#file-loadbalancer_conf-jinja  I know you're not using nginx for load balancing, but it has some fun jinja in it.
08:26 xet7 joined #salt
08:26 MTecknology awe :(
08:26 MTecknology He hated it so much he timed out
08:34 armyriad joined #salt
08:42 mcqueeno1ama joined #salt
08:42 DanyC joined #salt
08:46 Manor joined #salt
08:47 aldevar joined #salt
08:55 jhauser_ joined #salt
08:56 Manor joined #salt
09:01 JAuz joined #salt
09:02 mcqueeno1ama joined #salt
09:05 MTecknology mcqueeno1ama: you gonna survive this time? :)
09:07 whytewolf that would be a no
09:08 pualj joined #salt
09:11 av_ joined #salt
09:12 xet7 joined #salt
09:16 MTecknology maybe they'll be back tomorrow :)
09:20 xet7 joined #salt
09:27 cyteen_ joined #salt
09:28 aldevar joined #salt
09:44 mcqueenorama joined #salt
09:48 mikecmpbll joined #salt
09:53 saltslackbridge <james> Is there any kind of generic 'wait' functionality?
09:54 saltslackbridge <james> Eg. I'd I had a state I *only* wanted to run if it was a requisite
10:02 Manor joined #salt
10:05 mcqueeno1ama joined #salt
10:09 hoolio joined #salt
10:14 cyteen_ joined #salt
10:18 seano joined #salt
10:22 shripadr_ joined #salt
10:22 seano joined #salt
10:25 mcqueenorama joined #salt
10:35 Manor joined #salt
10:36 DanyC joined #salt
10:47 mcqueeno1ama joined #salt
11:07 mcqueeno1ama joined #salt
11:25 seano joined #salt
11:27 mcqueenorama joined #salt
11:29 DanyC joined #salt
11:34 Trauma_ joined #salt
11:38 DanyC_ joined #salt
11:40 ymasson joined #salt
11:42 Manor joined #salt
11:47 aidin joined #salt
11:49 mcqueeno1ama joined #salt
11:51 pualj joined #salt
11:54 oida joined #salt
12:06 felskrone joined #salt
12:10 mcqueeno1ama joined #salt
12:11 mikecmpbll joined #salt
12:23 esharpmajor joined #salt
12:24 Manor joined #salt
12:29 evle3 joined #salt
12:30 mcqueenorama joined #salt
12:34 shripadr joined #salt
12:46 evle1 joined #salt
12:58 Manor joined #salt
12:58 Manor_ joined #salt
13:03 oida joined #salt
13:05 evle2 joined #salt
13:05 seano joined #salt
13:06 Manor joined #salt
13:11 mcqueeno1ama joined #salt
13:12 cgiroua joined #salt
13:32 mcqueenorama joined #salt
13:32 stewgoin joined #salt
13:36 evle joined #salt
13:39 XenophonF @james: can you go into greater detail about what you're trying to do?
13:40 saltslackbridge <james> Basically, I have a jinja for loop, with each state having an 'onchanges_in' to a state outside
13:40 saltslackbridge <james> But if there are no states in the loop, the outer state never gets a requisite and is run regardless
13:41 saltslackbridge <james> Atm I'm adding a jinja conditional for length of the loop to the outer state
13:42 saltslackbridge <james> But a global 'wait' flag (like cmd.wait) could mean a state could be defined but not run until explicitly called as a requisite by another state
13:46 XenophonF @james: consider using an else clause to the for loop that generates a no-op state
13:47 XenophonF alternatively, add an if considition to the for loop that inserts the onchanges_in state if loop.index==1
13:48 XenophonF or add an if condition outside the loop that only generates the onchanges_in state if the looped data structure has >0 elements
13:52 saltslackbridge <james> If I add an onchanges in my loop, it fires from any anyway, so that's fine
13:52 mcqueeno1ama joined #salt
13:54 saltslackbridge <james> And it's within an if statement to not run if the list is empty
13:54 saltslackbridge <james> But if I wanted to use that state as a requisite from anything else in my sls, I now can't
13:54 saltslackbridge <james> Plus, having a global 'wait' option would allow triggers to be imported from other SLS files
13:54 saltslackbridge <james> And only used when called as a requisite
14:03 dcrouch joined #salt
14:07 evle2 joined #salt
14:10 wevanscfi joined #salt
14:10 rem5_ joined #salt
14:13 mcqueeno1ama joined #salt
14:16 XenophonF so i'd define the state outside the loop, use for/else/endfor, and specify a test.succeed_without_changes with the onchanges_in requisite in the loop's else clause
14:16 XenophonF or do that outside the loop
14:16 XenophonF doesn't really matter since the test state won't do anything
14:16 XenophonF does that make sense?
14:19 Manor joined #salt
14:28 evle1 joined #salt
14:34 mcqueenorama joined #salt
14:49 kiorky joined #salt
14:49 fxhp joined #salt
14:49 rem5_ joined #salt
14:55 mcqueeno1ama joined #salt
15:01 netcho_ joined #salt
15:07 tiwula joined #salt
15:08 tiwula joined #salt
15:11 Hybrid1 joined #salt
15:14 cgiroua joined #salt
15:16 mcqueeno1ama joined #salt
15:21 mcqueeno1ama joined #salt
15:29 aidin joined #salt
15:32 Hybrid1 joined #salt
15:34 Manor joined #salt
15:35 Manor_ joined #salt
15:36 Manor__ joined #salt
15:36 Manor___ joined #salt
15:42 mcqueenorama joined #salt
15:58 Trauma_ joined #salt
16:03 mcqueeno1ama joined #salt
16:19 Manor joined #salt
16:23 mcqueeno1ama joined #salt
16:24 noobiedubie joined #salt
16:27 DanyC joined #salt
16:31 Manor joined #salt
16:34 lastjedi joined #salt
16:44 mcqueenorama joined #salt
16:45 gswallow joined #salt
16:47 Manor joined #salt
17:01 gswallow joined #salt
17:05 mcqueeno1ama joined #salt
17:10 mcqueeno1ama joined #salt
17:30 hunmonk joined #salt
17:30 cyteen_ joined #salt
17:48 seano joined #salt
17:49 rem5_ joined #salt
17:53 Manor joined #salt
17:59 gswallow joined #salt
18:01 mcqueenorama joined #salt
18:05 DanyC_ joined #salt
18:25 seano joined #salt
18:44 Lionel_Debroux_ joined #salt
18:55 Manor joined #salt
19:04 Oida joined #salt
19:07 mcqueenorama joined #salt
19:09 MTecknology Guest55330: Your connection seems to be really bad. :(
19:12 swa_work joined #salt
19:13 pualj joined #salt
19:15 cgiroua joined #salt
19:21 DanyC joined #salt
19:31 pualj_ joined #salt
19:35 rem5_ joined #salt
19:37 mcqueenorama joined #salt
20:31 ThomasJ joined #salt
20:51 seano joined #salt
20:59 mcqueenorama joined #salt
21:00 aldevar joined #salt
21:05 mcqueeno1ama joined #salt
21:12 aldevar joined #salt
21:16 cgiroua joined #salt
21:21 ProT-0-TypE joined #salt
21:26 mcqueeno1ama joined #salt
21:44 DanyC joined #salt
21:45 pualj joined #salt
21:46 ProT-0-TypE joined #salt
21:46 mcqueenorama joined #salt
21:49 aphor joined #salt
21:51 aldevar left #salt
22:07 mcqueeno1ama joined #salt
22:13 rem5_ joined #salt
22:14 aldevar joined #salt
22:27 mcqueenorama joined #salt
22:31 pseudonymous joined #salt
22:32 pseudonymous Hi - I am trying to write a custom grains file and to have it run using salt-ssh. I am having no luck so far (copied grains file contents from guide in documentation). Can I at least get salt to tell me which directories it's even looking for grains files in and what files it transfers to my target(s) ?
22:35 mcqueeno1ama joined #salt
22:47 pseudonymous Can I print the salt grains dirs... anyone ??
22:52 whytewolf pseudonymous: salt grains dirs?
22:52 whytewolf what is that supposed to be?
22:53 cgiroua joined #salt
22:54 pseudonymous whytewolf: Yes. you can write custom grains and they seem to go in a '_grains' directory. Through stupid copying of the dir into every conceivable subdir I think I've found out where to place them. But it would be helpful if I could make salt tell me which directories it looks in for different things (grains (modules), grains (values), pillars, execution modules (??), states..)
22:54 whytewolf salt://_grains
22:54 pseudonymous I'm having a lot of issues like this and the documentation is less than helpful.
22:55 whytewolf it is only ever read off of the file roots
22:56 whytewolf but your problem might be more to a known issue with salt-ssh
22:56 whytewolf https://github.com/saltstack/salt/issues/33629
22:56 saltslackbridge <james> I was asking a while back
22:56 saltslackbridge <james> if there's a way to select just a single minion from a group
22:57 saltslackbridge <james> turns out you can do that with `salt --subset =1 ...`
22:57 aldevar left #salt
22:58 saltslackbridge <james> wonder if there's a way to do that within salt
22:59 Manor joined #salt
23:01 saltslackbridge <james> eg. within orchestrate
23:02 whytewolf pseudonymous: for the record. salt doesn't look for things in the places you put them. they are synced from those places to the place salt will look. salt looks for custom grains pythons in /var/cache/salt/minion/extmods/grains/custom.py which it puts files from salt://_grains in after a saltutil.sync_grains
23:03 whytewolf with salt-ssh it is more difficult because there isn't a stream going back and forth ebtween the master and the minion. the master puts together a thin tar ball of what the master thinks the minion needs in order to do it's tasks. and puts that on the minion
23:03 saltslackbridge <james> Can anyone tell me what the use of the publish module is?
23:04 saltslackbridge <james> Like, why would I use `publish.publish`?
23:04 whytewolf james, I've seen it used for Cert setup
23:05 whytewolf it is used internally by the x509 modules
23:06 pseudonymous whytewolf: ah yes - thanks, I came across that too :) But thanks for clarifying
23:12 saltslackbridge <james> Oh yeah, I've seen it in a couple of modules
23:12 saltslackbridge <james> I guess there's that
23:12 saltslackbridge <gtmanfred> @james yes you can do subset in the orchestrate runner
23:12 saltslackbridge <james> You can?
23:12 saltslackbridge <james> I couldn't see it in the source either
23:12 saltslackbridge <gtmanfred> Yes, I added it
23:12 saltslackbridge <james> I saw you added batch
23:12 saltslackbridge <gtmanfred> I added both
23:12 saltslackbridge <james> You are a legend :thumbsup:
23:13 saltslackbridge Action: james closes issue
23:13 Manor joined #salt
23:13 saltslackbridge <james> Is it just a kwarg for the orchestrate step?
23:14 saltslackbridge <gtmanfred> https://github.com/saltstack/salt/blob/67d020c8b1d10e9fcec2b2bb2ef6e5522cccecf0/salt/modules/saltutil.py#L1345
23:14 saltslackbridge <gtmanfred> yeah
23:15 hunmonk is there some trick merging minion grain settings in a salt-cloud deploy? if I add a grains: key to the minion config in /etc/salt/cloud, that config does not get included in the minion's grain file, i'm assuming b/c i have another grain setting at the provider level that's clobbering it? i tried 'grains_deep_merge: True' in the minion config section of /etc/salt/cloud, but that didn't work
23:15 saltslackbridge <james> I wonder if I was on an old commit
23:15 saltslackbridge <james> when I looked for it
23:17 saltslackbridge <gtmanfred> hummonk yeah salt cloud profile and stuff does not merge with settings from above, they only overwrite
23:18 saltslackbridge <gtmanfred> @james also, for publish.publish, i find it is usually used when you need to get information from another server when the mine won’t work.
23:18 saltslackbridge <gtmanfred> usually to get like a registration key
23:18 saltslackbridge <gtmanfred> or something
23:19 sh123124213 joined #salt
23:19 hunmonk gtmanfred: that's odd, the Saltstack doc seems to suggest it does: https://docs.saltstack.com/en/latest/topics/cloud/config.html#minion-configuration
23:20 hunmonk gtmanfred: or is it grains specifically that don't inherit from above?
23:20 saltslackbridge <james> ah
23:20 saltslackbridge <james> makes sense
23:20 saltslackbridge <gtmanfred> right, it just does a regular update
23:20 saltslackbridge <gtmanfred> not a deep update
23:21 saltslackbridge <gtmanfred> so it will overwrite anything from the top level, so if it is {key: {whatever: thing}} if you have {key: {‘something’: ‘else’}}, that won’t be merged, `key` will be overwritten
23:21 saltslackbridge <gtmanfred> but if you have a different key
23:21 saltslackbridge <gtmanfred> that will be merge
23:21 saltslackbridge <gtmanfred> d
23:21 saltslackbridge <gtmanfred> notice how in that example, there is not a `master` in both places
23:22 saltslackbridge <gtmanfred> i think minion may be explicitly merged
23:22 saltslackbridge <gtmanfred> where as grains is not
23:22 hunmonk gtmanfred: a bit of a bummer, since there are global grains that i'll have to keep in sync across my various provider configs
23:23 saltslackbridge <gtmanfred> p sure there is a feature request to add that already, but it would be worth looking
23:24 ahrs joined #salt
23:24 saltslackbridge <gtmanfred> @james
23:24 saltslackbridge <gtmanfred> https://github.com/saltstack/salt/pull/39911
23:25 saltslackbridge <gtmanfred> noted in the docs, https://docs.saltstack.com/en/latest/ref/states/all/salt.states.saltmod.html#salt.states.saltmod.state subset and batch in 2017.7
23:25 saltslackbridge <gtmanfred> ¯\_(ツ)_/¯
23:31 hunmonk gtmanfred: i scoured the current issue queue, don't see any open issues for adding a deep merge options for minion settings in salt cloud
23:33 saltslackbridge <gtmanfred> Are you just trying to merge grains in the minion config file? Why aren't you just using the grains dictionary and put it on the same level as the minion so that they are stored in /etc/salt/grains and do not require a minion restart to update them?
23:36 hunmonk gtmanfred: salt-cloud seems to already put stuff in /etc/salt/grains during creation of minion VM. what i'm wanting is: 1) global grains config across all providers in /etc/salt/cloud, 2) grains overrides to the global settings in my various provider configs in /etc/salt/cloud.providers.d
23:37 saltslackbridge <gtmanfred> Have you tried the grains dictionary? We only add a couple things to it to make sure we can lookup what profile the minion was built with afterwards.
23:38 saltslackbridge <gtmanfred> Just put grains: dictionary at the top of /etc/salt/cloud
23:40 saltslackbridge <gtmanfred> It should be updated in the same way the minion dictionary is, but it will be the top level, so it should update in the same way instead of overwriting top level keys
23:40 rem5_ joined #salt
23:41 hunmonk gtmanfred: oh. i wasn't aware that was an option. i'll give that a try and report back
23:44 saltslackbridge <gtmanfred> Yeah, If you put it in that key, it puts the grains in /etc/salt/grains if you put it in the minion key, if will put it in the grains key in /etc/salt/minion which requires restarting the salt minion to update
23:47 hunmonk gtmanfred: are you sure? b/c that's not what i'm seeing. if i put this: http://ix.io/CXX into /etc/salt/providers.d/linode.conf, that grains config ends up at /etc/salt/grains on the minion
23:48 saltslackbridge <gtmanfred> That should not end up in /etc/salt/grains
23:48 hunmonk gtmanfred: but it does
23:48 saltslackbridge <gtmanfred> Unless something changed and I missed it
23:48 hunmonk i've run this build half a dozen times today, that's where it's going
23:49 saltslackbridge <gtmanfred> well then someone changed it under my nose, because the minion dictionary is only supposed to be used to update the default minion values from salt.config, and drop them in /etc/salt/minion
23:50 saltslackbridge <gtmanfred> either way, just move it out, and use the `grains` dictionary instead of putting it in `minion`
23:51 rem5_ joined #salt
23:54 saltslackbridge <gtmanfred> hrm, lookslike it might have actually been that way for a while, and joseph just lied to me when he handed salt-cloud over to me
23:54 saltslackbridge <gtmanfred> https://github.com/saltstack/salt/blob/2017.7/salt/utils/cloud.py#L253
23:54 saltslackbridge <gtmanfred> https://github.com/saltstack/salt/blob/2017.7/salt/utils/cloud.py#L1378
23:55 saltslackbridge <gtmanfred> so yeah, grains can be in the minion dictionary, or in `grains`, but `grains` is the only one that is merged
23:55 saltslackbridge <gtmanfred> and it is done at the spot of my first link
23:55 saltslackbridge <gtmanfred> where it does a get_cloud_config

| Channels | #salt index | Today | | Search | Google Search | Plain-Text | summary