)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"01ef740798dfd328f624bfb8f9af434136ed50aa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3d496746_b4234ca7","updated":"2022-09-30 11:43:57.000000000","message":"Does\u0027nt all this need to match /etc/hosts ?\nAFICT the hosts[1] file is using NetHostMap[2]. And NetHostMap[3] uses the network.name converted to lowercase.\n\nI think using dns_domain would be better, but I belive this needs quite a bit more work.\n\n[1] https://opendev.org/openstack/tripleo-heat-templates/src/branch/master/puppet/role.role.j2.yaml#L395-L422\n[2] https://opendev.org/openstack/tripleo-heat-templates/src/branch/master/puppet/role.role.j2.yaml#L254\n[3] https://opendev.org/openstack/tripleo-heat-templates/src/branch/master/puppet/role.role.j2.yaml#L272","commit_id":"8baf3171ec961acc5b81b7fa6eeaab6446d915a5"},{"author":{"_account_id":34754,"name":"Cristian Le","email":"opendev@lecris.me","username":"lecris"},"change_message_id":"2ae95fe5c935adc0964ddd3d3e2c52b7767573ee","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b131193d_faf8a2fd","in_reply_to":"3d496746_b4234ca7","updated":"2022-09-30 13:42:44.000000000","message":"Yes, this patch as it is should handle these. As far as my deployment shows these are consistent using the dns_domain:\n- /etc/hosts\n- freeipa services\n- freeipa dns records (assuming they are sub-zones of the cloud_domain)\n- fqdn_$NETWORK\n\nThe last one was correctly using the dns_domain, while the others didn\u0027t","commit_id":"8baf3171ec961acc5b81b7fa6eeaab6446d915a5"}],"extraconfig/nova_metadata/krb-service-principals/role.role.j2.yaml":[{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"01ef740798dfd328f624bfb8f9af434136ed50aa","unresolved":true,"context_lines":[{"line_number":88,"context_line":"          expression: let(fqdns \u003d\u003e $.data.fqdns) -\u003e dict(coalesce($.data.metadata, []).where($ !\u003d null and $.type \u003d \u0027vip\u0027).select([concat(\u0027managed_service_\u0027, $.service, $.network), concat($.service, \u0027/\u0027, $fqdns.get($.network))]))"},{"line_number":89,"context_line":"          data:"},{"line_number":90,"context_line":"            metadata: {get_attr: [IncomingMetadataSettings, value]}"},{"line_number":91,"context_line":"            fqdns:"},{"line_number":92,"context_line":"{%- for network in networks if network.vip|default(false) and network.name in role.networks %}"},{"line_number":93,"context_line":"{%- if network.name \u003d\u003d \u0027External\u0027 %}"},{"line_number":94,"context_line":"              {{network.name_lower}}: {get_param: CloudName}"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"be1f7035_ec586d25","line":91,"range":{"start_line":91,"start_character":12,"end_line":91,"end_character":17},"updated":"2022-09-30 11:43:57.000000000","message":"If we change fqdns to use dns_domain in networks below we need to change it here as well?","commit_id":"8baf3171ec961acc5b81b7fa6eeaab6446d915a5"},{"author":{"_account_id":34754,"name":"Cristian Le","email":"opendev@lecris.me","username":"lecris"},"change_message_id":"499bb6496b52cd62a84721aacf6ac8052ec5be13","unresolved":false,"context_lines":[{"line_number":88,"context_line":"          expression: let(fqdns \u003d\u003e $.data.fqdns) -\u003e dict(coalesce($.data.metadata, []).where($ !\u003d null and $.type \u003d \u0027vip\u0027).select([concat(\u0027managed_service_\u0027, $.service, $.network), concat($.service, \u0027/\u0027, $fqdns.get($.network))]))"},{"line_number":89,"context_line":"          data:"},{"line_number":90,"context_line":"            metadata: {get_attr: [IncomingMetadataSettings, value]}"},{"line_number":91,"context_line":"            fqdns:"},{"line_number":92,"context_line":"{%- for network in networks if network.vip|default(false) and network.name in role.networks %}"},{"line_number":93,"context_line":"{%- if network.name \u003d\u003d \u0027External\u0027 %}"},{"line_number":94,"context_line":"              {{network.name_lower}}: {get_param: CloudName}"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"4f362326_46995e07","line":91,"range":{"start_line":91,"start_character":12,"end_line":91,"end_character":17},"in_reply_to":"5f985729_4c7e0b19","updated":"2022-10-06 14:52:15.000000000","message":"Maybe to clarify, the user might want CloudName to be separate from the network\u0027s dns_domain. For example external:\n```\nCloudName: openstack.example.com\nexternal_dns_domain: nodes.external.example.com\n```","commit_id":"8baf3171ec961acc5b81b7fa6eeaab6446d915a5"},{"author":{"_account_id":34754,"name":"Cristian Le","email":"opendev@lecris.me","username":"lecris"},"change_message_id":"2ae95fe5c935adc0964ddd3d3e2c52b7767573ee","unresolved":true,"context_lines":[{"line_number":88,"context_line":"          expression: let(fqdns \u003d\u003e $.data.fqdns) -\u003e dict(coalesce($.data.metadata, []).where($ !\u003d null and $.type \u003d \u0027vip\u0027).select([concat(\u0027managed_service_\u0027, $.service, $.network), concat($.service, \u0027/\u0027, $fqdns.get($.network))]))"},{"line_number":89,"context_line":"          data:"},{"line_number":90,"context_line":"            metadata: {get_attr: [IncomingMetadataSettings, value]}"},{"line_number":91,"context_line":"            fqdns:"},{"line_number":92,"context_line":"{%- for network in networks if network.vip|default(false) and network.name in role.networks %}"},{"line_number":93,"context_line":"{%- if network.name \u003d\u003d \u0027External\u0027 %}"},{"line_number":94,"context_line":"              {{network.name_lower}}: {get_param: CloudName}"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5f985729_4c7e0b19","line":91,"range":{"start_line":91,"start_character":12,"end_line":91,"end_character":17},"in_reply_to":"be1f7035_ec586d25","updated":"2022-09-30 13:42:44.000000000","message":"CloudName is for overcloud.internalapi.openstack.lab for example, which is a single entry, and should be constructed according to the user needs. These are already documented well enough in the TLS-e part, except for adding other networks like Provisioning","commit_id":"8baf3171ec961acc5b81b7fa6eeaab6446d915a5"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"01ef740798dfd328f624bfb8f9af434136ed50aa","unresolved":true,"context_lines":[{"line_number":111,"context_line":"          data:"},{"line_number":112,"context_line":"            metadata: {get_attr: [IncomingMetadataSettings, value]}"},{"line_number":113,"context_line":"            fqdns:"},{"line_number":114,"context_line":"{%- for network in networks if network.name \u003d\u003d \u0027ctlplane\u0027 or network.name in role.networks %}"},{"line_number":115,"context_line":"    {%- if network.dns_domain %}"},{"line_number":116,"context_line":"              {{ network.name_lower }}: {{ network.dns_domain|trim(\u0027.\u0027) }}"},{"line_number":117,"context_line":"    {%- else %}"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"95df9ac6_8d524457","line":114,"range":{"start_line":114,"start_character":48,"end_line":114,"end_character":56},"updated":"2022-09-30 11:43:57.000000000","message":"ctlplane is never in \u0027networks\u0027.\n\nctlplane is however always there, so you can handle it outside the for loop. See above on L103.","commit_id":"8baf3171ec961acc5b81b7fa6eeaab6446d915a5"},{"author":{"_account_id":34754,"name":"Cristian Le","email":"opendev@lecris.me","username":"lecris"},"change_message_id":"499bb6496b52cd62a84721aacf6ac8052ec5be13","unresolved":false,"context_lines":[{"line_number":111,"context_line":"          data:"},{"line_number":112,"context_line":"            metadata: {get_attr: [IncomingMetadataSettings, value]}"},{"line_number":113,"context_line":"            fqdns:"},{"line_number":114,"context_line":"{%- for network in networks if network.name \u003d\u003d \u0027ctlplane\u0027 or network.name in role.networks %}"},{"line_number":115,"context_line":"    {%- if network.dns_domain %}"},{"line_number":116,"context_line":"              {{ network.name_lower }}: {{ network.dns_domain|trim(\u0027.\u0027) }}"},{"line_number":117,"context_line":"    {%- else %}"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"66cb4826_2d286b5b","line":114,"range":{"start_line":114,"start_character":48,"end_line":114,"end_character":56},"in_reply_to":"61b08004_e45346db","updated":"2022-10-06 14:52:15.000000000","message":"Done","commit_id":"8baf3171ec961acc5b81b7fa6eeaab6446d915a5"},{"author":{"_account_id":34754,"name":"Cristian Le","email":"opendev@lecris.me","username":"lecris"},"change_message_id":"2ae95fe5c935adc0964ddd3d3e2c52b7767573ee","unresolved":true,"context_lines":[{"line_number":111,"context_line":"          data:"},{"line_number":112,"context_line":"            metadata: {get_attr: [IncomingMetadataSettings, value]}"},{"line_number":113,"context_line":"            fqdns:"},{"line_number":114,"context_line":"{%- for network in networks if network.name \u003d\u003d \u0027ctlplane\u0027 or network.name in role.networks %}"},{"line_number":115,"context_line":"    {%- if network.dns_domain %}"},{"line_number":116,"context_line":"              {{ network.name_lower }}: {{ network.dns_domain|trim(\u0027.\u0027) }}"},{"line_number":117,"context_line":"    {%- else %}"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"61b08004_e45346db","line":114,"range":{"start_line":114,"start_character":48,"end_line":114,"end_character":56},"in_reply_to":"95df9ac6_8d524457","updated":"2022-09-30 13:42:44.000000000","message":"Good point, forgot to remove that. It is handled on L125 below","commit_id":"8baf3171ec961acc5b81b7fa6eeaab6446d915a5"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"01ef740798dfd328f624bfb8f9af434136ed50aa","unresolved":true,"context_lines":[{"line_number":116,"context_line":"              {{ network.name_lower }}: {{ network.dns_domain|trim(\u0027.\u0027) }}"},{"line_number":117,"context_line":"    {%- else %}"},{"line_number":118,"context_line":"              {{ network.name_lower }}:"},{"line_number":119,"context_line":"                str_replace:"},{"line_number":120,"context_line":"                  template: {{ (network.name_lower|replace(\u0027_\u0027,\u0027\u0027)) + \u0027.$cloud_domain\u0027 }}"},{"line_number":121,"context_line":"                  params:"},{"line_number":122,"context_line":"                    $cloud_domain: { get_param: CloudDomain }"},{"line_number":123,"context_line":"    {%- endif %}"},{"line_number":124,"context_line":"{%- endfor %}"},{"line_number":125,"context_line":"              ctlplane: { get_param: [CtlplaneNetworkAttributes, network, dns_domain] }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"8a676086_ecf376fd","line":122,"range":{"start_line":119,"start_character":16,"end_line":122,"end_character":61},"updated":"2022-09-30 11:43:57.000000000","message":"What about {get_param: CloudName{{network.name}}}?\nThere are parameters to control the domain of the networks, i.e we cannot just assume it is derived from name_lower here.","commit_id":"8baf3171ec961acc5b81b7fa6eeaab6446d915a5"},{"author":{"_account_id":34754,"name":"Cristian Le","email":"opendev@lecris.me","username":"lecris"},"change_message_id":"2ae95fe5c935adc0964ddd3d3e2c52b7767573ee","unresolved":true,"context_lines":[{"line_number":116,"context_line":"              {{ network.name_lower }}: {{ network.dns_domain|trim(\u0027.\u0027) }}"},{"line_number":117,"context_line":"    {%- else %}"},{"line_number":118,"context_line":"              {{ network.name_lower }}:"},{"line_number":119,"context_line":"                str_replace:"},{"line_number":120,"context_line":"                  template: {{ (network.name_lower|replace(\u0027_\u0027,\u0027\u0027)) + \u0027.$cloud_domain\u0027 }}"},{"line_number":121,"context_line":"                  params:"},{"line_number":122,"context_line":"                    $cloud_domain: { get_param: CloudDomain }"},{"line_number":123,"context_line":"    {%- endif %}"},{"line_number":124,"context_line":"{%- endfor %}"},{"line_number":125,"context_line":"              ctlplane: { get_param: [CtlplaneNetworkAttributes, network, dns_domain] }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"dd63270c_49abe0a4","line":122,"range":{"start_line":119,"start_character":16,"end_line":122,"end_character":61},"in_reply_to":"8a676086_ecf376fd","updated":"2022-09-30 13:42:44.000000000","message":"CloudName includes `overcloud` hostname part which we don\u0027t want. If we can trim that out with heat, that would be ideal. Please let me know if it can be done, otherwise it is handled on the tripleo_ipa side.\n\n\u003e There are parameters to control the domain of the networks, i.e we cannot just assume it is derived from name_lower here.\n\nIndeed that\u0027s what this is trying to achieve. My assumption is that in order to customize this, the user has to use network.dns_domain. If there is a different way, let me know","commit_id":"8baf3171ec961acc5b81b7fa6eeaab6446d915a5"}]}
