Bug 2193161

Summary: Static metadata configuration fails with "Nova_config[api/vendordata_jsonfile_path] is already declared"
Product: Red Hat OpenStack Reporter: Eric Nothen <enothen>
Component: documentationAssignee: Joanne O'Flynn <joflynn>
Status: CLOSED CURRENTRELEASE QA Contact: RHOS Documentation Team <rhos-docs>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 16.1 (Train)CC: joflynn, smooney
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-06-29 15:28:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Eric Nothen 2023-05-04 14:04:31 UTC
Description of problem:

Static metadata configuration process, as documented in [0] [1] [2] does not work.

Version-Release number of selected component (if applicable):
16.1, 16.2, 17.0

How reproducible:
Always reproducible

Steps to Reproduce:
1. Configure static metadata as described in the documentation, step 9.3.3 in 16.1 doc [0]:

~~~
[stack.lab ~]$ cat templates/compute.yaml
parameter_defaults:
  ComputeExtraConfig:
    nova::config::nova_config:
      api/vendordata_jsonfile_path:
        value: '/home/stack/vendordata.json'
~~~

2. Deploy overcloud

Actual results:

Overcloud deployment fails with this error:

~~~
[stack.lab ~]$ sudo cat /var/lib/mistral/overcloud/ansible-errors.json | jq . | grep vendordata_jsonfile_path | tail -1
          "<13>May  4 12:34:09 puppet-user: Error: Evaluation Error: Error while evaluating a Resource Statement, Duplicate declaration: Nova_config[api/vendordata_jsonfile_path] is already declared at (file: /etc/puppet/modules/nova/manifests/config.pp, line: 40); cannot redeclare (file: /etc/puppet/modules/nova/manifests/vendordata.pp, line: 169) (file: /etc/puppet/modules/nova/manifests/vendordata.pp, line: 169, column: 3) on node overcloud-novacompute-4.keller.lab",
~~~

Expected results:

Overcloud deploy completes successfully with metadata service configured.


Additional info:

When using the following template instead, deployment completes without error:

~~~
[stack.lab ~]$ cat templates/compute.yaml
parameter_defaults:
  ComputeExtraConfig:
    nova::vendordata::vendordata_jsonfile_path: "/home/stack/vendordata.json"
~~~

I believe the documentation needs to be updated to show this block as an example instead of the current one.


[0] https://access.redhat.com/documentation/de-de/red_hat_openstack_platform/16.1/html/configuring_the_compute_service_for_instance_creation/assembly_adding-metadata-to-instances_instance-metadata#adding-static-metadata-to-instances-instance-metadata
[1] https://access.redhat.com/documentation/de-de/red_hat_openstack_platform/16.2/html/configuring_the_compute_service_for_instance_creation/assembly_adding-metadata-to-instances_instance-metadata#proc_adding-static-metadata-to-instances_instance-metadata
[2] https://access.redhat.com/documentation/de-de/red_hat_openstack_platform/17.0/html/configuring_the_compute_service_for_instance_creation/assembly_adding-metadata-to-instances_instance-metadata#proc_adding-static-metadata-to-instances_instance-metadata