[TripleO] Support of PTP in Openstack Train

Takashi Kajinami tkajinam at redhat.com
Tue May 10 15:44:45 UTC 2022


On Wed, May 11, 2022 at 12:19 AM Anirudh Gupta <anyrude10 at gmail.com> wrote:

> Hi Takashi,
>
> Thanks for your suggestion.
>
> I downloaded the updated Train Images and they had the ptp.pp file
> available on the overcloud and undercloud machines
>
> [root at overcloud-controller-1 /]# find . -name "ptp.pp"
>
> *./usr/share/openstack-puppet/modules/tripleo/manifests/profile/base/time/ptp.pp*
>
> With this, I re-executed the deployment and got the below error on the
> machines
>
> 2022-05-10 20:05:53.133423 | 5254001f-9952-0364-51a1-0000000030ce |
>  FATAL | Wait for puppet host configuration to finish |
> overcloud-controller-1 | error={"ansible_job_id": "321785316135.36755",
> "attempts": 3, "changed": true, "cmd": "set -o pipefail; puppet apply
>  --modulepath=/etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
> --detailed-exitcodes --summarize --color=false
> /var/lib/tripleo-config/puppet_step_config.pp 2>&1 | logger -s -t
> puppet-user", "delta": "0:00:04.279435", "end": "2022-05-10
> 20:05:41.355328", "failed_when_result": true, "finished": 1, "msg":
> "non-zero return code", "rc": 1, "start": "2022-05-10 20:05:37.075893",
> "stderr": "<13>May 10 20:05:37 puppet-user: Warning: The function 'hiera'
> is deprecated in favor of using 'lookup'. See
> https://puppet.com/docs/puppet/5.5/deprecated_language.html\\n   (file &
> line not available)\n<13>May 10 20:05:37 puppet-user: Warning:
> /etc/puppet/hiera.yaml: Use of 'hiera.yaml' version 3 is deprecated. It
> should be converted to version 5\n<13>May 10 20:05:37 puppet-user:
>  (file: /etc/puppet/hiera.yaml)\n<13>May 10 20:05:37 puppet-user: Warning:
> Undefined variable '::deploy_config_name'; \\n   (file & line not
> available)\n<13>May 10 20:05:37 puppet-user: Warning: ModuleLoader: module
> 'tripleo' has unresolved dependencies - it will only see those that are
> resolved. Use 'puppet module list --tree' to see information about
> modules\\n   (file & line not available)\n<13>May 10 20:05:37 puppet-user:
> Error: Evaluation Error: A substring operation does not accept a String as
> a character index. Expected an Integer (file:
> /etc/puppet/modules/tripleo/manifests/profile/base/time/ptp.pp, line: 41,
> column: 46) on node overcloud-controller-1.localdomain", "stderr_lines":
> ["<13>May 10 20:05:37 puppet-user: Warning: The function 'hiera' is
> deprecated in favor of using 'lookup'. See
> https://puppet.com/docs/puppet/5.5/deprecated_language.html\\n   (file &
> line not available)", "<13>May 10 20:05:37 puppet-user: Warning:
> /etc/puppet/hiera.yaml: Use of 'hiera.yaml' version 3 is deprecated. It
> should be converted to version 5", "<13>May 10 20:05:37 puppet-user:
>  (file: /etc/puppet/hiera.yaml)", "<13>May 10 20:05:37 puppet-user:
> Warning: Undefined variable '::deploy_config_name'; \\n   (file & line not
> available)", "<13>May 10 20:05:37 puppet-user: Warning: ModuleLoader:
> module 'tripleo' has unresolved dependencies - it will only see those that
> are resolved. Use 'puppet module list --tree' to see information about
> modules\\n   (file & line not available)", "<13>May 10 20:05:37
> puppet-user: *Error: Evaluation Error: A substring operation does not
> accept a String as a character index. Expected an Integer (file:
> /etc/puppet/modules/tripleo/manifests/profile/base/time/ptp.pp, line: 41,
> column: 46) *on node overcloud-controller-1.localdomain"], "stdout": "",
> "stdout_lines": []}
>
> The file */etc/puppet/modules/tripleo/manifests/profile/base/time/ptp.pp,
> line: 41, column: 46 *had the following code:
>  34 class tripleo::profile::base::time::ptp (
>      35   $ptp4l_interface                = 'eth0',
>      36   $ptp4l_conf_slaveonly           = 1,
>      37   $ptp4l_conf_network_transport   = 'UDPv4',
>      38 ) {
>      39
>      40   $interface_mapping = generate('/bin/os-net-config', '-i',
> $ptp4l_interface)
>      41   *$ptp4l_interface_name = $interface_mapping[$ptp4l_interface]*
>
>
> *"/usr/share/openstack-tripleo-heat-templates/environments/services/ptp.yaml"* file
> is as below:
>
> resource_registry:
>   # FIXME(bogdando): switch it, once it is containerized
>   OS::TripleO::Services::Ptp:
> ../../deployment/time/ptp-baremetal-puppet.yaml
>   OS::TripleO::Services::Timesync: OS::TripleO::Services::Ptp
>
> parameter_defaults:
>   # PTP hardware interface name
>   *PtpInterface: 'nic1'*
>
>   # Configure PTP clock in slave mode
>   PtpSlaveMode: 1
>
>   # Configure PTP message transport protocol
>   PtpMessageTransport: 'UDPv4'
>
> I have also tried modifying the entry as below:
>  *PtpInterface: 'nic1' #*(i.e. without quotes), but the error remains the
> same.
>
> Queries:
>
>    1. Any pointers to resolve this?
>
> I'm not familiar with ptp but you'd need to use the actual interface name
if you are not using the alias name.



>
>    1. You were mentioning something about the support of PTP not there in
>    the wallaby release. Can you please confirm?
>
> IIUC PTP is still supported even in master. What we removed is the
implementation using Puppet
which was replaced by ansible.

The warning regarding OS::TripleO::Services::Ptp was added when we decided
to merge
all time sync services to the single service resource which is
OS::TripleO::Services::Timesync[1].
It's related to how resources are defined in Heat and doesn't affect
configuration support itself.

[1] https://review.opendev.org/c/openstack/tripleo-heat-templates/+/586679



> It would be a great help if you could extend a little more support to
> resolve the issues.
>
> Regards
> Anirudh Gupta
>
>
> On Tue, May 10, 2022 at 6:07 PM Anirudh Gupta <anyrude10 at gmail.com> wrote:
>
>> I'll check that well.
>> By the way, I downloaded the images from the below link
>>
>> https://images.rdoproject.org/centos8/train/rdo_trunk/current-tripleo/
>>
>> They seem to be updated yesterday, I'll download and try the deployment
>> with the latest images.
>>
>> Also are you pointing that the support for PTP would not be there in
>> Wallaby Release?
>>
>> Regards
>> Anirudh Gupta
>>
>> On Tue, May 10, 2022 at 5:44 PM Takashi Kajinami <tkajinam at redhat.com>
>> wrote:
>>
>>>
>>> On Tue, May 10, 2022 at 8:57 PM Anirudh Gupta <anyrude10 at gmail.com>
>>> wrote:
>>>
>>>> Hi Takashi
>>>>
>>>> I have checked this in undercloud only.
>>>> I don't find any such file in overcloud. Could this be a concern?
>>>>
>>>
>>> The manifest should exist in overcloud nodes and the missing file is the
>>> exact cause
>>> of that puppet failure during deployment.
>>>
>>> Please check your overcloud images used to install overcloud nodes and
>>> ensure that
>>> you're using the right one. You might be using the image for a different
>>> release.
>>> We removed the manifest file during the Wallaby cycle.
>>>
>>>
>>>>
>>>> Regards
>>>> Anirudh Gupta
>>>>
>>>>
>>>>
>>>> On Tue, May 10, 2022 at 5:08 PM Takashi Kajinami <tkajinam at redhat.com>
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Tue, May 10, 2022 at 8:33 PM Takashi Kajinami <tkajinam at redhat.com>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, May 10, 2022 at 6:58 PM Anirudh Gupta <anyrude10 at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Takashi,
>>>>>>>
>>>>>>> Thanks for your reply.
>>>>>>>
>>>>>>> I have checked on my machine and the file "ptp.pp" do exist at path "
>>>>>>> *./usr/share/openstack-puppet/modules/tripleo/manifests/profile/base/time/ptp.pp*
>>>>>>> "
>>>>>>>
>>>>>> Did you check this in your undercloud or overcloud ?
>>>>>> During the deployment all configuration files are generated using
>>>>>> puppet modules
>>>>>> installed in overcloud nodes, so you should check this in overcloud
>>>>>> nodes.
>>>>>>
>>>>>> Also, the deprecation warning is not implemented
>>>>>>
>>>>> Ignore this incomplete line. I was looking for the implementation
>>>>> which shows the warning
>>>>> but I found it in tripleoclient and it looks reasonable according to
>>>>> what we have in
>>>>> environments/services/ptp.yaml .
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>> I tried putting OS::TripleO::Services::Ptp in my roles_data "*ServicesDefault"
>>>>>>> for controller and compute *before rendering the templates, but
>>>>>>> still I am getting the same issue on all the 3 Controllers and 1 Compute
>>>>>>>
>>>>>>
>>>>>> IIUC you don't need this because OS::TripleO::Services::Timesync
>>>>>> becomes an alias
>>>>>> to the Ptp service resource when you use the ptp environment file.
>>>>>>
>>>>>> https://github.com/openstack/tripleo-heat-templates/blob/stable/train/environments/services/ptp.yaml#L5-L6
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> *Error: Evaluation Error: Error while evaluating a Function Call,
>>>>>>> Could not find class ::tripleo::profile::base::time::ptp for
>>>>>>> overcloud-controller-0.localdomain (file:
>>>>>>> /var/lib/tripleo-config/puppet_step_config.pp, line: 41, column: 1) on node* overcloud-controller-0.localdomain"],
>>>>>>> "stdout": "", "stdout_lines": []}
>>>>>>>
>>>>>>> Can you suggest any workarounds or any pointers to look further in
>>>>>>> order to resolve this issue?
>>>>>>>
>>>>>>
>>>>>>> Regards
>>>>>>> Anirudh Gupta
>>>>>>>
>>>>>>>
>>>>>>> On Tue, May 10, 2022 at 2:18 PM Takashi Kajinami <
>>>>>>> tkajinam at redhat.com> wrote:
>>>>>>>
>>>>>>>> I'm not familiar with PTP, but the error you pasted indicates that
>>>>>>>> the required puppet manifest does not exist in your overcloud node/image.
>>>>>>>>
>>>>>>>> https://github.com/openstack/puppet-tripleo/blob/stable/train/manifests/profile/base/time/ptp.pp
>>>>>>>>
>>>>>>>> This should not happen and the class should exist as long as you
>>>>>>>> have puppet-tripleo from stable/train installed.
>>>>>>>>
>>>>>>>> I'd recommend you check installed tripleo/puppet packages and
>>>>>>>> ensure everything is in the consistent release.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, May 10, 2022 at 5:28 AM Anirudh Gupta <anyrude10 at gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi All
>>>>>>>>>
>>>>>>>>> Any update on this?
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>> Anirudh Gupta
>>>>>>>>>
>>>>>>>>> On Mon, 9 May, 2022, 17:21 Anirudh Gupta, <anyrude10 at gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Team,
>>>>>>>>>>
>>>>>>>>>> Is there any Support for PTP in Openstack TripleO ?
>>>>>>>>>>
>>>>>>>>>> When I was executing the Overcloud deployment script, passing the
>>>>>>>>>> PTP yaml, it gave the following option at the starting
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *service OS::TripleO::Services::Ptp is enabled in
>>>>>>>>>> /usr/share/openstack-tripleo-heat-templates/environments/services/ptp.yaml.
>>>>>>>>>> Deprecated in favour of OS::TripleO::Services::TimesyncDo you still wish to
>>>>>>>>>> continue with deployment [y/N]*
>>>>>>>>>>
>>>>>>>>>> even if passing Y, it starts executing for sometime and the gives
>>>>>>>>>> the following error
>>>>>>>>>>
>>>>>>>>>> *Error: Evaluation Error: Error while evaluating a Function Call,
>>>>>>>>>> Could not find class ::tripleo::profile::base::time::ptp for
>>>>>>>>>> overcloud-controller-0.localdomain (file:
>>>>>>>>>> /var/lib/tripleo-config/puppet_step_config.pp, line: 41, column: 1) on node* overcloud-controller-0.localdomain"],
>>>>>>>>>> "stdout": "", "stdout_lines": []}
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Can someone suggest some pointers in order to resolve this issue
>>>>>>>>>> and move forward?
>>>>>>>>>>
>>>>>>>>>> Regards
>>>>>>>>>> Anirudh Gupta
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Fri, May 6, 2022 at 3:50 PM Anirudh Gupta <anyrude10 at gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Team,
>>>>>>>>>>>
>>>>>>>>>>> I have installed Undercloud with Openstack Train Release
>>>>>>>>>>> successfully.
>>>>>>>>>>> I need to enable PTP service while deploying the overcloud for
>>>>>>>>>>> which I have included the service in my deployment
>>>>>>>>>>>
>>>>>>>>>>> openstack overcloud deploy --templates \
>>>>>>>>>>>     -n /home/stack/templates/network_data.yaml \
>>>>>>>>>>>     -r /home/stack/templates/roles_data.yaml \
>>>>>>>>>>>     -e /home/stack/templates/environment.yaml \
>>>>>>>>>>>     -e /home/stack/templates/environments/network-isolation.yaml
>>>>>>>>>>> \
>>>>>>>>>>>     -e
>>>>>>>>>>> /home/stack/templates/environments/network-environment.yaml \
>>>>>>>>>>>     -e
>>>>>>>>>>> /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-conductor.yaml
>>>>>>>>>>> \
>>>>>>>>>>>     -e
>>>>>>>>>>> /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-inspector.yaml
>>>>>>>>>>> \
>>>>>>>>>>>     -e
>>>>>>>>>>> /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-overcloud.yaml
>>>>>>>>>>> \
>>>>>>>>>>>    * -e
>>>>>>>>>>> /usr/share/openstack-tripleo-heat-templates/environments/services/ptp.yaml
>>>>>>>>>>> \*
>>>>>>>>>>>     -e /home/stack/templates/ironic-config.yaml \
>>>>>>>>>>>     -e
>>>>>>>>>>> /usr/share/openstack-tripleo-heat-templates/environments/docker-ha.yaml \
>>>>>>>>>>>     -e
>>>>>>>>>>> /usr/share/openstack-tripleo-heat-templates/environments/podman.yaml \
>>>>>>>>>>>     -e /home/stack/containers-prepare-parameter.yaml
>>>>>>>>>>>
>>>>>>>>>>> But it gives the following error
>>>>>>>>>>>
>>>>>>>>>>> 2022-05-06 11:30:10.707655 |
>>>>>>>>>>> 5254001f-9952-7fed-4a6d-000000002fde | FATAL | Wait for puppet host
>>>>>>>>>>> configuration to finish | overcloud-controller-0 | error={"ansible_job_id":
>>>>>>>>>>> "5188783868.37685", "attempts": 3, "changed": true, "cmd": "set -o
>>>>>>>>>>> pipefail; puppet apply
>>>>>>>>>>> --modulepath=/etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
>>>>>>>>>>> --detailed-exitcodes --summarize --color=false
>>>>>>>>>>> /var/lib/tripleo-config/puppet_step_config.pp 2>&1 | logger -s -t
>>>>>>>>>>> puppet-user", "delta": "0:00:04.440700", "end": "2022-05-06
>>>>>>>>>>> 11:30:12.685508", "failed_when_result": true, "finished": 1, "msg":
>>>>>>>>>>> "non-zero return code", "rc": 1, "start": "2022-05-06 11:30:08.244808",
>>>>>>>>>>> "stderr": "<13>May 6 11:30:08 puppet-user: Warning: The function 'hiera' is
>>>>>>>>>>> deprecated in favor of using 'lookup'. See
>>>>>>>>>>> https://puppet.com/docs/puppet/6.14/deprecated_language.html\n<13>May
>>>>>>>>>>> 6 11:30:08 puppet-user: (file & line not available)\n<13>May 6 11:30:08
>>>>>>>>>>> puppet-user: Warning: /etc/puppet/hiera.yaml: Use of 'hiera.yaml' version 3
>>>>>>>>>>> is deprecated. It should be converted to version 5\n<13>May 6 11:30:08
>>>>>>>>>>> puppet-user: (file: /etc/puppet/hiera.yaml)\n<13>May 6 11:30:08
>>>>>>>>>>> puppet-user: Warning: Undefined variable '::deploy_config_name'; \n<13>May
>>>>>>>>>>> 6 11:30:08 puppet-user: (file & line not available)\n<13>May 6 11:30:08
>>>>>>>>>>> puppet-user: Warning: Unknown variable: '::deployment_type'. (file:
>>>>>>>>>>> /etc/puppet/modules/tripleo/manifests/profile/base/database/mysql/client.pp,
>>>>>>>>>>> line: 89, column: 8)\n<13>May 6 11:30:08 puppet-user: error: Could not
>>>>>>>>>>> connect to controller: Connection refused\n<13>May 6 11:30:08 puppet-user:
>>>>>>>>>>> Error: Evaluation Error: Error while evaluating a Function Call, Could not
>>>>>>>>>>> find class ::tripleo::profile::base::time::ptp for
>>>>>>>>>>> overcloud-controller-0.localdomain (file:
>>>>>>>>>>> /var/lib/tripleo-config/puppet_step_config.pp, line: 41, column: 1) on node
>>>>>>>>>>> overcloud-controller-0.localdomain", "stderr_lines": ["<13>May 6 11:30:08
>>>>>>>>>>> puppet-user: Warning: The function 'hiera' is deprecated in favor of using
>>>>>>>>>>> 'lookup'. See
>>>>>>>>>>> https://puppet.com/docs/puppet/6.14/deprecated_language.html",
>>>>>>>>>>> "<13>May 6 11:30:08 puppet-user: (file & line not available)", "<13>May 6
>>>>>>>>>>> 11:30:08 puppet-user: Warning: /etc/puppet/hiera.yaml: Use of 'hiera.yaml'
>>>>>>>>>>> version 3 is deprecated. It should be converted to version 5", "<13>May 6
>>>>>>>>>>> 11:30:08 puppet-user: (file: /etc/puppet/hiera.yaml)", "<13>May 6 11:30:08
>>>>>>>>>>> puppet-user: Warning: Undefined variable '::deploy_config_name'; ",
>>>>>>>>>>> "<13>May 6 11:30:08 puppet-user: (file & line not available)", "<13>May 6
>>>>>>>>>>> 11:30:08 puppet-user: Warning: Unknown variable: '::deployment_type'.
>>>>>>>>>>> (file:
>>>>>>>>>>> /etc/puppet/modules/tripleo/manifests/profile/base/database/mysql/client.pp,
>>>>>>>>>>> line: 89, column: 8)", "<13>May 6 11:30:08 puppet-user: error: Could not
>>>>>>>>>>> connect to controller: Connection refused", "<13>May 6 11:30:08
>>>>>>>>>>> puppet-user: *Error: Evaluation Error: Error while evaluating a
>>>>>>>>>>> Function Call, Could not find class ::tripleo::profile::base::time::ptp for
>>>>>>>>>>> overcloud-controller-0.localdomain (file:
>>>>>>>>>>> /var/lib/tripleo-config/puppet_step_config.pp, line: 41, column: 1) on node*
>>>>>>>>>>> overcloud-controller-0.localdomain"], "stdout": "", "stdout_lines": []}
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Can someone please help in resolving this issue?
>>>>>>>>>>>
>>>>>>>>>>> Regards
>>>>>>>>>>> Anirudh Gupta
>>>>>>>>>>>
>>>>>>>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20220511/28214096/attachment-0001.htm>


More information about the openstack-discuss mailing list