Option to avoid deleting the kernel_ll address from bridges. #47771
+64
−34
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
- What I did
As discussed in this Slack thread, replacing the kernel-assigned link local address on bridges may be causing issues.
It'd be better not to replace it, and there shouldn't be any consequences but, to avoid the risk of a breaking change in a patch release - this PR introduces an environment variable that only modifies the current behaviour when set.
The kernel-ll address has been removed since #46850 - part of an attempt to prevent daemon startup failures following changes in
fixed-cidr-v6
. But, by treating the standard LL prefix as a special case, removal of the kernel-assigned LL address can be avoided.This will make it possible to experiment and hopefully work around the problem. In 27.0 we should remove the env var and make the new behaviour the default, or revert this change - #47778.
- How I did it
If env var
DOCKER_BRIDGE_PRESERVE_KERNEL_LL=1
, don't assignfe80::1/64
to a bridge, and don't delete any link local address with prefixfe80::/64
.- How to verify it
Modified regression test, just to make sure setting the new env var doesn't cause any startup problems for the default bridge, and that it still ends up with a link-local address.
Without the env var set, for a user-defined network ...
With the env var set ...
- Description for the changelog