nebari-dev / nebari-dev/software-pack-template
dev/Makefile MetalLB config fails on dual-stack (IPv6+IPv4) Docker networks
Nobody has claimed this yet.
- Dominant language
- Makefile
- Stars
- 0
- Forks
- 1
- Avg merge
- 26m
- Merged PRs (30d)
- 1
Description
Problem
The dev/Makefile uses this approach to extract the MetalLB IP range:
```makefile
KIND_NET_CIDR=$(docker network inspect kind -f '{{range .IPAM.Config}}{{.Subnet}}{{"\n"}}{{end}}' | grep '.' | head -n1)
```
This works on systems where the kind Docker network has only IPv4, or where IPv4 appears first. However, on systems with dual-stack Docker networks (e.g., Fedora 43 with Docker's default IPv6 support), the network may return IPv6 subnets first:
```
fc00:f853:ccd:e793::/64
172.19.0.0/16
```
The current template Makefile already handles this correctly with the `grep '\.'` filter. This is just a note that this is a real issue we hit during testing - the filtering is important and should not be removed.
Context
When building the nebari-superset-pack, the initial Makefile didn't include the IPv4 filter, causing MetalLB configuration to fail with an invalid CIDR error.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with dev/Makefile and compare its KIND_NET_CIDR extraction with the current template Makefile. Verify how Docker dual-stack output is handled and confirm that the IPv4 subnet is selected for MetalLB; done means the Makefile remains valid when IPv6 appears first.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker
- Domain
- infrastructure, networking
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100