| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-06-12 | |||
| 12:25:21 | openstackgerrit | Chris Dent proposed openstack/nova master: Ensure that os-traits sync is attempted only at start of process https://review.openstack.org/553857 | |
| 13:00:00 | openstackgerrit | Brianna Poulos proposed openstack/nova master: Plumb trusted_certs through libvirt driver image paths https://review.openstack.org/561262 | |
| 13:04:06 | openstackgerrit | Bhagyashri Shewale proposed openstack/nova master: libvirt: Don't report DISK_GB if sharing https://review.openstack.org/560459 | |
| 13:36:51 | mriedem | bauzas: looks like you and i were reviewing https://review.openstack.org/#/c/479949/ at the same time | |
| 13:36:57 | bauzas | mriedem: correct | |
| 13:37:03 | mriedem | the answer to some of your questions is, it's later in the series, | |
| 13:37:10 | bauzas | I had this tab open for a while | |
| 13:37:13 | mriedem | but i don't exactly know how enable_certificate_validation is meant to be used | |
| 13:37:34 | bauzas | well, tbh, I think we need to understand how to upgrade | |
| 13:37:56 | mriedem | brianna is sometimes in irc, but don't see her now | |
| 13:37:59 | bauzas | if folks want to stop using the opt, fine with me, but then, you at least need a nova-status check and a upgrade note | |
| 13:38:22 | bauzas | AFAICU, the opt was introduced as a temporary way | |
| 13:38:33 | bauzas | hence it being deprecated from the inception | |
| 13:38:46 | bauzas | so I understand why they want to raise an exception | |
| 13:39:06 | bauzas | but we at least need to think about operators already using it | |
| 13:39:11 | mriedem | i guess i need to understand https://review.openstack.org/#/c/457678/ | |
| 13:39:27 | bauzas | right, I was on https://github.com/openstack/nova/commit/05bf7269 | |
| 13:39:53 | bauzas | (I'm glad I'm done with other things so I can be back reviewing and participating \o/ ) | |
| 13:40:31 | mriedem | what i don't understand is this part from the config option help: | |
| 13:40:32 | mriedem | "During image signature verification nova will first verify the validity of the | |
| 13:40:32 | mriedem | image's signing certificate using the set of trusted certificates associated | |
| 13:40:32 | mriedem | with the instance." | |
| 13:40:43 | mriedem | at this point in the series, the instance doesn't have trusted certs | |
| 13:40:46 | mriedem | that comes later in the api change | |
| 13:41:19 | bauzas | yeah I saw | |
| 13:41:45 | bauzas | mriedem: in https://github.com/openstack/nova/commit/05bf7269 L113, they explain what they want | |
| 13:42:07 | mriedem | right that's what i asked about here https://review.openstack.org/#/c/479949/76/nova/image/glance.py@385 | |
| 13:42:42 | mriedem | this is the API change https://review.openstack.org/#/c/486204/109/nova/compute/api.py@970 | |
| 13:42:54 | mriedem | elif (CONF.glance.verify_glance_signatures and | |
| 13:42:54 | mriedem | CONF.glance.enable_certificate_validation and | |
| 13:42:54 | mriedem | CONF.glance.default_trusted_certificate_ids): | |
| 13:42:54 | mriedem | certs_to_return = objects.TrustedCerts( | |
| 13:42:54 | mriedem | ids=CONF.glance.default_trusted_certificate_ids) | |
| 13:43:15 | mriedem | ^ is essentially this glance download() logic except it doesn't use default_trusted_certificate_ids | |
| 13:45:01 | bauzas | mriedem: mmm, I don't like the API magically guessing which certs IDs to use | |
| 13:46:09 | bauzas | mriedem: so, IIUC, we store the certs in the instance ? | |
| 13:46:37 | bauzas | mriedem: and then, later on, the virt driver passes the certs to the glance API | |
| 13:47:03 | mriedem | if the user provides trusted cert IDs, we use those, | |
| 13:47:31 | mriedem | if the user does not provide trusted cert IDs, but image sig verification is enabled, and default_trusted_certificate_ids is set, we use those | |
| 13:47:34 | bauzas | oh, and if it doesn't but nova is configured, we store the default ones | |
| 13:47:37 | mriedem | yes they are persisted with the instance | |
| 13:47:45 | mriedem | by default, there are no default ones, but yes | |
| 13:47:59 | bauzas | ok, so, follow my logic about why I don't like us persisting the defaults | |
| 13:48:19 | bauzas | say I'm an operator and I did set some default certs | |
| 13:48:36 | bauzas | some users went by, and some instances now persisted my default certs | |
| 13:48:40 | bauzas | that's awesome | |
| 13:49:02 | bauzas | but then, I need to remove those default certs because of any security concern | |
| 13:49:10 | bauzas | revoke it, if you prefer | |
| 13:49:14 | bauzas | but then I'm stuck | |
| 13:49:27 | mriedem | you can rebuild those instances | |
| 13:49:41 | bauzas | because I don't know whether the cert is in the instance was persisted because the user asked for it, or because we defaulted it | |
| 13:50:04 | mriedem | well, they are IDs | |
| 13:50:06 | bauzas | of course, yeah you can rebuild | |
| 13:50:20 | mriedem | so if you were looking at the db, then you know which cert IDs were your defaults that you're revoking | |
| 13:50:41 | bauzas | but from a guessing logic, I have no idea whether my IDs that are in the instance are those given by the user or by a very old configuration | |
| 13:51:24 | mriedem | i'm not sure how much this matters, | |
| 13:51:49 | mriedem | if the instance is storing cert IDs for defaults that you've revoked, those cert IDs aren't getting used - they were used when spawning the instance | |
| 13:52:10 | mriedem | they would fail if you tried to rebuild the instance w/o providing new trusted certs | |
| 13:52:18 | sahid | dansmith, jaypipes, you might have already think about that but... what about to add a 'version' attribute for our objects fields | |
| 13:52:27 | mriedem | or rebuilding and specifying trusted_certs=None to get the new defaults i guess | |
| 13:52:33 | sahid | something like fields.IntegerField(version=2.0, nullable=True) | |
| 13:52:55 | sahid | so we could remove that obj_make_compatible method from all of our objects | |
| 13:52:58 | mriedem | sahid: there is already a version on the object | |
| 13:53:00 | sahid | to have it only in the base class | |
| 13:53:08 | mriedem | oh version per field.... | |
| 13:53:12 | sahid | yes | |
| 13:53:33 | dansmith | sahid: removing the field isn't the only action we need to take during a backport, | |
| 13:53:40 | dansmith | it's just a common one | |
| 13:54:08 | sahid | but that seems a bit hacky to have that obj_make_compatible() method everywhere, no? | |
| 13:54:29 | sahid | we could probably provide something smart to avoid that change each time we add new field | |
| 13:55:05 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Remove network info stubbing in functional test https://review.openstack.org/570018 | |
| 13:55:06 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Add request_spec.RequestGroup versioned object https://review.openstack.org/568840 | |
| 13:55:07 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Add requested_resources field to RequestSpec https://review.openstack.org/567267 | |
| 13:55:08 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Add bandwidth related standard resource classes https://review.openstack.org/570847 | |
| 13:55:09 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Transfer port.resource_request to the scheduler https://review.openstack.org/567268 | |
| 13:55:10 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Send resource allocations in the port binding https://review.openstack.org/569459 | |
| 13:55:11 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: Test boot with more ports with bandwidth request https://review.openstack.org/573317 | |
| 13:55:33 | dansmith | I dunno, it's two lines of code per thing we add, and it makes people think about what needs to happen to backport the thing | |
| 13:56:18 | dansmith | we used to have a mapping for backporting nested objects, and maintaining that was not free either | |
| 13:56:22 | sahid | yes i don't know eother, it's just a suggestion | |
| 13:57:03 | dansmith | version per field kinda adds noise to the definition too, which isn't great | |
| 13:58:08 | sahid | yep true, but beside of that we could avoid to have the obj_make_compatible() method + unit test related | |
| 13:58:32 | dansmith | sahid: you could add to our base object an implementation of make compatible that, if field in self.obj_field_history: delete if < self.obj_field_history[field] | |
| 13:58:45 | dansmith | it'd still be one line per change though | |
| 14:00:35 | sahid | what this obj_field_history is supposed to carry? | |
| 14:00:44 | dansmith | sahid: hang on I'll show you what I mean | |
| 14:01:09 | mriedem | bauzas: http://lists.openstack.org/pipermail/openstack-dev/2018-June/131410.html | |
| 14:01:40 | mriedem | guess i can go back and read the giant spec on this | |
| 14:02:10 | openstackgerrit | Simon Dodsley proposed openstack/nova master: Add enhanced KVM storage QoS quotas https://review.openstack.org/558530 | |
| 14:02:13 | dansmith | sahid: something like this: https://pastebin.com/waWNUM3U | |
| 14:02:27 | dansmith | sahid: (that is in base.NovaObject btw) | |
| 14:03:10 | sahid | dansmith: oh i see | |
| 14:03:38 | sahid | not a big fan :) but yes it's a way to achieve the same thing | |
| 14:04:44 | mriedem | bauzas: relevant parts of the spec https://specs.openstack.org/openstack/nova-specs/specs/rocky/approved/nova-validate-certificates.html#proposed-change | |
| 14:04:51 | mriedem | https://specs.openstack.org/openstack/nova-specs/specs/rocky/approved/nova-validate-certificates.html#other-deployer-impact | |
| 14:05:30 | mriedem | i think it just means, enable_certificate_validation=True means enforce cert validation and default_trusted_certificate_ids is if you enforce and don't want to kill your users if they don't provide trusted certs in the server create/rebuild requests | |
| 14:06:04 | mriedem | both get used in the API changes, and you wouldn't want to set enable_certificate_validation=True UNTIL the api changes are in place to use default_trusted_certificate_ids | |
| 14:06:09 | mriedem | at least as things are written today | |
| 14:07:03 | mriedem | since enable_certificate_validation is deprecated, i'm not sure at what point it is removed, | |
| 14:07:09 | mriedem | nor do i understand how it's a transition to anything | |