)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"772754db7780b6ca30630e573803e71e707a0215","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8b76254b_ea1f05f8","updated":"2024-10-02 09:39:01.000000000","message":"The proto itself is fine, but I kind of concur with Jan on the CL above that we probably do not want a knob for this.","commit_id":"aba293de64fca836d61cda89821fccfcf6c3d610"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"78cfffdab8d2cda28e21eb90af196f2e5f9f5235","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a5d76b5b_91017d78","in_reply_to":"8b76254b_ea1f05f8","updated":"2024-10-07 17:26:08.000000000","message":"Please see my response to that CL.","commit_id":"aba293de64fca836d61cda89821fccfcf6c3d610"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"304044a66481853fd0651f4c2acdb9314c2d51d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9fbe00d4_b6e4fa14","in_reply_to":"a5d76b5b_91017d78","updated":"2024-10-14 11:49:25.000000000","message":"Acknowledged","commit_id":"aba293de64fca836d61cda89821fccfcf6c3d610"}],"metropolis/proto/common/common.proto":[{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8c51dadc383d2a868b22a40eaf5c7ac0dc53ea8c","unresolved":true,"context_lines":[{"line_number":347,"context_line":"    // Note: there are certain labels that Metropolis will always add to"},{"line_number":348,"context_line":"    // Kubernetes nodes, such as node-role.kubernetes.io/...  . These are not"},{"line_number":349,"context_line":"    // influenced by these rules."},{"line_number":350,"context_line":"    repeated NodeLabelsToSynchronizeToKubernetes node_labels_to_synchronize_to_kubernetes \u003d 3;"},{"line_number":351,"context_line":"}"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"// NodeTPMUsage describes whether a node has a TPM2.0 and if it is/should be"}],"source_content_type":"text/x-protobuf","patch_set":3,"id":"f5f7bae2_25dd524e","line":350,"updated":"2024-10-09 15:07:05.000000000","message":"Maybe it would make sense to create a sub-message for all future Kubernetes-related configs instead of putting it at the top level. Then you could also make the setting name a bit shorter (`node_labels_to_synchronize`). At least for Spiffe, it is planned to create a `message AuthenticationConfig` according to the design doc.","commit_id":"e1f8bd56fe74cee31ec742dd0b4a839667f54787"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"e61023b0ac53e2e92f9db549998243a61e599522","unresolved":false,"context_lines":[{"line_number":347,"context_line":"    // Note: there are certain labels that Metropolis will always add to"},{"line_number":348,"context_line":"    // Kubernetes nodes, such as node-role.kubernetes.io/...  . These are not"},{"line_number":349,"context_line":"    // influenced by these rules."},{"line_number":350,"context_line":"    repeated NodeLabelsToSynchronizeToKubernetes node_labels_to_synchronize_to_kubernetes \u003d 3;"},{"line_number":351,"context_line":"}"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"// NodeTPMUsage describes whether a node has a TPM2.0 and if it is/should be"}],"source_content_type":"text/x-protobuf","patch_set":3,"id":"6790d98e_06897f5e","line":350,"in_reply_to":"c0107acd_2770b39d","updated":"2024-10-14 13:24:52.000000000","message":"Done","commit_id":"e1f8bd56fe74cee31ec742dd0b4a839667f54787"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"304044a66481853fd0651f4c2acdb9314c2d51d6","unresolved":true,"context_lines":[{"line_number":347,"context_line":"    // Note: there are certain labels that Metropolis will always add to"},{"line_number":348,"context_line":"    // Kubernetes nodes, such as node-role.kubernetes.io/...  . These are not"},{"line_number":349,"context_line":"    // influenced by these rules."},{"line_number":350,"context_line":"    repeated NodeLabelsToSynchronizeToKubernetes node_labels_to_synchronize_to_kubernetes \u003d 3;"},{"line_number":351,"context_line":"}"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"// NodeTPMUsage describes whether a node has a TPM2.0 and if it is/should be"}],"source_content_type":"text/x-protobuf","patch_set":3,"id":"c0107acd_2770b39d","line":350,"in_reply_to":"f5f7bae2_25dd524e","updated":"2024-10-14 11:49:25.000000000","message":"Yeah, that sounds like a good idea.","commit_id":"e1f8bd56fe74cee31ec742dd0b4a839667f54787"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"e52f0daaf106f1f0b0c2bed93c51c1c7bd2a08e6","unresolved":true,"context_lines":[{"line_number":324,"context_line":"        message NodeLabelsToSynchronize {"},{"line_number":325,"context_line":"            // Node labels matching this regexp will be synchronized."},{"line_number":326,"context_line":"            //"},{"line_number":327,"context_line":"            // For example, the following regex: `^[^/]+foo$` would match:"},{"line_number":328,"context_line":"            //  - foo: bar"},{"line_number":329,"context_line":"            //  - foo-bar: baz"},{"line_number":330,"context_line":"            // But wouldn\u0027t match:"},{"line_number":331,"context_line":"            //  - example.com/foo: bar"},{"line_number":332,"context_line":"            //"}],"source_content_type":"text/x-protobuf","patch_set":5,"id":"8396237d_44cb29ef","line":329,"range":{"start_line":327,"start_character":0,"end_line":329,"end_character":30},"updated":"2024-10-15 09:08:06.000000000","message":"```suggestion\n            // For example, the following regex: `^[^/]*foo$` would match:\n            //  - foo: bar\n            //  - bar-foo: baz\n```","commit_id":"a16f82d472b8757de9166e4e6d73cb748c5a6e72"},{"author":{"_account_id":1000038,"name":"Jan Schär","display_name":"Jan","email":"jan@monogon.tech","username":"jan","avatars":[{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd0e7f48847aa0e46c8f361df2d6c26b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4940d7acb43eb1fb58fd8626cfd104b4ddd6543c","unresolved":true,"context_lines":[{"line_number":324,"context_line":"        message NodeLabelsToSynchronize {"},{"line_number":325,"context_line":"            // Node labels matching this regexp will be synchronized."},{"line_number":326,"context_line":"            //"},{"line_number":327,"context_line":"            // For example, the following regex: `^[^/]+foo$` would match:"},{"line_number":328,"context_line":"            //  - foo: bar"},{"line_number":329,"context_line":"            //  - foo-bar: baz"},{"line_number":330,"context_line":"            // But wouldn\u0027t match:"},{"line_number":331,"context_line":"            //  - example.com/foo: bar"},{"line_number":332,"context_line":"            //"}],"source_content_type":"text/x-protobuf","patch_set":5,"id":"457a55d0_a56bcfa4","line":329,"range":{"start_line":327,"start_character":0,"end_line":329,"end_character":30},"in_reply_to":"3d68af05_a7ddb501","updated":"2024-10-15 12:50:15.000000000","message":"There were actually two suggested changes. The `+` should be changed to `*`, otherwise the regex does not match `foo`.","commit_id":"a16f82d472b8757de9166e4e6d73cb748c5a6e72"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"c1f04e2625661f4f5ad6c5d12b73ab0c245f8df8","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        message NodeLabelsToSynchronize {"},{"line_number":325,"context_line":"            // Node labels matching this regexp will be synchronized."},{"line_number":326,"context_line":"            //"},{"line_number":327,"context_line":"            // For example, the following regex: `^[^/]+foo$` would match:"},{"line_number":328,"context_line":"            //  - foo: bar"},{"line_number":329,"context_line":"            //  - foo-bar: baz"},{"line_number":330,"context_line":"            // But wouldn\u0027t match:"},{"line_number":331,"context_line":"            //  - example.com/foo: bar"},{"line_number":332,"context_line":"            //"}],"source_content_type":"text/x-protobuf","patch_set":5,"id":"b0f859a2_4285b3cd","line":329,"range":{"start_line":327,"start_character":0,"end_line":329,"end_character":30},"in_reply_to":"457a55d0_a56bcfa4","updated":"2024-10-22 10:59:54.000000000","message":"Done (sorry, didn\u0027t realize this was a suggested edit so did it by hand).","commit_id":"a16f82d472b8757de9166e4e6d73cb748c5a6e72"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"25e95ce298d345d6895596b7d0d0d3b0bef80e48","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        message NodeLabelsToSynchronize {"},{"line_number":325,"context_line":"            // Node labels matching this regexp will be synchronized."},{"line_number":326,"context_line":"            //"},{"line_number":327,"context_line":"            // For example, the following regex: `^[^/]+foo$` would match:"},{"line_number":328,"context_line":"            //  - foo: bar"},{"line_number":329,"context_line":"            //  - foo-bar: baz"},{"line_number":330,"context_line":"            // But wouldn\u0027t match:"},{"line_number":331,"context_line":"            //  - example.com/foo: bar"},{"line_number":332,"context_line":"            //"}],"source_content_type":"text/x-protobuf","patch_set":5,"id":"3d68af05_a7ddb501","line":329,"range":{"start_line":327,"start_character":0,"end_line":329,"end_character":30},"in_reply_to":"8396237d_44cb29ef","updated":"2024-10-15 11:49:50.000000000","message":"Done","commit_id":"a16f82d472b8757de9166e4e6d73cb748c5a6e72"}]}
