[10:42:32] cdanis: i created a Thing: https://phabricator.wikimedia.org/P11639 [10:42:50] it takes a pcc run url, downloads all the pson's for hosts with changes, and provides a sane diff [10:43:25] it has all the error handling and testing that you would expect [11:01:02] kormat: i missed what the issue was however the PCC differ code is here https://github.com/wikimedia/operations-software-puppet-compiler/blob/master/puppet_compiler/differ.py. perhaps you can fix what ever issue there? [11:01:28] i would be happy to review/help [11:01:39] jbond42: the issue is that it doesn't show a _diff_ when a new resource is added [11:02:19] cloudcontrol2001-dev backups, like netbox-dev, is failing because it is backing up 0 bytes CC andrewbogott [11:02:27] so you want pcc to show the new resource and all paramters instead of just Resource[$title]? [11:02:32] jbond42: thanks for the link, i'll take a look after lunch [11:02:39] yeah [11:02:42] or do you just want to show rendered erb's for new files [11:03:02] well, so far all i've cared about is the resource diff, [11:03:12] i don't know how things look if there's erb's involved [11:04:43] if you add a new user to you want to show User['jbond'] { ensure => present, home => '/home/foo', ...}. that could make diffes quite noisy. however i see th benefit of wanting to see the content of file resources [11:04:58] https://puppet-compiler.wmflabs.org/compiler1003/443/db1074.eqiad.wmnet/index.html is an example [11:05:13] it's nice that it tells me that those resources have been added, but i'd like to check they have the correct parameters [11:05:44] jbond42: i'd be happy if there was a 5 file added to the "relevant files" section which is the effective output of the diff [11:05:48] *5th [11:06:57] ahh ok, this code was written before my time however it looks like someone has specificly opted not to do that so i would either do as you say and have an additional section or have a new verbose/debug options [11:08:08] * kormat nods [11:10:37] please add me to any task/change you create, will also take a look at it if i get a sec [12:49:19] puppet question! if i have `include ::profile::mariadb::mysql_role`, but i need to provide a parameter in this specific case, what's the usual approach? [12:49:53] convert to `::puppet::mariadb::mysql_role { 'nonesense_title': param => 1}`? [12:50:44] kormat: if you can provide the paramter via hiera that is imo best otherwise yse do class{'::puppet::mariadb::mysql_role': oaram => 'value' } [12:51:14] so Class is the resource and the name of the class is the title [12:51:37] ok, gotcha [12:53:20] jbond42: thanks :) [12:54:01] np [13:16:07] thanks jynus, probably I need to add some grants. Is there any way for me to tell bacula to try again after I fix things? [13:17:59] andrewbogott: just to be clear, the backups are happening [13:18:05] but they backup 0 files [13:18:33] you can run "run" on the bacula director backup1001 [13:18:40] 'k [13:18:44] and select the one you want to retry [13:18:54] I'm assuming that the mysqldump that it's trying to back up is failing and producing an empty file [13:18:59] I'll try this in a minute, thanks [13:19:14] you can just tell me too if I am around [13:19:21] it takes me very little effort [13:30:15] jynus: I'm interested in learning but can you tell me more about how to 'run "run"'? Is it literally just a command named run? [13:30:34] pm me [17:21:06] Is there a way in puppet to fail compilation if one "Optional" parameter is set but another one is not? [17:21:51] Like parameter "groups"? I have optional username and password. Okay if both are not set but I not if only one is set [17:22:40] jayme: fail("Oh no you are missing stuff") [17:22:43] should fail the catalog [17:22:54] oh..thats easy :-) thanks [17:23:02] jayme: Optional[Struct[username=>String,password=>String]] [17:23:23] or better yeah make it a dedicated type that has both [17:23:27] er, the syntax isn't quite right there, but you get the idea [17:23:55] nice, thank you [18:23:29] hi! I have a quick Puppet question. I have a hiera lookup that is failing: Error: Function lookup() did not find a value for the name 'profile::wikidough::dnsdist::webserver::api_key' [18:23:36] (see https://puppet-compiler.wmflabs.org/compiler1002/23391/prometheus2003.codfw.wmnet/change.prometheus2003.codfw.wmnet.err) [18:23:46] and the code is here: https://gerrit.wikimedia.org/r/#/c/operations/puppet/+/607301/3/modules/profile/manifests/prometheus/ops.pp [18:24:37] I thought that maybe I should use the dot notation as I am looking up a string and not the complete hash, so I tried that (.api_key) and that also failed [18:25:04] any idea what may be wrong here? the key exists in both private and public (labs/private) and I am looking it up in other places, so not sure why it is failing here [19:07:34] ok so maybe I thought I should merge the lookup given that the api_key is commented out in the repo but exists in labs/private but that also didn't work [19:09:18] I can simply switch to using ::passwords and that will fix it but my understanding was that private hieradata is the right way so that's what I want to do [19:12:03] sukhe: the compiler failure is on prometheus2003, not on melmak [19:12:25] and the hiera key you are looking for is applied in role/common/wikidough.yaml [19:12:39] which is not on prometheus machines [19:13:18] so that would have to go into hieradata/role/common/prometheus.yaml or so [19:13:43] oh hmmm [19:14:23] interesting, so it seems my understanding of hierdata lookup works was wrong [19:15:06] and so if I want to maintain it one place, should I put it in hierdata/common.yaml perhaps? [19:15:55] that, or only in prometheus and lookup('profile::prometheus::ops::wikidough_api_key) [19:16:06] if prometheus is the only thing that needs it [19:16:22] true, prometheus is the only thing that needs it, so maybe that's the rigth place [19:16:27] actually the later if you just need it on prometheus machines [19:16:39] yea, so i would say the lookup() should match anyways the profile it is in [19:16:48] surely wikidough must need to know the API key as well? [19:16:51] and then move it in hieradata to the prometheus role place [19:17:01] I mean so far the primary use of this is to export prometheus statistics but that may change [19:18:33] another option is to use hieradata/regex.yaml where you could create a custom "prometheus and wikidough" based on host names [19:19:22] cdanis: there is a local dnsdist console that we use and that's fine for now. the API is for /metrics but that may change like I said [19:19:31] but it's uglier than using roles [19:19:32] mutante: I will check that, I have never used it before but I will read [19:19:41] sukhe: right, I was just wondering how dnsdist would itself get the API key to expect on its input [19:19:44] I think I should just put it in passwords and call it a day :) [19:19:52] that also seems fine :) [19:20:07] it's 100% possible I am overthinking this so I apologize if I am wasting everyone [19:20:10] 's time here [20:21:22] I ended up using passwords, making a copy of the key and putting a comment that the key is same in two places. it worked as expected. I can live with it for now :) [20:22:47] sukhe: if it's hiera you can use aliases [20:23:14] see git grep 'alias(' hieradata/ [20:23:44] my 2 totally out of context cents ;) [20:24:01] volans: it is hiera! [20:24:03] ah, thanks, will do [20:24:35] * volans hopes that works in the private repo too, can't guarantee it [20:25:17] volans: I will experiment next time and let you know :D [20:25:27] thx :) [20:27:33] TIL that it is finally ok to use the interpolation features in ops/puppet's hiera :) [20:28:01] * bd808 vaguely remembers being told never to do that at some point in the way long ago [22:33:01] shall I merge 'Wolfgang Kandek: install_server: update MAC address for releases1002' ? [22:33:27] wkandek ^ ? [22:34:06] hm [22:35:14] * andrewbogott sort of wishes that puppet-merge supported selecting one patch and ignoring the other [22:35:54] andrewbogott: hold on a sec.. and yes, sometimes it does that [22:36:02] oops, I merged it [22:36:04] was that bad? [22:36:07] andrewbogott: if you say "no" instead of multiple [22:36:12] really? [22:36:13] sometimes it did that [22:36:15] * andrewbogott will try that next [22:36:22] next time [22:36:27] yea, no problem either way [22:36:36] i was just demonstrating stuff [22:36:42] thx