)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Kubernetes custom configuration support: runtime"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This changes allow users for global customization"},{"line_number":10,"context_line":"of kubelet and control plane components during"},{"line_number":11,"context_line":"runtime process."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"d69ee5c7_7ccc79b3","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":12},"updated":"2022-03-07 20:54:53.000000000","message":"nit: either \"This change allows\" or \"These changes allow\"","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Kubernetes custom configuration support: runtime"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This changes allow users for global customization"},{"line_number":10,"context_line":"of kubelet and control plane components during"},{"line_number":11,"context_line":"runtime process."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"b61efb29_5e1262aa","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":12},"in_reply_to":"d69ee5c7_7ccc79b3","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"* Validations have been relaxed to enable creation of"},{"line_number":14,"context_line":"  new sections in kubernetes service through service-parameter."},{"line_number":15,"context_line":"  e.i.: kube-apiserver, scheduller, controllerManager."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* Validations have been relaxed to enable creation of"},{"line_number":18,"context_line":"  new parameters in kubernetes service through service-parameter."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"0a48f3e4_60cb9f5a","line":15,"range":{"start_line":15,"start_character":24,"end_line":15,"end_character":34},"updated":"2022-03-07 20:54:53.000000000","message":"kube-scheduler and kube-controller-manager","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"* Validations have been relaxed to enable creation of"},{"line_number":14,"context_line":"  new sections in kubernetes service through service-parameter."},{"line_number":15,"context_line":"  e.i.: kube-apiserver, scheduller, controllerManager."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* Validations have been relaxed to enable creation of"},{"line_number":18,"context_line":"  new parameters in kubernetes service through service-parameter."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"5f667a24_8ae61741","line":15,"range":{"start_line":15,"start_character":24,"end_line":15,"end_character":34},"in_reply_to":"0a48f3e4_60cb9f5a","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"de0137fc756c437c7c6532ca3c37d5abdd6337d9","unresolved":true,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Test Plan:"},{"line_number":21,"context_line":"* Fresh Install: AIO-SX, Standard."},{"line_number":22,"context_line":"* Create, modify, delete supported parameters and verify changes."},{"line_number":23,"context_line":"* Add and apply not supported parameters and verify kube-apiserver auto"},{"line_number":24,"context_line":"  restore process."},{"line_number":25,"context_line":"* Validate launch example Pods, for both simplex and duplex systems."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"b60da9b1_4bdfcb3f","line":22,"updated":"2022-09-06 17:51:12.000000000","message":"should verify \u0027system service-parameter-apply kubernetes\u0027 after modify","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"6f16be4dcccb2f00d66e43ac022c9d3ab970d136","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Test Plan:"},{"line_number":21,"context_line":"* Fresh Install: AIO-SX, Standard."},{"line_number":22,"context_line":"* Create, modify, delete supported parameters and verify changes."},{"line_number":23,"context_line":"* Add and apply not supported parameters and verify kube-apiserver auto"},{"line_number":24,"context_line":"  restore process."},{"line_number":25,"context_line":"* Validate launch example Pods, for both simplex and duplex systems."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"823901ff_f1b37d05","line":22,"in_reply_to":"b60da9b1_4bdfcb3f","updated":"2022-09-06 18:47:29.000000000","message":"Done","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"de0137fc756c437c7c6532ca3c37d5abdd6337d9","unresolved":true,"context_lines":[{"line_number":23,"context_line":"* Add and apply not supported parameters and verify kube-apiserver auto"},{"line_number":24,"context_line":"  restore process."},{"line_number":25,"context_line":"* Validate launch example Pods, for both simplex and duplex systems."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Story: 2009766"},{"line_number":28,"context_line":"Task: 44376"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"dcf6e49c_a0f608d3","line":26,"updated":"2022-09-06 17:51:12.000000000","message":"Testplan should verify platform upgrade from prior release","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"6f16be4dcccb2f00d66e43ac022c9d3ab970d136","unresolved":false,"context_lines":[{"line_number":23,"context_line":"* Add and apply not supported parameters and verify kube-apiserver auto"},{"line_number":24,"context_line":"  restore process."},{"line_number":25,"context_line":"* Validate launch example Pods, for both simplex and duplex systems."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Story: 2009766"},{"line_number":28,"context_line":"Task: 44376"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"74e33760_8a093226","line":26,"in_reply_to":"dcf6e49c_a0f608d3","updated":"2022-09-06 18:47:29.000000000","message":"Done","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"a05a1025c48733e3f10da67b7de632188193ca92","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"315299d0_d737e9eb","updated":"2022-02-04 06:54:30.000000000","message":"WIP","commit_id":"fb9f80d792264e461fbe52e7ee25706c675f634e"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"430436c23ac46c75273b66259bf4ac4a64ff67e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"91e250e2_394b6b52","updated":"2022-02-04 14:05:02.000000000","message":"WIP","commit_id":"a5845d62e50d901c894474181c79eb0e4b657a38"},{"author":{"_account_id":32852,"name":"Enzo Candotti","email":"enzo.candotti@windriver.com","username":"ecandotti"},"change_message_id":"63275bd12540ba89d1e7e7e5b3be4f2934d843c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"80ebda1c_7a782727","updated":"2022-02-04 20:44:58.000000000","message":"WIP","commit_id":"15f948ed8f2534a8ac56c07bcef42ffe4502972f"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"8d1755e2_68f1cf19","updated":"2022-03-07 22:32:21.000000000","message":"I have a bunch of questions, mostly coming from the fact that there is no overall design document for this so it\u0027s not entirely obvious how this is intended to work.\n\nIn the failure case are we even guaranteed that there is a good file to \"restore\" from?  What happens if there isn\u0027t?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f6c98909bc0aec87270b042d27da50b25a34e555","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"05009529_91dd5779","updated":"2022-03-07 17:49:09.000000000","message":"It\u0027s difficult to compare the old code that was removed with the new code being added.  It would have been better to submit one commit that just converts the old way of doing it to the new way, then a separate commit that added new functionality.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"ead32e77_25ec487d","updated":"2022-03-08 16:04:53.000000000","message":"Hi, \nI fixed most of the spelling errors, I\u0027m still working on code comment and refactoring.\n\nRegards","commit_id":"e6ea8b61fa5d248083dd72455aff5361a0512f47"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"21b525043a8067242a49cc0b0f2e328d10e8b57c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"4c772d66_772e228e","updated":"2022-03-14 17:19:01.000000000","message":"There are a number of unresolved questions, could you answer them?","commit_id":"df7ae602e92bd43c04d5fb544e15164e7a6dd43d"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"e77eac7ad4be7c71c37eaf007e9753ce5d0ea43e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"b35fd8e0_93bed802","updated":"2022-03-11 15:09:57.000000000","message":"WIP","commit_id":"df7ae602e92bd43c04d5fb544e15164e7a6dd43d"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"0bbc4c748173ddf120c8720d74407197d12e9039","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"ed9b63ff_61bf9e3d","updated":"2022-03-21 13:55:41.000000000","message":"WIP","commit_id":"e3d345e14e5804c0e4f289ba9f8b807667770f6d"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"395342b7829ac45ef9c21a1bc3fac70f6096c3f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"18b2a9ba_4929cc87","updated":"2022-03-28 15:28:55.000000000","message":"WIP","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"65d3a5abd77bfdf70577c0e9df99cc475d1efd3c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"6d447c4c_9cce5b08","updated":"2022-03-28 15:29:34.000000000","message":"WIP","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"c9e07c40dce449e5d66aa27d8735c3ecbe142b2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"6d73fd70_c26c3e03","updated":"2022-03-28 15:29:59.000000000","message":"WIP","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"98cf92b7582ceb1edf431aa8d310f25aecfaafb6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"d1b4db7d_c89d3e67","updated":"2022-04-12 14:29:14.000000000","message":"WIP","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"a5d2d594f5f1874c5b0b1de17844621433040d3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"ecc311e5_6b607ddb","updated":"2022-04-12 14:27:32.000000000","message":"WIP","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f3bc5150440f13e5ce94b4b6e91cc42c0eebad7d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"90ffeb17_9a7a9a6b","updated":"2022-09-13 19:09:33.000000000","message":"I\u0027m a little concerned about the sheer amount of code being changed in one commit, I think it would have been better to break it up into several commits to make it easier to review.  However, it looks okay so I\u0027m approving it.","commit_id":"56b34f044ad78fbb3e14e09f0030e37e5bfe52d0"}],"puppet-manifests/src/modules/platform/files/change_k8s_control_plane_params.py":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":10,"context_line":"# Sections:"},{"line_number":11,"context_line":"# ---------"},{"line_number":12,"context_line":"# The user should define the new parameters under the sections:"},{"line_number":13,"context_line":"# - \u0027kube_apiserver\u0027"},{"line_number":14,"context_line":"# - \u0027controllerManager\u0027,"},{"line_number":15,"context_line":"# - \u0027scheduler\u0027"},{"line_number":16,"context_line":"# - \u0027kubelet\u0027"},{"line_number":17,"context_line":"# for the respective control-plane componentes."},{"line_number":18,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":19,"id":"543cbc91_50ed73b4","line":15,"range":{"start_line":13,"start_character":5,"end_line":15,"end_character":15},"updated":"2022-03-07 20:54:53.000000000","message":"we should have a consistent naming between the three control plane components.  They are kube-apiserver, kube-scheduler, and kube-controller-manager.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"21b525043a8067242a49cc0b0f2e328d10e8b57c","unresolved":true,"context_lines":[{"line_number":10,"context_line":"# Sections:"},{"line_number":11,"context_line":"# ---------"},{"line_number":12,"context_line":"# The user should define the new parameters under the sections:"},{"line_number":13,"context_line":"# - \u0027kube_apiserver\u0027"},{"line_number":14,"context_line":"# - \u0027controllerManager\u0027,"},{"line_number":15,"context_line":"# - \u0027scheduler\u0027"},{"line_number":16,"context_line":"# - \u0027kubelet\u0027"},{"line_number":17,"context_line":"# for the respective control-plane componentes."},{"line_number":18,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":19,"id":"d35e9e8d_db727a28","line":15,"range":{"start_line":13,"start_character":5,"end_line":15,"end_character":15},"in_reply_to":"4f011ffb_ca87fafc","updated":"2022-03-14 17:19:01.000000000","message":"yes, kube_controller_manager would be more consistent.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":true,"context_lines":[{"line_number":10,"context_line":"# Sections:"},{"line_number":11,"context_line":"# ---------"},{"line_number":12,"context_line":"# The user should define the new parameters under the sections:"},{"line_number":13,"context_line":"# - \u0027kube_apiserver\u0027"},{"line_number":14,"context_line":"# - \u0027controllerManager\u0027,"},{"line_number":15,"context_line":"# - \u0027scheduler\u0027"},{"line_number":16,"context_line":"# - \u0027kubelet\u0027"},{"line_number":17,"context_line":"# for the respective control-plane componentes."},{"line_number":18,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":19,"id":"4f011ffb_ca87fafc","line":15,"range":{"start_line":13,"start_character":5,"end_line":15,"end_character":15},"in_reply_to":"543cbc91_50ed73b4","updated":"2022-03-08 16:04:53.000000000","message":"The new sections for service-parameters are: kube_apiserver, kube_scheduler, kube_controllerManager. Do you suggest use kube_controller_manager instead of kube_controllerManager?\nWe set controllerManager because in the configuration file the config for controller manager is under section controllerManager not controller-manager.\nBut if you say that is more clear an consistent use kube_controller_manager for service parameter instead of kube_controllerManager, is ok.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"37e92f91eed6adccf556900555c34f3d81e338b3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# Sections:"},{"line_number":11,"context_line":"# ---------"},{"line_number":12,"context_line":"# The user should define the new parameters under the sections:"},{"line_number":13,"context_line":"# - \u0027kube_apiserver\u0027"},{"line_number":14,"context_line":"# - \u0027controllerManager\u0027,"},{"line_number":15,"context_line":"# - \u0027scheduler\u0027"},{"line_number":16,"context_line":"# - \u0027kubelet\u0027"},{"line_number":17,"context_line":"# for the respective control-plane componentes."},{"line_number":18,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":19,"id":"bfd1cce0_42331353","line":15,"range":{"start_line":13,"start_character":5,"end_line":15,"end_character":15},"in_reply_to":"d35e9e8d_db727a28","updated":"2022-03-21 15:13:39.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":14,"context_line":"# - \u0027controllerManager\u0027,"},{"line_number":15,"context_line":"# - \u0027scheduler\u0027"},{"line_number":16,"context_line":"# - \u0027kubelet\u0027"},{"line_number":17,"context_line":"# for the respective control-plane componentes."},{"line_number":18,"context_line":"#"},{"line_number":19,"context_line":"# Field Names:"},{"line_number":20,"context_line":"# ------------"}],"source_content_type":"text/x-python","patch_set":19,"id":"babc705d_25528d52","line":17,"range":{"start_line":17,"start_character":35,"end_line":17,"end_character":46},"updated":"2022-03-07 20:54:53.000000000","message":"nit: components","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# - \u0027controllerManager\u0027,"},{"line_number":15,"context_line":"# - \u0027scheduler\u0027"},{"line_number":16,"context_line":"# - \u0027kubelet\u0027"},{"line_number":17,"context_line":"# for the respective control-plane componentes."},{"line_number":18,"context_line":"#"},{"line_number":19,"context_line":"# Field Names:"},{"line_number":20,"context_line":"# ------------"}],"source_content_type":"text/x-python","patch_set":19,"id":"16b2cf30_5b875055","line":17,"range":{"start_line":17,"start_character":35,"end_line":17,"end_character":46},"in_reply_to":"babc705d_25528d52","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":20,"context_line":"# ------------"},{"line_number":21,"context_line":"# service-parameter fields should be named following the k8s nomenclature,"},{"line_number":22,"context_line":"# used in kubeadm.conf file. Currently there are some parameters that are"},{"line_number":23,"context_line":"# defined with name fields that not match the names espected by k8s."},{"line_number":24,"context_line":"# The apiserver_schema, scheduler_schema, controllerManager_schema and"},{"line_number":25,"context_line":"# etc_schema are used to rebuild the structure of that sections and to"},{"line_number":26,"context_line":"# translate the fields that not match k8s spected names."}],"source_content_type":"text/x-python","patch_set":19,"id":"75286735_9d4be030","line":23,"range":{"start_line":23,"start_character":52,"end_line":23,"end_character":61},"updated":"2022-03-07 20:54:53.000000000","message":"is this supposed to be \"expected\"?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# ------------"},{"line_number":21,"context_line":"# service-parameter fields should be named following the k8s nomenclature,"},{"line_number":22,"context_line":"# used in kubeadm.conf file. Currently there are some parameters that are"},{"line_number":23,"context_line":"# defined with name fields that not match the names espected by k8s."},{"line_number":24,"context_line":"# The apiserver_schema, scheduler_schema, controllerManager_schema and"},{"line_number":25,"context_line":"# etc_schema are used to rebuild the structure of that sections and to"},{"line_number":26,"context_line":"# translate the fields that not match k8s spected names."}],"source_content_type":"text/x-python","patch_set":19,"id":"eb4c872c_57142033","line":23,"range":{"start_line":23,"start_character":52,"end_line":23,"end_character":61},"in_reply_to":"75286735_9d4be030","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":21,"context_line":"# service-parameter fields should be named following the k8s nomenclature,"},{"line_number":22,"context_line":"# used in kubeadm.conf file. Currently there are some parameters that are"},{"line_number":23,"context_line":"# defined with name fields that not match the names espected by k8s."},{"line_number":24,"context_line":"# The apiserver_schema, scheduler_schema, controllerManager_schema and"},{"line_number":25,"context_line":"# etc_schema are used to rebuild the structure of that sections and to"},{"line_number":26,"context_line":"# translate the fields that not match k8s spected names."},{"line_number":27,"context_line":"# e.i.: service-parameters accept \"admission_plugins\" but the name spected by"}],"source_content_type":"text/x-python","patch_set":19,"id":"69f7c14c_64590772","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":66},"updated":"2022-03-07 20:54:53.000000000","message":"inconsistent naming","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"37e92f91eed6adccf556900555c34f3d81e338b3","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# service-parameter fields should be named following the k8s nomenclature,"},{"line_number":22,"context_line":"# used in kubeadm.conf file. Currently there are some parameters that are"},{"line_number":23,"context_line":"# defined with name fields that not match the names espected by k8s."},{"line_number":24,"context_line":"# The apiserver_schema, scheduler_schema, controllerManager_schema and"},{"line_number":25,"context_line":"# etc_schema are used to rebuild the structure of that sections and to"},{"line_number":26,"context_line":"# translate the fields that not match k8s spected names."},{"line_number":27,"context_line":"# e.i.: service-parameters accept \"admission_plugins\" but the name spected by"}],"source_content_type":"text/x-python","patch_set":19,"id":"72e9ed06_e7e4e9e6","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":66},"in_reply_to":"69f7c14c_64590772","updated":"2022-03-21 15:13:39.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":23,"context_line":"# defined with name fields that not match the names espected by k8s."},{"line_number":24,"context_line":"# The apiserver_schema, scheduler_schema, controllerManager_schema and"},{"line_number":25,"context_line":"# etc_schema are used to rebuild the structure of that sections and to"},{"line_number":26,"context_line":"# translate the fields that not match k8s spected names."},{"line_number":27,"context_line":"# e.i.: service-parameters accept \"admission_plugins\" but the name spected by"},{"line_number":28,"context_line":"# k8s for this field is \"enabled-admission-plugins\", so a translation is"},{"line_number":29,"context_line":"# needed."}],"source_content_type":"text/x-python","patch_set":19,"id":"4fed0f65_cc2b9c52","line":26,"range":{"start_line":26,"start_character":42,"end_line":26,"end_character":50},"updated":"2022-03-07 20:54:53.000000000","message":"I\u0027m guessing \"expected\"?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# defined with name fields that not match the names espected by k8s."},{"line_number":24,"context_line":"# The apiserver_schema, scheduler_schema, controllerManager_schema and"},{"line_number":25,"context_line":"# etc_schema are used to rebuild the structure of that sections and to"},{"line_number":26,"context_line":"# translate the fields that not match k8s spected names."},{"line_number":27,"context_line":"# e.i.: service-parameters accept \"admission_plugins\" but the name spected by"},{"line_number":28,"context_line":"# k8s for this field is \"enabled-admission-plugins\", so a translation is"},{"line_number":29,"context_line":"# needed."}],"source_content_type":"text/x-python","patch_set":19,"id":"da7981aa_70d5a990","line":26,"range":{"start_line":26,"start_character":42,"end_line":26,"end_character":50},"in_reply_to":"4fed0f65_cc2b9c52","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":24,"context_line":"# The apiserver_schema, scheduler_schema, controllerManager_schema and"},{"line_number":25,"context_line":"# etc_schema are used to rebuild the structure of that sections and to"},{"line_number":26,"context_line":"# translate the fields that not match k8s spected names."},{"line_number":27,"context_line":"# e.i.: service-parameters accept \"admission_plugins\" but the name spected by"},{"line_number":28,"context_line":"# k8s for this field is \"enabled-admission-plugins\", so a translation is"},{"line_number":29,"context_line":"# needed."},{"line_number":30,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":19,"id":"5dd8f7ec_29f74d58","line":27,"range":{"start_line":27,"start_character":67,"end_line":27,"end_character":75},"updated":"2022-03-07 20:54:53.000000000","message":"expected","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":24,"context_line":"# The apiserver_schema, scheduler_schema, controllerManager_schema and"},{"line_number":25,"context_line":"# etc_schema are used to rebuild the structure of that sections and to"},{"line_number":26,"context_line":"# translate the fields that not match k8s spected names."},{"line_number":27,"context_line":"# e.i.: service-parameters accept \"admission_plugins\" but the name spected by"},{"line_number":28,"context_line":"# k8s for this field is \"enabled-admission-plugins\", so a translation is"},{"line_number":29,"context_line":"# needed."},{"line_number":30,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":19,"id":"40663384_599d3342","line":27,"range":{"start_line":27,"start_character":2,"end_line":27,"end_character":7},"updated":"2022-03-07 20:54:53.000000000","message":"i.e.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":24,"context_line":"# The apiserver_schema, scheduler_schema, controllerManager_schema and"},{"line_number":25,"context_line":"# etc_schema are used to rebuild the structure of that sections and to"},{"line_number":26,"context_line":"# translate the fields that not match k8s spected names."},{"line_number":27,"context_line":"# e.i.: service-parameters accept \"admission_plugins\" but the name spected by"},{"line_number":28,"context_line":"# k8s for this field is \"enabled-admission-plugins\", so a translation is"},{"line_number":29,"context_line":"# needed."},{"line_number":30,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":19,"id":"83848ab0_d73919a7","line":27,"range":{"start_line":27,"start_character":2,"end_line":27,"end_character":7},"in_reply_to":"40663384_599d3342","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":24,"context_line":"# The apiserver_schema, scheduler_schema, controllerManager_schema and"},{"line_number":25,"context_line":"# etc_schema are used to rebuild the structure of that sections and to"},{"line_number":26,"context_line":"# translate the fields that not match k8s spected names."},{"line_number":27,"context_line":"# e.i.: service-parameters accept \"admission_plugins\" but the name spected by"},{"line_number":28,"context_line":"# k8s for this field is \"enabled-admission-plugins\", so a translation is"},{"line_number":29,"context_line":"# needed."},{"line_number":30,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":19,"id":"0d92fe2a_021dddc3","line":27,"range":{"start_line":27,"start_character":67,"end_line":27,"end_character":75},"in_reply_to":"5dd8f7ec_29f74d58","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":36,"context_line":"# recovery process is initiated to restore it. This function is activated"},{"line_number":37,"context_line":"# by default."},{"line_number":38,"context_line":"# The user also can set a flag to deactivate this recovery process only for"},{"line_number":39,"context_line":"# debugging porpouse."},{"line_number":40,"context_line":"# Also is posible to set timeout, tries and try_sleep of k8s helth check."},{"line_number":41,"context_line":"# Those variables must be defined in the \u0027config\u0027 service-parameters"},{"line_number":42,"context_line":"# section as:"}],"source_content_type":"text/x-python","patch_set":19,"id":"418946cb_cf2790d5","line":39,"range":{"start_line":39,"start_character":12,"end_line":39,"end_character":20},"updated":"2022-03-07 20:54:53.000000000","message":"purpose","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":36,"context_line":"# recovery process is initiated to restore it. This function is activated"},{"line_number":37,"context_line":"# by default."},{"line_number":38,"context_line":"# The user also can set a flag to deactivate this recovery process only for"},{"line_number":39,"context_line":"# debugging porpouse."},{"line_number":40,"context_line":"# Also is posible to set timeout, tries and try_sleep of k8s helth check."},{"line_number":41,"context_line":"# Those variables must be defined in the \u0027config\u0027 service-parameters"},{"line_number":42,"context_line":"# section as:"}],"source_content_type":"text/x-python","patch_set":19,"id":"0dd84edc_f8e6073a","line":39,"range":{"start_line":39,"start_character":12,"end_line":39,"end_character":20},"in_reply_to":"418946cb_cf2790d5","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":37,"context_line":"# by default."},{"line_number":38,"context_line":"# The user also can set a flag to deactivate this recovery process only for"},{"line_number":39,"context_line":"# debugging porpouse."},{"line_number":40,"context_line":"# Also is posible to set timeout, tries and try_sleep of k8s helth check."},{"line_number":41,"context_line":"# Those variables must be defined in the \u0027config\u0027 service-parameters"},{"line_number":42,"context_line":"# section as:"},{"line_number":43,"context_line":"#   automatic_recovery: true|false"}],"source_content_type":"text/x-python","patch_set":19,"id":"aa595c49_06e7ac04","line":40,"range":{"start_line":40,"start_character":61,"end_line":40,"end_character":67},"updated":"2022-03-07 20:54:53.000000000","message":"health","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":37,"context_line":"# by default."},{"line_number":38,"context_line":"# The user also can set a flag to deactivate this recovery process only for"},{"line_number":39,"context_line":"# debugging porpouse."},{"line_number":40,"context_line":"# Also is posible to set timeout, tries and try_sleep of k8s helth check."},{"line_number":41,"context_line":"# Those variables must be defined in the \u0027config\u0027 service-parameters"},{"line_number":42,"context_line":"# section as:"},{"line_number":43,"context_line":"#   automatic_recovery: true|false"}],"source_content_type":"text/x-python","patch_set":19,"id":"ca5539a9_04e73db3","line":40,"range":{"start_line":40,"start_character":61,"end_line":40,"end_character":67},"in_reply_to":"aa595c49_06e7ac04","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":62,"context_line":"import requests"},{"line_number":63,"context_line":"import ruamel.yaml as yaml"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"# Loggin"},{"line_number":66,"context_line":"logger_name \u003d \u0027upt_k8s\u0027"},{"line_number":67,"context_line":"LOG \u003d logging.getLogger(logger_name)"},{"line_number":68,"context_line":"LOG.setLevel(logging.DEBUG)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9387e91f_05c7aed6","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":8},"updated":"2022-03-07 20:54:53.000000000","message":"Logging","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":62,"context_line":"import requests"},{"line_number":63,"context_line":"import ruamel.yaml as yaml"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"# Loggin"},{"line_number":66,"context_line":"logger_name \u003d \u0027upt_k8s\u0027"},{"line_number":67,"context_line":"LOG \u003d logging.getLogger(logger_name)"},{"line_number":68,"context_line":"LOG.setLevel(logging.DEBUG)"}],"source_content_type":"text/x-python","patch_set":19,"id":"785a7fdc_ee848b15","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":8},"in_reply_to":"9387e91f_05c7aed6","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":71,"context_line":"    os.makedirs(root_logs)"},{"line_number":72,"context_line":"log_format \u003d logging.Formatter("},{"line_number":73,"context_line":"    \"%(asctime)s [%(threadName)-10.10s] [%(levelname)-5.5s]  %(message)s\")"},{"line_number":74,"context_line":"formatter_filelog \u003d logging.Formatter(log_format)"},{"line_number":75,"context_line":"now \u003d dt.datetime.now().strftime(\u0027%Y%m%dT%H%M%S\u0027)"},{"line_number":76,"context_line":"fullname \u003d os.path.join(root_logs, \u0027k8s_update.log\u0027)"},{"line_number":77,"context_line":"fileHandler \u003d logging.FileHandler(fullname)"}],"source_content_type":"text/x-python","patch_set":19,"id":"30b71c56_b0b60ea9","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":48},"updated":"2022-03-07 20:54:53.000000000","message":"not 100% sure on my syntax, is this actually used?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    os.makedirs(root_logs)"},{"line_number":72,"context_line":"log_format \u003d logging.Formatter("},{"line_number":73,"context_line":"    \"%(asctime)s [%(threadName)-10.10s] [%(levelname)-5.5s]  %(message)s\")"},{"line_number":74,"context_line":"formatter_filelog \u003d logging.Formatter(log_format)"},{"line_number":75,"context_line":"now \u003d dt.datetime.now().strftime(\u0027%Y%m%dT%H%M%S\u0027)"},{"line_number":76,"context_line":"fullname \u003d os.path.join(root_logs, \u0027k8s_update.log\u0027)"},{"line_number":77,"context_line":"fileHandler \u003d logging.FileHandler(fullname)"}],"source_content_type":"text/x-python","patch_set":19,"id":"2651edab_a9f16e98","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":48},"in_reply_to":"30b71c56_b0b60ea9","updated":"2022-03-11 14:31:31.000000000","message":"I\u0027ll modify and use the same format in sysinv.conf","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":72,"context_line":"log_format \u003d logging.Formatter("},{"line_number":73,"context_line":"    \"%(asctime)s [%(threadName)-10.10s] [%(levelname)-5.5s]  %(message)s\")"},{"line_number":74,"context_line":"formatter_filelog \u003d logging.Formatter(log_format)"},{"line_number":75,"context_line":"now \u003d dt.datetime.now().strftime(\u0027%Y%m%dT%H%M%S\u0027)"},{"line_number":76,"context_line":"fullname \u003d os.path.join(root_logs, \u0027k8s_update.log\u0027)"},{"line_number":77,"context_line":"fileHandler \u003d logging.FileHandler(fullname)"},{"line_number":78,"context_line":"fileHandler.setFormatter(log_format)"}],"source_content_type":"text/x-python","patch_set":19,"id":"d66ef3bd_1850567c","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":49},"updated":"2022-03-07 20:54:53.000000000","message":"where is this used?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":72,"context_line":"log_format \u003d logging.Formatter("},{"line_number":73,"context_line":"    \"%(asctime)s [%(threadName)-10.10s] [%(levelname)-5.5s]  %(message)s\")"},{"line_number":74,"context_line":"formatter_filelog \u003d logging.Formatter(log_format)"},{"line_number":75,"context_line":"now \u003d dt.datetime.now().strftime(\u0027%Y%m%dT%H%M%S\u0027)"},{"line_number":76,"context_line":"fullname \u003d os.path.join(root_logs, \u0027k8s_update.log\u0027)"},{"line_number":77,"context_line":"fileHandler \u003d logging.FileHandler(fullname)"},{"line_number":78,"context_line":"fileHandler.setFormatter(log_format)"}],"source_content_type":"text/x-python","patch_set":19,"id":"e395af9a_f947baa2","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":49},"in_reply_to":"d66ef3bd_1850567c","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":121,"context_line":"    if stdout:"},{"line_number":122,"context_line":"        kwargs[\"stdout\"] \u003d stdout"},{"line_number":123,"context_line":"    try:"},{"line_number":124,"context_line":"        LOG.debug(\"%s\", cmd)"},{"line_number":125,"context_line":"        subprocess.check_call(cmd, **kwargs)"},{"line_number":126,"context_line":"    except CalledProcessError as e:"},{"line_number":127,"context_line":"        LOG.error(\"%s\", e.returncode)"}],"source_content_type":"text/x-python","patch_set":19,"id":"c1642c20_47a3b140","line":124,"range":{"start_line":124,"start_character":19,"end_line":124,"end_character":21},"updated":"2022-03-07 20:54:53.000000000","message":"I wonder if it might make sense to put \"executing command: %s\" or something like that.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    if stdout:"},{"line_number":122,"context_line":"        kwargs[\"stdout\"] \u003d stdout"},{"line_number":123,"context_line":"    try:"},{"line_number":124,"context_line":"        LOG.debug(\"%s\", cmd)"},{"line_number":125,"context_line":"        subprocess.check_call(cmd, **kwargs)"},{"line_number":126,"context_line":"    except CalledProcessError as e:"},{"line_number":127,"context_line":"        LOG.error(\"%s\", e.returncode)"}],"source_content_type":"text/x-python","patch_set":19,"id":"e26efea0_346e1c8c","line":124,"range":{"start_line":124,"start_character":19,"end_line":124,"end_character":21},"in_reply_to":"c1642c20_47a3b140","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":124,"context_line":"        LOG.debug(\"%s\", cmd)"},{"line_number":125,"context_line":"        subprocess.check_call(cmd, **kwargs)"},{"line_number":126,"context_line":"    except CalledProcessError as e:"},{"line_number":127,"context_line":"        LOG.error(\"%s\", e.returncode)"},{"line_number":128,"context_line":"        rc \u003d e.returncode"},{"line_number":129,"context_line":"    return rc"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"b1b79200_5e1ff5de","line":127,"range":{"start_line":127,"start_character":19,"end_line":127,"end_character":21},"updated":"2022-03-07 20:54:53.000000000","message":"maybe this should have something like \"error return code: %s\" in the log?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        LOG.debug(\"%s\", cmd)"},{"line_number":125,"context_line":"        subprocess.check_call(cmd, **kwargs)"},{"line_number":126,"context_line":"    except CalledProcessError as e:"},{"line_number":127,"context_line":"        LOG.error(\"%s\", e.returncode)"},{"line_number":128,"context_line":"        rc \u003d e.returncode"},{"line_number":129,"context_line":"    return rc"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"d68515d9_54e9dea1","line":127,"range":{"start_line":127,"start_character":19,"end_line":127,"end_character":21},"in_reply_to":"b1b79200_5e1ff5de","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"def update_k8s_control_plane_components(config_filename,"},{"line_number":133,"context_line":"                                        target_component\u003d\u0027apiserver\u0027):"},{"line_number":134,"context_line":"    \"\"\"The function update a k8s control-plane components.\"\"\""},{"line_number":135,"context_line":"    LOG.debug(\u0027Updating k8s control plane component: %s\u0027, target_component)"},{"line_number":136,"context_line":"    cmd \u003d [\"kubeadm\", \"init\", \"phase\", \"control-plane\","},{"line_number":137,"context_line":"           target_component, \"--config\", config_filename]"}],"source_content_type":"text/x-python","patch_set":19,"id":"d21eac6b_f4a558af","line":134,"range":{"start_line":134,"start_character":19,"end_line":134,"end_character":28},"updated":"2022-03-07 20:54:53.000000000","message":"nit: should be \"updates\"","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"def update_k8s_control_plane_components(config_filename,"},{"line_number":133,"context_line":"                                        target_component\u003d\u0027apiserver\u0027):"},{"line_number":134,"context_line":"    \"\"\"The function update a k8s control-plane components.\"\"\""},{"line_number":135,"context_line":"    LOG.debug(\u0027Updating k8s control plane component: %s\u0027, target_component)"},{"line_number":136,"context_line":"    cmd \u003d [\"kubeadm\", \"init\", \"phase\", \"control-plane\","},{"line_number":137,"context_line":"           target_component, \"--config\", config_filename]"}],"source_content_type":"text/x-python","patch_set":19,"id":"9e9bbcaa_8f22b51a","line":134,"range":{"start_line":134,"start_character":19,"end_line":134,"end_character":28},"in_reply_to":"d21eac6b_f4a558af","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":137,"context_line":"           target_component, \"--config\", config_filename]"},{"line_number":138,"context_line":"    rc \u003d _exec_cmd(cmd)"},{"line_number":139,"context_line":"    if rc !\u003d 0:"},{"line_number":140,"context_line":"        raise K8sKubectlException()"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"def patch_k8s_apiserver_configmap(configmap_filename):"}],"source_content_type":"text/x-python","patch_set":19,"id":"dd06113e_e7e8aa90","line":140,"range":{"start_line":140,"start_character":14,"end_line":140,"end_character":33},"updated":"2022-03-07 20:54:53.000000000","message":"why are we raising a \"kubectl\" exception when we\u0027re running kubeadm?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":137,"context_line":"           target_component, \"--config\", config_filename]"},{"line_number":138,"context_line":"    rc \u003d _exec_cmd(cmd)"},{"line_number":139,"context_line":"    if rc !\u003d 0:"},{"line_number":140,"context_line":"        raise K8sKubectlException()"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"def patch_k8s_apiserver_configmap(configmap_filename):"}],"source_content_type":"text/x-python","patch_set":19,"id":"eda78fb7_4f8e39c4","line":140,"range":{"start_line":140,"start_character":14,"end_line":140,"end_character":33},"in_reply_to":"dd06113e_e7e8aa90","updated":"2022-03-11 14:31:31.000000000","message":"Ack","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"def patch_k8s_apiserver_configmap(configmap_filename):"},{"line_number":144,"context_line":"    \"\"\"The function patch the k8s apiserver configmap.\"\"\""},{"line_number":145,"context_line":"    LOG.debug(\u0027Patching k8s apiserver configmap.\u0027)"},{"line_number":146,"context_line":"    cmd \u003d [\"kubectl\", \"--kubeconfig\u003d/etc/kubernetes/admin.conf\", \"-n\", \"kube-system\","},{"line_number":147,"context_line":"           \"patch\", \"configmap\", \"kubeadm-config\", \"--patch-file\", configmap_filename]"}],"source_content_type":"text/x-python","patch_set":19,"id":"84ce5ed2_dba901a2","line":144,"range":{"start_line":144,"start_character":20,"end_line":144,"end_character":26},"updated":"2022-03-07 20:54:53.000000000","message":"nit: patches","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"def patch_k8s_apiserver_configmap(configmap_filename):"},{"line_number":144,"context_line":"    \"\"\"The function patch the k8s apiserver configmap.\"\"\""},{"line_number":145,"context_line":"    LOG.debug(\u0027Patching k8s apiserver configmap.\u0027)"},{"line_number":146,"context_line":"    cmd \u003d [\"kubectl\", \"--kubeconfig\u003d/etc/kubernetes/admin.conf\", \"-n\", \"kube-system\","},{"line_number":147,"context_line":"           \"patch\", \"configmap\", \"kubeadm-config\", \"--patch-file\", configmap_filename]"}],"source_content_type":"text/x-python","patch_set":19,"id":"c4e73db5_ef0a2dd8","line":144,"range":{"start_line":144,"start_character":20,"end_line":144,"end_character":26},"in_reply_to":"84ce5ed2_dba901a2","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":165,"context_line":"            raise K8sKubectlException"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"def export_k8s_apiserver_configmap(target_filename):"},{"line_number":169,"context_line":"    \"\"\"The function export the k8s apiserver configmap.\"\"\""},{"line_number":170,"context_line":"    LOG.debug(\u0027Exporting k8s apiserver configmap.\u0027)"},{"line_number":171,"context_line":"    with open(target_filename, \"w\") as f:"}],"source_content_type":"text/x-python","patch_set":19,"id":"c2ba0b0d_cfdd00dc","line":168,"range":{"start_line":168,"start_character":4,"end_line":168,"end_character":34},"updated":"2022-03-07 20:54:53.000000000","message":"this function name is not accurate, it is exporting the entire kubeadm configmap, not just the kube-apiserver portion","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            raise K8sKubectlException"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"def export_k8s_apiserver_configmap(target_filename):"},{"line_number":169,"context_line":"    \"\"\"The function export the k8s apiserver configmap.\"\"\""},{"line_number":170,"context_line":"    LOG.debug(\u0027Exporting k8s apiserver configmap.\u0027)"},{"line_number":171,"context_line":"    with open(target_filename, \"w\") as f:"}],"source_content_type":"text/x-python","patch_set":19,"id":"3cebed25_a58bc684","line":168,"range":{"start_line":168,"start_character":4,"end_line":168,"end_character":34},"in_reply_to":"c2ba0b0d_cfdd00dc","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"def k8s_health_check(timeout):"},{"line_number":182,"context_line":"    \"\"\"The function check k8s health. It use a k8s API health endpoint for"},{"line_number":183,"context_line":"    that: https://kubernetes.io/docs/reference/using-api/health-checks/"},{"line_number":184,"context_line":"    \"\"\""},{"line_number":185,"context_line":"    rc \u003d False"}],"source_content_type":"text/x-python","patch_set":19,"id":"96aedf09_eb214d84","line":182,"range":{"start_line":182,"start_character":20,"end_line":182,"end_character":25},"updated":"2022-03-07 20:54:53.000000000","message":"checks","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"def k8s_health_check(timeout):"},{"line_number":182,"context_line":"    \"\"\"The function check k8s health. It use a k8s API health endpoint for"},{"line_number":183,"context_line":"    that: https://kubernetes.io/docs/reference/using-api/health-checks/"},{"line_number":184,"context_line":"    \"\"\""},{"line_number":185,"context_line":"    rc \u003d False"}],"source_content_type":"text/x-python","patch_set":19,"id":"9140a8fd_8e45800a","line":182,"range":{"start_line":182,"start_character":40,"end_line":182,"end_character":46},"updated":"2022-03-07 20:54:53.000000000","message":"should be \"uses the\"","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"def k8s_health_check(timeout):"},{"line_number":182,"context_line":"    \"\"\"The function check k8s health. It use a k8s API health endpoint for"},{"line_number":183,"context_line":"    that: https://kubernetes.io/docs/reference/using-api/health-checks/"},{"line_number":184,"context_line":"    \"\"\""},{"line_number":185,"context_line":"    rc \u003d False"}],"source_content_type":"text/x-python","patch_set":19,"id":"85d8be72_6e8389be","line":182,"range":{"start_line":182,"start_character":40,"end_line":182,"end_character":46},"in_reply_to":"9140a8fd_8e45800a","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"def k8s_health_check(timeout):"},{"line_number":182,"context_line":"    \"\"\"The function check k8s health. It use a k8s API health endpoint for"},{"line_number":183,"context_line":"    that: https://kubernetes.io/docs/reference/using-api/health-checks/"},{"line_number":184,"context_line":"    \"\"\""},{"line_number":185,"context_line":"    rc \u003d False"}],"source_content_type":"text/x-python","patch_set":19,"id":"ded49103_53b2ee14","line":182,"range":{"start_line":182,"start_character":20,"end_line":182,"end_character":25},"in_reply_to":"96aedf09_eb214d84","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":200,"context_line":"        return rc"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"def merge_configmap_files(lastest_configmap_file, bak_configmap_file,"},{"line_number":204,"context_line":"                          new_configmap_file):"},{"line_number":205,"context_line":"    \"\"\"This function merge two configmap files and generate a new one as"},{"line_number":206,"context_line":"    result. The first configmap is taken as reference and the cluster config"}],"source_content_type":"text/x-python","patch_set":19,"id":"1ea03d88_f25c10b3","line":203,"range":{"start_line":203,"start_character":26,"end_line":203,"end_character":48},"updated":"2022-03-07 22:32:21.000000000","message":"should this be \"latest\"?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"37e92f91eed6adccf556900555c34f3d81e338b3","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        return rc"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"def merge_configmap_files(lastest_configmap_file, bak_configmap_file,"},{"line_number":204,"context_line":"                          new_configmap_file):"},{"line_number":205,"context_line":"    \"\"\"This function merge two configmap files and generate a new one as"},{"line_number":206,"context_line":"    result. The first configmap is taken as reference and the cluster config"}],"source_content_type":"text/x-python","patch_set":19,"id":"da8cf6a2_c9470001","line":203,"range":{"start_line":203,"start_character":26,"end_line":203,"end_character":48},"in_reply_to":"1ea03d88_f25c10b3","updated":"2022-03-21 15:13:39.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":211,"context_line":"    # To patch the configmap is neccesary to start the mods from the"},{"line_number":212,"context_line":"    # last saved configmap (it is saved in apiserver with a version number),"},{"line_number":213,"context_line":"    # so we will take as source the last generated configmap (with the current"},{"line_number":214,"context_line":"    # invalid config) and we will replace in it only the cluster config"},{"line_number":215,"context_line":"    # section. This data is taken from the backup configmap."},{"line_number":216,"context_line":"    LOG.debug(\u0027Merging configmap files.\u0027)"},{"line_number":217,"context_line":"    try:"},{"line_number":218,"context_line":"        with open(lastest_configmap_file, \u0027r\u0027) as file:"}],"source_content_type":"text/x-python","patch_set":19,"id":"4691acb2_946e2c5c","line":215,"range":{"start_line":214,"start_character":22,"end_line":215,"end_character":14},"updated":"2022-03-07 22:32:21.000000000","message":"data.ClusterConfiguration is the bulk of the configmap...so what are we trying to preserve from lastest_configmap?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"80fb9e08b26256fc497df3722d93d128489b4274","unresolved":false,"context_lines":[{"line_number":211,"context_line":"    # To patch the configmap is neccesary to start the mods from the"},{"line_number":212,"context_line":"    # last saved configmap (it is saved in apiserver with a version number),"},{"line_number":213,"context_line":"    # so we will take as source the last generated configmap (with the current"},{"line_number":214,"context_line":"    # invalid config) and we will replace in it only the cluster config"},{"line_number":215,"context_line":"    # section. This data is taken from the backup configmap."},{"line_number":216,"context_line":"    LOG.debug(\u0027Merging configmap files.\u0027)"},{"line_number":217,"context_line":"    try:"},{"line_number":218,"context_line":"        with open(lastest_configmap_file, \u0027r\u0027) as file:"}],"source_content_type":"text/x-python","patch_set":19,"id":"0f937a91_52a4d5be","line":215,"range":{"start_line":214,"start_character":22,"end_line":215,"end_character":14},"in_reply_to":"4691acb2_946e2c5c","updated":"2022-08-31 15:33:47.000000000","message":"I\u0027ve updated the comments clarifying the behavior of the function.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":253,"context_line":"    LOG.debug(\u0027Running mandatory tasks before update proccess start.\u0027)"},{"line_number":254,"context_line":"    with open(KUBE_APISERVER_CONFIG) as f:"},{"line_number":255,"context_line":"        lines \u003d f.read()"},{"line_number":256,"context_line":"    m \u003d re.search(REGEXPR_ADVERTISE_ADDRESS, lines)"},{"line_number":257,"context_line":"    if m:"},{"line_number":258,"context_line":"        advertise_address \u003d m.group(1)"},{"line_number":259,"context_line":"        LOG.debug(\u0027advertise_address \u003d %s\u0027, advertise_address)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    def _post_task_update_advertise_address():"},{"line_number":262,"context_line":"        default_network_interface \u003d None"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        with open(KUBE_APISERVER_CONFIG) as f:"},{"line_number":265,"context_line":"            lines \u003d f.read()"},{"line_number":266,"context_line":"        m \u003d re.search(REGEXPR_ADVERTISE_ADDRESS, lines)"},{"line_number":267,"context_line":"        if m:"},{"line_number":268,"context_line":"            default_network_interface \u003d m.group(1)"},{"line_number":269,"context_line":"            LOG.debug(\u0027default_network_interface \u003d %s\u0027, default_network_interface)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        if advertise_address and default_network_interface:"},{"line_number":272,"context_line":"            cmd \u003d [\"sed\", \"-i\", \"s/{}/{}/g\".format(default_network_interface, advertise_address),"},{"line_number":273,"context_line":"                   \"/etc/kubernetes/manifests/kube-apiserver.yaml\"]"},{"line_number":274,"context_line":"            _ \u003d _exec_cmd(cmd)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    post_tasks.append(_post_task_update_advertise_address)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3413f7c9_ab792c5f","line":274,"range":{"start_line":256,"start_character":0,"end_line":274,"end_character":30},"updated":"2022-03-07 20:54:53.000000000","message":"This code needs a comment explaining what it\u0027s doing and why it\u0027s necessary.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":253,"context_line":"    LOG.debug(\u0027Running mandatory tasks before update proccess start.\u0027)"},{"line_number":254,"context_line":"    with open(KUBE_APISERVER_CONFIG) as f:"},{"line_number":255,"context_line":"        lines \u003d f.read()"},{"line_number":256,"context_line":"    m \u003d re.search(REGEXPR_ADVERTISE_ADDRESS, lines)"},{"line_number":257,"context_line":"    if m:"},{"line_number":258,"context_line":"        advertise_address \u003d m.group(1)"},{"line_number":259,"context_line":"        LOG.debug(\u0027advertise_address \u003d %s\u0027, advertise_address)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    def _post_task_update_advertise_address():"},{"line_number":262,"context_line":"        default_network_interface \u003d None"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        with open(KUBE_APISERVER_CONFIG) as f:"},{"line_number":265,"context_line":"            lines \u003d f.read()"},{"line_number":266,"context_line":"        m \u003d re.search(REGEXPR_ADVERTISE_ADDRESS, lines)"},{"line_number":267,"context_line":"        if m:"},{"line_number":268,"context_line":"            default_network_interface \u003d m.group(1)"},{"line_number":269,"context_line":"            LOG.debug(\u0027default_network_interface \u003d %s\u0027, default_network_interface)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        if advertise_address and default_network_interface:"},{"line_number":272,"context_line":"            cmd \u003d [\"sed\", \"-i\", \"s/{}/{}/g\".format(default_network_interface, advertise_address),"},{"line_number":273,"context_line":"                   \"/etc/kubernetes/manifests/kube-apiserver.yaml\"]"},{"line_number":274,"context_line":"            _ \u003d _exec_cmd(cmd)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    post_tasks.append(_post_task_update_advertise_address)"},{"line_number":277,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"801fe2f8_a3fa7e40","line":274,"range":{"start_line":256,"start_character":0,"end_line":274,"end_character":30},"in_reply_to":"3413f7c9_ab792c5f","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":290,"context_line":"def kube_apiserver_backup_and_restore(configmap_bak_file, cluster_config_bak_file,"},{"line_number":291,"context_line":"                                      configmap_patched_file,"},{"line_number":292,"context_line":"                                      configmap_latest_file\u003d\u0027/tmp/cluster_configmap_latest.yaml\u0027,"},{"line_number":293,"context_line":"                                      tries\u003d20, try_sleep\u003d5, timeout\u003d5):"},{"line_number":294,"context_line":"    \"\"\"The funtion check kube-apiserver health status:"},{"line_number":295,"context_line":"    * Case healthy: the current configmap and cluster config is backed up."},{"line_number":296,"context_line":"    * Case not healthy: the kube-apiserver is restored using the last backed up"}],"source_content_type":"text/x-python","patch_set":19,"id":"13f377a5_d3e312ea","line":293,"range":{"start_line":293,"start_character":38,"end_line":293,"end_character":70},"updated":"2022-03-07 22:32:21.000000000","message":"this can potentially wait 500 seconds.  Have we tested what would happen if the puppet code was delayed for that long?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":290,"context_line":"def kube_apiserver_backup_and_restore(configmap_bak_file, cluster_config_bak_file,"},{"line_number":291,"context_line":"                                      configmap_patched_file,"},{"line_number":292,"context_line":"                                      configmap_latest_file\u003d\u0027/tmp/cluster_configmap_latest.yaml\u0027,"},{"line_number":293,"context_line":"                                      tries\u003d20, try_sleep\u003d5, timeout\u003d5):"},{"line_number":294,"context_line":"    \"\"\"The funtion check kube-apiserver health status:"},{"line_number":295,"context_line":"    * Case healthy: the current configmap and cluster config is backed up."},{"line_number":296,"context_line":"    * Case not healthy: the kube-apiserver is restored using the last backed up"}],"source_content_type":"text/x-python","patch_set":19,"id":"9795f68e_df3cabd2","line":293,"range":{"start_line":293,"start_character":38,"end_line":293,"end_character":70},"in_reply_to":"13f377a5_d3e312ea","updated":"2022-03-11 14:31:31.000000000","message":"it shouldn\u0027t reach 500 seconds, the timeout stops the curl request. When the kube-apiserver is down the endpoint is down and curl will get error connection instead of wait until reach timeout.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":305,"context_line":"    # Initialize Backup Directory"},{"line_number":306,"context_line":"    configmap_bak_path \u003d os.path.dirname(configmap_bak_file)"},{"line_number":307,"context_line":"    if not os.path.isdir(configmap_bak_path):"},{"line_number":308,"context_line":"        os.makedirs(configmap_bak_path)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    # Wait for kube-apiserver to be up before executing next steps"},{"line_number":311,"context_line":"    LOG.debug(\u0027Waiting for kube-apiserver be online.\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"28e14bb5_dea743c8","line":308,"range":{"start_line":308,"start_character":8,"end_line":308,"end_character":39},"updated":"2022-03-07 22:32:21.000000000","message":"do we need to set permissions and ownership here?  Also, if we\u0027re doing this here why do we do it in the puppet code?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":305,"context_line":"    # Initialize Backup Directory"},{"line_number":306,"context_line":"    configmap_bak_path \u003d os.path.dirname(configmap_bak_file)"},{"line_number":307,"context_line":"    if not os.path.isdir(configmap_bak_path):"},{"line_number":308,"context_line":"        os.makedirs(configmap_bak_path)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    # Wait for kube-apiserver to be up before executing next steps"},{"line_number":311,"context_line":"    LOG.debug(\u0027Waiting for kube-apiserver be online.\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"ef532fe6_c327e076","line":308,"range":{"start_line":308,"start_character":8,"end_line":308,"end_character":39},"in_reply_to":"28e14bb5_dea743c8","updated":"2022-03-11 14:31:31.000000000","message":"removed due to puppet creates and sets its permissions.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":323,"context_line":"    # Backup running k8s configmap and cluster configuration"},{"line_number":324,"context_line":"    # -------------------------------------------------------------------------"},{"line_number":325,"context_line":"    if k8s_apiserver_healthy:"},{"line_number":326,"context_line":"        msg \u003d \u0027kube-apiserver is healty: initializing configmap backup.\u0027"},{"line_number":327,"context_line":"        LOG.debug(msg)"},{"line_number":328,"context_line":"        export_k8s_apiserver_configmap(configmap_bak_file)"},{"line_number":329,"context_line":"        export_k8s_cluster_configuration(cluster_config_bak_file)"}],"source_content_type":"text/x-python","patch_set":19,"id":"4b2448a9_957abfd0","line":326,"range":{"start_line":326,"start_character":33,"end_line":326,"end_character":39},"updated":"2022-03-07 22:32:21.000000000","message":"healthy","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":323,"context_line":"    # Backup running k8s configmap and cluster configuration"},{"line_number":324,"context_line":"    # -------------------------------------------------------------------------"},{"line_number":325,"context_line":"    if k8s_apiserver_healthy:"},{"line_number":326,"context_line":"        msg \u003d \u0027kube-apiserver is healty: initializing configmap backup.\u0027"},{"line_number":327,"context_line":"        LOG.debug(msg)"},{"line_number":328,"context_line":"        export_k8s_apiserver_configmap(configmap_bak_file)"},{"line_number":329,"context_line":"        export_k8s_cluster_configuration(cluster_config_bak_file)"}],"source_content_type":"text/x-python","patch_set":19,"id":"328abd4f_88877692","line":326,"range":{"start_line":326,"start_character":33,"end_line":326,"end_character":39},"in_reply_to":"4b2448a9_957abfd0","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":329,"context_line":"        export_k8s_cluster_configuration(cluster_config_bak_file)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"    # -------------------------------------------------------------------------"},{"line_number":332,"context_line":"    # Restore kube-apiserver with backup configuration"},{"line_number":333,"context_line":"    # -------------------------------------------------------------------------"},{"line_number":334,"context_line":"    else:"},{"line_number":335,"context_line":"        rc \u003d 1"}],"source_content_type":"text/x-python","patch_set":19,"id":"b3e1db75_3258d8f0","line":332,"range":{"start_line":332,"start_character":6,"end_line":332,"end_character":54},"updated":"2022-03-07 22:32:21.000000000","message":"it looks like we only call this after waiting for at least 100 seconds.  Have we verified that this delay is acceptable?  Is there no faster way to determine that there\u0027s a problem?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"37e92f91eed6adccf556900555c34f3d81e338b3","unresolved":false,"context_lines":[{"line_number":329,"context_line":"        export_k8s_cluster_configuration(cluster_config_bak_file)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"    # -------------------------------------------------------------------------"},{"line_number":332,"context_line":"    # Restore kube-apiserver with backup configuration"},{"line_number":333,"context_line":"    # -------------------------------------------------------------------------"},{"line_number":334,"context_line":"    else:"},{"line_number":335,"context_line":"        rc \u003d 1"}],"source_content_type":"text/x-python","patch_set":19,"id":"aca0e242_b24b9576","line":332,"range":{"start_line":332,"start_character":6,"end_line":332,"end_character":54},"in_reply_to":"b3e1db75_3258d8f0","updated":"2022-03-21 15:13:39.000000000","message":"We use the almost same amount of time used by wait_for_kube_api_server in puppet.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":333,"context_line":"    # -------------------------------------------------------------------------"},{"line_number":334,"context_line":"    else:"},{"line_number":335,"context_line":"        rc \u003d 1"},{"line_number":336,"context_line":"        LOG.debug(\u0027kube-apiserver is not respondig, intializing restore.\u0027)"},{"line_number":337,"context_line":"        # ---------------------------------------"},{"line_number":338,"context_line":"        # Restore kube-apiserver"},{"line_number":339,"context_line":"        # ---------------------------------------"}],"source_content_type":"text/x-python","patch_set":19,"id":"e18fa79a_9634038b","line":336,"range":{"start_line":336,"start_character":41,"end_line":336,"end_character":50},"updated":"2022-03-07 22:32:21.000000000","message":"responding","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":333,"context_line":"    # -------------------------------------------------------------------------"},{"line_number":334,"context_line":"    else:"},{"line_number":335,"context_line":"        rc \u003d 1"},{"line_number":336,"context_line":"        LOG.debug(\u0027kube-apiserver is not respondig, intializing restore.\u0027)"},{"line_number":337,"context_line":"        # ---------------------------------------"},{"line_number":338,"context_line":"        # Restore kube-apiserver"},{"line_number":339,"context_line":"        # ---------------------------------------"}],"source_content_type":"text/x-python","patch_set":19,"id":"cd8e06ad_845facd3","line":336,"range":{"start_line":336,"start_character":41,"end_line":336,"end_character":50},"in_reply_to":"e18fa79a_9634038b","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":337,"context_line":"        # ---------------------------------------"},{"line_number":338,"context_line":"        # Restore kube-apiserver"},{"line_number":339,"context_line":"        # ---------------------------------------"},{"line_number":340,"context_line":"        # First we need to restore apiserver with saved cluster_confifuration"},{"line_number":341,"context_line":"        update_k8s_control_plane_components(cluster_config_bak_file)"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        # Wait for kube-apiserver to be up before executing next steps"}],"source_content_type":"text/x-python","patch_set":19,"id":"f708c78c_9eee63cf","line":340,"range":{"start_line":340,"start_character":64,"end_line":340,"end_character":77},"updated":"2022-03-07 22:32:21.000000000","message":"configuration","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        # ---------------------------------------"},{"line_number":338,"context_line":"        # Restore kube-apiserver"},{"line_number":339,"context_line":"        # ---------------------------------------"},{"line_number":340,"context_line":"        # First we need to restore apiserver with saved cluster_confifuration"},{"line_number":341,"context_line":"        update_k8s_control_plane_components(cluster_config_bak_file)"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        # Wait for kube-apiserver to be up before executing next steps"}],"source_content_type":"text/x-python","patch_set":19,"id":"eac43162_5896f047","line":340,"range":{"start_line":340,"start_character":64,"end_line":340,"end_character":77},"in_reply_to":"f708c78c_9eee63cf","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":354,"context_line":"        if not k8s_apiserver_healthy:"},{"line_number":355,"context_line":"            msg \u003d \u0027Failed while trying to recover kube-apiserver\u0027"},{"line_number":356,"context_line":"            LOG.error(msg)"},{"line_number":357,"context_line":"            raise ValueError(msg)"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Patch configmap to keep it consistent with the last config applied."},{"line_number":360,"context_line":"        LOG.debug(\u0027kube-apiserver is healty: initializing configmap patching.\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"b54cdefe_41669920","line":357,"range":{"start_line":357,"start_character":18,"end_line":357,"end_character":28},"updated":"2022-03-07 22:32:21.000000000","message":"this seems like an odd choice for an exception class","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":354,"context_line":"        if not k8s_apiserver_healthy:"},{"line_number":355,"context_line":"            msg \u003d \u0027Failed while trying to recover kube-apiserver\u0027"},{"line_number":356,"context_line":"            LOG.error(msg)"},{"line_number":357,"context_line":"            raise ValueError(msg)"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Patch configmap to keep it consistent with the last config applied."},{"line_number":360,"context_line":"        LOG.debug(\u0027kube-apiserver is healty: initializing configmap patching.\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"5ca9cd6e_d4259ade","line":357,"range":{"start_line":357,"start_character":18,"end_line":357,"end_character":28},"in_reply_to":"b54cdefe_41669920","updated":"2022-03-11 14:31:31.000000000","message":"I removed it.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":357,"context_line":"            raise ValueError(msg)"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Patch configmap to keep it consistent with the last config applied."},{"line_number":360,"context_line":"        LOG.debug(\u0027kube-apiserver is healty: initializing configmap patching.\u0027)"},{"line_number":361,"context_line":"        export_k8s_apiserver_configmap(configmap_latest_file)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        merge_configmap_files(configmap_latest_file, configmap_bak_file,"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f2fd943_e87d2c15","line":360,"range":{"start_line":360,"start_character":37,"end_line":360,"end_character":43},"updated":"2022-03-07 22:32:21.000000000","message":"healthy","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":357,"context_line":"            raise ValueError(msg)"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        # Patch configmap to keep it consistent with the last config applied."},{"line_number":360,"context_line":"        LOG.debug(\u0027kube-apiserver is healty: initializing configmap patching.\u0027)"},{"line_number":361,"context_line":"        export_k8s_apiserver_configmap(configmap_latest_file)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        merge_configmap_files(configmap_latest_file, configmap_bak_file,"}],"source_content_type":"text/x-python","patch_set":19,"id":"e11a605c_7126b7fc","line":360,"range":{"start_line":360,"start_character":37,"end_line":360,"end_character":43},"in_reply_to":"3f2fd943_e87d2c15","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":363,"context_line":"        merge_configmap_files(configmap_latest_file, configmap_bak_file,"},{"line_number":364,"context_line":"                              configmap_patched_file)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"        patch_k8s_apiserver_configmap(configmap_patched_file)"},{"line_number":367,"context_line":"    return rc"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"5c032c2b_1530c8dc","line":366,"updated":"2022-03-07 22:32:21.000000000","message":"we already called this in the main() routine, why are we doing it again here?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":363,"context_line":"        merge_configmap_files(configmap_latest_file, configmap_bak_file,"},{"line_number":364,"context_line":"                              configmap_patched_file)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"        patch_k8s_apiserver_configmap(configmap_patched_file)"},{"line_number":367,"context_line":"    return rc"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"5bc3216c_ace29441","line":366,"in_reply_to":"5c032c2b_1530c8dc","updated":"2022-03-11 14:31:31.000000000","message":"it\u0027s needed when backup is triggered due to at this point configMap contains an invalid configuration.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":464,"context_line":"    try:"},{"line_number":465,"context_line":"        export_k8s_apiserver_configmap(configmap_file)"},{"line_number":466,"context_line":"    except K8sKubectlException:"},{"line_number":467,"context_line":"        LOG.debug(\"k8s is not running, copy configmap backup file\")"},{"line_number":468,"context_line":"        cmd \u003d [\"cp\", configmap_bak_file, configmap_file]"},{"line_number":469,"context_line":"        _ \u003d _exec_cmd(cmd)"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"06c42392_c608b85a","line":467,"range":{"start_line":467,"start_character":11,"end_line":467,"end_character":65},"updated":"2022-03-07 22:32:21.000000000","message":"are we guaranteed that there will always be a backup file?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"37e92f91eed6adccf556900555c34f3d81e338b3","unresolved":true,"context_lines":[{"line_number":464,"context_line":"    try:"},{"line_number":465,"context_line":"        export_k8s_apiserver_configmap(configmap_file)"},{"line_number":466,"context_line":"    except K8sKubectlException:"},{"line_number":467,"context_line":"        LOG.debug(\"k8s is not running, copy configmap backup file\")"},{"line_number":468,"context_line":"        cmd \u003d [\"cp\", configmap_bak_file, configmap_file]"},{"line_number":469,"context_line":"        _ \u003d _exec_cmd(cmd)"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"80b7475a_41655cc7","line":467,"range":{"start_line":467,"start_character":11,"end_line":467,"end_character":65},"in_reply_to":"06c42392_c608b85a","updated":"2022-03-21 15:13:39.000000000","message":"first time the script runs, if backup config does not exist script will create.\nThere is one scenario it may fail:\n- apiserver is down and there is no backup files created.\n\nBut since the configuration is applied via system service-paramameter-apply kubernetes the first time the script runs the kubernetes cluster will be in a good shape.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"01d2ae98cbdc0b9088f7ab7d7e17273ef7e4bbd4","unresolved":false,"context_lines":[{"line_number":464,"context_line":"    try:"},{"line_number":465,"context_line":"        export_k8s_apiserver_configmap(configmap_file)"},{"line_number":466,"context_line":"    except K8sKubectlException:"},{"line_number":467,"context_line":"        LOG.debug(\"k8s is not running, copy configmap backup file\")"},{"line_number":468,"context_line":"        cmd \u003d [\"cp\", configmap_bak_file, configmap_file]"},{"line_number":469,"context_line":"        _ \u003d _exec_cmd(cmd)"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"e0f0f6be_a3698bea","line":467,"range":{"start_line":467,"start_character":11,"end_line":467,"end_character":65},"in_reply_to":"80b7475a_41655cc7","updated":"2022-08-31 15:21:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":521,"context_line":"        if value in (\u0027false\u0027, \u0027False\u0027, \u00270\u0027, \u0027no\u0027, \u0027No\u0027):"},{"line_number":522,"context_line":"            automatic_recovery \u003d False"},{"line_number":523,"context_line":"        else:"},{"line_number":524,"context_line":"            automatic_recovery \u003d True"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    if \u0027timeout\u0027 in service_params[\u0027config\u0027].keys():"},{"line_number":527,"context_line":"        timeout \u003d int(service_params[\u0027config\u0027][\u0027timeout\u0027])"}],"source_content_type":"text/x-python","patch_set":19,"id":"e6b08730_8c6c7949","line":524,"range":{"start_line":524,"start_character":12,"end_line":524,"end_character":37},"updated":"2022-03-07 22:32:21.000000000","message":"The \"true\" case is a bit greedy.  Also, this doesn\u0027t handle capitalization well so FALSE would be treated as True.  The upstream strtobool looks like this:\n\ndef strtobool(val):\n    \"\"\"Convert a string representation of truth to true (1) or false (0).\n    True values are \u0027y\u0027, \u0027yes\u0027, \u0027t\u0027, \u0027true\u0027, \u0027on\u0027, and \u00271\u0027; false values\n    are \u0027n\u0027, \u0027no\u0027, \u0027f\u0027, \u0027false\u0027, \u0027off\u0027, and \u00270\u0027.  Raises ValueError if\n    \u0027val\u0027 is anything else.\n    \"\"\"\n    val \u003d val.lower()\n    if val in (\u0027y\u0027, \u0027yes\u0027, \u0027t\u0027, \u0027true\u0027, \u0027on\u0027, \u00271\u0027):\n        return 1\n    elif val in (\u0027n\u0027, \u0027no\u0027, \u0027f\u0027, \u0027false\u0027, \u0027off\u0027, \u00270\u0027):\n        return 0\n    else:\n        raise ValueError(\"invalid truth value %r\" % (val,))","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":521,"context_line":"        if value in (\u0027false\u0027, \u0027False\u0027, \u00270\u0027, \u0027no\u0027, \u0027No\u0027):"},{"line_number":522,"context_line":"            automatic_recovery \u003d False"},{"line_number":523,"context_line":"        else:"},{"line_number":524,"context_line":"            automatic_recovery \u003d True"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    if \u0027timeout\u0027 in service_params[\u0027config\u0027].keys():"},{"line_number":527,"context_line":"        timeout \u003d int(service_params[\u0027config\u0027][\u0027timeout\u0027])"}],"source_content_type":"text/x-python","patch_set":19,"id":"14af578a_9f2eaa0c","line":524,"range":{"start_line":524,"start_character":12,"end_line":524,"end_character":37},"in_reply_to":"e6b08730_8c6c7949","updated":"2022-03-11 14:31:31.000000000","message":"since this value is set by sysinv (system service-paremeter) and it has a boolean validation I will remove this block and replace by:\n...\nautomatic_recovery \u003d value \u003d\u003d \u0027true\u0027\n...","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":536,"context_line":"    # Update kube-apiserver section"},{"line_number":537,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":538,"context_line":"    for param_name, param_value in service_params[\u0027apiserver\u0027].items():"},{"line_number":539,"context_line":"        # by default all not known params will be place in extraArgs"},{"line_number":540,"context_line":"        if param_name in apiserver_schema[\u0027root\u0027].keys():"},{"line_number":541,"context_line":"            param_name \u003d\\"},{"line_number":542,"context_line":"                apiserver_schema[\u0027root\u0027].get(param_name, param_name)"}],"source_content_type":"text/x-python","patch_set":19,"id":"ee61688a_543a2efa","line":539,"range":{"start_line":539,"start_character":50,"end_line":539,"end_character":56},"updated":"2022-03-07 22:32:21.000000000","message":"placed","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":536,"context_line":"    # Update kube-apiserver section"},{"line_number":537,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":538,"context_line":"    for param_name, param_value in service_params[\u0027apiserver\u0027].items():"},{"line_number":539,"context_line":"        # by default all not known params will be place in extraArgs"},{"line_number":540,"context_line":"        if param_name in apiserver_schema[\u0027root\u0027].keys():"},{"line_number":541,"context_line":"            param_name \u003d\\"},{"line_number":542,"context_line":"                apiserver_schema[\u0027root\u0027].get(param_name, param_name)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9e107e84_8c0ee4a5","line":539,"range":{"start_line":539,"start_character":50,"end_line":539,"end_character":56},"in_reply_to":"ee61688a_543a2efa","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":580,"context_line":"    # Update scheduler section in task 44585"},{"line_number":581,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":582,"context_line":"    for param_name, param_value in service_params[\u0027scheduler\u0027].items():"},{"line_number":583,"context_line":"        # by default all not known params will be place in root"},{"line_number":584,"context_line":"        if param_name in scheduler_schema[\u0027root\u0027].keys():"},{"line_number":585,"context_line":"            cluster_cfg[\u0027scheduler\u0027][param_name] \u003d param_value"},{"line_number":586,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"d8c20bca_327eb15f","line":583,"range":{"start_line":583,"start_character":8,"end_line":583,"end_character":63},"updated":"2022-03-07 22:32:21.000000000","message":"I don\u0027t see an \"else\" clause for unknown params.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":580,"context_line":"    # Update scheduler section in task 44585"},{"line_number":581,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":582,"context_line":"    for param_name, param_value in service_params[\u0027scheduler\u0027].items():"},{"line_number":583,"context_line":"        # by default all not known params will be place in root"},{"line_number":584,"context_line":"        if param_name in scheduler_schema[\u0027root\u0027].keys():"},{"line_number":585,"context_line":"            cluster_cfg[\u0027scheduler\u0027][param_name] \u003d param_value"},{"line_number":586,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"c640d5a4_046b300d","line":583,"range":{"start_line":583,"start_character":8,"end_line":583,"end_character":63},"in_reply_to":"d8c20bca_327eb15f","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":592,"context_line":"            param_name \u003d etcd_schema[\u0027root\u0027].get(param_name, param_name)"},{"line_number":593,"context_line":"            cluster_cfg[\u0027etcd\u0027][param_name] \u003d param_value"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"        # by default all not known params will be place in \u0027section\u0027 external"},{"line_number":596,"context_line":"        else:"},{"line_number":597,"context_line":"            # params saved like list (param_value should be separated by comma)"},{"line_number":598,"context_line":"            if param_name in [\u0027etcd_servers\u0027]:"}],"source_content_type":"text/x-python","patch_set":19,"id":"317cb6ae_663a4822","line":595,"range":{"start_line":595,"start_character":59,"end_line":595,"end_character":77},"updated":"2022-03-07 22:32:21.000000000","message":"should the quotes be around external instead?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":592,"context_line":"            param_name \u003d etcd_schema[\u0027root\u0027].get(param_name, param_name)"},{"line_number":593,"context_line":"            cluster_cfg[\u0027etcd\u0027][param_name] \u003d param_value"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":"        # by default all not known params will be place in \u0027section\u0027 external"},{"line_number":596,"context_line":"        else:"},{"line_number":597,"context_line":"            # params saved like list (param_value should be separated by comma)"},{"line_number":598,"context_line":"            if param_name in [\u0027etcd_servers\u0027]:"}],"source_content_type":"text/x-python","patch_set":19,"id":"64437415_add2c9b7","line":595,"range":{"start_line":595,"start_character":59,"end_line":595,"end_character":77},"in_reply_to":"317cb6ae_663a4822","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":605,"context_line":"                cluster_cfg[\u0027etcd\u0027][\u0027external\u0027][param_name] \u003d param_value"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":608,"context_line":"    # Update kubelet section in task 44586"},{"line_number":609,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":610,"context_line":"    for param_name, param_value in service_params[\u0027kubelet\u0027].items():"},{"line_number":611,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":19,"id":"a33422a8_8b3f9e55","line":608,"range":{"start_line":608,"start_character":6,"end_line":608,"end_character":12},"updated":"2022-03-07 22:32:21.000000000","message":"maybe \"Will update....\" ?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":605,"context_line":"                cluster_cfg[\u0027etcd\u0027][\u0027external\u0027][param_name] \u003d param_value"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":608,"context_line":"    # Update kubelet section in task 44586"},{"line_number":609,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":610,"context_line":"    for param_name, param_value in service_params[\u0027kubelet\u0027].items():"},{"line_number":611,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":19,"id":"92e280f6_606ac754","line":608,"range":{"start_line":608,"start_character":6,"end_line":608,"end_character":12},"in_reply_to":"a33422a8_8b3f9e55","updated":"2022-03-11 14:31:31.000000000","message":"Ack","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":618,"context_line":"        cluster_cfg, Dumper\u003dyaml.RoundTripDumper, default_flow_style\u003dFalse)"},{"line_number":619,"context_line":"    # use yaml.scalarstring.PreservedScalarString to make sure the yaml is"},{"line_number":620,"context_line":"    # constructed with proper formatting and tabbing"},{"line_number":621,"context_line":"    cluster_cfg_string \u003d yaml.scalarstring.PreservedScalarString("},{"line_number":622,"context_line":"        cluster_cfg_string)"},{"line_number":623,"context_line":"    configmap[\u0027data\u0027][\u0027ClusterConfiguration\u0027] \u003d cluster_cfg_string"},{"line_number":624,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"80223567_da68e7a0","line":621,"range":{"start_line":621,"start_character":43,"end_line":621,"end_character":64},"updated":"2022-03-07 22:32:21.000000000","message":"I think it\u0027s \u0027LiteralScalarString\u0027 now, per https://github.com/rickardcronholm/ruanmel-yaml/blob/master/scalarstring.py#L60","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":618,"context_line":"        cluster_cfg, Dumper\u003dyaml.RoundTripDumper, default_flow_style\u003dFalse)"},{"line_number":619,"context_line":"    # use yaml.scalarstring.PreservedScalarString to make sure the yaml is"},{"line_number":620,"context_line":"    # constructed with proper formatting and tabbing"},{"line_number":621,"context_line":"    cluster_cfg_string \u003d yaml.scalarstring.PreservedScalarString("},{"line_number":622,"context_line":"        cluster_cfg_string)"},{"line_number":623,"context_line":"    configmap[\u0027data\u0027][\u0027ClusterConfiguration\u0027] \u003d cluster_cfg_string"},{"line_number":624,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"d444dcfb_8a43ac99","line":621,"range":{"start_line":621,"start_character":43,"end_line":621,"end_character":64},"in_reply_to":"80223567_da68e7a0","updated":"2022-03-11 14:31:31.000000000","message":"I checked the current ruanmel.yaml version and it does not support LiteralScalarString.\nIt seems that current version is an old version.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":641,"context_line":"    # Export the cluster configuration with the new changes that will be used to"},{"line_number":642,"context_line":"    # update the control plane components."},{"line_number":643,"context_line":"    try:"},{"line_number":644,"context_line":"        export_k8s_cluster_configuration(cluster_config_file)"},{"line_number":645,"context_line":"    except K8sKubectlException:"},{"line_number":646,"context_line":"        with open(cluster_config_file, \u0027w\u0027) as f:"},{"line_number":647,"context_line":"            f.write(cluster_cfg_string)"}],"source_content_type":"text/x-python","patch_set":19,"id":"22f1df13_7f77ba4f","line":644,"range":{"start_line":644,"start_character":8,"end_line":644,"end_character":40},"updated":"2022-03-07 22:32:21.000000000","message":"why do we still call this if the k8s health check didn\u0027t pass?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"37e92f91eed6adccf556900555c34f3d81e338b3","unresolved":false,"context_lines":[{"line_number":641,"context_line":"    # Export the cluster configuration with the new changes that will be used to"},{"line_number":642,"context_line":"    # update the control plane components."},{"line_number":643,"context_line":"    try:"},{"line_number":644,"context_line":"        export_k8s_cluster_configuration(cluster_config_file)"},{"line_number":645,"context_line":"    except K8sKubectlException:"},{"line_number":646,"context_line":"        with open(cluster_config_file, \u0027w\u0027) as f:"},{"line_number":647,"context_line":"            f.write(cluster_cfg_string)"}],"source_content_type":"text/x-python","patch_set":19,"id":"fa3ece02_2523591e","line":644,"range":{"start_line":644,"start_character":8,"end_line":644,"end_character":40},"in_reply_to":"22f1df13_7f77ba4f","updated":"2022-03-21 15:13:39.000000000","message":"disregard this code, I have refactored it in patch 22.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":642,"context_line":"    # update the control plane components."},{"line_number":643,"context_line":"    try:"},{"line_number":644,"context_line":"        export_k8s_cluster_configuration(cluster_config_file)"},{"line_number":645,"context_line":"    except K8sKubectlException:"},{"line_number":646,"context_line":"        with open(cluster_config_file, \u0027w\u0027) as f:"},{"line_number":647,"context_line":"            f.write(cluster_cfg_string)"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    # Update control plane components"},{"line_number":650,"context_line":"    update_k8s_control_plane_components(cluster_config_file)"}],"source_content_type":"text/x-python","patch_set":19,"id":"ccc9bf94_750ee9f3","line":647,"range":{"start_line":645,"start_character":0,"end_line":647,"end_character":39},"updated":"2022-03-07 22:32:21.000000000","message":"are we sure we want to do this unconditionally?  If we can\u0027t successfully run kubectl, are we sure that there is a valid backup file?  What happens if cluster_cfg_string is not valid?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"80fb9e08b26256fc497df3722d93d128489b4274","unresolved":false,"context_lines":[{"line_number":642,"context_line":"    # update the control plane components."},{"line_number":643,"context_line":"    try:"},{"line_number":644,"context_line":"        export_k8s_cluster_configuration(cluster_config_file)"},{"line_number":645,"context_line":"    except K8sKubectlException:"},{"line_number":646,"context_line":"        with open(cluster_config_file, \u0027w\u0027) as f:"},{"line_number":647,"context_line":"            f.write(cluster_cfg_string)"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    # Update control plane components"},{"line_number":650,"context_line":"    update_k8s_control_plane_components(cluster_config_file)"}],"source_content_type":"text/x-python","patch_set":19,"id":"7030b075_2b2916dd","line":647,"range":{"start_line":645,"start_character":0,"end_line":647,"end_character":39},"in_reply_to":"ccc9bf94_750ee9f3","updated":"2022-08-31 15:33:47.000000000","message":"The first time this scrip is executed, a backup copy is made, so if the system bootstraps without issues, we can be sure the copy is valid. The backup file is updated each time the update process is completed successfully and all components of the k8s control-plane are healthy.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"e8bfde2976e6a4bab7fa151d9d2e1f6c505e9088","unresolved":true,"context_lines":[{"line_number":652,"context_line":"    # Run mandatory tasks after the update proccess has finished"},{"line_number":653,"context_line":"    post_k8s_updating_tasks(post_k8s_tasks)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"    # Check kube-apiserver health, then backup or restore"},{"line_number":656,"context_line":"    rc \u003d 0"},{"line_number":657,"context_line":"    if automatic_recovery:"},{"line_number":658,"context_line":"        rc \u003d kube_apiserver_backup_and_restore(configmap_bak_file,"}],"source_content_type":"text/x-python","patch_set":19,"id":"bf0f3b77_abf3f19f","line":655,"range":{"start_line":655,"start_character":47,"end_line":655,"end_character":49},"updated":"2022-03-07 22:32:21.000000000","message":"is it \"backup or restore\", or is it \"backup and restore\" like the function is named?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"aded235403a349d96c34c739961f9194eb7cefe1","unresolved":false,"context_lines":[{"line_number":652,"context_line":"    # Run mandatory tasks after the update proccess has finished"},{"line_number":653,"context_line":"    post_k8s_updating_tasks(post_k8s_tasks)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"    # Check kube-apiserver health, then backup or restore"},{"line_number":656,"context_line":"    rc \u003d 0"},{"line_number":657,"context_line":"    if automatic_recovery:"},{"line_number":658,"context_line":"        rc \u003d kube_apiserver_backup_and_restore(configmap_bak_file,"}],"source_content_type":"text/x-python","patch_set":19,"id":"54586d37_3e2d0cb1","line":655,"range":{"start_line":655,"start_character":47,"end_line":655,"end_character":49},"in_reply_to":"bf0f3b77_abf3f19f","updated":"2022-03-11 14:31:31.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"576cf23d34682d19603d338743680e004d23c479","unresolved":true,"context_lines":[{"line_number":44,"context_line":"#   timeout: \u003cseconds\u003e"},{"line_number":45,"context_line":"#   tries: \u003cnumber\u003e"},{"line_number":46,"context_line":"#   try_sleep: \u003cseconds\u003e"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"import argparse"},{"line_number":49,"context_line":"import logging"},{"line_number":50,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":24,"id":"d6d2bed0_248c0d31","line":47,"updated":"2022-04-12 00:40:36.000000000","message":"need to document the return values and what they mean.","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"01d2ae98cbdc0b9088f7ab7d7e17273ef7e4bbd4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"#   timeout: \u003cseconds\u003e"},{"line_number":45,"context_line":"#   tries: \u003cnumber\u003e"},{"line_number":46,"context_line":"#   try_sleep: \u003cseconds\u003e"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"import argparse"},{"line_number":49,"context_line":"import logging"},{"line_number":50,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":24,"id":"9c19e7fa_920cfcbd","line":47,"in_reply_to":"d6d2bed0_248c0d31","updated":"2022-08-31 15:21:53.000000000","message":"Done","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"576cf23d34682d19603d338743680e004d23c479","unresolved":true,"context_lines":[{"line_number":726,"context_line":"        timeout\u003dtimeout, try_sleep\u003dtry_sleep, tries\u003dtries,"},{"line_number":727,"context_line":"        healthz_endpoint\u003dKUBELET_HEALTHZ_ENDPOINT)"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"    # Check kubelet health, then backup and restore"},{"line_number":730,"context_line":"    rc \u003d 0"},{"line_number":731,"context_line":"    if automatic_recovery:"},{"line_number":732,"context_line":"        if not is_k8s_component_healthy:"}],"source_content_type":"text/x-python","patch_set":24,"id":"6e02c6cd_72fad8e1","line":729,"range":{"start_line":729,"start_character":28,"end_line":729,"end_character":51},"updated":"2022-04-12 00:40:36.000000000","message":"maybe \"then restore if needed\"?","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"01d2ae98cbdc0b9088f7ab7d7e17273ef7e4bbd4","unresolved":false,"context_lines":[{"line_number":726,"context_line":"        timeout\u003dtimeout, try_sleep\u003dtry_sleep, tries\u003dtries,"},{"line_number":727,"context_line":"        healthz_endpoint\u003dKUBELET_HEALTHZ_ENDPOINT)"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"    # Check kubelet health, then backup and restore"},{"line_number":730,"context_line":"    rc \u003d 0"},{"line_number":731,"context_line":"    if automatic_recovery:"},{"line_number":732,"context_line":"        if not is_k8s_component_healthy:"}],"source_content_type":"text/x-python","patch_set":24,"id":"9f36d2d7_9d070e99","line":729,"range":{"start_line":729,"start_character":28,"end_line":729,"end_character":51},"in_reply_to":"6e02c6cd_72fad8e1","updated":"2022-08-31 15:21:53.000000000","message":"Done","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"576cf23d34682d19603d338743680e004d23c479","unresolved":true,"context_lines":[{"line_number":729,"context_line":"    # Check kubelet health, then backup and restore"},{"line_number":730,"context_line":"    rc \u003d 0"},{"line_number":731,"context_line":"    if automatic_recovery:"},{"line_number":732,"context_line":"        if not is_k8s_component_healthy:"},{"line_number":733,"context_line":"            LOG.debug(\u0027kubelet is not responding, intializing restore.\u0027)"},{"line_number":734,"context_line":"            rc \u003d 1"},{"line_number":735,"context_line":"            restore_rc \u003d kube_restore_configuration("},{"line_number":736,"context_line":"                configmap_bak_file, cluster_config_bak_file, configmap_patched_file,"},{"line_number":737,"context_line":"                tries\u003dtries, try_sleep\u003dtry_sleep, timeout\u003dtimeout)"},{"line_number":738,"context_line":"            if restore_rc !\u003d 0:"},{"line_number":739,"context_line":"                LOG.error(\"kubelet has failed to start using backup configuration.\")"},{"line_number":740,"context_line":"                rc \u003d 2"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":743,"context_line":"    # if k8s is up and running make a backup"}],"source_content_type":"text/x-python","patch_set":24,"id":"ba873ba9_74a59db9","line":740,"range":{"start_line":732,"start_character":0,"end_line":740,"end_character":22},"updated":"2022-04-12 00:40:36.000000000","message":"if we hit this code path, maybe we should exit early rather than exporting the configmap and cluster configuration again?","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"01d2ae98cbdc0b9088f7ab7d7e17273ef7e4bbd4","unresolved":false,"context_lines":[{"line_number":729,"context_line":"    # Check kubelet health, then backup and restore"},{"line_number":730,"context_line":"    rc \u003d 0"},{"line_number":731,"context_line":"    if automatic_recovery:"},{"line_number":732,"context_line":"        if not is_k8s_component_healthy:"},{"line_number":733,"context_line":"            LOG.debug(\u0027kubelet is not responding, intializing restore.\u0027)"},{"line_number":734,"context_line":"            rc \u003d 1"},{"line_number":735,"context_line":"            restore_rc \u003d kube_restore_configuration("},{"line_number":736,"context_line":"                configmap_bak_file, cluster_config_bak_file, configmap_patched_file,"},{"line_number":737,"context_line":"                tries\u003dtries, try_sleep\u003dtry_sleep, timeout\u003dtimeout)"},{"line_number":738,"context_line":"            if restore_rc !\u003d 0:"},{"line_number":739,"context_line":"                LOG.error(\"kubelet has failed to start using backup configuration.\")"},{"line_number":740,"context_line":"                rc \u003d 2"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":743,"context_line":"    # if k8s is up and running make a backup"}],"source_content_type":"text/x-python","patch_set":24,"id":"e72622fa_3af77ff9","line":740,"range":{"start_line":732,"start_character":0,"end_line":740,"end_character":22},"in_reply_to":"ba873ba9_74a59db9","updated":"2022-08-31 15:21:53.000000000","message":"code changed","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"576cf23d34682d19603d338743680e004d23c479","unresolved":true,"context_lines":[{"line_number":747,"context_line":"        export_k8s_configmap(configmap_bak_file)"},{"line_number":748,"context_line":"        export_k8s_cluster_configuration(cluster_config_bak_file)"},{"line_number":749,"context_line":"    else:"},{"line_number":750,"context_line":"        rc \u003d 1"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"    return rc"},{"line_number":753,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"6282090e_8c259585","line":750,"range":{"start_line":750,"start_character":8,"end_line":750,"end_character":14},"updated":"2022-04-12 00:40:36.000000000","message":"This ill override the return code set in line 740, is that what you want?","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"01d2ae98cbdc0b9088f7ab7d7e17273ef7e4bbd4","unresolved":false,"context_lines":[{"line_number":747,"context_line":"        export_k8s_configmap(configmap_bak_file)"},{"line_number":748,"context_line":"        export_k8s_cluster_configuration(cluster_config_bak_file)"},{"line_number":749,"context_line":"    else:"},{"line_number":750,"context_line":"        rc \u003d 1"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"    return rc"},{"line_number":753,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"ac21efc5_263c9eff","line":750,"range":{"start_line":750,"start_character":8,"end_line":750,"end_character":14},"in_reply_to":"6282090e_8c259585","updated":"2022-08-31 15:21:53.000000000","message":"code updated","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"de0137fc756c437c7c6532ca3c37d5abdd6337d9","unresolved":true,"context_lines":[{"line_number":46,"context_line":"KUBE_APISERVER_CONFIG \u003d \u0027/etc/kubernetes/manifests/kube-apiserver.yaml\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"REGEXPR_ADVERTISE_ADDRESS \u003d r\"advertise-address\u003d(.*)\\s\""},{"line_number":49,"context_line":"APISERVER_HEALTHZ_ENDPOINT \u003d \u0027https://localhost:6443/readyz\u0027"},{"line_number":50,"context_line":"SCHEDULER_HEALTHZ_ENDPOINT \u003d \"https://127.0.0.1:10259/healthz\""},{"line_number":51,"context_line":"CONTROLLER_MANAGER_HEALTHZ_ENDPOINT \u003d \"https://127.0.0.1:10257/healthz\""},{"line_number":52,"context_line":"KUBELET_HEALTHZ_ENDPOINT \u003d \"http://localhost:10248/healthz\""}],"source_content_type":"text/x-python","patch_set":26,"id":"19d10430_13b6de03","line":49,"range":{"start_line":49,"start_character":10,"end_line":49,"end_character":17},"updated":"2022-09-06 17:51:12.000000000","message":"this appears to be mapped to the \u0027readyz\u0027 endpoint as it appears kube api server supports healthz, livez and readyz ?","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"6f16be4dcccb2f00d66e43ac022c9d3ab970d136","unresolved":true,"context_lines":[{"line_number":46,"context_line":"KUBE_APISERVER_CONFIG \u003d \u0027/etc/kubernetes/manifests/kube-apiserver.yaml\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"REGEXPR_ADVERTISE_ADDRESS \u003d r\"advertise-address\u003d(.*)\\s\""},{"line_number":49,"context_line":"APISERVER_HEALTHZ_ENDPOINT \u003d \u0027https://localhost:6443/readyz\u0027"},{"line_number":50,"context_line":"SCHEDULER_HEALTHZ_ENDPOINT \u003d \"https://127.0.0.1:10259/healthz\""},{"line_number":51,"context_line":"CONTROLLER_MANAGER_HEALTHZ_ENDPOINT \u003d \"https://127.0.0.1:10257/healthz\""},{"line_number":52,"context_line":"KUBELET_HEALTHZ_ENDPOINT \u003d \"http://localhost:10248/healthz\""}],"source_content_type":"text/x-python","patch_set":26,"id":"4613d146_49bb5344","line":49,"range":{"start_line":49,"start_character":10,"end_line":49,"end_character":17},"in_reply_to":"19d10430_13b6de03","updated":"2022-09-06 18:47:29.000000000","message":"In this case, the readyz endpoint was selected because the kube_apiserver needs to be ready before doing all other operations: update kubelet, controller_manager, scheduler and kubeadm configmap.\nDo you prefer to change the name to APISERVER_READYZ_ENDPOINT?","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"8f7811677a2c74c693c4b68ca476d06274b01735","unresolved":true,"context_lines":[{"line_number":46,"context_line":"KUBE_APISERVER_CONFIG \u003d \u0027/etc/kubernetes/manifests/kube-apiserver.yaml\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"REGEXPR_ADVERTISE_ADDRESS \u003d r\"advertise-address\u003d(.*)\\s\""},{"line_number":49,"context_line":"APISERVER_HEALTHZ_ENDPOINT \u003d \u0027https://localhost:6443/readyz\u0027"},{"line_number":50,"context_line":"SCHEDULER_HEALTHZ_ENDPOINT \u003d \"https://127.0.0.1:10259/healthz\""},{"line_number":51,"context_line":"CONTROLLER_MANAGER_HEALTHZ_ENDPOINT \u003d \"https://127.0.0.1:10257/healthz\""},{"line_number":52,"context_line":"KUBELET_HEALTHZ_ENDPOINT \u003d \"http://localhost:10248/healthz\""}],"source_content_type":"text/x-python","patch_set":26,"id":"bf19e43f_14232f61","line":49,"range":{"start_line":49,"start_character":10,"end_line":49,"end_character":17},"in_reply_to":"4613d146_49bb5344","updated":"2022-09-07 18:28:15.000000000","message":"Yes, as that\u0027d be more aligned with the actual endpoint","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"42e95ce960844c254cbfdf97620d3c3bff9a2186","unresolved":false,"context_lines":[{"line_number":46,"context_line":"KUBE_APISERVER_CONFIG \u003d \u0027/etc/kubernetes/manifests/kube-apiserver.yaml\u0027"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"REGEXPR_ADVERTISE_ADDRESS \u003d r\"advertise-address\u003d(.*)\\s\""},{"line_number":49,"context_line":"APISERVER_HEALTHZ_ENDPOINT \u003d \u0027https://localhost:6443/readyz\u0027"},{"line_number":50,"context_line":"SCHEDULER_HEALTHZ_ENDPOINT \u003d \"https://127.0.0.1:10259/healthz\""},{"line_number":51,"context_line":"CONTROLLER_MANAGER_HEALTHZ_ENDPOINT \u003d \"https://127.0.0.1:10257/healthz\""},{"line_number":52,"context_line":"KUBELET_HEALTHZ_ENDPOINT \u003d \"http://localhost:10248/healthz\""}],"source_content_type":"text/x-python","patch_set":26,"id":"f88b27d8_0f77c9ce","line":49,"range":{"start_line":49,"start_character":10,"end_line":49,"end_character":17},"in_reply_to":"bf19e43f_14232f61","updated":"2022-09-08 18:41:33.000000000","message":"Done","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"de0137fc756c437c7c6532ca3c37d5abdd6337d9","unresolved":true,"context_lines":[{"line_number":304,"context_line":"        \u0027configmap_latest_file\u0027, \u0027/tmp/cluster_configmap_latest.yaml\u0027)"},{"line_number":305,"context_line":"    tries \u003d kwargs.get(\u0027tries\u0027, 20)"},{"line_number":306,"context_line":"    try_sleep \u003d kwargs.get(\u0027try_sleep\u0027, 5)"},{"line_number":307,"context_line":"    timeout \u003d kwargs.get(\u0027timeout\u0027, 5)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    # -------------------------------------------------------------------------"},{"line_number":310,"context_line":"    # Restore kube-apiserver with backup configuration"}],"source_content_type":"text/x-python","patch_set":26,"id":"c7d750d0_3dc6a7fe","line":307,"range":{"start_line":307,"start_character":36,"end_line":307,"end_character":37},"updated":"2022-09-06 17:51:12.000000000","message":"There are various timeouts in this code; recommend defined constants for the timeouts selected.","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"6f16be4dcccb2f00d66e43ac022c9d3ab970d136","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        \u0027configmap_latest_file\u0027, \u0027/tmp/cluster_configmap_latest.yaml\u0027)"},{"line_number":305,"context_line":"    tries \u003d kwargs.get(\u0027tries\u0027, 20)"},{"line_number":306,"context_line":"    try_sleep \u003d kwargs.get(\u0027try_sleep\u0027, 5)"},{"line_number":307,"context_line":"    timeout \u003d kwargs.get(\u0027timeout\u0027, 5)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    # -------------------------------------------------------------------------"},{"line_number":310,"context_line":"    # Restore kube-apiserver with backup configuration"}],"source_content_type":"text/x-python","patch_set":26,"id":"0cb1863e_dc2a7f8c","line":307,"range":{"start_line":307,"start_character":36,"end_line":307,"end_character":37},"in_reply_to":"c7d750d0_3dc6a7fe","updated":"2022-09-06 18:47:29.000000000","message":"Done","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"de0137fc756c437c7c6532ca3c37d5abdd6337d9","unresolved":true,"context_lines":[{"line_number":371,"context_line":""},{"line_number":372,"context_line":"def main():"},{"line_number":373,"context_line":"    \"\"\"This script updates the k8s control-plane components configuration"},{"line_number":374,"context_line":"    with the paramaters set by the user throught sysinv service-parameters."},{"line_number":375,"context_line":"    If a failure is detected during the update process a full restore is"},{"line_number":376,"context_line":"    applied using the latest valid configuration."},{"line_number":377,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"875551b0_5ce01e4a","line":374,"range":{"start_line":374,"start_character":40,"end_line":374,"end_character":49},"updated":"2022-09-06 17:51:12.000000000","message":"through","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"6f16be4dcccb2f00d66e43ac022c9d3ab970d136","unresolved":false,"context_lines":[{"line_number":371,"context_line":""},{"line_number":372,"context_line":"def main():"},{"line_number":373,"context_line":"    \"\"\"This script updates the k8s control-plane components configuration"},{"line_number":374,"context_line":"    with the paramaters set by the user throught sysinv service-parameters."},{"line_number":375,"context_line":"    If a failure is detected during the update process a full restore is"},{"line_number":376,"context_line":"    applied using the latest valid configuration."},{"line_number":377,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"fa1125a2_31899cc3","line":374,"range":{"start_line":374,"start_character":40,"end_line":374,"end_character":49},"in_reply_to":"875551b0_5ce01e4a","updated":"2022-09-06 18:47:29.000000000","message":"Done","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"de0137fc756c437c7c6532ca3c37d5abdd6337d9","unresolved":true,"context_lines":[{"line_number":405,"context_line":"    health. If something goes wrong and kube-apiserver go out of service a"},{"line_number":406,"context_line":"    recovery process is initiated to restore it. This function is activated"},{"line_number":407,"context_line":"    by default. The user also can set a flag to deactivate this recovery process"},{"line_number":408,"context_line":"    only for debugging purpose. Also is posible to set timeout, tries and"},{"line_number":409,"context_line":"    try_sleep of k8s health check."},{"line_number":410,"context_line":"    Those variables must be defined in the \u0027config\u0027 section of \u0027platform\u0027"},{"line_number":411,"context_line":"    service throught service-parameters:"}],"source_content_type":"text/x-python","patch_set":26,"id":"3cc2481e_623a9f5d","line":408,"range":{"start_line":408,"start_character":40,"end_line":408,"end_character":48},"updated":"2022-09-06 17:51:12.000000000","message":"possible","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"6f16be4dcccb2f00d66e43ac022c9d3ab970d136","unresolved":false,"context_lines":[{"line_number":405,"context_line":"    health. If something goes wrong and kube-apiserver go out of service a"},{"line_number":406,"context_line":"    recovery process is initiated to restore it. This function is activated"},{"line_number":407,"context_line":"    by default. The user also can set a flag to deactivate this recovery process"},{"line_number":408,"context_line":"    only for debugging purpose. Also is posible to set timeout, tries and"},{"line_number":409,"context_line":"    try_sleep of k8s health check."},{"line_number":410,"context_line":"    Those variables must be defined in the \u0027config\u0027 section of \u0027platform\u0027"},{"line_number":411,"context_line":"    service throught service-parameters:"}],"source_content_type":"text/x-python","patch_set":26,"id":"7162098e_b131fc50","line":408,"range":{"start_line":408,"start_character":40,"end_line":408,"end_character":48},"in_reply_to":"3cc2481e_623a9f5d","updated":"2022-09-06 18:47:29.000000000","message":"Done","commit_id":"4baeeb602c92a76e7880883a65391fbdc830d9de"},{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"e50d5688843b7201acf050f3f663c598ded713b6","unresolved":true,"context_lines":[{"line_number":70,"context_line":"    try:"},{"line_number":71,"context_line":"        yield"},{"line_number":72,"context_line":"    finally:"},{"line_number":73,"context_line":"        signal.alarm(0)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def _exec_cmd(cmd, stdout\u003dNone):"}],"source_content_type":"text/x-python","patch_set":27,"id":"a1a2a7c5_8953fccf","line":73,"updated":"2022-09-08 18:45:59.000000000","message":"OK.  so according to the docs passing 0 disables the alarm","commit_id":"4ab934ba46a4c14a165ba8988b38b567d651d1e1"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"a28eea03cc52bd0d01d3838406655a8bcc92d68a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    try:"},{"line_number":71,"context_line":"        yield"},{"line_number":72,"context_line":"    finally:"},{"line_number":73,"context_line":"        signal.alarm(0)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def _exec_cmd(cmd, stdout\u003dNone):"}],"source_content_type":"text/x-python","patch_set":27,"id":"4e2f0b1b_68931b36","line":73,"in_reply_to":"a1a2a7c5_8953fccf","updated":"2022-09-13 15:21:58.000000000","message":"Done","commit_id":"4ab934ba46a4c14a165ba8988b38b567d651d1e1"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f3bc5150440f13e5ce94b4b6e91cc42c0eebad7d","unresolved":true,"context_lines":[{"line_number":533,"context_line":"        timeout\u003dtimeout, try_sleep\u003dtry_sleep, tries\u003dtries,"},{"line_number":534,"context_line":"        healthz_endpoint\u003dAPISERVER_READYZ_ENDPOINT)"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    if not os.path.isfile(kubeadm_cm_bak_file):"},{"line_number":537,"context_line":"        if is_k8s_apiserver_up:"},{"line_number":538,"context_line":"            export_k8s_kubeadm_configmap(kubeadm_cm_bak_file)"},{"line_number":539,"context_line":"            export_k8s_cluster_configuration(cluster_config_bak_file)"}],"source_content_type":"text/x-python","patch_set":29,"id":"e93ca4ec_b333e0ba","line":536,"range":{"start_line":536,"start_character":26,"end_line":536,"end_character":45},"updated":"2022-09-13 19:09:33.000000000","message":"nit: it might make sense to check for cluster_config_bak_file instead since it\u0027s the second one that gets created.","commit_id":"56b34f044ad78fbb3e14e09f0030e37e5bfe52d0"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"bdb6bab026f7b536ec2dc5a9d8f1add67b056f50","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        timeout\u003dtimeout, try_sleep\u003dtry_sleep, tries\u003dtries,"},{"line_number":534,"context_line":"        healthz_endpoint\u003dAPISERVER_READYZ_ENDPOINT)"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    if not os.path.isfile(kubeadm_cm_bak_file):"},{"line_number":537,"context_line":"        if is_k8s_apiserver_up:"},{"line_number":538,"context_line":"            export_k8s_kubeadm_configmap(kubeadm_cm_bak_file)"},{"line_number":539,"context_line":"            export_k8s_cluster_configuration(cluster_config_bak_file)"}],"source_content_type":"text/x-python","patch_set":29,"id":"ebceb319_ec8cb547","line":536,"range":{"start_line":536,"start_character":26,"end_line":536,"end_character":45},"in_reply_to":"c2383f3b_4d6bd790","updated":"2022-09-13 20:24:04.000000000","message":"Done","commit_id":"56b34f044ad78fbb3e14e09f0030e37e5bfe52d0"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"b7b7e81603b25bc9fad2c0000b1524f28d93ec30","unresolved":true,"context_lines":[{"line_number":533,"context_line":"        timeout\u003dtimeout, try_sleep\u003dtry_sleep, tries\u003dtries,"},{"line_number":534,"context_line":"        healthz_endpoint\u003dAPISERVER_READYZ_ENDPOINT)"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    if not os.path.isfile(kubeadm_cm_bak_file):"},{"line_number":537,"context_line":"        if is_k8s_apiserver_up:"},{"line_number":538,"context_line":"            export_k8s_kubeadm_configmap(kubeadm_cm_bak_file)"},{"line_number":539,"context_line":"            export_k8s_cluster_configuration(cluster_config_bak_file)"}],"source_content_type":"text/x-python","patch_set":29,"id":"c2383f3b_4d6bd790","line":536,"range":{"start_line":536,"start_character":26,"end_line":536,"end_character":45},"in_reply_to":"e93ca4ec_b333e0ba","updated":"2022-09-13 20:23:53.000000000","message":"the code is already merged buy i will include boths checks during extra-volumes feature","commit_id":"56b34f044ad78fbb3e14e09f0030e37e5bfe52d0"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f3bc5150440f13e5ce94b4b6e91cc42c0eebad7d","unresolved":true,"context_lines":[{"line_number":598,"context_line":"            param_name \u003d param_key.split(KUBELET_TAG)[1]"},{"line_number":599,"context_line":"            service_params[\u0027kubelet\u0027][param_name] \u003d value"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":602,"context_line":"    # Replace new config (from hieradata) into current (preloaded)"},{"line_number":603,"context_line":"    # cluster config dict"},{"line_number":604,"context_line":"    # -----------------------------------------------------------------------------"},{"line_number":605,"context_line":"    # Config section --------------------------------------------------------------"},{"line_number":606,"context_line":"    if \u0027automatic_recovery\u0027 in service_params[\u0027config\u0027].keys():"},{"line_number":607,"context_line":"        # this value is set by sysinv, and its values are \u0027true\u0027 or \u0027false\u0027"},{"line_number":608,"context_line":"        value \u003d service_params[\u0027config\u0027][\u0027automatic_recovery\u0027]"}],"source_content_type":"text/x-python","patch_set":29,"id":"51558485_bf097c45","line":605,"range":{"start_line":601,"start_character":2,"end_line":605,"end_character":36},"updated":"2022-09-13 19:09:33.000000000","message":"This is just a general comment, but I\u0027d really like to see us get away from modifying the existing kubeadm configmap and instead regenerate it from scratch by passing config files in to kubeadm.  Not sure if this will be possible though.","commit_id":"56b34f044ad78fbb3e14e09f0030e37e5bfe52d0"}],"puppet-manifests/src/modules/platform/manifests/kubernetes.pp":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":818,"context_line":"}"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"class platform::kubernetes::master::change_apiserver_parameters ("},{"line_number":821,"context_line":"  $etcd_cafile \u003d $platform::kubernetes::params::etcd_cafile,"},{"line_number":822,"context_line":"  $etcd_certfile \u003d $platform::kubernetes::params::etcd_certfile,"},{"line_number":823,"context_line":"  $etcd_keyfile \u003d $platform::kubernetes::params::etcd_keyfile,"},{"line_number":824,"context_line":"  $etcd_servers \u003d $platform::kubernetes::params::etcd_servers,"},{"line_number":825,"context_line":"  $wait_for_apiserver \u003d true,"},{"line_number":826,"context_line":") inherits ::platform::kubernetes::params {"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"  $configmap_temp_file \u003d \u0027/tmp/cluster_configmap.yaml\u0027"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"8ecb6644_c12e9a93","side":"PARENT","line":825,"range":{"start_line":821,"start_character":0,"end_line":825,"end_character":29},"updated":"2022-03-07 20:54:53.000000000","message":"puppet-manifests/src/modules/platform/manifests/etcd.pp is still calling this as follows:\n\n    -\u003e class { \u0027::platform::kubernetes::master::change_apiserver_parameters\u0027:\n      etcd_cafile        \u003d\u003e \u0027/etc/etcd/ca.crt\u0027,\n      etcd_certfile      \u003d\u003e \u0027/etc/kubernetes/pki/apiserver-etcd-client.crt\u0027,\n      etcd_keyfile       \u003d\u003e \u0027/etc/kubernetes/pki/apiserver-etcd-client.key\u0027,\n      etcd_servers       \u003d\u003e $server_url,\n      wait_for_apiserver \u003d\u003e false,\n    }\n\n\nDo we need to modify that file as well?","commit_id":"b6b68a3cdeabd6fc65fcb3c7365500e13d67a35e"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"37e92f91eed6adccf556900555c34f3d81e338b3","unresolved":true,"context_lines":[{"line_number":818,"context_line":"}"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"class platform::kubernetes::master::change_apiserver_parameters ("},{"line_number":821,"context_line":"  $etcd_cafile \u003d $platform::kubernetes::params::etcd_cafile,"},{"line_number":822,"context_line":"  $etcd_certfile \u003d $platform::kubernetes::params::etcd_certfile,"},{"line_number":823,"context_line":"  $etcd_keyfile \u003d $platform::kubernetes::params::etcd_keyfile,"},{"line_number":824,"context_line":"  $etcd_servers \u003d $platform::kubernetes::params::etcd_servers,"},{"line_number":825,"context_line":"  $wait_for_apiserver \u003d true,"},{"line_number":826,"context_line":") inherits ::platform::kubernetes::params {"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"  $configmap_temp_file \u003d \u0027/tmp/cluster_configmap.yaml\u0027"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"ca58bfd1_949991d2","side":"PARENT","line":825,"range":{"start_line":821,"start_character":0,"end_line":825,"end_character":29},"in_reply_to":"8ecb6644_c12e9a93","updated":"2022-03-21 15:13:39.000000000","message":"I\u0027m checking that","commit_id":"b6b68a3cdeabd6fc65fcb3c7365500e13d67a35e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"576cf23d34682d19603d338743680e004d23c479","unresolved":true,"context_lines":[{"line_number":818,"context_line":"}"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"class platform::kubernetes::master::change_apiserver_parameters ("},{"line_number":821,"context_line":"  $etcd_cafile \u003d $platform::kubernetes::params::etcd_cafile,"},{"line_number":822,"context_line":"  $etcd_certfile \u003d $platform::kubernetes::params::etcd_certfile,"},{"line_number":823,"context_line":"  $etcd_keyfile \u003d $platform::kubernetes::params::etcd_keyfile,"},{"line_number":824,"context_line":"  $etcd_servers \u003d $platform::kubernetes::params::etcd_servers,"},{"line_number":825,"context_line":"  $wait_for_apiserver \u003d true,"},{"line_number":826,"context_line":") inherits ::platform::kubernetes::params {"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"  $configmap_temp_file \u003d \u0027/tmp/cluster_configmap.yaml\u0027"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"e46164e6_1e09f163","side":"PARENT","line":825,"range":{"start_line":821,"start_character":0,"end_line":825,"end_character":29},"in_reply_to":"ca58bfd1_949991d2","updated":"2022-04-12 00:40:36.000000000","message":"Any updates on this?","commit_id":"b6b68a3cdeabd6fc65fcb3c7365500e13d67a35e"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"01d2ae98cbdc0b9088f7ab7d7e17273ef7e4bbd4","unresolved":false,"context_lines":[{"line_number":818,"context_line":"}"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"class platform::kubernetes::master::change_apiserver_parameters ("},{"line_number":821,"context_line":"  $etcd_cafile \u003d $platform::kubernetes::params::etcd_cafile,"},{"line_number":822,"context_line":"  $etcd_certfile \u003d $platform::kubernetes::params::etcd_certfile,"},{"line_number":823,"context_line":"  $etcd_keyfile \u003d $platform::kubernetes::params::etcd_keyfile,"},{"line_number":824,"context_line":"  $etcd_servers \u003d $platform::kubernetes::params::etcd_servers,"},{"line_number":825,"context_line":"  $wait_for_apiserver \u003d true,"},{"line_number":826,"context_line":") inherits ::platform::kubernetes::params {"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"  $configmap_temp_file \u003d \u0027/tmp/cluster_configmap.yaml\u0027"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"ed117578_d63c6b47","side":"PARENT","line":825,"range":{"start_line":821,"start_character":0,"end_line":825,"end_character":29},"in_reply_to":"e46164e6_1e09f163","updated":"2022-08-31 15:21:53.000000000","message":"I have undone this change, now the module will check if the etcd_params exists and in that case will pass them to the change_k8s_control_plane_params.py function. So, the general behaviour is not modified and is not necesary to change puppet-manifests/src/modules/platform/manifests/etcd.pp","commit_id":"b6b68a3cdeabd6fc65fcb3c7365500e13d67a35e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f6c98909bc0aec87270b042d27da50b25a34e555","unresolved":true,"context_lines":[{"line_number":25,"context_line":"  $oidc_client_id \u003d undef,"},{"line_number":26,"context_line":"  $oidc_username_claim \u003d undef,"},{"line_number":27,"context_line":"  $oidc_groups_claim \u003d undef,"},{"line_number":28,"context_line":"  # $admission_plugins \u003d undef,"},{"line_number":29,"context_line":"  $etcd_cafile \u003d undef,"},{"line_number":30,"context_line":"  $etcd_certfile \u003d undef,"},{"line_number":31,"context_line":"  $etcd_keyfile \u003d undef,"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"464e30d1_fdab2687","line":28,"range":{"start_line":28,"start_character":2,"end_line":28,"end_character":31},"updated":"2022-03-07 17:49:09.000000000","message":"are we planning on adding this back in? If not it\u0027s probably better to just remove it rather than comment it out.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  $oidc_client_id \u003d undef,"},{"line_number":26,"context_line":"  $oidc_username_claim \u003d undef,"},{"line_number":27,"context_line":"  $oidc_groups_claim \u003d undef,"},{"line_number":28,"context_line":"  # $admission_plugins \u003d undef,"},{"line_number":29,"context_line":"  $etcd_cafile \u003d undef,"},{"line_number":30,"context_line":"  $etcd_certfile \u003d undef,"},{"line_number":31,"context_line":"  $etcd_keyfile \u003d undef,"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"b6a9ee31_8559b024","line":28,"range":{"start_line":28,"start_character":2,"end_line":28,"end_character":31},"in_reply_to":"464e30d1_fdab2687","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":822,"context_line":""},{"line_number":823,"context_line":"  $configmap_file \u003d \u0027/tmp/cluster_configmap.yaml\u0027"},{"line_number":824,"context_line":"  $cluster_config_file \u003d \u0027/tmp/cluster_config.yaml\u0027"},{"line_number":825,"context_line":"  $configmap_bak_file \u003d \u0027/etc/kubernetes/backup/cluster_configmap.yaml\u0027"},{"line_number":826,"context_line":"  $cluster_config_bak_file \u003d \u0027/etc/kubernetes/backup/cluster_config.yaml\u0027"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"  # Update ownership/permissions for files."},{"line_number":829,"context_line":"  # We want it readable by sysinv and sysadmin."}],"source_content_type":"text/x-puppet","patch_set":19,"id":"35d36bf1_f75d0608","line":826,"range":{"start_line":825,"start_character":0,"end_line":826,"end_character":73},"updated":"2022-03-07 20:54:53.000000000","message":"where are these used?","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"00c04a39d984386a50a7903d1a9a61919fed1831","unresolved":false,"context_lines":[{"line_number":822,"context_line":""},{"line_number":823,"context_line":"  $configmap_file \u003d \u0027/tmp/cluster_configmap.yaml\u0027"},{"line_number":824,"context_line":"  $cluster_config_file \u003d \u0027/tmp/cluster_config.yaml\u0027"},{"line_number":825,"context_line":"  $configmap_bak_file \u003d \u0027/etc/kubernetes/backup/cluster_configmap.yaml\u0027"},{"line_number":826,"context_line":"  $cluster_config_bak_file \u003d \u0027/etc/kubernetes/backup/cluster_config.yaml\u0027"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"  # Update ownership/permissions for files."},{"line_number":829,"context_line":"  # We want it readable by sysinv and sysadmin."}],"source_content_type":"text/x-puppet","patch_set":19,"id":"dce5f7e2_158f1b6e","line":826,"range":{"start_line":825,"start_character":0,"end_line":826,"end_character":73},"in_reply_to":"35d36bf1_f75d0608","updated":"2022-03-08 16:04:53.000000000","message":"Done","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"0e12ea1833bc1589250961e341f2665653c9d21a","unresolved":true,"context_lines":[{"line_number":825,"context_line":"  $configmap_bak_file \u003d \u0027/etc/kubernetes/backup/cluster_configmap.yaml\u0027"},{"line_number":826,"context_line":"  $cluster_config_bak_file \u003d \u0027/etc/kubernetes/backup/cluster_config.yaml\u0027"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"  # Update ownership/permissions for files."},{"line_number":829,"context_line":"  # We want it readable by sysinv and sysadmin."},{"line_number":830,"context_line":"  file { \u0027/tmp/puppet/hieradata/\u0027:"},{"line_number":831,"context_line":"    ensure  \u003d\u003e directory,"},{"line_number":832,"context_line":"    owner   \u003d\u003e \u0027root\u0027,"},{"line_number":833,"context_line":"    group   \u003d\u003e $::platform::params::protected_group_name,"},{"line_number":834,"context_line":"    mode    \u003d\u003e \u00270444\u0027,"},{"line_number":835,"context_line":"    recurse \u003d\u003e true,"},{"line_number":836,"context_line":"  }"},{"line_number":837,"context_line":""},{"line_number":838,"context_line":"  file { \u0027/etc/kubernetes/backup/\u0027:"},{"line_number":839,"context_line":"    ensure  \u003d\u003e directory,"},{"line_number":840,"context_line":"    owner   \u003d\u003e \u0027root\u0027,"},{"line_number":841,"context_line":"    group   \u003d\u003e $::platform::params::protected_group_name,"},{"line_number":842,"context_line":"    mode    \u003d\u003e \u00270444\u0027,"},{"line_number":843,"context_line":"    recurse \u003d\u003e true,"},{"line_number":844,"context_line":"  }"},{"line_number":845,"context_line":""},{"line_number":846,"context_line":"  exec { \u0027update configmap and apply changes to control plane components\u0027:"},{"line_number":847,"context_line":"    command   \u003d\u003e \"python /usr/share/puppet/modules/platform/files/change_k8s_control_plane_params.py --configmap_file ${configmap_file} --cluster_config_file ${cluster_config_file}\" # lint:ignore:140chars"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"8bd20f6b_189bf405","line":844,"range":{"start_line":828,"start_character":0,"end_line":844,"end_character":3},"updated":"2022-03-07 20:54:53.000000000","message":"where are these directories used?  If these are used by change_k8s_control_plane_params.py shouldn\u0027t it be the one to create them?  At a minimum there should be a comment here explaining why we are ensuring they exist.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":33391,"name":"Francisco Giana","email":"francisco.giana@windriver.com","username":"fgiana"},"change_message_id":"37e92f91eed6adccf556900555c34f3d81e338b3","unresolved":false,"context_lines":[{"line_number":825,"context_line":"  $configmap_bak_file \u003d \u0027/etc/kubernetes/backup/cluster_configmap.yaml\u0027"},{"line_number":826,"context_line":"  $cluster_config_bak_file \u003d \u0027/etc/kubernetes/backup/cluster_config.yaml\u0027"},{"line_number":827,"context_line":""},{"line_number":828,"context_line":"  # Update ownership/permissions for files."},{"line_number":829,"context_line":"  # We want it readable by sysinv and sysadmin."},{"line_number":830,"context_line":"  file { \u0027/tmp/puppet/hieradata/\u0027:"},{"line_number":831,"context_line":"    ensure  \u003d\u003e directory,"},{"line_number":832,"context_line":"    owner   \u003d\u003e \u0027root\u0027,"},{"line_number":833,"context_line":"    group   \u003d\u003e $::platform::params::protected_group_name,"},{"line_number":834,"context_line":"    mode    \u003d\u003e \u00270444\u0027,"},{"line_number":835,"context_line":"    recurse \u003d\u003e true,"},{"line_number":836,"context_line":"  }"},{"line_number":837,"context_line":""},{"line_number":838,"context_line":"  file { \u0027/etc/kubernetes/backup/\u0027:"},{"line_number":839,"context_line":"    ensure  \u003d\u003e directory,"},{"line_number":840,"context_line":"    owner   \u003d\u003e \u0027root\u0027,"},{"line_number":841,"context_line":"    group   \u003d\u003e $::platform::params::protected_group_name,"},{"line_number":842,"context_line":"    mode    \u003d\u003e \u00270444\u0027,"},{"line_number":843,"context_line":"    recurse \u003d\u003e true,"},{"line_number":844,"context_line":"  }"},{"line_number":845,"context_line":""},{"line_number":846,"context_line":"  exec { \u0027update configmap and apply changes to control plane components\u0027:"},{"line_number":847,"context_line":"    command   \u003d\u003e \"python /usr/share/puppet/modules/platform/files/change_k8s_control_plane_params.py --configmap_file ${configmap_file} --cluster_config_file ${cluster_config_file}\" # lint:ignore:140chars"}],"source_content_type":"text/x-puppet","patch_set":19,"id":"25a0ccbf_96ca9985","line":844,"range":{"start_line":828,"start_character":0,"end_line":844,"end_character":3},"in_reply_to":"8bd20f6b_189bf405","updated":"2022-03-21 15:13:39.000000000","message":"in patch 22 I\u0027ve refactored the code to pass them as parameters to the script.","commit_id":"214aa0ed1ec7f1dfc468eb79ad1a82a9826d9da9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"576cf23d34682d19603d338743680e004d23c479","unresolved":true,"context_lines":[{"line_number":835,"context_line":"  }"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"  exec { \u0027update configmap and apply changes to control plane components\u0027:"},{"line_number":838,"context_line":"    command   \u003d\u003e \u0027python /usr/share/puppet/modules/platform/files/change_k8s_control_plane_params.py --backup_path /etc/kubernetes/backup/ --hieradata_path /tmp/puppet/hieradata/\u0027 # lint:ignore:140chars"},{"line_number":839,"context_line":"  }"},{"line_number":840,"context_line":"}"},{"line_number":841,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":24,"id":"720a3c72_a09e8eb5","line":838,"range":{"start_line":838,"start_character":101,"end_line":838,"end_character":178},"updated":"2022-04-12 00:40:36.000000000","message":"Why are we specifying these when they are the defaults?\n\nAlso, who is creating /tmp/puppet/hieradata/system.yaml?","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"01d2ae98cbdc0b9088f7ab7d7e17273ef7e4bbd4","unresolved":false,"context_lines":[{"line_number":835,"context_line":"  }"},{"line_number":836,"context_line":""},{"line_number":837,"context_line":"  exec { \u0027update configmap and apply changes to control plane components\u0027:"},{"line_number":838,"context_line":"    command   \u003d\u003e \u0027python /usr/share/puppet/modules/platform/files/change_k8s_control_plane_params.py --backup_path /etc/kubernetes/backup/ --hieradata_path /tmp/puppet/hieradata/\u0027 # lint:ignore:140chars"},{"line_number":839,"context_line":"  }"},{"line_number":840,"context_line":"}"},{"line_number":841,"context_line":""}],"source_content_type":"text/x-puppet","patch_set":24,"id":"256610ad_01fc9415","line":838,"range":{"start_line":838,"start_character":101,"end_line":838,"end_character":178},"in_reply_to":"720a3c72_a09e8eb5","updated":"2022-08-31 15:21:53.000000000","message":"Why are we specifying these when they are the defaults?\n\u003e I have removed the args.\n\nAlso, who is creating /tmp/puppet/hieradata/system.yaml?\n\u003e Hieradata is updated every time service-parameters are updated through sysinv by conductor/manager.py\n\nconductor/manager.py \u003e puppet/common.py \u003e puppet_apply_manifest \u003e /usr/local/bin/puppet-manifest-apply.sh","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3f66497fb7f1f94b88913217c0043f15141f03e1","unresolved":true,"context_lines":[{"line_number":852,"context_line":"    recurse \u003d\u003e true,"},{"line_number":853,"context_line":"  }"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"  # if defined(\u0027$etcd_cafile\u0027) and defined(\u0027$etcd_certfile\u0027) and defined(\u0027$etcd_keyfile\u0027) and defined(\u0027$etcd_servers\u0027) {"},{"line_number":856,"context_line":"  if $etcd_cafile and $etcd_certfile and $etcd_keyfile and $etcd_servers {"},{"line_number":857,"context_line":"    exec { \u0027update configmap and apply changes to control plane components\u0027:"},{"line_number":858,"context_line":"      command   \u003d\u003e \"python /usr/share/puppet/modules/platform/files/change_k8s_control_plane_params.py --etcd_cafile ${etcd_cafile} --etcd_certfile ${etcd_certfile} --etcd_keyfile ${etcd_keyfile} --etcd_servers ${etcd_servers}\"}  # lint:ignore:140chars"}],"source_content_type":"text/x-puppet","patch_set":25,"id":"aab50b8a_07a10daa","line":855,"range":{"start_line":855,"start_character":0,"end_line":855,"end_character":120},"updated":"2022-09-06 17:07:07.000000000","message":"this looks like maybe it was left over from an earlier version?","commit_id":"9e6843779c56bd065dbbc3b03d583f642744ab9d"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"2e70418e550d003f661280c4d7d0c15d44dd69da","unresolved":false,"context_lines":[{"line_number":852,"context_line":"    recurse \u003d\u003e true,"},{"line_number":853,"context_line":"  }"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"  # if defined(\u0027$etcd_cafile\u0027) and defined(\u0027$etcd_certfile\u0027) and defined(\u0027$etcd_keyfile\u0027) and defined(\u0027$etcd_servers\u0027) {"},{"line_number":856,"context_line":"  if $etcd_cafile and $etcd_certfile and $etcd_keyfile and $etcd_servers {"},{"line_number":857,"context_line":"    exec { \u0027update configmap and apply changes to control plane components\u0027:"},{"line_number":858,"context_line":"      command   \u003d\u003e \"python /usr/share/puppet/modules/platform/files/change_k8s_control_plane_params.py --etcd_cafile ${etcd_cafile} --etcd_certfile ${etcd_certfile} --etcd_keyfile ${etcd_keyfile} --etcd_servers ${etcd_servers}\"}  # lint:ignore:140chars"}],"source_content_type":"text/x-puppet","patch_set":25,"id":"f4daa023_72f89589","line":855,"range":{"start_line":855,"start_character":0,"end_line":855,"end_character":120},"in_reply_to":"aab50b8a_07a10daa","updated":"2022-09-06 17:23:09.000000000","message":"Done","commit_id":"9e6843779c56bd065dbbc3b03d583f642744ab9d"}],"pylint.rc":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"576cf23d34682d19603d338743680e004d23c479","unresolved":true,"context_lines":[{"line_number":123,"context_line":"# See \"Messages Control\" section of"},{"line_number":124,"context_line":"# https://pylint.readthedocs.io/en/latest/user_guide"},{"line_number":125,"context_line":"# We are disabling (C)onvention"},{"line_number":126,"context_line":"# We are disabling (R)efactor"},{"line_number":127,"context_line":"#  W1618: no-absolute-import"},{"line_number":128,"context_line":"disable\u003dC, R, W1618"},{"line_number":129,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":24,"id":"b1ab3f62_b325136f","line":126,"range":{"start_line":126,"start_character":2,"end_line":126,"end_character":29},"updated":"2022-04-12 00:40:36.000000000","message":"why are we wanting to disable refactor?","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"},{"author":{"_account_id":33755,"name":"Jorge Saffe","email":"jorge.saffe@windriver.com","username":"jsaffe"},"change_message_id":"01d2ae98cbdc0b9088f7ab7d7e17273ef7e4bbd4","unresolved":false,"context_lines":[{"line_number":123,"context_line":"# See \"Messages Control\" section of"},{"line_number":124,"context_line":"# https://pylint.readthedocs.io/en/latest/user_guide"},{"line_number":125,"context_line":"# We are disabling (C)onvention"},{"line_number":126,"context_line":"# We are disabling (R)efactor"},{"line_number":127,"context_line":"#  W1618: no-absolute-import"},{"line_number":128,"context_line":"disable\u003dC, R, W1618"},{"line_number":129,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":24,"id":"fac95b96_00443b68","line":126,"range":{"start_line":126,"start_character":2,"end_line":126,"end_character":29},"in_reply_to":"b1ab3f62_b325136f","updated":"2022-08-31 15:21:53.000000000","message":"undone","commit_id":"5ab0eb7730131925bac9ee3858ddcaa74f233818"}]}
