Wednesday, 2024-03-20

opendevreviewMerged opendev/system-config master: Update opensuse mirror script to more completely clean up  https://review.opendev.org/c/opendev/system-config/+/91360808:55
*** amoralej_ is now known as amoralej11:40
*** blarnath is now known as d34dh0r5312:49
fungiinfra-root: does anyone have information on how we utilize our channel prefix control in oftc to gain ops/founder on or register a non-empty unregistered channel with no operators?14:40
funginot finding it noted in our credential/contacts file nor docs in system-config14:40
fricklerfungi: I don't know really, but would simply try asking in #oftc14:45
fungisure, that's going to be my fallback if we don't have a process or contact documented somewhere14:46
fungijust want to make sure i'm not overlooking something14:46
fricklerI'm assuming we never had to do this since we moved over from freenode?14:49
fungientirely possible, but also possible that we've done it once or twice and i just don't remember the details14:49
clarkbfungi: I think corvus set that up a long time ago?15:08
clarkbbut I want to say that several of us are registered with oftc somehow as having prefix ownership/stewardship15:08
clarkband that if we make requests to the admins they're able to look that up and trust our requests as a result?15:08
clarkbLooking at grafana the opensuse afs volume looks much better now. And navigating the content via a mirror it looks like I expect15:09
clarkbfungi: re rax MFA I realized on the school walk today that you have an account and I (selfishly) wondered if you might be willing to opt into MFA for that account before we do our accounts. Then you can test the api_key there as well as see what the process is like15:10
fungiclarkb: sure, i can do that in a bit and report on the overall experience/process15:18
clarkbthanks!15:19
fungii have also been avoiding setting up the (now required) mfa for my pypi and github accounts15:20
clarkbgithub does FIDO which I've got set up (and vastly prefer for personal accounts)15:21
fungisadly, the sign-up for mfa is a little opaque for anything that isn't a smartphone16:05
clarkbI was worried about that. The smartphone signup implies totp though and as long as they show you the secret you should be able to enroll it16:06
fungii need to figure out which "phone app" i'm going to impersonate (authy, duo, or google authenticator)16:06
clarkbalso this would be good feedback to rax I think16:06
clarkb"if you do totp have an escape hatch for people who know what 'totp' means"16:07
fungiit has steps like "use the camera to scan this barcode in order to pair your app"16:08
clarkbfungi: I don't think the app matters as long as whichver one you choose shares the shared secret and not just a qr code to scan16:08
clarkbI think you might be able to decode the qr code to decode the info too; however, I've luckily not run into any applications that have required me to do that. They've all shared a secret in human readable fashion too16:09
fungiit provides a copyable string below the qr code, thankfully16:09
clarkbthere are theoretically a bunch of inputs to totp (hash, time hash is good for, secret (and secret encoding), and name). But in reality everyone does shasomething, 30 seconds, and hex or decimal (I forget which) then the name is arbitrary16:10
clarkboh and number of digits (but again everyone just does 6)16:11
clarkblooking at ykman its sha1, 30 seconds, 6 digits, the secret, and $NAME16:12
clarkbykman expects the secret to be base32 encoded. IIRC ubuntu one did hex and so I had to convert. I gave them some feedback on that when we enrolled I wonder if they every changed it16:12
fungiokay, i managed to pair a totp slot on one of my librem keys and authenticate with it. doing my backup key now16:14
fungialso took some time to rebuild the latest version of nitrocli from source16:14
clarkbfungi: did they make you repeat back two codes to confirm it registered on your end properly?16:16
clarkbI think that is the most important bit for our purposes just to be sure we have an incantation locally that will work16:16
fungiin a way, yes. it gives you the secret string and has a form field for an authentication code which was really just the result of me generating an auth number from my key after i stored the secret in that totp slot16:23
fungithen it automatically logged me out and i had to log back in16:23
fungiso that was effectively two codes16:23
fungithough for safety, i should have generated and recorded recovery codes *first* just in case it didn't go as planned16:24
fungi(i've done that now at least)16:24
clarkbbut it did require at least one code before accepting it that is good. ++ to recording recovery codes first though16:25
fungiyes, it wasn't enrolled until i gave it a working response from the key16:26
clarkbso for our purposes the process should be something like 1) record recovery codes 2) figure out how to use cli totp tool to emit codes 3) register with generated codes16:26
clarkbI'm thinking that counter intuitively we want to do the DNS management account first, then the control plan account, then the nodepool account16:26
clarkbsince the quickest noticeable impact will be in reverse of that order16:27
clarkbfungi: did the api_key with openstacksdk continue to work afterwards?16:27
fungiyeah, it's *possible* that the link to generate recovery codes doesn't appear until you've enabled mfa by enrolling a key, which could explain why i didn't do it first16:27
clarkbbut ya I think if the api key continues to work we've done about as much checking as we can for now and should proceed with our accounts16:28
fungiconfirmed, i can `openstack server list` with my clouds.yaml configured only for the api key/rackspaceauth lib16:29
fungiso i think it's safe for us to enable mfa for one of our accounts... control plane or nodepool first?16:30
fungioh, you already suggested a sequence16:30
clarkbfungi: ya the sequence I suggested is basically "if something breaks how soon will someone notice before we have time to fix it"16:31
fungiyeah, my actual next step is to refresh my memory on how to sync our totp client on bridge for a new secret16:31
clarkbI could see going in the other direction since it is easier to turn off nodepool than deal with dns problems should they arise though16:31
clarkbfungi: I think we provide the secret to the command at invocation time and so ist msotly a matter of having the correct invocation and putting the whole thing in the secrets file16:32
clarkbI believe that is what we did for other totp cases16:32
fungiyeah16:33
fungicool, found it, so there's really no configuration to do16:35
clarkbfungi: not after you figure out the invocation. I think it is theoretically possible we may have to set flags if they aren't using sha1 or 6 digits etc16:35
clarkbbut you didn't mention any of that so its probably the straightforward case16:36
fungishould i record more than one secret (a backup key), or just rely on the recovery codes for that purpose?16:36
clarkbI think we can rely on the recovery codes for that purpose. I only bother with backups if they are stored separately or a different method. That way if I lose a physical device I can go to a different physical device or if the method stops working for some reason we have a way around it16:37
clarkbin this case we would store them in the same location but have different methods16:37
fungiyeah, having two physical keys makes sense so you can carry one and store one. i agree having two in the same place (in this case same file on the same system) is fairly pointless16:38
fungiokay, so with that figured out... do our dns management account first and then... what are we doing before deciding to move forward with the control plane account and then the nodepool account?16:40
fungijust have another one of us confirm they're also able to log into the dashboard or something?16:40
clarkbfor the dns account I think we just verify we can log in and log out in the dashboard16:40
fungicool, that wfm16:40
fungii need to put the kettle on, and can get started in a few minutes. i'll add some placeholders to our credential file so i minimize the editing i'll be doing to add details for the second and third accounts16:41
clarkbsounds good. I expect to be around and can help test etc16:43
clarkbmaybe I should make some tea too16:44
fungiclarkb: one more idea... should we temporarily take rackspace regions out of our log upload destinations list, then test re-adding them in base-test after we switch that account over?16:49
clarkbfungi: ya we can do that if we want to be extra cautious16:51
clarkbI can push that change up momentarily16:52
fungithanks, yeah looking through our list of rackspace credentials and thinking back to how these accounts are set up, it may want us to enable mfa for that user as well16:53
opendevreviewClark Boylan proposed opendev/base-jobs master: Remove rax from zuul log upload config  https://review.opendev.org/c/opendev/base-jobs/+/91382116:55
clarkbfungi: hrm that would effectively make using rax for swift log uploads not possible?16:56
clarkbI had thought they were swift specific credentials and was hoping that would be similar to the nova api key stuff16:56
clarkbbut maybe not and ya being cautious can only help16:56
fungii'm not sure, it may mean we have to use an api key for swift uploads after that point16:57
fungifrom the notes in the credentials list, it looks like we tied the rw swift user to the same tenant we use for nodepool16:58
fungiso it will be the last of the three we deal with anyway16:58
clarkbfungi: looks like my foundation email address is the contact email addr for that account (I just got notified of the enrollment). While you are in there you may want to add infra-root?17:05
clarkbI guess this isn't urgent though17:05
clarkbmaybe deal with that after everything else is done17:05
fungithere's a phone number tied to that technical contact17:09
clarkbfungi: is it mine?17:09
funginumber ends in 84617:09
clarkbnot me17:10
fungiinteresting17:10
fungiaustin tx area code17:11
clarkbI think jimmy may have set up that account for us when we unshared account creds17:11
clarkbperhaps it is jimmy's number17:11
fungipossible, i think he created that login for us17:11
clarkbreading https://docs-ospc.rackspace.com/cloud-files/v1/general-api-info/role-based-access-control.html I think you may be right about the swift creds. However, I suspect it may only be an issue if we try to login as that account and/or change credentials?17:12
clarkbsince that seems to imply the accounts are fairly separate from one another17:12
clarkbbasically meaning we may be able to get away with not modifying the swift stuff for a bit17:13
clarkbbut ya I guess we proceed as planned and test and see where we end up17:13
fungiclarkb: okay, 2fa details are added to the list for that account, feel free to test at your convenience and then i'll move on to the control plane account17:14
clarkbok looking now17:14
clarkbfungi: I think you hvae a running gpg agent that will conflict if I try to open the file?17:15
fungithere should not be, i instantiate a temporary daemon when decrypting17:16
clarkbhrm maybe not the timestamp on that process is from march 1417:16
fungii use `gpg-agent --daemon gpg ...` to avoid it17:16
corvus1could be me; i thought we had a script and i used it17:16
fungiso my gpg process always uses the temporary agent i've instantiated and it terminates as soon as the child process dies17:17
corvus1isn't that what the edit-secrets script does?17:17
fungibut it could explain why i didn't notice another one someone left running17:18
clarkbcorvus1: yes the script it meant to clean up. But als o istarted the script and it ran fine so maybe this isn't an issue17:18
fungiyeah, same thing the edit-secrets script does17:18
clarkbI logged in just fine. I'm going to logout and log into the nodepool creds to see if the swift stuff makes any sense to me17:19
fungiclarkb: probably someone ran gpg a different way and left an agent running, but the way edit-secrets invokes its own agent should result in the other one getting ignored anyway, i think17:20
corvus1well, last says fungi was the only one who logged in on mar 14; looks like my edit-secrets session was on either mar 7 or mar 2017:20
clarkbfungi: got it17:20
* fungi tries to remember what he might have been doing 6 days ago17:20
clarkbunder the nodepool account if I go account -> user management I see the RO and RW accounts for cloud files. And there is a column in that table to indicate if MFA is enabled or not and it isn't for those accounts17:23
fungiaha, that was from me creating the new signing key. the agent is using a completely separate directory/keychain17:23
fungiit has "--homedir /root/signing.gnupg" in the command line17:23
clarkbunfortunately I think that means fungi's suspicions are correct that even though these should be scoped to files only we'll be fored to mfa with them?17:23
clarkbmaybe we can setup openstacksdk with the rackspaceauth plugin inside of zuul and then use the api key though17:24
clarkbhowever, I also think it is safe to proceed with our plan since we won't be modifying those accounts at all so they shouldn't be affected yet17:24
clarkbfungi: aha17:24
fungii can kill that, but yeah we should probably experiment with some adjustments to the key creation process17:24
clarkbhrm if I click on one of the accounts it says these accounts don't have product access just ticket access and the spot where there would be an api key has an alert saying the page you are looking for has moved or no longer exists17:26
clarkbso maybe we are using some other type of credential for swift?17:26
fungivery odd, but yeah it could be that these aren't affected after all17:26
clarkbI'm beginning to think we should try decrypting those secrets to confirm or not how the uploads are working17:29
fungilooks like they have two object storage products17:30
clarkbthe files are uploaded to the nodepool account I can browse the containers and objects there just fine17:31
clarkbmaybe we are using these accounts its just not super apparent that the rbac stuff is setup for that in the user browser17:32
fungihttps://www.rackspace.com/cloud/object-storage seems to not be cloudfiles17:32
clarkbinteresting and ya cloud files == swift17:33
fungiwell, pseudoswift anyway17:33
clarkbI think I'm back to believing we must use these accounts for swift and the web gui is just not reflecting the access in an intuitive manner17:37
clarkband in that case we may have to deal with api keys in the future but for now I hope we can just leave these accounts as is since we don't actively make changes to them17:38
fungiyes, there was probably some extra dance we did through the api to set that up, and they just needed corresponding unprivileged accounts in the dashboard17:38
fungilikely the error in the api key field reflects a lack of rackspace api key integration in cloudfiles17:39
clarkbeither that or the other idea I had was maybe you can only see the api key if you log in as that user rather than as the parent user17:39
clarkb(I'm logged in as the parent not the user itself)17:39
fungibut we probably want to take the rackspace regions out of our upload targets before we switch this account to mfa and then not add it back until after the 26th just in case we were supposed to add separate mfa to those logins17:40
fungioh, perhaps17:40
clarkbI also remember now that image uploads go to swift first then are imported to glance17:40
clarkbwhcih means nodepool builders will potentially be impacted by this change if the machinery to do that doesn't work in openstacksdk with rackspaceauth17:40
clarkbhowever, we've already been using rackspace auth so we should be abel to check that real quick17:41
fungigood point, thought those are using full access accounts not swift-only accounts17:41
clarkbcorrect17:41
fungibut i agree, try logging in as the limited account and maybe it will display an api key there17:41
clarkbwe have day old ubuntu jammy images in all of rax. That is current with the latest ubuntu jammy image build and newer than the clouds.yaml update for config17:42
clarkbI think that means in theory worst case we're converting the auth creds to api keys if we can find them to do log uploads17:43
clarkbfungi: re disabling rax until the 26th I think we can land my change and trigger a base-test run and see if still works after we update the nodepool creds and if so revert the change. Then next week we can disable again and test around the 27th?17:44
clarkbanyway I'm back to thinking this is largely ok if not ideal and we can proceed with our plan. Unless you have any new concerns after all of this discussion17:44
corvus1clarkb: ++17:46
fungiyeah, that seems fine to me too, as long as we remember17:52
corvus1if we forget, and there's a problem, we will find out quickly17:53
clarkbfungi: next step is the control plane account then?17:54
clarkband then we can run launch node and make sure it still works?17:54
fungiyep!17:57
corvus1i'm going to restart zuul-web: 1) we should get the new filtering for certain config errors; 2) there's a change in review for substring searching that depends on a web api change that has merged but not deployed, so we can resume work on that.18:05
clarkback18:05
fungiokay, i've switched the control plane account over to mfa and recorded the details in the list. also realized i forgot to do recovery codes for the dns account, so those are added now18:14
fungitesting launch-node now18:15
corvus1#status log restarted zuul-web to pick up some recent changes18:19
corvus1https://zuul.opendev.org/t/openstack/config-errors?name=Project+Not+Found  <-- new error filter18:20
fungiwoo! awesome, that's going to be extra helpful18:22
fungiand also the exceptions are being used so we have useful names for a lot more stuff18:22
fungiso, i was able to use launch-node on bridge to create a new server, then openstackclient to list and delete it, no new problems with the api key after enabling mfa on the account. i guess we can do nodepool after 913821 deploys18:28
fungioh, actually just after it merges is sufficient18:29
clarkbfungi: that seems reasonable. I guess did you also test logging into the dashboard with the totp token? I think you said they make you do this so ya18:29
fungii did test logging in with it, yes18:29
clarkbthen ya that seems like a plan18:29
opendevreviewMerged opendev/base-jobs master: Remove rax from zuul log upload config  https://review.opendev.org/c/opendev/base-jobs/+/91382118:34
fungiokay, getting to work on the last account now18:34
fungiit's done and recorded in the list along with recovery codees18:39
clarkbso now we watch nodepool for boot health and image upload success. And then separtely we can run some jobs against base-test to see if that had any impact on log uploads18:39
fungialso i confirmed, their ui doesn't give you the option to generate recovery codes before you enroll at least one device, so that explains why i kept doing it after i guess18:40
clarkbI think I have a chaneg I can recheck somewhere for base-test testing18:40
clarkbhttps://review.opendev.org/c/zuul/zuul-jobs/+/680178 has been rechecked18:40
fungiconfirmed openstackclient is still working with the api key for that account too after switching it, `openstack --os-cloud=openstackjenkins-rax --os-region-name=DFW server list` returns lots of nodepool nodes (many in error state unfortunately)18:42
clarkbya you'll likely need to check nodepool logs for successful boots instead18:42
clarkbone of those errored nodes is that centos 7 node I found18:42
fungioh of course, i just wanted to test osc first as a safety18:43
clarkb++18:43
fungilast mention of rackspace in the debug log on nl01 was from a leaked node delete attempt almost 14 hours ago18:46
clarkbfungi: 0037117004 is a node that I believe booted after the change and is in use18:49
clarkbyou can grep that string in the debug log to see the progression18:49
fungiyeah, looks good18:49
clarkbif you grep rax-iad/rax-dfw/rax-ord etc you'll also see the provider logs for those providers. But ya I agree this look good18:50
clarkbso the other thing to check is that we have new ubuntu jammy images tomorrow18:50
clarkbor whichever image we upload daily (I think jammy is one of them)18:50
fungiright, i figure it's too soon to know whether image uploads are broken18:50
fungibut they've (in theory) been using api keys so far18:50
clarkbyup18:51
clarkbhttps://zuul.opendev.org/t/zuul/build/8799eaafa98943bd9cdebb58900a1702/logs seems to show our log uplaods are not affected18:51
clarkbnote the raw link is to rax cdn and the job started after we merged the removal from prod uploads18:51
clarkbso ya I think we can revert that base-jobs change then plan to reapply it again next week and test again after the 26th deadline has passed18:51
opendevreviewClark Boylan proposed opendev/base-jobs master: Revert "Remove rax from zuul log upload config"  https://review.opendev.org/c/opendev/base-jobs/+/91383918:55
clarkband now lunch18:56
opendevreviewMerged opendev/base-jobs master: Revert "Remove rax from zuul log upload config"  https://review.opendev.org/c/opendev/base-jobs/+/91383919:34
fungion my way out to get dinner, but shouldn't be more than an hour if something comes up20:42

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!