terraform-provider-zerotier icon indicating copy to clipboard operation
terraform-provider-zerotier copied to clipboard

Allow managing IPv6 network settings

Open bltavares opened this issue 5 years ago • 8 comments

ZeroTier has a couple of settings related to IPv6 address assignment options which distribute IPv6 addresses computed based on the network id and the node id.

RFC4139 assigns an single IPv6 address for each of the nodes.

6PLANE assigns a whole /80 prefix for each node, which could be redistributed by the member, such as a router or used for Docker containers.

Both of them are deterministic values calculated based on the network id and node id, and they are not returned on the response of the controller, given that the client is capable of calculating it itself.

IPv6 Assignment distribute IPv6 from the the assignment pool for each member. If there is no IPv6 assignment pool configured, no route will be distributed. It is important to also include the route configuration for that network, so there is traffic through ZeroTier.

This commit exposes this information on the member resource, as a computed property, so we could reference this information on other Terraform resources (such as DNS settings or provisioner scripts).

Given this is a calculated property that is always present, downstream modules should check if the network has it configured before using it. No errors will be thrown, it would only not route properly if the network has not enabled it.

The commit also exposes the settings in the network to enable each of the IPv6 address distribution toggles on the network resource.

There is also a bug fix, where the IPv4 configuration toggle was hardcoded and not reading the value from the resource definition.

bltavares avatar Mar 17 '19 16:03 bltavares

The auto_assign_6plane doesn't seem to do anything. Is that a ZT controller bug? The web UI sends this, whereas the code here only sends 6plane: true I think:

Screen Shot 2019-03-23 at 22 17 07

cormacrelf avatar Mar 23 '19 11:03 cormacrelf

While developing I've noticed that the UI is modifying the 6PLANE: true object, which seems to be an UI bug.

I've looked at the current controller code, and how my network behaves, and it seems that 6plane is the correct value to modify.

Using 6plane does not check the checkbox on ZeroTier, but it does display an extra IPv6 entry on each of the members. Ticking or unticking the checkbox does not change the members here. Does that happen on your network as well?

bltavares avatar Mar 23 '19 18:03 bltavares

ACK, same. Maybe file on zt.

cormacrelf avatar Mar 23 '19 20:03 cormacrelf

Given that the UI is not Open Source, I'll fill in a ticket with them

bltavares avatar Mar 24 '19 12:03 bltavares

Reported it on the chat channel. They'll take a look at it.

bltavares avatar Mar 25 '19 23:03 bltavares

@cormacrelf sorry to bother. Did you have time to check this change (and the others)? It would be nice to have a new release of the provider with the new additional features easy to download.

bltavares avatar Apr 09 '19 00:04 bltavares

@bltavares Sorry, I've been pretty busy. I had a few typos to fix on this one, but maybe for the rest I should just add you as a collaborator. How does that sound?

cormacrelf avatar Apr 09 '19 14:04 cormacrelf

@cormacrelf I didn't mean to push this work over your schedule, sorry about that.

I've published a local build on my fork, so I could use it across machines, and I was meaning just to check if there was a delay due to the ZT UI bug, or the code itself.

I would gladly help with the future changes if that is something that would help you. I would like feedbacks on the change as well, anyway. I'm ok waiting for a slot on your schedule to have that feedback, as long as you need :)

bltavares avatar Apr 09 '19 16:04 bltavares