Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Runtimecfg broken for ovirt #40

Closed
Gal-Zaidman opened this issue Jan 16, 2020 · 6 comments
Closed

Runtimecfg broken for ovirt #40

Gal-Zaidman opened this issue Jan 16, 2020 · 6 comments

Comments

@Gal-Zaidman
Copy link
Contributor

Hello,
Yesterday ovirt ocp ci runs started falling in the night due to the change #38.
When debugging the issue we noticed that the masters that started couldn't publish their service because of:
2020-01-16T09:52:44.729133066+00:00 stderr F time="2020-01-16T09:52:44Z" level=fatal msg="Failed to find interface for specified ip" ip=192.168.201.0
we looked at the config file which is created by runtimecfg /etc/mdns/config.hcl and saw that the bind_address was set to "192.168.201.0" which should be "192.168.201.31".
We built the baremetal-runtime pod without the change and everything went smooth.

On our ENV we have one interface on each master which has IPv6 and IPv4 address.
We initially thought that it was the root casue so we tried removing the IPv6 address (since we are not using it) delete the conf, and restart the pod but the problem remained.

If you need env to try and debug this we recommend triggering an ovirt job.

@celebdor
Copy link
Contributor

@Gal-Zaidman restarting the pod does not re-generate the mdns configuration, could you delete the configuration and use crictl to delete the pod? If you do, kubelet should create the pod again and that will trigger the initcontainer again.

@stbenjam
Copy link
Member

This is happening even on baremetal IPI, all installs started failing for us yesterday.

In mdns-publisher, I see this:

[core@master-0 ~]$ sudo crictl logs 3ec9fcdd466c2
time="2020-01-16T14:54:21Z" level=info msg="Publishing with settings" collision_avoidance=hostname ip=192.168.111.0
time="2020-01-16T14:54:21Z" level=fatal msg="Failed to find interface for specified ip" ip=192.168.111.0

Happy to share access to the env if you'd like

@Gal-Zaidman
Copy link
Contributor Author

@Gal-Zaidman restarting the pod does not re-generate the mdns configuration, could you delete the configuration and use crictl to delete the pod? If you do, kubelet should create the pod again and that will trigger the initcontainer again.

That is what we did, we stopped kubelet, removed the mdns pod, removed the file and then started the kubelet. We made sure the init container runs again

@cybertron
Copy link
Member

This is because net.ParseCIDR zeroes out the part of the address past the netmask. See https://play.golang.org/p/ZZcvN-JpS6A

I think we need to reconstruct the IPNet by keeping the first two return values from ParseCIDR and then packing them back together.

ip, n, _ := net.ParseCIDR("1.1.1.1/16")
n = &net.IPNet{IP: ip, Mask: n.Mask}

@rgolangh
Copy link

was this fixed by #42 ?

@cybertron
Copy link
Member

Technically it was fixed by #41, but yeah it should be working now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants