)]}'
{"deployment/glance/glance-api-container-puppet.yaml":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"043c26c223439c6fffa10898b5e248af782192d8","unresolved":true,"context_lines":[{"line_number":190,"context_line":"    description: \u003e"},{"line_number":191,"context_line":"      NFS mount options for NFS image import staging"},{"line_number":192,"context_line":"    type: string"},{"line_number":193,"context_line":"  GlanceWorkerSelfReferenceUrl:"},{"line_number":194,"context_line":"    default: \u0027\u0027"},{"line_number":195,"context_line":"    description: |"},{"line_number":196,"context_line":"      The self-reference URL by which other workers will get to know"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"934b3393_b55b3496","line":193,"updated":"2021-03-29 15:22:59.000000000","message":"The description sounds plausibly accurate, but I feel like something is missing that would allow the user to answer two critical (IMHO) questions;\n\n1. What does a self-reference URL look like? Do you have an example?\n2. Under what circumstances should it be set?\n\nMaybe this patch isn\u0027t the best place to answer the questions, but the whole thing is rather mysterious. I see how this patch will emit hiera data that gets consumed by glance::api, but I have no idea what to do with this feature.","commit_id":"0f9c20629974f3d4ee5f0a7c2ed132c566189b4e"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"f05002746af56d2b85c33f8c8407e04701e8c759","unresolved":true,"context_lines":[{"line_number":190,"context_line":"    description: \u003e"},{"line_number":191,"context_line":"      NFS mount options for NFS image import staging"},{"line_number":192,"context_line":"    type: string"},{"line_number":193,"context_line":"  GlanceWorkerSelfReferenceUrl:"},{"line_number":194,"context_line":"    default: \u0027\u0027"},{"line_number":195,"context_line":"    description: |"},{"line_number":196,"context_line":"      The self-reference URL by which other workers will get to know"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"b8b54f88_66905432","line":193,"in_reply_to":"4e52a010_832868da","updated":"2021-04-01 16:48:56.000000000","message":"Thanks, Dan, this is extremely helpful!\n\nI gather the purpose is to configure each glance worker (i.e. node where g-api is running) to know **its own** internal API URL, so that it can share it with other workers to ensure the correct worker handles a distributed image import.\n\nTherefore, we don\u0027t want the user to set value. Instead, tripleo should automatically configure the \"correct\" value for *each* node. I believe the way to do that is\n- Eliminate the GlanceWorkerSelfReferenceUrl THT parameter\n- Change L469 to something like this (similar to what we do here [1]):\n\n            glance::api::worker_self_reference_url:\n              if:\n              - internal_tls_enabled\n              - str_replace:\n                  template:\n                    \"https://%{hiera(\u0027fqdn_NETWORK\u0027)}:9292\"\n                  params:\n                    NETWORK: {get_param: [ServiceNetMap, GlanceApiNetwork]}\n              - str_replace:\n                  template:\n                    \"http://%{hiera(\u0027NETWORK_uri\u0027)}:9292\"\n                  params:\n                    NETWORK: {get_param: [ServiceNetMap, GlanceApiNetwork]}\n\nDoes that sound right?\n\n[1] https://opendev.org/openstack/tripleo-heat-templates/src/branch/master/deployment/glance/glance-api-edge-container-puppet.yaml#L52","commit_id":"0f9c20629974f3d4ee5f0a7c2ed132c566189b4e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"72b5a4758bf31be92c4eeac81655159333218754","unresolved":true,"context_lines":[{"line_number":190,"context_line":"    description: \u003e"},{"line_number":191,"context_line":"      NFS mount options for NFS image import staging"},{"line_number":192,"context_line":"    type: string"},{"line_number":193,"context_line":"  GlanceWorkerSelfReferenceUrl:"},{"line_number":194,"context_line":"    default: \u0027\u0027"},{"line_number":195,"context_line":"    description: |"},{"line_number":196,"context_line":"      The self-reference URL by which other workers will get to know"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"4e52a010_832868da","line":193,"in_reply_to":"934b3393_b55b3496","updated":"2021-04-01 14:57:32.000000000","message":"I would tend to think that for something like tripleo, we would never really expect \"the user\" to set this, but that we should just be able to generate and set it from everything else we know, right? Do we ask/allow the user to change the list of URLs to be balanced in the haxproxy config?\n\nThe URL just needs to point to the worker\u0027s HTTP API directly, bypassing any load balancer. It\u0027s used so that a glance worker can hit the HTTP API of another worker directly, without going through any balancing. Basically, we know worker 17 (random number) has the image staged, so we need to specifically talk to that worker to tell it to go. If we just go through the LB, then we\u0027ll get directed to some other worker, which won\u0027t work.\n\nYou can look at devstack for an example when we configure this on:\n\nhttps://github.com/openstack/devstack/blob/master/lib/glance#L365\n\nIn devstack, we have apache sitting in front of uwsgi to provide SSL termination and make the services show up as resources underneath a common http(s) server. In that case, everything is running on the same machine, so we just set the self-reference URL to the direct uwsgi HTTP port for each worker.\n\nI would expect that for you, glance-api on every machine is given a specific port, and that we write some haproxy configuration listing each node as a URL, with its address and port for haproxy to balance. So, it\u0027s those URLs that we need, each node configured to know what URL reaches it directly.\n\nThis is also described in the docs, with examples:\n\nhttps://docs.openstack.org/glance/latest/admin/interoperable-image-import.html#staging-directory-configuration\n\nand in the spec:\n\nhttps://specs.openstack.org/openstack/glance-specs/specs/wallaby/approved/glance/distributed-image-import.html\n\n...in case those help.\n\nIf it\u0027s still not clear, let me know and we can drill down some more.","commit_id":"0f9c20629974f3d4ee5f0a7c2ed132c566189b4e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"07152b609dd99b7847a7f25c2f13f2ee1c30acf2","unresolved":true,"context_lines":[{"line_number":190,"context_line":"    description: \u003e"},{"line_number":191,"context_line":"      NFS mount options for NFS image import staging"},{"line_number":192,"context_line":"    type: string"},{"line_number":193,"context_line":"  GlanceWorkerSelfReferenceUrl:"},{"line_number":194,"context_line":"    default: \u0027\u0027"},{"line_number":195,"context_line":"    description: |"},{"line_number":196,"context_line":"      The self-reference URL by which other workers will get to know"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"62de8ab6_c4d63026","line":193,"in_reply_to":"b8b54f88_66905432","updated":"2021-04-01 17:07:23.000000000","message":"\u003e I gather the purpose is to configure each glance worker (i.e. node where g-api is running) to know **its own** internal API URL, so that it can share it with other workers to ensure the correct worker handles a distributed image import.\n\nExactly.\n\n\u003e Therefore, we don\u0027t want the user to set value. Instead, tripleo should automatically configure the \"correct\" value for *each* node. I believe the way to do that is\n\u003e - Eliminate the GlanceWorkerSelfReferenceUrl THT parameter\n\u003e - Change L469 to something like this (similar to what we do here [1]):\n\u003e \n\u003e             glance::api::worker_self_reference_url:\n\u003e               if:\n\u003e               - internal_tls_enabled\n\u003e               - str_replace:\n\u003e                   template:\n\u003e                     \"https://%{hiera(\u0027fqdn_NETWORK\u0027)}:9292\"\n\u003e                   params:\n\u003e                     NETWORK: {get_param: [ServiceNetMap, GlanceApiNetwork]}\n\u003e               - str_replace:\n\u003e                   template:\n\u003e                     \"http://%{hiera(\u0027NETWORK_uri\u0027)}:9292\"\n\u003e                   params:\n\u003e                     NETWORK: {get_param: [ServiceNetMap, GlanceApiNetwork]}\n\u003e \n\u003e Does that sound right?\n\nYep, I think it\u0027d be much better if the user _can\u0027t_ set this, because it\u0027s likely they could only break things. The only case I can think of would be if this is running a glance at a distributed site, which is behind some sort of reverse proxy thing or something and needs to be different. However, I expect that\u0027d break other things and/or not be possible without hand-editing stuff anyway, so probably not a concern.","commit_id":"0f9c20629974f3d4ee5f0a7c2ed132c566189b4e"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"45bb8eb9efae54e185eae9ab44183466bc8d78b3","unresolved":true,"context_lines":[{"line_number":452,"context_line":"            glance::api::inject_metadata_properties: {get_param: GlanceInjectMetadataProperties}"},{"line_number":453,"context_line":"            glance::api::ignore_user_roles: {get_param: GlanceIgnoreUserRoles}"},{"line_number":454,"context_line":"            glance::api::worker_self_reference_url:"},{"line_number":455,"context_line":"              if:"},{"line_number":456,"context_line":"              - {get_param: EnableInternalTLS}"},{"line_number":457,"context_line":"              - str_replace:"},{"line_number":458,"context_line":"                  template:"},{"line_number":459,"context_line":"                    \"https://%{hiera(\u0027fqdn_NETWORK\u0027)}:9292\""},{"line_number":460,"context_line":"                  params:"},{"line_number":461,"context_line":"                    NETWORK: {get_param: [ServiceNetMap, GlanceApiNetwork]}"},{"line_number":462,"context_line":"              - str_replace:"},{"line_number":463,"context_line":"                  template:"},{"line_number":464,"context_line":"                    \"http://%{hiera(\u0027NETWORK_uri\u0027)}:9292\""},{"line_number":465,"context_line":"                  params:"},{"line_number":466,"context_line":"                    NETWORK: {get_param: [ServiceNetMap, GlanceApiNetwork]}"},{"line_number":467,"context_line":"            # NOTE: bind IP is found in hiera replacing the network name with the"},{"line_number":468,"context_line":"            # local node IP for the given network; replacement examples"},{"line_number":469,"context_line":"            # (eg. for internal_api):"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ab2a87f0_99261824","line":466,"range":{"start_line":455,"start_character":0,"end_line":466,"end_character":75},"updated":"2021-06-10 13:52:39.000000000","message":"Is there a reason you can\u0027t just use {get_param: [EndpointMap, GlanceInternal, uri_no_suffix]}","commit_id":"97758a0663777f741318f13dc42c5ecb9bd9773c"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e0c0deba4163e9b39f9a5d20a1fe27a0110bda4","unresolved":true,"context_lines":[{"line_number":452,"context_line":"            glance::api::inject_metadata_properties: {get_param: GlanceInjectMetadataProperties}"},{"line_number":453,"context_line":"            glance::api::ignore_user_roles: {get_param: GlanceIgnoreUserRoles}"},{"line_number":454,"context_line":"            glance::api::worker_self_reference_url:"},{"line_number":455,"context_line":"              if:"},{"line_number":456,"context_line":"              - {get_param: EnableInternalTLS}"},{"line_number":457,"context_line":"              - str_replace:"},{"line_number":458,"context_line":"                  template:"},{"line_number":459,"context_line":"                    \"https://%{hiera(\u0027fqdn_NETWORK\u0027)}:9292\""},{"line_number":460,"context_line":"                  params:"},{"line_number":461,"context_line":"                    NETWORK: {get_param: [ServiceNetMap, GlanceApiNetwork]}"},{"line_number":462,"context_line":"              - str_replace:"},{"line_number":463,"context_line":"                  template:"},{"line_number":464,"context_line":"                    \"http://%{hiera(\u0027NETWORK_uri\u0027)}:9292\""},{"line_number":465,"context_line":"                  params:"},{"line_number":466,"context_line":"                    NETWORK: {get_param: [ServiceNetMap, GlanceApiNetwork]}"},{"line_number":467,"context_line":"            # NOTE: bind IP is found in hiera replacing the network name with the"},{"line_number":468,"context_line":"            # local node IP for the given network; replacement examples"},{"line_number":469,"context_line":"            # (eg. for internal_api):"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"6a887547_a47ed1ba","line":466,"range":{"start_line":455,"start_character":0,"end_line":466,"end_character":75},"in_reply_to":"ab2a87f0_99261824","updated":"2021-08-31 09:48:29.000000000","message":"well, this makes sense to use available information in heat is good to use avoid depending on puppet hieradata. Will update it in next patch set.\n\nSorry for the delay in reply.","commit_id":"97758a0663777f741318f13dc42c5ecb9bd9773c"}],"deployment/glance/glance-api-edge-container-puppet.yaml":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"d8e24f2db55d7af22955e644e61b1657f1d6c6da","unresolved":true,"context_lines":[{"line_number":57,"context_line":"            \"http://%{hiera(\u0027NETWORK_uri\u0027)}:9292\""},{"line_number":58,"context_line":"          params:"},{"line_number":59,"context_line":"            NETWORK: {get_param: [ServiceNetMap, GlanceApiEdgeNetwork]}"},{"line_number":60,"context_line":"  worker_self_reference_url:"},{"line_number":61,"context_line":"    description: |"},{"line_number":62,"context_line":"      The self-reference URL by which other workers will get to know"},{"line_number":63,"context_line":"      how to contact the worker which has staged the image."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"080bbaba_df75f84c","line":60,"updated":"2021-05-11 18:09:03.000000000","message":"Adding this resource is certainly fine, but I just want to point out you could also just add the relevant pieces (namely L65..L76) down below after L95. The reason I created the glance_api_edge_uri attribute is that it\u0027s referenced twice, and I didn\u0027t want to repeat the code for the two (cinder and nova) settings at L88 and L90.","commit_id":"ae325b911eab940516fd36ca3dba257703be5d81"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"7e3248340a4f1ac7086e913d01d0303851a065b8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            \"http://%{hiera(\u0027NETWORK_uri\u0027)}:9292\""},{"line_number":58,"context_line":"          params:"},{"line_number":59,"context_line":"            NETWORK: {get_param: [ServiceNetMap, GlanceApiEdgeNetwork]}"},{"line_number":60,"context_line":"  worker_self_reference_url:"},{"line_number":61,"context_line":"    description: |"},{"line_number":62,"context_line":"      The self-reference URL by which other workers will get to know"},{"line_number":63,"context_line":"      how to contact the worker which has staged the image."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"2f715c32_31f9bfa4","line":60,"in_reply_to":"080bbaba_df75f84c","updated":"2021-06-02 04:56:52.000000000","message":"Ack","commit_id":"ae325b911eab940516fd36ca3dba257703be5d81"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"3924fc73208b6290620a930aafb5a0adc9b3b3ac","unresolved":true,"context_lines":[{"line_number":75,"context_line":"            map_merge:"},{"line_number":76,"context_line":"              - get_attr: [GlanceApiBase, role_data, config_settings]"},{"line_number":77,"context_line":"              - if:"},{"line_number":78,"context_line":"                - contains: [\u0027glance-direct\u0027, {get_param: GlanceEnabledImportMethods}]"},{"line_number":79,"context_line":"                - glance::api::worker_self_reference_url: {get_param: [EndpointMap, GlanceInternal, uri_no_suffix]}"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"084b952a_797c4390","line":78,"updated":"2021-09-02 17:03:25.000000000","message":"-1: this won\u0027t work unless you repeat the GlanceEnabledImportMethods parameter declaration (copy from glance-api-container-puppet.yaml)","commit_id":"a17a690954cbdf53dced45d7af6ff7c0d570a1f6"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"59b4b4d5fcd14e5a338500c0a82b1b9ddd4748b9","unresolved":true,"context_lines":[{"line_number":75,"context_line":"            map_merge:"},{"line_number":76,"context_line":"              - get_attr: [GlanceApiBase, role_data, config_settings]"},{"line_number":77,"context_line":"              - if:"},{"line_number":78,"context_line":"                - contains: [\u0027glance-direct\u0027, {get_param: GlanceEnabledImportMethods}]"},{"line_number":79,"context_line":"                - glance::api::worker_self_reference_url: {get_param: [EndpointMap, GlanceInternal, uri_no_suffix]}"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"48f8ebf9_369ebbe3","line":78,"in_reply_to":"084b952a_797c4390","updated":"2021-09-07 08:07:01.000000000","message":"ohh yeah, I just missed this.\nCouldn\u0027t catch it as just test this for multi node but not in DCN environment :(","commit_id":"a17a690954cbdf53dced45d7af6ff7c0d570a1f6"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"3924fc73208b6290620a930aafb5a0adc9b3b3ac","unresolved":true,"context_lines":[{"line_number":76,"context_line":"              - get_attr: [GlanceApiBase, role_data, config_settings]"},{"line_number":77,"context_line":"              - if:"},{"line_number":78,"context_line":"                - contains: [\u0027glance-direct\u0027, {get_param: GlanceEnabledImportMethods}]"},{"line_number":79,"context_line":"                - glance::api::worker_self_reference_url: {get_param: [EndpointMap, GlanceInternal, uri_no_suffix]}"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"d9096f44_2740d0b5","line":79,"updated":"2021-09-02 17:03:25.000000000","message":"Edge deployments are different in that they have their own \"GlanceApiEdgeNetwork\" that is distinct from the control plan\u0027s own GlanceApiNetwork. The endpoints for the control plan and edge networks are not the same.\n\nIt\u0027s been a while since I last deployed my own dcn environment, but if memory serves then I think the URL you want is already available here, as *glance_api_edge_uri. It is a self-referencing URL (it points to itself, so that cinder and nova services running on each DCN node use the glance service running on that same node).\n\nIf this is confusing then we may need to discuss offline (outside this patch).","commit_id":"a17a690954cbdf53dced45d7af6ff7c0d570a1f6"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"59b4b4d5fcd14e5a338500c0a82b1b9ddd4748b9","unresolved":true,"context_lines":[{"line_number":76,"context_line":"              - get_attr: [GlanceApiBase, role_data, config_settings]"},{"line_number":77,"context_line":"              - if:"},{"line_number":78,"context_line":"                - contains: [\u0027glance-direct\u0027, {get_param: GlanceEnabledImportMethods}]"},{"line_number":79,"context_line":"                - glance::api::worker_self_reference_url: {get_param: [EndpointMap, GlanceInternal, uri_no_suffix]}"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"448b5242_8d052a51","line":79,"in_reply_to":"d9096f44_2740d0b5","updated":"2021-09-07 08:07:01.000000000","message":"Ack, will use *glance_api_edge_uri here, as we need to set the self reference URL here to worker_self_reference_url when glance-direct import method is enabled.","commit_id":"a17a690954cbdf53dced45d7af6ff7c0d570a1f6"}]}
