| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-06-12 | |||
| 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 | with the instance." | |
| 13:40:32 | mriedem | image's signing certificate using the set of trusted certificates associated | |
| 13:40:32 | mriedem | "During image signature verification nova will first verify the validity of the | |
| 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 | ids=CONF.glance.default_trusted_certificate_ids) | |
| 13:42:54 | mriedem | certs_to_return = objects.TrustedCerts( | |
| 13:42:54 | mriedem | CONF.glance.default_trusted_certificate_ids): | |
| 13:42:54 | mriedem | CONF.glance.enable_certificate_validation and | |
| 13:42:54 | mriedem | elif (CONF.glance.verify_glance_signatures and | |
| 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 | |
| 14:07:41 | mriedem | i guess both options together are meant to enable the transition to cert validation of images | |
| 14:07:48 | mriedem | before forcing it on users | |
| 14:11:38 | bauzas | mriedem: sorry was afk | |
| 14:13:56 | bauzas | mriedem: " all prior usage of the server create/rebuild API when booting signed images will now fail if trusted certificates cannot be located." | |
| 14:15:21 | bauzas | mriedem: okay, so when the API change is merged, I understand that things will continue to work as defaults will be seen as user-provided | |
| 14:15:49 | simondodsley_ | Nova piece has been merged there are no Cinder changes required to add new QoS values | |
| 14:15:49 | simondodsley_ | mreidem: referencing the Cinder QoS change... the QoS values you see are the capacity based QoS options. These are for things like Ceph and ScaleIO (I think). The external disk QoS spec is separate to these per_gb values. The spec for external disk QoS is here: https://github.com/openstack/cinder/blob/master/cinder/volume/qos_specs.py. This doesn't appear to have any documentation, so I will create these once the | |
| 14:15:54 | bauzas | mriedem: later, when they want to drop the defaults and force the user to ask, then it would pop up an exception | |
| 14:16:39 | simondodsley_ | mriedem: ^ | |
| 14:17:33 | bauzas | mriedem: unrelated how can we know that vdi_remote_stream from https://review.openstack.org/#/c/486475/ is going to be CI-tested by Xen ? | |
| 14:17:49 | bauzas | because the 3rd-party CI says cool, but I don't know if it checked it | |