)]}'
{"doc/source/devref/index.rst":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"74c70126452f6fa2958998c01428f5a54533f9cb","unresolved":true,"context_lines":[{"line_number":45,"context_line":"   kuryr_kubernetes_versions"},{"line_number":46,"context_line":"   network_policy"},{"line_number":47,"context_line":"   updating_pod_resources_api"},{"line_number":48,"context_line":"   lbaas_reconciliation_design.rst"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Indices and tables"}],"source_content_type":"text/x-rst","patch_set":12,"id":"f85369e6_1a8bb4a5","line":48,"range":{"start_line":48,"start_character":30,"end_line":48,"end_character":34},"updated":"2021-07-02 16:20:45.000000000","message":"Seems like you don\u0027t need to add .rst, but it works regardless.","commit_id":"0904fc9aae750c2df937d3ee0e01e55a67e38938"}],"doc/source/devref/lbaas_reconciliation_design.rst":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"98da212c290f39f2b9ead3adeebfe112d7bb6d5d","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Currently, if the OpenStack loadbalancer is manually deleted or removed,"},{"line_number":28,"context_line":"Kuryr does not detect this event neither does it recreate the OpenStack"},{"line_number":29,"context_line":"resources. Hence, it is necessary to monitor also changes in OpenStack"},{"line_number":30,"context_line":"resources in order to maintain the same state with KuryrKubernetes CRD."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"817a1c32_cce31234","line":30,"range":{"start_line":29,"start_character":11,"end_line":30,"end_character":70},"updated":"2021-06-14 07:06:31.000000000","message":"well, rather than maintain the same \"status\" as in the CRD, the idea is that we ensure whatever is on the \"spec\" section of the CRD is on OpenStack side, and then we update the \"status\" of the CRD with the new/recovered/recreated OpenStack resources","commit_id":"f43653b9023450ddcf776a2ff699b8ae46b075f4"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"98da212c290f39f2b9ead3adeebfe112d7bb6d5d","unresolved":true,"context_lines":[{"line_number":35,"context_line":"-----------------"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"The implementation requires detecting changes in OpenStack loadbalancers"},{"line_number":38,"context_line":"and reconciling with KuryrKubernetes CRD. We define a handler to watch the"},{"line_number":39,"context_line":"OpenStack endpoints for changes and to recreate or update them to match the"},{"line_number":40,"context_line":"state in Kubernetes CRD."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Kuryr Controller Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9fc69fef_50e34eb2","line":40,"range":{"start_line":38,"start_character":42,"end_line":40,"end_character":24},"updated":"2021-06-14 07:06:31.000000000","message":"There is no such an API in OpenStack. So you cannot \"watch\" for changes in the same way as we do for K8s resources. It will require some pooling from time to time to ensure what we thought it was on OpenStack side is still there and react it not.","commit_id":"f43653b9023450ddcf776a2ff699b8ae46b075f4"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"99e7bcaaffcf05c1a4c13602b26887600a37f122","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The implementation requires detecting changes in OpenStack loadbalancers"},{"line_number":40,"context_line":"and reconciling with KuryrKubernetes CRD. The OpenStack resources are pooled"},{"line_number":41,"context_line":"occasionally to check for the information on the spec data. If any data is missing,"},{"line_number":42,"context_line":"we react to this by calling the loadbalancers drivers to recreate or the OpenStack"},{"line_number":43,"context_line":"resources with the missing information. Then the \"status\" of the CRD is updated"},{"line_number":44,"context_line":"with the new or recovered information."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"eea159ce_7afa9c5a","line":44,"range":{"start_line":41,"start_character":60,"end_line":44,"end_character":38},"updated":"2021-06-16 07:00:03.000000000","message":"I would say that if some resources on OpenStack are missing, what we need to do is to remove them from the associated KuryrLoadBalancer CRD status, so that the KuryrLoadBalancerHandler react to it (re-executes the on_present function) and by executing the sync_lbaas_member function reconciles it as it does today (i.e., recovering the existing resources, recreating the missing ones). There is no need to duplicate that on another handler/driver. Just to trigger the execution of the already in place code","commit_id":"1acc65989ed542145904be5bfb154f992af87147"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"99e7bcaaffcf05c1a4c13602b26887600a37f122","unresolved":true,"context_lines":[{"line_number":49,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"A ServiceReconciliationHandler Event Handler is added to the Kuryr controller pipeline. The"},{"line_number":52,"context_line":"ServiceReconciliationHandler manages the OpenStack service events. This handler is responsible"},{"line_number":53,"context_line":"for recreating the needed Octavia resources according to the CRD spec data. It does this by"},{"line_number":54,"context_line":"setting the status field on the CRD to empty. This triggers the recreation of the Octavia resources."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"db001e96_da6e7253","line":52,"range":{"start_line":52,"start_character":41,"end_line":52,"end_character":66},"updated":"2021-06-16 07:00:03.000000000","message":"there is no such a thing (unless we connect to the rabbitmq or ovn-sb db from Kuryr, and that is only for admin, so, no option for kuryr). We need to do pooling instead","commit_id":"1acc65989ed542145904be5bfb154f992af87147"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"99e7bcaaffcf05c1a4c13602b26887600a37f122","unresolved":true,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"A ServiceReconciliationHandler Event Handler is added to the Kuryr controller pipeline. The"},{"line_number":52,"context_line":"ServiceReconciliationHandler manages the OpenStack service events. This handler is responsible"},{"line_number":53,"context_line":"for recreating the needed Octavia resources according to the CRD spec data. It does this by"},{"line_number":54,"context_line":"setting the status field on the CRD to empty. This triggers the recreation of the Octavia resources."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"8e53e400_e8ddf103","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":75},"updated":"2021-06-16 07:00:03.000000000","message":"see previous comment. No need for this driver to recreate the Octavia resources, just triggering the existing driver to force the recreation","commit_id":"1acc65989ed542145904be5bfb154f992af87147"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c39804a86dec55e3d7b51c45bf49693c607c6196","unresolved":true,"context_lines":[{"line_number":24,"context_line":"Overview"},{"line_number":25,"context_line":"--------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Currently, if the OpenStack loadbalancer is manually deleted or removed,"},{"line_number":28,"context_line":"Kuryr does not detect this event neither does it recreate the OpenStack"},{"line_number":29,"context_line":"resources. Hence, it is necessary to monitor changes in OpenStack"},{"line_number":30,"context_line":"resources in order to  ensure that the information on the \"spec\" section of the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"445c51ef_06ff0bb8","line":27,"range":{"start_line":27,"start_character":53,"end_line":27,"end_character":72},"updated":"2021-06-21 07:10:55.000000000","message":"maybe add something like: (e.g., due to the Octavia loadbalancer being stuck on PENDING_UPDATE)","commit_id":"6873de82ce04ce5afd9b908e193626d8e0332013"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5be08e99eb853e4e174ddfe72c34b2b60206cbb5","unresolved":true,"context_lines":[{"line_number":28,"context_line":"Kuryr does not detect this event neither does it recreate the OpenStack"},{"line_number":29,"context_line":"resources. Hence, it is necessary to monitor changes in OpenStack"},{"line_number":30,"context_line":"resources in order to  ensure that the information on the \"spec\" section of the"},{"line_number":31,"context_line":"CRD is on OpenStack, and then  update the \"status\" of the CRD with the new/"},{"line_number":32,"context_line":"recovered/recreated OpenStack resources."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"2da4cd6f_66f51a1d","line":31,"range":{"start_line":31,"start_character":7,"end_line":31,"end_character":19},"updated":"2021-06-21 09:32:20.000000000","message":"represented on...","commit_id":"6873de82ce04ce5afd9b908e193626d8e0332013"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5be08e99eb853e4e174ddfe72c34b2b60206cbb5","unresolved":true,"context_lines":[{"line_number":28,"context_line":"Kuryr does not detect this event neither does it recreate the OpenStack"},{"line_number":29,"context_line":"resources. Hence, it is necessary to monitor changes in OpenStack"},{"line_number":30,"context_line":"resources in order to  ensure that the information on the \"spec\" section of the"},{"line_number":31,"context_line":"CRD is on OpenStack, and then  update the \"status\" of the CRD with the new/"},{"line_number":32,"context_line":"recovered/recreated OpenStack resources."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"d8f4a0b7_c093951e","line":32,"range":{"start_line":31,"start_character":71,"end_line":32,"end_character":19},"updated":"2021-06-21 09:32:20.000000000","message":"recovered or created","commit_id":"6873de82ce04ce5afd9b908e193626d8e0332013"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5be08e99eb853e4e174ddfe72c34b2b60206cbb5","unresolved":true,"context_lines":[{"line_number":56,"context_line":"Kuryr Controller Impact"},{"line_number":57,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"We shall implement a pooling event which checks the OpenStack loadbalancers"},{"line_number":60,"context_line":"for missing spec data. Since the KuryrLoadBalancerHandler watches the"},{"line_number":61,"context_line":"KuryrLoadBalancers CRD, We shall implement the pooling event on the handler."},{"line_number":62,"context_line":"If there is a missing information on the OpenStack resource, the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"58a76f64_5f12e316","line":59,"range":{"start_line":59,"start_character":21,"end_line":59,"end_character":34},"updated":"2021-06-21 09:32:20.000000000","message":"can the reconciliation mechanism be leveraged here?\nhttps://github.com/openstack/kuryr-kubernetes/blob/master/kuryr_kubernetes/watcher.py#L137-L157","commit_id":"6873de82ce04ce5afd9b908e193626d8e0332013"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c39804a86dec55e3d7b51c45bf49693c607c6196","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"We shall implement a pooling event which checks the OpenStack loadbalancers"},{"line_number":60,"context_line":"for missing spec data. Since the KuryrLoadBalancerHandler watches the"},{"line_number":61,"context_line":"KuryrLoadBalancers CRD, We shall implement the pooling event on the handler."},{"line_number":62,"context_line":"If there is a missing information on the OpenStack resource, the"},{"line_number":63,"context_line":"KuryrLoadBalancerHandler fetches the KuryLoadbalancer CRD and sets the"},{"line_number":64,"context_line":"status field to `empty`. This triggers the ServiceHandler and the Endpoint"}],"source_content_type":"text/x-rst","patch_set":5,"id":"c80c5d73_9e12bde9","line":61,"range":{"start_line":61,"start_character":23,"end_line":61,"end_character":26},"updated":"2021-06-21 07:10:55.000000000","message":"we","commit_id":"6873de82ce04ce5afd9b908e193626d8e0332013"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5be08e99eb853e4e174ddfe72c34b2b60206cbb5","unresolved":true,"context_lines":[{"line_number":60,"context_line":"for missing spec data. Since the KuryrLoadBalancerHandler watches the"},{"line_number":61,"context_line":"KuryrLoadBalancers CRD, We shall implement the pooling event on the handler."},{"line_number":62,"context_line":"If there is a missing information on the OpenStack resource, the"},{"line_number":63,"context_line":"KuryrLoadBalancerHandler fetches the KuryLoadbalancer CRD and sets the"},{"line_number":64,"context_line":"status field to `empty`. This triggers the ServiceHandler and the Endpoint"},{"line_number":65,"context_line":"Handler to update the KuryrLoadBalancer CRD spec data and endpoints respectively."},{"line_number":66,"context_line":"The KuryrLoadBalancerHandler then reconciles the OpenStack resources by calling"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ab4769d8_a232ba5b","line":63,"range":{"start_line":63,"start_character":25,"end_line":63,"end_character":61},"updated":"2021-06-21 09:32:20.000000000","message":"the handler already has the CRD object, the following might fit better: \"the\nKuryrLoadBalancerHandler sets the CRD status field to `empty`\"","commit_id":"6873de82ce04ce5afd9b908e193626d8e0332013"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"b729a44dc175d95a072a54e483c6b542d4dd7ede","unresolved":true,"context_lines":[{"line_number":62,"context_line":"KuryrLoadBalancers CRD, we shall implement the reconciliation event on the handler."},{"line_number":63,"context_line":"If there is a missing information on the OpenStack resource, the"},{"line_number":64,"context_line":"KuryrLoadBalancerHandler which has the KuryLoadbalancer CRD, sets the status field"},{"line_number":65,"context_line":"to `empty`. This triggers the ServiceHandler and the EndpointHandler to update the"},{"line_number":66,"context_line":"KuryrLoadBalancer CRD spec data and endpoints respectively. The KuryrLoadBalancerHandler"},{"line_number":67,"context_line":"then reconciles the OpenStack resources by calling the LoadBalancer Driver."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"e77872bc_585aa1ed","line":66,"range":{"start_line":65,"start_character":11,"end_line":66,"end_character":59},"updated":"2021-06-23 06:46:07.000000000","message":"setting the KLB CRD status to empty won\u0027t trigger the ServiceHandler or EndpointHandler. Those Handlers are watching for services and endpoints objects respectively. Modifying/Removing the spec/status of the KLB CRD will trigger the KuryrLoadBalancer Handler","commit_id":"838d44e09203e1481da2be2d78b0757fc2aba84b"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"9051eaeb85d93b9bd1d19bf0ec58857aa859d254","unresolved":true,"context_lines":[{"line_number":62,"context_line":"KuryrLoadBalancers CRD, we shall implement the reconciliation event on the handler."},{"line_number":63,"context_line":"If there is a missing information on the OpenStack resource, the"},{"line_number":64,"context_line":"KuryrLoadBalancerHandler which has the KuryLoadbalancer CRD, sets the status field"},{"line_number":65,"context_line":"to `empty`. This triggers the ServiceHandler and the EndpointHandler to update the"},{"line_number":66,"context_line":"KuryrLoadBalancer CRD spec data and endpoints respectively. The KuryrLoadBalancerHandler"},{"line_number":67,"context_line":"then reconciles the OpenStack resources by calling the LoadBalancer Driver."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"26ab7249_1a6d94c0","line":66,"range":{"start_line":65,"start_character":11,"end_line":66,"end_character":59},"in_reply_to":"e77872bc_585aa1ed","updated":"2021-06-23 09:59:21.000000000","message":"+1","commit_id":"838d44e09203e1481da2be2d78b0757fc2aba84b"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"42f609bd3ef0b5c4fa8edd3c12ece5bc2dd700f1","unresolved":true,"context_lines":[{"line_number":45,"context_line":"on_present function) and by executing the sync_lbaas_member function reconciles"},{"line_number":46,"context_line":"it (i.e., recovering the existing resources, recreating the missing ones)."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Diagram describing Loadbalancers Reconciliation Design"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. image:: ../../images/lbaas_recon_design.png"},{"line_number":51,"context_line":"   :alt: Lbaas reconciliation design"}],"source_content_type":"text/x-rst","patch_set":15,"id":"03fa4877_3427907e","line":48,"updated":"2021-07-26 09:50:42.000000000","message":"missing \":\" at the end of the sentence","commit_id":"25ec8b7d72f7d139d7804738bae92c77cacd9799"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"42f609bd3ef0b5c4fa8edd3c12ece5bc2dd700f1","unresolved":true,"context_lines":[{"line_number":60,"context_line":"We shall implement a reconciliation event which checks the OpenStack loadbalancers"},{"line_number":61,"context_line":"for missing spec data. Since the KuryrLoadBalancerHandler watches the"},{"line_number":62,"context_line":"KuryrLoadBalancers CRD, we shall implement the reconciliation event on the handler."},{"line_number":63,"context_line":"If there is a missing information on the OpenStack resource, the"},{"line_number":64,"context_line":"KuryrLoadBalancerHandler which has the KuryLoadBalancer CRD, sets the status field"},{"line_number":65,"context_line":"to `empty`. This triggers the KuryrLoadBalancerHandler which then reconciles the"},{"line_number":66,"context_line":"OpenStack resources by calling the LoadBalancer Driver."}],"source_content_type":"text/x-rst","patch_set":15,"id":"2b88b21f_146ade3c","line":63,"range":{"start_line":63,"start_character":3,"end_line":63,"end_character":59},"updated":"2021-07-26 09:50:42.000000000","message":"it could be rephrased to:\nIf a Load Balancer is missing","commit_id":"25ec8b7d72f7d139d7804738bae92c77cacd9799"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"42f609bd3ef0b5c4fa8edd3c12ece5bc2dd700f1","unresolved":true,"context_lines":[{"line_number":65,"context_line":"to `empty`. This triggers the KuryrLoadBalancerHandler which then reconciles the"},{"line_number":66,"context_line":"OpenStack resources by calling the LoadBalancer Driver."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Diagram describing Loadbalancers Reconciliation Flow Design"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. image:: ../../images/lbaas_recon_flow.png"},{"line_number":71,"context_line":"   :alt: Lbaas reconciliation flow design"}],"source_content_type":"text/x-rst","patch_set":15,"id":"9264c2da_c66a81a3","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":59},"updated":"2021-07-26 09:50:42.000000000","message":"missing \":\" at the end of the sentence","commit_id":"25ec8b7d72f7d139d7804738bae92c77cacd9799"}]}
