)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d41dcfaddb88d532ec22e46791f6eb1f5a9c1fb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ddc4557f_bb0aee42","updated":"2025-09-26 19:25:59.000000000","message":"A solid question I think we should ask ourselves: should this indicate through the name of the configuration option that it is using kubernetes through local access mechanisms and not through a API.","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"8a327c1a2cf879f48c5b9bef7c736e42ab303eae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"dd7f31ac_d2033956","updated":"2025-09-26 02:48:50.000000000","message":"recheck git clone fubarhouse failed","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"3b1597980a162fb0888d728de5fbdd6224edd24e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ceb74c39_95ddd47e","in_reply_to":"ddc4557f_bb0aee42","updated":"2025-09-28 21:42:01.000000000","message":"kubectl ultimately uses the same credentials and API as the kubernetes python library would.\n\nI would like to raise whether this should switch to the kubernetes python library though. the kubectl templated approach is very flexible, allowing the deployer choice in what resources they create to run the console container.\n\nBut if deployers are fine being limited to one Secret and one Pod then a library approach might be preferred. I think they do need flexibility in the names and labels for resources; if that can be done without adding a bunch of new config options then that could be the best of both approaches.","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ae914eafa1a69d99f09584916f3aa535d5ca3740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"647e2894_1301887b","updated":"2025-12-04 19:26:07.000000000","message":"rebase/rev due to pep8 fixes.","commit_id":"7fd2b8b2e5f5a156c0cfc8cbe6fc86fdd1c31fad"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"c1f60a1d003497bdb3ee3eb8141ad764487410bf","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":14,"id":"8613106c_9e3230dc","updated":"2025-12-04 21:54:30.000000000","message":"Counting julia\u0027s +2 since the rebase was trivial","commit_id":"28168c4168d75069714b8414454934636cffb576"}],"doc/source/install/graphical-console.rst":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d41dcfaddb88d532ec22e46791f6eb1f5a9c1fb8","unresolved":true,"context_lines":[{"line_number":88,"context_line":"command, and valid kubernetes credentials be available to the running"},{"line_number":89,"context_line":"ironic-conductor. Generally these credentials will be provided by the service"},{"line_number":90,"context_line":"account mechanism for an ironic-conductor which is itself containerised in the"},{"line_number":91,"context_line":"cluster."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"``ironic.conf`` ``[vnc]kubernetes_container_template`` points to a template"},{"line_number":94,"context_line":"file which defines the kubernetes resources including the pod running the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a8c2c04b_029b2462","line":91,"updated":"2025-09-26 19:25:59.000000000","message":"As a nit: I think it might make a bit of sense to be a bit more verbose. This only works in this case assuuming the conductor has an account it can use to execute kubectl from within it\u0027s runtime namespace. That itself, can be problematic security wise, but is a known risk factor and is entirely different of a use pattern of, for example, manipulating a CRD via the API.\n\nMaybe it should be called \"kubernetes-local\"?","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"0ce5d10913abb7b10514af3fdc9d65d258539325","unresolved":true,"context_lines":[{"line_number":88,"context_line":"command, and valid kubernetes credentials be available to the running"},{"line_number":89,"context_line":"ironic-conductor. Generally these credentials will be provided by the service"},{"line_number":90,"context_line":"account mechanism for an ironic-conductor which is itself containerised in the"},{"line_number":91,"context_line":"cluster."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"``ironic.conf`` ``[vnc]kubernetes_container_template`` points to a template"},{"line_number":94,"context_line":"file which defines the kubernetes resources including the pod running the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6d0834a8_a889731d","line":91,"in_reply_to":"3311d862_cbfd3cde","updated":"2025-10-03 00:22:50.000000000","message":"I\u0027ve added a bit, let me know what you think","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4b1e283a61582250bf52a3befaf1e7c5801dd718","unresolved":true,"context_lines":[{"line_number":88,"context_line":"command, and valid kubernetes credentials be available to the running"},{"line_number":89,"context_line":"ironic-conductor. Generally these credentials will be provided by the service"},{"line_number":90,"context_line":"account mechanism for an ironic-conductor which is itself containerised in the"},{"line_number":91,"context_line":"cluster."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"``ironic.conf`` ``[vnc]kubernetes_container_template`` points to a template"},{"line_number":94,"context_line":"file which defines the kubernetes resources including the pod running the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3311d862_cbfd3cde","line":91,"in_reply_to":"5465381e_179f741d","updated":"2025-10-01 16:14:19.000000000","message":"Fair point. I really don\u0027t know. I think the suggested intent, i.e. \"for running in the same cluster\" makes tons of sense. I\u0027m sure someone will eventually ask for different, but maybe that is the point we say \"hey, write your own driver\"","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"3b1597980a162fb0888d728de5fbdd6224edd24e","unresolved":true,"context_lines":[{"line_number":88,"context_line":"command, and valid kubernetes credentials be available to the running"},{"line_number":89,"context_line":"ironic-conductor. Generally these credentials will be provided by the service"},{"line_number":90,"context_line":"account mechanism for an ironic-conductor which is itself containerised in the"},{"line_number":91,"context_line":"cluster."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"``ironic.conf`` ``[vnc]kubernetes_container_template`` points to a template"},{"line_number":94,"context_line":"file which defines the kubernetes resources including the pod running the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5465381e_179f741d","line":91,"in_reply_to":"a8c2c04b_029b2462","updated":"2025-09-28 21:42:01.000000000","message":"Is there really a scenario where ironic will be hosted outside k8s and the graphical consoles hosted within it? How about we just be explicit that this provider is for running console containers in the same k8s cluster as the conductor?","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"42ca07774fd828b7f4727ed9cc47691695d45cdc","unresolved":true,"context_lines":[{"line_number":86,"context_line":"The ``kubernetes`` provider manages containers as kubernetes pods and allows"},{"line_number":87,"context_line":"associated resources to also be managed. The provider requires the ``kubectl``"},{"line_number":88,"context_line":"command, and valid kubernetes credentials be available to the running"},{"line_number":89,"context_line":"ironic-conductor. The current assumption with this driver is that"},{"line_number":90,"context_line":"ironic-conductor, ironic-novncproxy, and the console containers are all"},{"line_number":91,"context_line":"running in the same kubernetes cluster. Therefore, the credentials will be"},{"line_number":92,"context_line":"provided by the service account mechanism supplied to the ironic-conductor"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c4616d84_2278db1e","line":89,"range":{"start_line":89,"start_character":22,"end_line":89,"end_character":29},"updated":"2025-10-03 15:33:49.000000000","message":"nit: s/current/design/","commit_id":"b17f9fd37fc049f98c5d68e90d7a4fa93b10274e"}],"ironic/conf/vnc.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"c1fff814466804e2727291f6a4b60d369911f3e4","unresolved":true,"context_lines":[{"line_number":101,"context_line":"             \u0027unusable VNC host and port. This needs to be changed if enabled \u0027"},{"line_number":102,"context_line":"             \u0027is True. \u0027"},{"line_number":103,"context_line":"             \u0027\"kubernetes\" manages containers as pods using template driven \u0027"},{"line_number":104,"context_line":"             \u0027resource creation.\u0027),"},{"line_number":105,"context_line":"    cfg.StrOpt("},{"line_number":106,"context_line":"        \u0027console_image\u0027,"},{"line_number":107,"context_line":"        mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a9a324f9_a3fa9b98","line":104,"updated":"2025-09-26 18:43:03.000000000","message":"Can we make this use choices with constant values used throughout? ala https://opendev.org/openstack/ironic/src/commit/133fc7968e6090f9c1e9bbae2d78016d5f6f4dd0/ironic/conf/conductor.py#L154","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"3b1597980a162fb0888d728de5fbdd6224edd24e","unresolved":true,"context_lines":[{"line_number":101,"context_line":"             \u0027unusable VNC host and port. This needs to be changed if enabled \u0027"},{"line_number":102,"context_line":"             \u0027is True. \u0027"},{"line_number":103,"context_line":"             \u0027\"kubernetes\" manages containers as pods using template driven \u0027"},{"line_number":104,"context_line":"             \u0027resource creation.\u0027),"},{"line_number":105,"context_line":"    cfg.StrOpt("},{"line_number":106,"context_line":"        \u0027console_image\u0027,"},{"line_number":107,"context_line":"        mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5269c209_091b68bf","line":104,"in_reply_to":"063d3b19_b7c9483a","updated":"2025-09-28 21:42:01.000000000","message":"how about having a populated choices, but not with constants because that is just repeating the values in setup.cfg ironic.console.container?","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"813f44bbeb24d8a9fbd9107d6099ef18933c4b22","unresolved":true,"context_lines":[{"line_number":101,"context_line":"             \u0027unusable VNC host and port. This needs to be changed if enabled \u0027"},{"line_number":102,"context_line":"             \u0027is True. \u0027"},{"line_number":103,"context_line":"             \u0027\"kubernetes\" manages containers as pods using template driven \u0027"},{"line_number":104,"context_line":"             \u0027resource creation.\u0027),"},{"line_number":105,"context_line":"    cfg.StrOpt("},{"line_number":106,"context_line":"        \u0027console_image\u0027,"},{"line_number":107,"context_line":"        mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"e38a5ce6_74960edd","line":104,"in_reply_to":"4b524070_61bbfd69","updated":"2025-10-01 19:34:49.000000000","message":"I really don\u0027t like the tradeoffs in either direction 😞. \n\nCan we perhaps do a validation that whatever set here is proper (we can inquire via stevedore if it exists or not at startup time) even if we can\u0027t enforce with choices\u003d mechanism, we can still alert on weird/invalid choices.","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4b1e283a61582250bf52a3befaf1e7c5801dd718","unresolved":true,"context_lines":[{"line_number":101,"context_line":"             \u0027unusable VNC host and port. This needs to be changed if enabled \u0027"},{"line_number":102,"context_line":"             \u0027is True. \u0027"},{"line_number":103,"context_line":"             \u0027\"kubernetes\" manages containers as pods using template driven \u0027"},{"line_number":104,"context_line":"             \u0027resource creation.\u0027),"},{"line_number":105,"context_line":"    cfg.StrOpt("},{"line_number":106,"context_line":"        \u0027console_image\u0027,"},{"line_number":107,"context_line":"        mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"4b524070_61bbfd69","line":104,"in_reply_to":"5269c209_091b68bf","updated":"2025-10-01 16:14:19.000000000","message":"I think that is reasonable. I *think* a reality we also have to keep in mind is other options through their own driver. I\u0027m not sure choices forces a use of a choice.... *looks*\n\nso yeah, I don\u0027t think we *can* use choices because of the  need to BYOD.","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"a3312487966699647da90d7fec4d92c3e18f67dd","unresolved":true,"context_lines":[{"line_number":101,"context_line":"             \u0027unusable VNC host and port. This needs to be changed if enabled \u0027"},{"line_number":102,"context_line":"             \u0027is True. \u0027"},{"line_number":103,"context_line":"             \u0027\"kubernetes\" manages containers as pods using template driven \u0027"},{"line_number":104,"context_line":"             \u0027resource creation.\u0027),"},{"line_number":105,"context_line":"    cfg.StrOpt("},{"line_number":106,"context_line":"        \u0027console_image\u0027,"},{"line_number":107,"context_line":"        mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a7f70e34_d9601333","line":104,"in_reply_to":"7f3f78ab_b10b41a8","updated":"2025-10-01 21:34:18.000000000","message":"That makes sense. I guess we can just make sure we handle that error well if it happens.\n\nI really dislike \u0027magic string\u0027 style config items without the choice\u003d[] moniker because it directly equates to a decoder ring to me -- it doesn\u0027t seem like there\u0027s a reasonable choice otherwise here.","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"8a27666c0ef1b0ad513b7d458c02ddb5dd3ec73d","unresolved":true,"context_lines":[{"line_number":101,"context_line":"             \u0027unusable VNC host and port. This needs to be changed if enabled \u0027"},{"line_number":102,"context_line":"             \u0027is True. \u0027"},{"line_number":103,"context_line":"             \u0027\"kubernetes\" manages containers as pods using template driven \u0027"},{"line_number":104,"context_line":"             \u0027resource creation.\u0027),"},{"line_number":105,"context_line":"    cfg.StrOpt("},{"line_number":106,"context_line":"        \u0027console_image\u0027,"},{"line_number":107,"context_line":"        mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba76cba9_e48fdd2d","line":104,"in_reply_to":"a7f70e34_d9601333","updated":"2025-10-02 03:03:55.000000000","message":"This is really like any other config option which specifies a driver/provider. It is on the onus of the operator to specify one which is discover-able by stevedore (whether in tree or out)","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d41dcfaddb88d532ec22e46791f6eb1f5a9c1fb8","unresolved":true,"context_lines":[{"line_number":101,"context_line":"             \u0027unusable VNC host and port. This needs to be changed if enabled \u0027"},{"line_number":102,"context_line":"             \u0027is True. \u0027"},{"line_number":103,"context_line":"             \u0027\"kubernetes\" manages containers as pods using template driven \u0027"},{"line_number":104,"context_line":"             \u0027resource creation.\u0027),"},{"line_number":105,"context_line":"    cfg.StrOpt("},{"line_number":106,"context_line":"        \u0027console_image\u0027,"},{"line_number":107,"context_line":"        mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"063d3b19_b7c9483a","line":104,"in_reply_to":"a9a324f9_a3fa9b98","updated":"2025-09-26 19:25:59.000000000","message":"I think choices would be a lot better since it enforces the input and provides a clean description.","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"42ca07774fd828b7f4727ed9cc47691695d45cdc","unresolved":true,"context_lines":[{"line_number":101,"context_line":"             \u0027unusable VNC host and port. This needs to be changed if enabled \u0027"},{"line_number":102,"context_line":"             \u0027is True. \u0027"},{"line_number":103,"context_line":"             \u0027\"kubernetes\" manages containers as pods using template driven \u0027"},{"line_number":104,"context_line":"             \u0027resource creation.\u0027),"},{"line_number":105,"context_line":"    cfg.StrOpt("},{"line_number":106,"context_line":"        \u0027console_image\u0027,"},{"line_number":107,"context_line":"        mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"faf10823_74dd9246","line":104,"in_reply_to":"ba76cba9_e48fdd2d","updated":"2025-10-03 15:33:49.000000000","message":"As-is, the driver will erorr where attempted and based upon my reading of the code, an invalid setting will result in a stevedore error in the logs.","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0fbcb2dc2cad273499954b07f2ee5befb5ca2d65","unresolved":true,"context_lines":[{"line_number":101,"context_line":"             \u0027unusable VNC host and port. This needs to be changed if enabled \u0027"},{"line_number":102,"context_line":"             \u0027is True. \u0027"},{"line_number":103,"context_line":"             \u0027\"kubernetes\" manages containers as pods using template driven \u0027"},{"line_number":104,"context_line":"             \u0027resource creation.\u0027),"},{"line_number":105,"context_line":"    cfg.StrOpt("},{"line_number":106,"context_line":"        \u0027console_image\u0027,"},{"line_number":107,"context_line":"        mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f3f78ab_b10b41a8","line":104,"in_reply_to":"e38a5ce6_74960edd","updated":"2025-10-01 20:16:20.000000000","message":"Configuration gets loaded *way* before stevedore or driver loading. I think the only real way to do it is to really wire it into error handling for the driver loading.","commit_id":"c10285d62f7101192b42ffb0a6f5a2cbdf7c6ef2"}]}
