)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e5fd97e425f583193eb2351281cf985e0e54ca5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6274ab5e_95c03123","updated":"2022-05-10 16:41:50.000000000","message":"Addresses the nit and formatting mistakes, question outstanding to Michael, see previous PS comments.","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"676cdccacfb18839a615a9b05c459c912869399d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"40a5c26e_18738f31","updated":"2022-05-10 12:30:51.000000000","message":"I have a question about dependency on cloud-init","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"dcad4657ddd64a3dc1af00f05c81fea9de35b40d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c52879de_b998bcad","updated":"2022-05-10 12:35:25.000000000","message":"also there is a syntax error in the json example","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a61f42a3d0e4ba3d8c70bbadd88146a194caea9b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0d24b5a7_29505fe6","updated":"2022-05-10 14:28:28.000000000","message":"so ill summerise my toughts here.\n\ntoo adreess the orginal customers usecase we likely need to implement the alterniitve\nwhich is to add a domain parmater to the server create api.\n\nthis would be similar to the host name paramater.\n\nif --domain was passed we woudl append that to the instance.host name and update the public_hostname, local_hostname and hostname values to f\u0027{instnace.hostname}.{instance.domain}\u0027\n\nin addtion to that if the neutron port_dns_domain extesion is enabled\nfor each nova create port we would set the port_dns_domain to the instance.domain.\n\nthis would have the effect fo configuritn the domain pass by dhcp to match that pass to nova\nand when designate is used it would also update dns with the A and AAAA records.\n\nfinally the metadata updates in the current spec could still be done to provide acces to the per port dns info to the guest so it can be consumed by applciation that utilise this infor when dpeloy on aws makeing porting to openstack simpler.\n\n","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"552acab8b856a0350cfca1fe4253dfb8932d78d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"172d9f3c_ef29ef07","updated":"2022-07-05 09:19:31.000000000","message":"I think we miss some further effort to do on the EC2 metadata API in order to have the domain information in the metadata.","commit_id":"4587ae82e8aa1e85a466f465b1fb668dc5069260"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"99911aaf00f33f2bfdea59723cbfc945366553a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4c71caca_bef8e17b","updated":"2022-05-10 17:37:06.000000000","message":"Thanks for fixing the syntax, the doc generates cleanly now. Let\u0027s wait for some feedback from the customer about the use case","commit_id":"4587ae82e8aa1e85a466f465b1fb668dc5069260"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"68d17b0d58cc6bf064baa7058bc0e49397723dce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b7a991e7_ae3ce181","updated":"2022-05-13 22:55:35.000000000","message":"Yes, we need guidance from customer","commit_id":"4587ae82e8aa1e85a466f465b1fb668dc5069260"}],"specs/zed/approved/domain-names-in-metadata.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"676cdccacfb18839a615a9b05c459c912869399d","unresolved":true,"context_lines":[{"line_number":23,"context_line":"domain name provided by DHCP. Cloud-init uses the Nova metadata API as an"},{"line_number":24,"context_line":"information source. An instance may have multiple ports, each belonging to a"},{"line_number":25,"context_line":"distinct network with a distinct ``dns_domain``. The purpose of this spec is to"},{"line_number":26,"context_line":"provides these domain names in the instance metadata."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Problem description"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3645b218_dcf237e2","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":8},"updated":"2022-05-10 12:30:51.000000000","message":"nit: provide","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"c8d0354e29a73d71adaf68311d54c44ebdc22e2e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"domain name provided by DHCP. Cloud-init uses the Nova metadata API as an"},{"line_number":24,"context_line":"information source. An instance may have multiple ports, each belonging to a"},{"line_number":25,"context_line":"distinct network with a distinct ``dns_domain``. The purpose of this spec is to"},{"line_number":26,"context_line":"provides these domain names in the instance metadata."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Problem description"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9848c4c1_3e40ca54","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":8},"in_reply_to":"3645b218_dcf237e2","updated":"2022-05-10 16:41:07.000000000","message":"Done","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"dcad4657ddd64a3dc1af00f05c81fea9de35b40d","unresolved":true,"context_lines":[{"line_number":97,"context_line":"        \"link\": \"tapcd9f6d46-4a\","},{"line_number":98,"context_line":"        \"network_id\": \"99e88329-f20d-4741-9593-25bf07847b16\","},{"line_number":99,"context_line":"        \"type\": \"ipv4_dhcp\","},{"line_number":100,"context_line":"        \"domain\": \"network-1.example.com"},{"line_number":101,"context_line":"      },"},{"line_number":102,"context_line":"      {"},{"line_number":103,"context_line":"        \"id\": \"network-2\","}],"source_content_type":"text/x-rst","patch_set":1,"id":"38b3f57d_001533f4","line":100,"range":{"start_line":100,"start_character":39,"end_line":100,"end_character":40},"updated":"2022-05-10 12:35:25.000000000","message":"missing closing quote \"","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"c8d0354e29a73d71adaf68311d54c44ebdc22e2e","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        \"link\": \"tapcd9f6d46-4a\","},{"line_number":98,"context_line":"        \"network_id\": \"99e88329-f20d-4741-9593-25bf07847b16\","},{"line_number":99,"context_line":"        \"type\": \"ipv4_dhcp\","},{"line_number":100,"context_line":"        \"domain\": \"network-1.example.com"},{"line_number":101,"context_line":"      },"},{"line_number":102,"context_line":"      {"},{"line_number":103,"context_line":"        \"id\": \"network-2\","}],"source_content_type":"text/x-rst","patch_set":1,"id":"d8aa9f11_e5f531e2","line":100,"range":{"start_line":100,"start_character":39,"end_line":100,"end_character":40},"in_reply_to":"38b3f57d_001533f4","updated":"2022-05-10 16:41:07.000000000","message":"Done","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"dcad4657ddd64a3dc1af00f05c81fea9de35b40d","unresolved":true,"context_lines":[{"line_number":104,"context_line":"        \"link\": \"tapcd9f6d46-4b\","},{"line_number":105,"context_line":"        \"network_id\": \"99e88329-f20d-4741-9593-25bf07847b17\","},{"line_number":106,"context_line":"        \"type\": \"ipv4_dhcp\","},{"line_number":107,"context_line":"        \"domain\": \"network-2.example.com"},{"line_number":108,"context_line":"      }"},{"line_number":109,"context_line":"    ]"},{"line_number":110,"context_line":"  }"}],"source_content_type":"text/x-rst","patch_set":1,"id":"684b814f_4c24a724","line":107,"range":{"start_line":107,"start_character":39,"end_line":107,"end_character":40},"updated":"2022-05-10 12:35:25.000000000","message":"ditto","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"c8d0354e29a73d71adaf68311d54c44ebdc22e2e","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        \"link\": \"tapcd9f6d46-4b\","},{"line_number":105,"context_line":"        \"network_id\": \"99e88329-f20d-4741-9593-25bf07847b17\","},{"line_number":106,"context_line":"        \"type\": \"ipv4_dhcp\","},{"line_number":107,"context_line":"        \"domain\": \"network-2.example.com"},{"line_number":108,"context_line":"      }"},{"line_number":109,"context_line":"    ]"},{"line_number":110,"context_line":"  }"}],"source_content_type":"text/x-rst","patch_set":1,"id":"2c48202f_45965c30","line":107,"range":{"start_line":107,"start_character":39,"end_line":107,"end_character":40},"in_reply_to":"684b814f_4c24a724","updated":"2022-05-10 16:41:07.000000000","message":"Done","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"22c0b00a75d53d288ae21a30c8fa7fbb81707d49","unresolved":true,"context_lines":[{"line_number":120,"context_line":"In such cases, there is no eminently correct way to decide which network\u0027s"},{"line_number":121,"context_line":"``dns_domain`` should be used."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"As a complement to this operator-focused spec, a more user-facing enhancement"},{"line_number":124,"context_line":"would be add a ``domain`` parameter to the instance boot POST request. It could"},{"line_number":125,"context_line":"then be exposed in the metadata API, either by reusing the existing"},{"line_number":126,"context_line":"``hostname`` field and setting the value to an FQDN, or by introducing a new"},{"line_number":127,"context_line":"``domain`` or ``fqdn`` field. The EC2 schema already includes the"},{"line_number":128,"context_line":"``public-hostname`` category for exactly this purpose [3]."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Data model impact"},{"line_number":131,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a4cc4f1_5118e920","line":128,"range":{"start_line":123,"start_character":0,"end_line":128,"end_character":58},"updated":"2022-05-07 15:27:23.000000000","message":"yep so this alternitive is not mutally exclusive with the current proposal so we could in fact also do this in the future if peopel wanted.\n\nthe current approch is intentally trying to avoid a nova api change by providing addtional metadata that can be consumed vs this alternitive which would intoduce a new api microversion for the new domain parmater and require changes to the instance object to store the domain (likely in instance_system_metadata to avoid db schema change) in addtion to change to the metadata api and or interactions with neutron (setting the domain on the port to propagate it to desginate if avaiable.)\n\nso the alternitive is a much more invovled change then the simplifed approch in the current proposal.","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"552acab8b856a0350cfca1fe4253dfb8932d78d0","unresolved":true,"context_lines":[{"line_number":120,"context_line":"In such cases, there is no eminently correct way to decide which network\u0027s"},{"line_number":121,"context_line":"``dns_domain`` should be used."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"As a complement to this operator-focused spec, a more user-facing enhancement"},{"line_number":124,"context_line":"would be add a ``domain`` parameter to the instance boot POST request. It could"},{"line_number":125,"context_line":"then be exposed in the metadata API, either by reusing the existing"},{"line_number":126,"context_line":"``hostname`` field and setting the value to an FQDN, or by introducing a new"},{"line_number":127,"context_line":"``domain`` or ``fqdn`` field. The EC2 schema already includes the"},{"line_number":128,"context_line":"``public-hostname`` category for exactly this purpose [3]."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Data model impact"},{"line_number":131,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"170119fc_54cd315d","line":128,"range":{"start_line":123,"start_character":0,"end_line":128,"end_character":58},"in_reply_to":"3a4cc4f1_5118e920","updated":"2022-07-05 09:19:31.000000000","message":"Agreed, nothing prevents Nova to modify its /servers API endpoint to have a new parameter, this is just a matter of time constraints and resources.\n\nAlso, given Neutron will have ``dns_domain``, this seems a better approach to use provider networks first.","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"676cdccacfb18839a615a9b05c459c912869399d","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"d0b70ce4_ba30afd9","line":209,"updated":"2022-05-10 12:30:51.000000000","message":"Does cloud-init already supports both the new EC2 key and the new OpenStack key? What exactly cloud-init will do if it sees two FQDNs in the metadata? Will add both to the /etc/hosts of the guest?","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"84a2f2325f63741e59d62dbe85a6088bb6a2dd41","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"6f5efea7_9b9630a8","line":209,"in_reply_to":"00015403_c56c3908","updated":"2022-05-10 16:23:02.000000000","message":"ack \n\nhostname: www\ndomain: example.com\n\ninstance-data\nhostname: www\nfqdn: www.example.com\n\n\nis what i was orginally hoping for by the way\ni could not find where this was actully being used.\n\nso i was using the example instance metadata as a reference.","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"ea53cfaba2fe1d968b5f64c92ce35143d06d4c87","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"063aa918_d6ccc83f","line":209,"in_reply_to":"023ddaaa_95799418","updated":"2022-05-10 17:14:13.000000000","message":"Yeah, going backwards from the neutron configurations on instances with multiple ports is basically undefined. There is no way to know which port would be the \"authoritative\" port to use in host name settings in the guest.\n\nI think it is best to ask the user what fqdn they want configured inside the guest.\nTypically these are used for software licenses(satellite for example), etc. and may have little bearing on the \"external\" or port level DNS view.\nThen you can pass this information to neutron and let the precedent rules in the neutron extensions decide which settings are used for the ports.","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"3a4c6d27e6addbc50209d26c5d53a533ff8d42f1","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"6a4f4ff1_ea3df2de","line":209,"in_reply_to":"063aa918_d6ccc83f","updated":"2022-05-10 17:20:37.000000000","message":"OK, we really need input from the original operator here, then.\n\nUnless we hack something like \"do all ports/networks have the same dns_domain --\u003e set that in metadata\", I\u0027m not sure passing --domain at instance creating time will help them. That would require them to instruct all their tenants to pass that option, and I\u0027m not sure how much control they have over their tenants. In addition, they wanted to run on stable/wallaby for a long time, and obviously a new API param in the form of --domain cannot be backported.","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"8921c6f36bdb03a969cbcee9431fb0280eee0f04","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff1012cd_84916ea9","line":209,"in_reply_to":"0fc490b4_382a91ac","updated":"2022-05-10 16:01:37.000000000","message":"Sean, I think you are looking in the wrong place in the cloud-init docs. That example may be out of date as well.\nAs you can see in the example you linked, all three hostnames are fqdn.\n\nTo address the customer issue we have been discussing, you need to refer to the set_hostname module docs. These are global settings, not per-nic (the per-interface settings are really only used to populate DHCP requests if I remember correctly)\n\nSo, if nova allowed a fqdn in the hostname field the instance data would look like:\nnova\nhostname: www.example.com\ninstance-data\nhostname: www.example.com (cloud-init will just \"do the right thing\")\nor\nhostname: www\nfqdn: www.example.com\n\nif you go down the path of adding a domain field:\nnova\nhostname: www\ndomain: example.com\ninstance-data\nhostname: www\nfqdn: www.example.com\n\n\nLooking at the cloud-init code, I don\u0027t think local_hostname nor public_hostname are used by any of the built in modules anymore. It all uses hostname and fqdn now.","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"ef384968f62ef5fbeef759455b850a43449ade21","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"caf2d2e9_e9b60c16","line":209,"in_reply_to":"6a4f4ff1_ea3df2de","updated":"2022-05-10 18:04:04.000000000","message":"If you can set the \"fqdn\" or a fqdn for the \"hostname\" in the instance data, cloud-init will automatically setup the guest as the customer required.\n\nYeah, the new --domain param is problematic for API/backports.\n\nI still think the best solution (which happens to be backward compatible) is to loosen the restrictions on the existing hostname field to allow FQDN. Pass that through to the \"hostname\" in the instance data (I think nova already does) and the problem is solved.\n\nAs for the ports in neutron, do the standard entity split on the FQDN (first .) to pass a dns_name and dns_domain to the neutron extensions.","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"c8d0354e29a73d71adaf68311d54c44ebdc22e2e","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"de12f1ec_af42ba73","line":209,"in_reply_to":"6f5efea7_9b9630a8","updated":"2022-05-10 16:41:07.000000000","message":"Thanks for the pointers Michael. This all raises the obvious question: what happens when multiple ports have different `dns_domain` value? How does Nova decide which unique hostname/fqdn to expose in the metadata?","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3bb94095e169d7622db78dae0eae14a96b6d7e73","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e6e9c022_3b37a794","line":209,"in_reply_to":"caf2d2e9_e9b60c16","updated":"2022-05-11 09:28:18.000000000","message":"we are not going to backport this anyway at least not upstream and if we do it downstream it will be only if there is no default change in the behavior. i am not currenly ok with backporting this downstream if we change the content of hostname. we should ignore the stable/wallaby aspect fo this and implement the correct solution on master.\n\nif we loosen the restriction on hostname then it will break the designate integration. so yes we would need to split the hostname and pass dns_name and dns_domain to neutron but not all neutorn deploymet have the port_dns_domain extension that allows us to override the domain at the port level.\n\nso unless we only allow FQDN when https://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/definitions/dns_domain_ports.py\nis avaiable lossening is problematic. i could live with that i guess.\nit ssupported by ovn and ml2/ovs so most deployment would have that support.\n\nhttps://github.com/openstack/neutron/blob/2d1b4fd80f1317d741a6e29219e5a230513a4762/neutron/common/ovn/extensions.py#L96\u003d\n\nFQDNs would then be supported on any cloud whos network backend can have both a hostname and domain set on a per port basis.\n\nwe also still need to deal with numeric tlds if we relax the rule and  reject the boot request or normalise the hostname.\n\n@artom\nright now all there teants woudl have to pass the doamin name in the isntance name so the have the same amount of contol over that as passing --domain. i.e. 0 other then telling them too.","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9b24a9edd138a9d5d9da8f78c11cff6336f67786","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"0fc490b4_382a91ac","line":209,"in_reply_to":"d0b70ce4_ba30afd9","updated":"2022-05-10 12:47:09.000000000","message":"cloud-init was orginally writen for ec2 not openstack so i belive it does but\ni dont the exact behavior.\n\nthe examples they have are form AWS and they have  hostname local_hostname and plublic_hostname set. in the examples.\nsee https://cloudinit.readthedocs.io/en/latest/topics/instancedata.html#example-output\n\n\"hostname\": \"ip-172-31-81-43.ec2.internal\",\n\"local_hostname\": \"ip-172-31-81-43.ec2.internal\",\n\"public_hostname\": \"ec2-3-89-187-177.compute-1.amazonaws.com\",\n\nso i think hostname and local_hostname shoudl be set to the unqulaified hostname\nand plublic_hostname woudl be the FQDN\n\nto be extra complete we could also populate\n\n   \"services\": {\n    \"domain\": \"amazonaws.com\",\n}\n\n\nby the way if the dns_domain option was set in nova config technially i think it\nshoudl be\n\n\n\"hostname\": \"ip-172-31-81-43\",\n\"local_hostname\": \"ip-172-31-81-43.\u003cnova dns_domain\u003e\",\n\"public_hostname\": \"ec2-3-89-187-177.\u003cneutron domain\u003e\",","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e5a15de21ec20b161fe1fc9c3689b73ba4abae61","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"023ddaaa_95799418","line":209,"in_reply_to":"de12f1ec_af42ba73","updated":"2022-05-10 16:59:19.000000000","message":"i think this is only workable if we have a new api parmater.\n\nwe cant infer it form neutron unless there was only one port.\n\nif we want to set the fqdn a the top level i think we need to require the user to pass the domin explcitly.","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"e8da6c42c85e9eb9e1fcd9e26d559dfda07627bd","unresolved":true,"context_lines":[{"line_number":206,"context_line":"This is a related Neutron spec [2], but strictly speaking they are independant."},{"line_number":207,"context_line":"It is possible to expose domain name information in the metadata without also"},{"line_number":208,"context_line":"exposing it in DHCP."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Testing"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"00015403_c56c3908","line":209,"in_reply_to":"ff1012cd_84916ea9","updated":"2022-05-10 16:02:48.000000000","message":"Opps, forgot the link to the hostname module docs:\nhttps://cloudinit.readthedocs.io/en/latest/topics/modules.html#set-hostname","commit_id":"d9aef07c8e99361a4030fdd2b9134e93bbfef4b6"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"552acab8b856a0350cfca1fe4253dfb8932d78d0","unresolved":true,"context_lines":[{"line_number":44,"context_line":"Use Cases"},{"line_number":45,"context_line":"---------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"As a cloud operator, I have set the `dns_domain` name on my provider networks,"},{"line_number":48,"context_line":"and I want instances on those networks to be aware of the domain name(s) they"},{"line_number":49,"context_line":"belong to."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ce2bf350_9b8110ed","line":47,"range":{"start_line":47,"start_character":32,"end_line":47,"end_character":35},"updated":"2022-07-05 09:19:31.000000000","message":"nit: I have set *different* ``dns_domain`` values.\nIf you only have set the same value that spans across all networks, this is not a problem (but I\u0027m bikeshedding as I don\u0027t see why operators would care to set such option per-network if they didn\u0027t intented to have it different per network) ;-)","commit_id":"4587ae82e8aa1e85a466f465b1fb668dc5069260"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"552acab8b856a0350cfca1fe4253dfb8932d78d0","unresolved":true,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"EC2 metadata is presented as a hierarchy of \"categories\" [3], similar to a path"},{"line_number":63,"context_line":"on a filesystem, or a series of nested dicts, with each sub-category"},{"line_number":64,"context_line":"corresponding to a the nested keys. A category already exists for the"},{"line_number":65,"context_line":"instance\u0027s FQDN: ``network/interfaces/macs/\u003cmac\u003e/public-hostname``. This spec"},{"line_number":66,"context_line":"will populate this category with an FQDN constructed from the instance hostname"},{"line_number":67,"context_line":"and the network\u0027s ``dns_domain``. In JSON form, an example would look as"},{"line_number":68,"context_line":"follows."}],"source_content_type":"text/x-rst","patch_set":2,"id":"308fe824_3e8b37a0","line":65,"range":{"start_line":64,"start_character":36,"end_line":65,"end_character":66},"updated":"2022-07-05 09:19:31.000000000","message":"Well, maybe I\u0027m wrong but given we only support EC2 metadata version of 2009-04-04, I\u0027m afraid this field could be missing.\n\nLooking at https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html I see that network/interfaces/macs/mac/public-hostname is only provided with 2011-01-01 version.\n\nYou basically need then to support 2011-01-01 here : https://github.com/openstack/nova/blob/512fbdfa9933f2e9b48bcded537ffb394979b24b/nova/api/metadata/base.py#L236-L237","commit_id":"4587ae82e8aa1e85a466f465b1fb668dc5069260"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"68d17b0d58cc6bf064baa7058bc0e49397723dce","unresolved":true,"context_lines":[{"line_number":74,"context_line":"      \"interfaces\": {"},{"line_number":75,"context_line":"        \"macs\": {"},{"line_number":76,"context_line":"          \"00:dd:ee:dd:dd:00\": {"},{"line_number":77,"context_line":"            \"public_hostname\": \"instance.network-1.example.com\","},{"line_number":78,"context_line":"          },"},{"line_number":79,"context_line":"          \"00:dd:ee:dd:dd:01\": {"},{"line_number":80,"context_line":"            \"public_hostname\": \"instance.network-2.example.com\","}],"source_content_type":"text/x-rst","patch_set":2,"id":"5c178779_4e6ea23d","line":77,"range":{"start_line":77,"start_character":41,"end_line":77,"end_character":62},"updated":"2022-05-13 22:55:35.000000000","message":"This is the part of the FQDN comes from the network\u0027s dns_domain, right?","commit_id":"4587ae82e8aa1e85a466f465b1fb668dc5069260"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"552acab8b856a0350cfca1fe4253dfb8932d78d0","unresolved":true,"context_lines":[{"line_number":74,"context_line":"      \"interfaces\": {"},{"line_number":75,"context_line":"        \"macs\": {"},{"line_number":76,"context_line":"          \"00:dd:ee:dd:dd:00\": {"},{"line_number":77,"context_line":"            \"public_hostname\": \"instance.network-1.example.com\","},{"line_number":78,"context_line":"          },"},{"line_number":79,"context_line":"          \"00:dd:ee:dd:dd:01\": {"},{"line_number":80,"context_line":"            \"public_hostname\": \"instance.network-2.example.com\","}],"source_content_type":"text/x-rst","patch_set":2,"id":"a17dbdb6_278bc424","line":77,"range":{"start_line":77,"start_character":41,"end_line":77,"end_character":62},"in_reply_to":"56599a97_3fc470f5","updated":"2022-07-05 09:19:31.000000000","message":"I think Miguel wanted to clarify how we construct this FQDN, not how we fetch the value of dns_domain but I could be wrong.\n\nThis example is good but you could mention earlier on L68 the respective values of instance hostname and ``dns_domain`` to clarify.","commit_id":"4587ae82e8aa1e85a466f465b1fb668dc5069260"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1b04dff14d5fa4de7a433b64e1f3ea67cadfc94","unresolved":true,"context_lines":[{"line_number":74,"context_line":"      \"interfaces\": {"},{"line_number":75,"context_line":"        \"macs\": {"},{"line_number":76,"context_line":"          \"00:dd:ee:dd:dd:00\": {"},{"line_number":77,"context_line":"            \"public_hostname\": \"instance.network-1.example.com\","},{"line_number":78,"context_line":"          },"},{"line_number":79,"context_line":"          \"00:dd:ee:dd:dd:01\": {"},{"line_number":80,"context_line":"            \"public_hostname\": \"instance.network-2.example.com\","}],"source_content_type":"text/x-rst","patch_set":2,"id":"56599a97_3fc470f5","line":77,"range":{"start_line":77,"start_character":41,"end_line":77,"end_character":62},"in_reply_to":"5c178779_4e6ea23d","updated":"2022-05-17 15:51:55.000000000","message":"network or ports\n\nit should come form the port where it has been set on the port and fall back to the network if not set on port.","commit_id":"4587ae82e8aa1e85a466f465b1fb668dc5069260"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"552acab8b856a0350cfca1fe4253dfb8932d78d0","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    }"},{"line_number":85,"context_line":"  }"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"For the OpenStack metadata, the schema [4] will be extended to add a ``domain``"},{"line_number":88,"context_line":"key to the existing ``networks`` array in the network metadata. An example"},{"line_number":89,"context_line":"would look as follows."},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"e8b0a8b4_e6ec2217","line":87,"range":{"start_line":87,"start_character":28,"end_line":87,"end_character":60},"updated":"2022-07-05 09:19:31.000000000","message":"we\u0027ll then need to deliver a new version of the API thru a date stamp and clients will have to opt into it or use \u0027latest\u0027.\n\nPlease then mention you\u0027ll add a ZED version with value of \u00272022-10-05\u0027 (Zed release date)\n\nhttps://github.com/openstack/nova/blob/512fbdfa9933f2e9b48bcded537ffb394979b24b/nova/api/metadata/base.py#L75\n\nhttps://releases.openstack.org/zed/schedule.html#z-final","commit_id":"4587ae82e8aa1e85a466f465b1fb668dc5069260"}]}
