abiosoft / colima

Container runtimes on macOS (and Linux) with minimal setup
MIT License
19.01k stars 383 forks source link

v0.6.2 breaks custom network setup #879

Open drallgood opened 11 months ago

drallgood commented 11 months ago

Description

I had set up a bridged network so that I can have a custom bridged interface with a static IP (I need this so I can run a DNS server.. otherwise it would interfere with mDNS on the host system).

v0.6.2 broke this, because it overrides the network.yml file with a static one, so the "briged" network isn't defined anymore, which the override.yml references.

Result: errors inspecting instance: [fieldnetworks[2].limareferences network "bridged" which is not defined in networks.yaml]

Version

colima version 0.6.2 git commit: 22d7e5fbc86d5b8e3b27065a762800bc7960a0ff limactl version 0.18.0

Operating System

Output of colima status

No response

Reproduction Steps

  1. create .colima/_lima/_config/override.yaml & define a new bridged network
  2. start colima

Expected behaviour

No response

Additional context

No response

drallgood commented 11 months ago

Additional information:

override.yml:

networks:
  - lima: bridged

Problem is that .colima/_lima/_config/networks.yaml now gets overridden with a default every time. So you can't specify anything custom in there

abiosoft commented 10 months ago

Are you customizing the network.yaml file solely for the purpose of using a bridged network?

drallgood commented 10 months ago

yes.

rfields-equinix commented 9 months ago

@drallgood Were you able to get this resolved? I have a similar problem.

heijligers commented 9 months ago

same here

drallgood commented 9 months ago

No I was not so far. Currently I'm downgrading to 0.6.1

drallgood commented 9 months ago

Are you customizing the network.yaml file solely for the purpose of using a bridged network?

A bridged network with a fixed IP to be precise. I need it for a DNS server @abiosoft

drallgood commented 5 months ago

@abiosoft Still can't upgrade because of this. Any suggestions for a workaround?

abiosoft commented 2 months ago

Looks like I can finally get to this.

The main reason why a fixed IP address is not encourage is due to the fact that you can have multiple (profile) instances running and can cause undesired behaviour when there is a clash of IP address.

abiosoft commented 2 months ago

As a side note, the assigned IP address should be fixed and not change afterwards. Unless an extra profile is created.

drallgood commented 2 months ago

Looks like I can finally get to this.

The main reason why a fixed IP address is not encourage is due to the fact that you can have multiple (profile) instances running and can cause undesired behaviour when there is a clash of IP address.

Good point. Doesn't solve the problem though. I need a fixed, externally assigned (or configurable) IP that cannot change later. Anything else won't do it for a DNS server. UDP forwards won't work as port 53 is already taken on the host machine (and no other port is allowed for this so I can't even use a random port). I've tried everything else and none of it worked.

Until then I'm stuck on older versions of Colima.

abiosoft commented 2 months ago

@drallgood can you share your current networks.yaml file? Or you only utilise the override file.

drallgood commented 2 months ago

@abiosoft Here's the networks.yml It's mostly the default one from before v0.6.2

The static IP address assignment is handled by the DHCP server in my network

# Path to socket_vmnet executable. Because socket_vmnet is invoked via sudo it should be
# installed where only root can modify/replace it. This means also none of the
# parent directories should be writable by the user.
#
# The varRun directory also must not be writable by the user because it will
# include the socket_vmnet pid file. Those will be terminated via sudo, so replacing
# the pid file would allow killing of arbitrary privileged processes. varRun
# however MUST be writable by the daemon user.
#
# None of the paths segments may be symlinks, why it has to be /private/var
# instead of /var etc.
paths:
# socketVMNet requires Lima >= 0.12 .
# socketVMNet has precedence over vdeVMNet.
  socketVMNet: "/opt/homebrew/Cellar/socket_vmnet/1.1.4/bin/socket_vmnet"
# vdeSwitch and vdeVMNet are DEPRECATED.
#  vdeSwitch: /opt/vde/bin/vde_switch
#  vdeVMNet: /opt/vde/bin/vdey_vmnet
  varRun: /private/var/run/lima
  sudoers: /private/etc/sudoers.d/lima

group: everyone

networks:
  shared:
    mode: shared
    gateway: 192.168.105.1
    dhcpEnd: 192.168.105.254
    netmask: 255.255.255.0
  bridged:
    mode: bridged
    interface: en0
    # bridged mode doesn't have a gateway; dhcp is managed by outside network
  host:
    mode: host
    gateway: 192.168.106.1
    dhcpEnd: 192.168.106.254
    netmask: 255.255.255.0
  user-v2:
    mode: user-v2
    gateway: 192.168.5.2
    netmask: 255.255.255.0