)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"3fd3b8ee666305f68d51958d45b339ceb39a4fd5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"acebb77d_1945657c","updated":"2026-08-01 02:42:47.000000000","message":"@ricolin@ricolky.com the patches you have are good but we need to load them in the right place.","commit_id":"c758bf210df249124a9db9cd9ac3b3f3243dc6cb"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"003a7949dc973688d931ef76f56b3f7e9bd2382a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ae8020c8_a3bd2577","in_reply_to":"acebb77d_1945657c","updated":"2026-08-05 14:18:23.000000000","message":"which part of the patches you think is not in the right place?","commit_id":"c758bf210df249124a9db9cd9ac3b3f3243dc6cb"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"a2ebbe86d688bd298c2e2c069d521b263ff0649a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c7c1484d_fdfd0e57","in_reply_to":"ae8020c8_a3bd2577","updated":"2026-08-05 14:26:50.000000000","message":"@cardoe@cardoe.com ^^^","commit_id":"c758bf210df249124a9db9cd9ac3b3f3243dc6cb"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"6fcda2cd76acc07ecbde01aefda6c51d0e559eda","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9fa6f512_2941fe82","in_reply_to":"c7c1484d_fdfd0e57","updated":"2026-08-05 23:57:12.000000000","message":"You were originally creating a pod emptydir, copying novnc in there and applying patches in an init container and then running that code instead of just having those patches against the novnc in the built novnc container.","commit_id":"c758bf210df249124a9db9cd9ac3b3f3243dc6cb"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"2baa3515c3cef2a88bc32bfcdd054d257c0fa91f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"0bcc63f1_5fe4c91b","updated":"2026-09-01 02:01:37.000000000","message":"recheck","commit_id":"9ec6872d5ecbda5f23ab3d532660b7f265fc19a5"}],"ironic/templates/bin/_ironic-novncproxy-init-assets.sh.tpl":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"82e47bc6d286a9c10aff445ff028e70734d54b9c","unresolved":true,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"sed -i \\"},{"line_number":70,"context_line":"  \u0027/\u003c\\/body\u003e/i\\  \u003cscript src\u003d\"./ironic-console-focus.js\"\u003e\u003c/script\u003e\u0027 \\"},{"line_number":71,"context_line":"  /tmp/usr/share/novnc/vnc_auto.html"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"# Release the backend when an embedded console leaves the page. Browsers can"},{"line_number":74,"context_line":"# otherwise retain the iframe while a direct view opens a second RFB session."}],"source_content_type":"text/x-smarty","patch_set":6,"id":"3c83dc1e_2814e0e5","line":71,"updated":"2026-07-31 18:12:43.000000000","message":"This is just an inline patch to noVNC. Why not patch the build of the container? Is this patch submitted upstream?","commit_id":"bba86ff83c6155fb2b407d32e011535dd8a69ec7"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"4a62c08eb25d1e5b05945a7f312473db2e583582","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"sed -i \\"},{"line_number":70,"context_line":"  \u0027/\u003c\\/body\u003e/i\\  \u003cscript src\u003d\"./ironic-console-focus.js\"\u003e\u003c/script\u003e\u0027 \\"},{"line_number":71,"context_line":"  /tmp/usr/share/novnc/vnc_auto.html"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"# Release the backend when an embedded console leaves the page. Browsers can"},{"line_number":74,"context_line":"# otherwise retain the iframe while a direct view opens a second RFB session."}],"source_content_type":"text/x-smarty","patch_set":6,"id":"22111ea1_b0221982","line":71,"in_reply_to":"3c83dc1e_2814e0e5","updated":"2026-07-31 21:04:36.000000000","message":"Done","commit_id":"bba86ff83c6155fb2b407d32e011535dd8a69ec7"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"82e47bc6d286a9c10aff445ff028e70734d54b9c","unresolved":true,"context_lines":[{"line_number":79,"context_line":"                rfb.disconnect();\\"},{"line_number":80,"context_line":"            }\\"},{"line_number":81,"context_line":"        }, { once: true });\u0027 \\"},{"line_number":82,"context_line":"  /tmp/usr/share/novnc/vnc_auto.html"}],"source_content_type":"text/x-smarty","patch_set":6,"id":"ad9f240a_adaaaed9","line":82,"updated":"2026-07-31 18:12:43.000000000","message":"Same here. This looks like a patch that needs to be made to the noVNC code in the container.","commit_id":"bba86ff83c6155fb2b407d32e011535dd8a69ec7"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"4a62c08eb25d1e5b05945a7f312473db2e583582","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                rfb.disconnect();\\"},{"line_number":80,"context_line":"            }\\"},{"line_number":81,"context_line":"        }, { once: true });\u0027 \\"},{"line_number":82,"context_line":"  /tmp/usr/share/novnc/vnc_auto.html"}],"source_content_type":"text/x-smarty","patch_set":6,"id":"5f822242_9bb33d49","line":82,"in_reply_to":"ad9f240a_adaaaed9","updated":"2026-07-31 21:04:36.000000000","message":"Done","commit_id":"bba86ff83c6155fb2b407d32e011535dd8a69ec7"}],"ironic/templates/deployment-novncproxy.yaml":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"a1aa0db04f9e428e81bf48bc9b789670630356b3","unresolved":true,"context_lines":[{"line_number":68,"context_line":"      terminationGracePeriodSeconds: {{ .Values.pod.lifecycle.termination_grace_period.novncproxy.timeout | default \"30\" }}"},{"line_number":69,"context_line":"      initContainers:"},{"line_number":70,"context_line":"{{ tuple $envAll \"novncproxy\" $mounts_ironic_novncproxy_init | include \"helm-toolkit.snippets.kubernetes_entrypoint_init_container\" | indent 8 }}"},{"line_number":71,"context_line":"        - name: ironic-novncproxy-init-assets"},{"line_number":72,"context_line":"{{ tuple $envAll \"ironic_novncproxy_assets\" | include \"helm-toolkit.snippets.image\" | indent 10 }}"},{"line_number":73,"context_line":"{{ tuple $envAll $envAll.Values.pod.resources.novncproxy | include \"helm-toolkit.snippets.kubernetes_resources\" | indent 10 }}"},{"line_number":74,"context_line":"          command:"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"1320bd2b_ba7980f4","line":71,"updated":"2026-09-02 20:39:41.000000000","message":"Wouldn\u0027t it be better to install novnc to the ironic image instead of copying files from the nova image?","commit_id":"95768bb09aaba2630b1743df325d43a4a171e163"}],"ironic/templates/role-console-pods.yaml":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"4c5c77ecdfdb883112f796e6127e6242a31ee019","unresolved":true,"context_lines":[{"line_number":21,"context_line":"rules:"},{"line_number":22,"context_line":"  - apiGroups: [\"\"]"},{"line_number":23,"context_line":"    resources: [\"pods\"]"},{"line_number":24,"context_line":"    verbs: [\"create\", \"delete\", \"deletecollection\", \"get\", \"patch\"]"},{"line_number":25,"context_line":"  - apiGroups: [\"\"]"},{"line_number":26,"context_line":"    resources: [\"secrets\"]"},{"line_number":27,"context_line":"    verbs: [\"create\", \"delete\", \"deletecollection\", \"get\", \"list\", \"patch\"]"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"4207c5f0_6a59f6e1","line":24,"updated":"2026-07-30 16:49:23.000000000","message":"shouldn\u0027t be the list permission here as well?\n\nIronic uses labels to find the containers which requires list permissions https://opendev.org/openstack/ironic/src/branch/master/ironic/console/container/kubernetes.py#L121-L123","commit_id":"2ac7db60e69daefd947832fa108d94f8d1ccdb3f"},{"author":{"_account_id":12404,"name":"Rico Lin","email":"ricolin@ricolky.com","username":"rico.lin"},"change_message_id":"59281d09aa78350365d602748a5bcc719356b38a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"rules:"},{"line_number":22,"context_line":"  - apiGroups: [\"\"]"},{"line_number":23,"context_line":"    resources: [\"pods\"]"},{"line_number":24,"context_line":"    verbs: [\"create\", \"delete\", \"deletecollection\", \"get\", \"patch\"]"},{"line_number":25,"context_line":"  - apiGroups: [\"\"]"},{"line_number":26,"context_line":"    resources: [\"secrets\"]"},{"line_number":27,"context_line":"    verbs: [\"create\", \"delete\", \"deletecollection\", \"get\", \"list\", \"patch\"]"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"48b82211_8d1bcd35","line":24,"in_reply_to":"4207c5f0_6a59f6e1","updated":"2026-07-31 12:18:57.000000000","message":"Done","commit_id":"2ac7db60e69daefd947832fa108d94f8d1ccdb3f"}],"ironic/templates/statefulset-conductor.yaml":[{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"787f257890d75c962c21c2209b1b8d4c357c317a","unresolved":true,"context_lines":[{"line_number":72,"context_line":"          command:"},{"line_number":73,"context_line":"            - /bin/sh"},{"line_number":74,"context_line":"            - -c"},{"line_number":75,"context_line":"            - cp \"$(command -v kubectl)\" /tmp/kubectl/kubectl"},{"line_number":76,"context_line":"          volumeMounts:"},{"line_number":77,"context_line":"            - name: pod-kubectl-bin"},{"line_number":78,"context_line":"              mountPath: /tmp/kubectl"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"aedbccb9_3bf59607","line":75,"updated":"2026-10-14 17:01:19.000000000","message":"I wonder if kubectl should be preinstalled in the ironic image as well. People are free to fork and update the base ironic image if they have more specific need?","commit_id":"95768bb09aaba2630b1743df325d43a4a171e163"}]}
