| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-04-27 | |||
| 14:40:33 | dansmith | zigo: but why is the generated file not working? | |
| 14:41:03 | gmann | zigo: did that worked for any deprecated rule for you, if you rule in file the if any rule deprecated in fast had same issue itthunk | |
| 14:41:45 | zigo | root@C1-z-controller-1>_ ~ # openstack flavor create --ram 12288 --disk 10 --vcpus 4 cpu4-ram12-disk10 | |
| 14:41:46 | zigo | Policy doesn't allow os_compute_api:os-flavor-manage:create to be performed. (HTTP 403) (Request-ID: req-7f1c4c5b-8df2-4ef7-8a88-8f2cae1899f1) | |
| 14:41:48 | zigo | dansmith: ^ | |
| 14:42:15 | zigo | That's with the default policy.json file as per https://salsa.debian.org/openstack-team/services/nova/-/blob/debian/ussuri/debian/rules#L64 ... | |
| 14:42:24 | dansmith | I don't know why that would be, although I'm not very familiar with policy stuff | |
| 14:42:36 | dansmith | if that's the case, however, we've broken upgrade which we have to fix | |
| 14:43:00 | gmann | dansmith: generated file from oslo tool does not add the deprecated rule so nova consider those rule as override rule and only new token pass | |
| 14:43:24 | dansmith | gmann: same would go for any existing overrides the deployer has then? | |
| 14:43:29 | gmann | dansmith: if no file and rely on default then there is no cange | |
| 14:43:30 | gmann | change | |
| 14:43:50 | gmann | dansmith: if they have override all the rules then yes as they do not rely on default. | |
| 14:44:16 | gmann | oslo does not add deprecated rule if they are present in file. | |
| 14:44:22 | dansmith | gmann: the we broke upgrade for anyone using a distro's generated file from <=Ussuri right? | |
| 14:45:08 | dansmith | I'm not sure what "override all the rules" has to do with this, or why it's different than "override one rule" | |
| 14:45:13 | gmann | dansmith: "distro's generated file" is something i doubt that it is correct way or not. it is same issue they had in all the previous changed policy | |
| 14:45:40 | dansmith | gmann: doubt what is correct? | |
| 14:45:41 | zigo | dansmith: Correct ! :) | |
| 14:45:54 | gmann | dansmith: in case of "override one rule" other rule should not be in file. if they are then oslo cannot add deprecated rule | |
| 14:46:23 | dansmith | gmann: I don't understand what you're saying | |
| 14:46:31 | zigo | Also, how are operators supposed to double-guess what's currently in place, if I can't, as a package maintainer, generate what's currently in? | |
| 14:46:43 | dansmith | if they have one override in their file, everything is fine, but if they override all the rules then ...broken? | |
| 14:47:13 | zigo | If I understand correctly, the issue is to not show what's deprecated in the policy. Well, can't we simply add an option to the generator, so it also adds the deprecated things? | |
| 14:47:22 | gmann | dansmith: if they override one of all rule then rules with changed default will consider only override value not default right | |
| 14:47:31 | dansmith | zigo: presumably they look at the /usr/share version and add what they want into their file, but I think ideally we'd want a file fully commented-out where things can be uncommented and changed, but our json format probably doesn't allow that | |
| 14:47:58 | gmann | yeah, that ^^ | |
| 14:48:18 | zigo | dansmith: As much as I know, there's no way to add comments in a .json file. | |
| 14:48:21 | zigo | Indeed. | |
| 14:48:29 | dansmith | gmann: but I think zigo is saying that debian has taken the more user-friendly approach of just putting the generated file in place, and letting them alter it in-place | |
| 14:48:40 | gmann | hummm | |
| 14:48:48 | dansmith | zigo: right, it's frustrating, so I understand why the debian packages are the way they are | |
| 14:48:49 | zigo | dansmith: Exactly what I was doing so far ! :) | |
| 14:48:59 | dansmith | zigo: I'm sure you're not the only one | |
| 14:49:01 | gmann | because oslo tool generate the rule with all commented | |
| 14:49:03 | openstackgerrit | Stephen Finucane proposed openstack/nova master: objects: Remove 'NovaObjectDictCompat' from 'Migration' https://review.opendev.org/723572 | |
| 14:49:03 | openstackgerrit | Stephen Finucane proposed openstack/nova master: objects: Add MigrationTypeField https://review.opendev.org/706013 | |
| 14:49:04 | openstackgerrit | Stephen Finucane proposed openstack/nova master: objects: Remove 'NovaObjectDictCompat' from 'InstancePCIRequest' https://review.opendev.org/723573 | |
| 14:49:05 | openstackgerrit | Artom Lifshitz proposed openstack/nova stable/stein: DNM: Add a placement audit command https://review.opendev.org/720839 | |
| 14:49:17 | dansmith | I would not be surprised if people generating their own packages or installing from pip do the same for audit reasons | |
| 14:49:37 | dansmith | gmann: does it? how do you comment in json? | |
| 14:50:01 | beekneemech | It uses YAML. | |
| 14:50:25 | zigo | bnemec: As much as I know, there's no way to get services to load .yaml files, is there? | |
| 14:50:42 | bnemec | zigo: Yes, YAML works fine. | |
| 14:50:44 | zigo | Unless this has changed recently ... | |
| 14:50:47 | gmann | ah its yaml generated - https://docs.openstack.org/nova/latest/configuration/sample-policy.html | |
| 14:50:50 | dansmith | I've never seen it deployed in yaml file on a real system | |
| 14:50:51 | bnemec | I think the default is still JSON though. | |
| 14:51:11 | bnemec | IIRC, some service actually overrides that default so they get YAML by default. | |
| 14:51:13 | zigo | bnemec: Last time I tried, maybe 2 or 3 releases ago, it didn't work. | |
| 14:51:31 | zigo | Commented yaml would work for me. | |
| 14:51:44 | dansmith | zigo: except we can't require people to convert that as part of an upgrade | |
| 14:51:51 | bnemec | It's always possible there's a bug. YAML is definitely supposed to work. | |
| 14:52:03 | dansmith | bnemec: do any CI jobs use yaml? | |
| 14:53:10 | gmann | one things we can do is always add deprecated rule from oslopolicy-sample-generator | |
| 14:53:22 | dansmith | just checked one I had handy and the only service with a policy file is neutron, and it's json | |
| 14:53:38 | dansmith | gmann: but ... people with existing policy files can't be broken by this upgrade | |
| 14:53:42 | openstackgerrit | Artom Lifshitz proposed openstack/nova stable/rocky: DNM: Add a placement audit command https://review.opendev.org/720842 | |
| 14:53:56 | gmann | but again not all people use this or some other way to generate file like editing the old file | |
| 14:54:52 | gmann | dansmith: true, existing policy should not break, here zigo case is it get generated newly with oslo tool which had new defaults but not deprecated | |
| 14:55:23 | dansmith | gmann: I'm still trying to understand if people with a train-generated full policy file are going to be broken | |
| 14:55:30 | dansmith | I've not understood your answers there | |
| 14:55:31 | gmann | if it is not re-generated then old policy keep working in both case 1. they have override different rule 2. or reply on default even have rule in fule | |
| 14:55:40 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Add an online migration for PciDevice.uuid https://review.opendev.org/530905 | |
| 14:55:40 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Modify PciDevice.uuid generation code https://review.opendev.org/530487 | |
| 14:55:53 | nightmare_unreal | what can cause nova-live-migration zuul build to fail ?? | |
| 14:55:54 | gmann | dansmith: train generated file should keep working as it is. | |
| 14:56:53 | gmann | what happened here is, policy file is generated freshly which had new 'system rule' but token are not refreshed | |
| 14:57:01 | dansmith | gmann: what if someone's deploy script generates the file from the tooling, applies their two or three rule tweaks? then they're broken? | |
| 14:57:50 | dansmith | I see, the broken part is because the newly generated file will be rules that require scoped tokens or whatever? | |
| 14:57:57 | gmann | dansmith: and they have other rule with new value present in file then broken. and that is case that they have override the rule but token not refreshed | |
| 14:58:08 | gmann | dansmith: correct | |
| 14:58:25 | bnemec | Right. This is why the deprecated rule behavior ORs with the old rule. | |
| 14:58:29 | gmann | train policy will still have adimin_rule and keep working | |
| 14:58:45 | dansmith | gmann: okay, understand why train configs still work, which is good | |
| 14:59:04 | dansmith | gmann: I would expect the generate-then-tweak process is fairly widespread | |
| 14:59:32 | zigo | dansmith: Yes, "then they're broken" ... | |
| 14:59:35 | gmann | humm and generate with 'oslopolicy-sample-generator' tool right ? | |
| 14:59:40 | zigo | (ie: my case...) | |
| 14:59:49 | zigo | Which I think is really wrong. | |
| 15:00:11 | openstackgerrit | Stephen Finucane proposed openstack/nova master: objects: Add online migration for legacy NUMA objects https://review.opendev.org/537414 | |
| 15:00:15 | gmann | i mean we can explicitly add deprecated rule in that tool logic. but not sure if that solve all the cases | |
| 15:00:30 | dansmith | gmann: yes | |
| 15:00:49 | AJaeger | any nova core available for two tiny cleanups related to Babel/translations, please? https://review.opendev.org/#/c/723206/2 and https://review.opendev.org/#/c/720725/1 ? | |
| 15:00:55 | dansmith | I dunno what to do about this though, since it's really a problem spread across multiple projects, lots of code, and some human assumptions | |
| 15:01:13 | bnemec | We can't always do that though or there's no way for deployers to get the new rule alone. | |
| 15:01:30 | zigo | dansmith: I also expect the generated-then-not-touched case is also fairly widespread (my case in my CI) and it is broken as well currently. | |
| 15:01:42 | gmann | as per my expectation, 'generate-then-tweak ' case also need operator review if something auto-re-generated is ok or not | |
| 15:01:42 | dansmith | zigo: yup | |
| 15:01:57 | dansmith | gmann: not if they don't know they need to review | |
| 15:02:07 | dansmith | gmann: they could have been doing this approach for years with no problem | |
| 15:02:12 | bnemec | Is this on a fresh install? If so, why isn't everything configured to handle the new policies? | |
| 15:02:12 | gmann | humm | |
| 15:02:28 | dansmith | bnemec: no, not necessarily fresh deploy | |
| 15:02:34 | zigo | I very much agree that it's the operator's responsibility to refresh the policy.json and re-tweak it carefully on each upgrade. | |
| 15:02:43 | gmann | dansmith: they had same problem when policy was deprecated. here we did all policy changed instead of one or two | |
| 15:03:19 | dansmith | gmann: you mean when the full policy file was deprecated? | |
| 15:03:20 | bnemec | I mean, that deployment method hasn't been recommended since policy in code went in however many years ago. | |
| 15:03:29 | dansmith | AFAIK, plenty of people never migrated to empty policy files | |
| 15:03:37 | zigo | bnemec: On a *fresh* install, with the currently default generated policy.json, things a broken. That's the issue I've reported to begin with! :) | |