)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"696ac804f9f9ba18afc582d88fd6e8b0a970c016","unresolved":true,"context_lines":[{"line_number":15,"context_line":"* https://review.opendev.org/c/openstack/skyline-apiserver/+/941715"},{"line_number":16,"context_line":"* https://bugs.launchpad.net/skyline-apiserver/+bug/1951437"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I597c8f1f609580cfc8c29efbc79ada312e667441"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"107fd12f_6a00a7f9","line":18,"updated":"2026-01-15 09:56:43.000000000","message":"This looks like a bug, could you create a LP bug and adjust commit msg with the `Closes-bug` directive so it can be backported ?","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"026967944d63a5a650ab953faa3295df6cf4775e","unresolved":false,"context_lines":[{"line_number":15,"context_line":"* https://review.opendev.org/c/openstack/skyline-apiserver/+/941715"},{"line_number":16,"context_line":"* https://bugs.launchpad.net/skyline-apiserver/+bug/1951437"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I597c8f1f609580cfc8c29efbc79ada312e667441"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"44d5c29f_e3ffe6d1","line":18,"in_reply_to":"107fd12f_6a00a7f9","updated":"2026-03-16 10:24:01.000000000","message":"Done","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"31c83b3f0e9983954f03962ff23016529e63e3d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df354476_127503bd","updated":"2025-07-01 11:06:11.000000000","message":"Agree. Lack of reno, otherwise LGTM.","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":34034,"name":"Franciszek Przewoźny","display_name":"Franciszek Przewozny","email":"przewozny.franciszek@gmail.com","username":"fprzewozn","status":"OpenStack Engineer / SRE @ Opera Software"},"change_message_id":"d0511e1895b54e0bbe029af0cb3b1b9edf82b168","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"40621385_1dc25dcc","updated":"2026-03-11 08:10:01.000000000","message":"Hey @berendt@osism.tech, are you working on this? Or may I take it over? Also @frickler@offenerstapel.de it\u0027s a bugfix also for 2025.1 (https://bugs.launchpad.net/kolla-ansible/+bug/2091935) so IMO we should backport this once finished.","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"a2566e152accd074b9aa040f11087ce169ca0c71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"26ca8324_8404979c","updated":"2026-01-14 17:52:36.000000000","message":"Short Version - not tested\n\ndaemon off;\nworker_processes auto;\npid /run/nginx.pid;\ninclude /etc/nginx/modules-enabled/*.conf;\nevents {\n    worker_connections 1024;\n    multi_accept on;\n}\nhttp {\n    ##\n    # Basic Settings\n    ##\n    sendfile on;\n    tcp_nopush on;\n    tcp_nodelay on;\n    client_max_body_size 0;\n    types_hash_max_size 2048;\n    proxy_request_buffering off;\n    server_tokens off;\n    # server_names_hash_bucket_size 64;\n    # server_name_in_redirect off;\n    include /etc/nginx/mime.types;\n    default_type application/octet-stream;\n    {% if skyline_ssl_certfile and skyline_ssl_keyfile %}\n    ##\n    # SSL Settings\n    ##\n    ssl_protocols TLSv1.2 TLSv1.3;\n    ssl_prefer_server_ciphers on;\n    # Self signed certs generated by the ssl-cert package\n    # Don\u0027t use them in a production server!\n    ssl_certificate {{ skyline_ssl_certfile }};\n    ssl_certificate_key {{ skyline_ssl_keyfile }};\n    {% endif %}\n\n    ##\n    # SSL Settings DEFINED ONCE HERE!!!\n    ##\n    {% if internal_protocol \u003d\u003d \u0027https\u0027 %}\n    proxy_ssl_protocols TLSv1.2 TLSv1.3;\n    proxy_ssl_server_name on;\n    {% endif %}\n\n    ##\n    # Logging Settings\n    ##\n    log_format main \u0027$remote_addr - $remote_user [$time_local] \"$request_time\" \u0027\n                    \u0027\"$upstream_response_time\" \"$request\" \u0027\n                    \u0027$status $body_bytes_sent \"$http_referer\" \u0027\n                    \u0027\"$http_user_agent\" \"$http_x_forwarded_for\"\u0027;\n    access_log {{ log_dir | default(\u0027/var/log/skyline\u0027) }}/skyline-nginx-access.log main;\n    error_log {{ log_dir | default(\u0027/var/log/skyline\u0027) }}/skyline-nginx-error.log;\n    ##\n    # Gzip Settings\n    ##\n    gzip on;\n    gzip_static on;\n    #### I\u0027m not sure, but I don\u0027t think it\u0027s necessary ####\n    gzip_disable \"msie6\";\n    gzip_vary on;\n    gzip_proxied any;\n    gzip_comp_level 6;\n    gzip_buffers 16 8k;\n    # gzip_http_version 1.1;\n    #### END: I\u0027m not sure, but I don\u0027t think it\u0027s necessary ####\n    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;\n    ##\n    # Virtual Host Configs\n    ##\n    server {\n        listen {{ api_interface_address | put_address_in_context(\u0027url\u0027) }}:{{ skyline_console_listen_port }}{% if skyline_ssl_certfile and skyline_ssl_keyfile %} ssl http2{% endif %} default_server;\n        root /var/lib/kolla/venv/lib/python{{ distro_python_version }}/site-packages/skyline_console/static;\n        # Add index.php to the list if you are using PHP\n        index index.html;\n        server_name _;\n        error_page 497 https://$http_host$request_uri;\n        location / {\n            # First attempt to serve request as file, then\n            # as directory, then fall back to displaying a 404.\n            try_files $uri $uri/ /index.html;\n            expires 1d;\n            add_header Cache-Control \"public\";\n        }\n\n        # Shared Proxy Headers DEFINED ONCE HERE!!!\n    proxy_buffering off;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_set_header X-Forwarded-Host $host;\n        proxy_set_header Host $http_host;\n\n        # Service: skyline\n        location {{ skyline_nginx_prefix }}/skyline/ {\n            proxy_pass {{ internal_protocol }}://{{ skyline_apiserver_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ skyline_apiserver_port }}/;\n            proxy_redirect {{ internal_protocol }}://{{ skyline_apiserver_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ skyline_apiserver_port }}/ {{ skyline_nginx_prefix }}/skyline/;\n        }\n\n        {% set services \u003d [\n            {\u0027enable\u0027: enable_keystone, \u0027name\u0027: \u0027keystone\u0027, \u0027fqdn\u0027: keystone_internal_fqdn, \u0027port\u0027: keystone_internal_port},\n            {\u0027enable\u0027: enable_glance, \u0027name\u0027: \u0027glance\u0027, \u0027fqdn\u0027: kolla_internal_fqdn, \u0027port\u0027: glance_api_port},\n            {\u0027enable\u0027: enable_neutron, \u0027name\u0027: \u0027neutron\u0027, \u0027fqdn\u0027: neutron_internal_fqdn, \u0027port\u0027: neutron_server_port},\n            {\u0027enable\u0027: enable_nova, \u0027name\u0027: \u0027nova\u0027, \u0027fqdn\u0027: nova_internal_fqdn, \u0027port\u0027: nova_api_port},\n            {\u0027enable\u0027: enable_placement, \u0027name\u0027: \u0027placement\u0027, \u0027fqdn\u0027: placement_internal_fqdn, \u0027port\u0027: placement_api_port},\n            {\u0027enable\u0027: enable_cinder, \u0027name\u0027: \u0027cinder\u0027, \u0027fqdn\u0027: cinder_internal_fqdn, \u0027port\u0027: cinder_api_port},\n            {\u0027enable\u0027: enable_heat, \u0027name\u0027: \u0027heat\u0027, \u0027fqdn\u0027: heat_internal_fqdn, \u0027port\u0027: heat_api_port},\n            {\u0027enable\u0027: enable_octavia, \u0027name\u0027: \u0027octavia\u0027, \u0027fqdn\u0027: octavia_internal_fqdn, \u0027port\u0027: octavia_api_port},\n            {\u0027enable\u0027: enable_ironic, \u0027name\u0027: \u0027ironic\u0027, \u0027fqdn\u0027: ironic_internal_fqdn, \u0027port\u0027: ironic_api_port}\n        ] %}\n\n        {% for s in services %}\n        {% if s.enable | bool %}\n        location {{ skyline_nginx_prefix }}/{{ openstack_region_name | lower }}/{{ s.name }} {\n            proxy_pass {{ internal_protocol }}://{{ s.fqdn | put_address_in_context(\u0027url\u0027) }}:{{ s.port }}/;\n            proxy_redirect {{ internal_protocol }}://{{ s.fqdn | put_address_in_context(\u0027url\u0027) }}:{{ s.port }}/ {{ skyline_nginx_prefix }}/{{ openstack_region_name | lower }}/{{ s.name }}/;\n        }\n        {% endif %}\n        {% endfor %}\n\n        # Special cases (Swift/RGW)\n        {% if enable_ceph_rgw | bool %}\n        location {{ skyline_nginx_prefix }}/{{ openstack_region_name | lower }}/swift {\n            proxy_pass {{ internal_protocol }}://{{ ceph_rgw_internal_fqdn }}:{{ ceph_rgw_port }}/{{ \u0027swift\u0027 if not ceph_rgw_swift_compatibility | bool }};\n            proxy_redirect {{ internal_protocol }}://{{ ceph_rgw_internal_fqdn }}:{{ ceph_rgw_port }}/{{ \u0027swift\u0027 if not ceph_rgw_swift_compatibility | bool }} {{ skyline_nginx_prefix }}/{{ openstack_region_name | lower }}/swift/;\n        }\n        {% endif %}\n    }\n}","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"14eb3fef5b785712aae787875c43bd8796ea8fa8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"13fd67b1_ba8ffba0","updated":"2025-07-04 00:20:06.000000000","message":"Shouldn\u0027t be this backported ...looks like a bug ...","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"892bbaf0248658c79480027303d8da0c80972446","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3363f188_734fedf3","updated":"2026-01-14 17:44:28.000000000","message":"While the fix is correct in principle, the implementation is very redundant. Nginx allows proxy_ssl directives to be inherited from the http or server blocks.\n\nInstead of repeating these lines in every location block, we can define them once inside the http block:\n\n{% if internal_protocol \u003d\u003d \u0027https\u0027 %}\nproxy_ssl_protocols TLSv1.2 TLSv1.3;\nproxy_ssl_server_name on;\n{% endif %}\n\nThis would significantly clean up the template, reduce its size, and make it much easier to maintain in the future.","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"ffba48d6075cb38e233def328572fbe4224d524f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a6ce50c9_3556e9ba","updated":"2026-01-14 17:55:29.000000000","message":"https://paste.opendev.org/show/bYhaDy3Ro9g4KrqA2M9f/","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"ca9dd9ef6102e827cdaa2588276331e57b297528","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a74d9045_c74f3505","updated":"2025-07-01 10:48:35.000000000","message":"this just copies what skyline does for their own deployment, so I assume that this is fine without checking the nginx parameters in detail.\n\nif this is to be backported, a short reno and maybe changing the bug link to a standard \"Related-Bug:\" footer would be better?","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":34034,"name":"Franciszek Przewoźny","display_name":"Franciszek Przewozny","email":"przewozny.franciszek@gmail.com","username":"fprzewozn","status":"OpenStack Engineer / SRE @ Opera Software"},"change_message_id":"46b90649c16b6c7dfd5be66d5347d268b92799f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"18f109e4_baeda6f8","updated":"2026-03-13 10:29:37.000000000","message":"@frickler@offenerstapel.de please consider this as a backport candidate","commit_id":"6e7475b6b9440d82f9c14b0c72c99ec0d9d02c6a"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"5b756cb7a0e7b252262ef71631f69d1153dbab0b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1ef6d170_a158ca73","in_reply_to":"18f109e4_baeda6f8","updated":"2026-03-16 10:11:24.000000000","message":"you\u0027d still want to set \"Closes-Bug: #2091935\" in the commit message for that instead of \"Related-Bug: #2091935\", but then I\u0027m fine with backporting","commit_id":"6e7475b6b9440d82f9c14b0c72c99ec0d9d02c6a"},{"author":{"_account_id":34034,"name":"Franciszek Przewoźny","display_name":"Franciszek Przewozny","email":"przewozny.franciszek@gmail.com","username":"fprzewozn","status":"OpenStack Engineer / SRE @ Opera Software"},"change_message_id":"ecf52dd35451f90c2cbd1e590aebb22be02a6f09","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5afd5db2_33809b9f","in_reply_to":"1ef6d170_a158ca73","updated":"2026-03-16 10:18:16.000000000","message":"Correct! Changed just now, thanks!","commit_id":"6e7475b6b9440d82f9c14b0c72c99ec0d9d02c6a"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"026967944d63a5a650ab953faa3295df6cf4775e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"52e3f3f9_c0912efd","updated":"2026-03-16 10:24:01.000000000","message":"Merging given previous +2","commit_id":"edfe2817603bb423ce644807a35e1f232fa95aa9"}],"ansible/roles/skyline/templates/nginx.conf.j2":[{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"696ac804f9f9ba18afc582d88fd6e8b0a970c016","unresolved":true,"context_lines":[{"line_number":94,"context_line":"            proxy_set_header X-Forwarded-Proto $scheme;"},{"line_number":95,"context_line":"            proxy_set_header X-Forwarded-Host $host;"},{"line_number":96,"context_line":"            proxy_set_header Host $http_host;"},{"line_number":97,"context_line":"            {% if internal_protocol \u003d\u003d \u0027https\u0027 %}"},{"line_number":98,"context_line":"            proxy_ssl_protocols TLSv1.2 TLSv1.3;"},{"line_number":99,"context_line":"            proxy_ssl_server_name on;"},{"line_number":100,"context_line":"            {% endif %}"},{"line_number":101,"context_line":"        }"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        {% if enable_keystone | bool %}# Region: {{ openstack_region_name }}, Service: keystone"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"36d5921e_ac0847d6","line":100,"range":{"start_line":97,"start_character":12,"end_line":100,"end_character":23},"updated":"2026-01-15 09:56:43.000000000","message":"This is very repetitive. Why not put these directives in the server section if it\u0027s common to all locations anyways ?\n\nOr use a macro ?","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"8ea19016f6f401d1e598fc61c7e398b5d3e23f70","unresolved":true,"context_lines":[{"line_number":94,"context_line":"            proxy_set_header X-Forwarded-Proto $scheme;"},{"line_number":95,"context_line":"            proxy_set_header X-Forwarded-Host $host;"},{"line_number":96,"context_line":"            proxy_set_header Host $http_host;"},{"line_number":97,"context_line":"            {% if internal_protocol \u003d\u003d \u0027https\u0027 %}"},{"line_number":98,"context_line":"            proxy_ssl_protocols TLSv1.2 TLSv1.3;"},{"line_number":99,"context_line":"            proxy_ssl_server_name on;"},{"line_number":100,"context_line":"            {% endif %}"},{"line_number":101,"context_line":"        }"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        {% if enable_keystone | bool %}# Region: {{ openstack_region_name }}, Service: keystone"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"66391756_0d69f0e4","line":100,"range":{"start_line":97,"start_character":12,"end_line":100,"end_character":23},"in_reply_to":"35929f63_a9f132ff","updated":"2026-01-15 15:24:45.000000000","message":"Acknowledged","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"02d92a3a49a881a637e1a6111f4e506b8d9569ec","unresolved":true,"context_lines":[{"line_number":94,"context_line":"            proxy_set_header X-Forwarded-Proto $scheme;"},{"line_number":95,"context_line":"            proxy_set_header X-Forwarded-Host $host;"},{"line_number":96,"context_line":"            proxy_set_header Host $http_host;"},{"line_number":97,"context_line":"            {% if internal_protocol \u003d\u003d \u0027https\u0027 %}"},{"line_number":98,"context_line":"            proxy_ssl_protocols TLSv1.2 TLSv1.3;"},{"line_number":99,"context_line":"            proxy_ssl_server_name on;"},{"line_number":100,"context_line":"            {% endif %}"},{"line_number":101,"context_line":"        }"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        {% if enable_keystone | bool %}# Region: {{ openstack_region_name }}, Service: keystone"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"35929f63_a9f132ff","line":100,"range":{"start_line":97,"start_character":12,"end_line":100,"end_character":23},"in_reply_to":"36d5921e_ac0847d6","updated":"2026-01-15 10:30:06.000000000","message":"previous comment :)\n\nhttps://paste.opendev.org/show/bYhaDy3Ro9g4KrqA2M9f/","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"5b756cb7a0e7b252262ef71631f69d1153dbab0b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            proxy_set_header X-Forwarded-Proto $scheme;"},{"line_number":95,"context_line":"            proxy_set_header X-Forwarded-Host $host;"},{"line_number":96,"context_line":"            proxy_set_header Host $http_host;"},{"line_number":97,"context_line":"            {% if internal_protocol \u003d\u003d \u0027https\u0027 %}"},{"line_number":98,"context_line":"            proxy_ssl_protocols TLSv1.2 TLSv1.3;"},{"line_number":99,"context_line":"            proxy_ssl_server_name on;"},{"line_number":100,"context_line":"            {% endif %}"},{"line_number":101,"context_line":"        }"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        {% if enable_keystone | bool %}# Region: {{ openstack_region_name }}, Service: keystone"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"271cc999_fdd67fd3","line":100,"range":{"start_line":97,"start_character":12,"end_line":100,"end_character":23},"in_reply_to":"66391756_0d69f0e4","updated":"2026-03-16 10:11:24.000000000","message":"Done","commit_id":"c93b39fb69b8d4385cfc25208a26f96f80e21582"}]}
