Skip to content

Commit

Permalink
Fix podman network inspect format and error
Browse files Browse the repository at this point in the history
Somehow this ended up with the docker network inspect format,
instead of the CNI based one used by podman network inspect ?
  • Loading branch information
afbjorklund committed Dec 10, 2020
1 parent ead11c6 commit a6941f2
Showing 1 changed file with 16 additions and 6 deletions.
22 changes: 16 additions & 6 deletions pkg/drivers/kic/oci/network_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,21 @@ const firstSubnetAddr = "192.168.49.0"
const defaultSubnetMask = 24

// name of the default bridge network, used to lookup the MTU (see #9528)
const defaultBridgeName = "bridge"
const dockerDefaultBridge = "bridge"

// name of the default bridge network
const podmanDefaultBridge = "podman"

// CreateNetwork creates a network returns gateway and error, minikube creates one network per cluster
func CreateNetwork(ociBin string, name string) (net.IP, error) {
return createDockerNetwork(ociBin, name)
}
func CreateNetwork(ociBin string, clusterName string) (net.IP, error) {
var defaultBridgeName string
if ociBin == Docker {
defaultBridgeName = dockerDefaultBridge
}
if ociBin == Podman {
defaultBridgeName = podmanDefaultBridge
}

func createDockerNetwork(ociBin string, clusterName string) (net.IP, error) {
// check if the network already exists
info, err := containerNetworkInspect(ociBin, clusterName)
if err == nil {
Expand Down Expand Up @@ -124,6 +131,9 @@ func tryCreateDockerNetwork(ociBin string, subnetAddr string, subnetMask int, mt
if strings.Contains(rr.Output(), "failed to allocate gateway") && strings.Contains(rr.Output(), "Address already in use") {
return nil, ErrNetworkGatewayTaken
}
if strings.Contains(rr.Output(), "is being used by a network interface") {
return nil, ErrNetworkGatewayTaken
}
return nil, errors.Wrapf(err, "create network %s", fmt.Sprintf("%s %s/%d", name, subnetAddr, subnetMask))
}
return gateway, nil
Expand Down Expand Up @@ -191,7 +201,7 @@ func dockerNetworkInspect(name string) (netInfo, error) {

func podmanNetworkInspect(name string) (netInfo, error) {
var info = netInfo{name: name}
cmd := exec.Command(Podman, "network", "inspect", name, "--format", `{{(index .IPAM.Config 0).Subnet}},{{(index .IPAM.Config 0).Gateway}}`)
cmd := exec.Command(Podman, "network", "inspect", name, "--format", `{{range .plugins}}{{if eq .type "bridge"}}{{(index (index .ipam.ranges 0) 0).subnet}},{{(index (index .ipam.ranges 0) 0).gateway}}{{end}}{{end}}`)
rr, err := runCmd(cmd)
if err != nil {
logDockerNetworkInspect(Podman, name)
Expand Down

0 comments on commit a6941f2

Please sign in to comment.