Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

virtcontainers: netmon: Monitor network changes #534

Merged
merged 9 commits into from
Sep 14, 2018

Conversation

sboeuf
Copy link

@sboeuf sboeuf commented Jul 30, 2018

This commit introduces a new watcher dedicated to the monitoring
of a specific network namespace in order to detect any change that
could happen to the network.

As a result of such a detection, the watcher should call into the
appropriate runtime path with the correct arguments to modify the
pod network accordingly.

Fixes #170

Signed-off-by: Sebastien Boeuf [email protected]

@sboeuf
Copy link
Author

sboeuf commented Jul 30, 2018

This PR supersedes the original C implementation #194


netlinkFamily = netlink.FAMILY_V4

storageParentPath = "/var/run/kata-containers/netmon/sbs"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this path should be generated by in the Makefile

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point.

os.Exit(1)
}

/*
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this commented? is this a TODO ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yeah, I forgot to remove it. I'll do that when I'll update the PR.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

if addr.IPNet == nil {
continue
}
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and this loop if for ... ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yeah interesting I forgot to complete the implementation there !

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@sboeuf
Copy link
Author

sboeuf commented Jul 30, 2018

Things left to do:

  • Uses logrus package for proper logging
  • Add a Makefile
  • Add code to virtcontainers:
    • Spawn this binary inside the netns after the netns has been created
    • Change the internal network interfaces name (tap, bridges) by adding "_kata" suffix.
  • Improve use case for crash/reboot (save/restore from filesystem)

@katacontainersbot
Copy link
Contributor

PSS Measurement:
Qemu: 169758 KB
Proxy: 5822 KB
Shim: 9154 KB

Memory inside container:
Total Memory: 2043480 KB
Free Memory: 2003704 KB

@sboeuf sboeuf force-pushed the monitor_network_golang branch from a890338 to 42ebbd4 Compare July 30, 2018 19:03
@katacontainersbot
Copy link
Contributor

PSS Measurement:
Qemu: 167586 KB
Proxy: 5746 KB
Shim: 8928 KB

Memory inside container:
Total Memory: 2043480 KB
Free Memory: 2003564 KB

@opendev-zuul
Copy link

opendev-zuul bot commented Jul 30, 2018

Build succeeded (third-party-check pipeline).


const (
netmonName = "kata-netmon"
netmonVersion = "0.0.1"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two variables should probably be set by the build (particularly version) as we do for the runtime itself.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes they could be generated through the build.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done


kataSuffix = "kata"

netlinkFamily = netlink.FAMILY_V4
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worth mentioning anything about IPv6 here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I'll add a comment that we want to focus on ipv4 for now, just to make sure we're not introducing too much complexity at the first step.

}

func printVersion() {
fmt.Printf("%s version %s\n", netmonName, netmonVersion)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new system component, so please could you update kata-env to display details of it (including running kata-netmon --version as we do for other components).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, but this will come later, I need to get the code working and tested first.

flag.BoolVar(&params.debug, "d", false, "enable debug mode")
flag.BoolVar(&version, "v", false, "display program version and exit")
flag.StringVar(&params.sandboxID, "s", "", "sandbox id (required)")
flag.StringVar(&params.runtimePath, "r", "", "runtime path (required)")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • flag auto-generates a --help option but it would be useful to override the default to display a description of the program too imho.
  • As mentioned on the original C-based PR, wouldn't it be better to call the vc API rather than having the overhead of launching instances of the runtime (even if they are short-lived)?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

flag auto-generates a --help option but it would be useful to override the default to display a description of the program too imho.

Do you mean the program usage ? Because that's the way it works by default. I think this improvement can definitely be part of a follow up PR.

As mentioned on the original C-based PR, wouldn't it be better to call the vc API rather than having the overhead of launching instances of the runtime (even if they are short-lived)?

Well we could do that from the Go implementation, but what if we move to C implementation later ? This is not gonna be pretty to provide the Kata API as a C library...
Also, by doing so, we pull the entire dependencies from Kata by importing the API as a package, meaning we'll end up with a pretty huge binary running on the system.
Technically, this is doable, but I don't know if we want to go this way.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO, one benefit of calling the kata API directly is that if you modularize it properly, we can create a goroutine to monitor the netns in containerd kata shim and that presents no dependency on the kata-runtime cli, which is good from containerd kata shim perspective.

How about a structure like this:

  • virtcontainers/netnsmon: a package that calls kata API to do netns monitoring
  • cli/netmon: a command line built on top of virtcontainers/netnsmon. Other kata-runtime sub-command can invoke it to create a daemon to monitor the netns
  • for containerd kata shim, it can create a goroutine that calls virtcontainers/netnsmon to monitor the netns when it wants to.

In both kata-runtime and containerd kata shim case, virtcontainers do not invoke netnsmon but let the callers decide and drive the procedure.

WDTY?

cc @gnawux @lifupan

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bergwolf
If we decide to go this way, I would appreciate if this could come as a follow up PR, since I have reworked this PR quite a few times now, and it's pretty big, and I would like to see it landing at some point.


src := ""
if netRoute.Src.To4() != nil {
dst = netRoute.Src.String()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You mean src = right?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for noticing ;)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

}
}

func main() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please could you add the standard signal and crash handing code. To avoid duplicating code inside this repo, you could do what I did in the throttler repo and create a new signals package:

func main() {
	defer ksig.HandlePanic()
	realMain()
}

And then add calls to:

  • set CrashOnErorr behaviour.
  • Call that packages SetLogger().
  • Create the signal-handling loop with calls to HandledSignals(), FatalSignal() and NonFatalSignal().

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sounds like a nice thing to do ;)


storageParentPath = "/var/run/kata-containers/netmon/sbs"
storageDirPerm = 0750
sharedFile = "shared.json"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please document what this is for.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@sboeuf sboeuf force-pushed the monitor_network_golang branch 2 times, most recently from a60e56e to 849e97e Compare July 31, 2018 21:29
@katacontainersbot
Copy link
Contributor

PSS Measurement:
Qemu: 165604 KB
Proxy: 5872 KB
Shim: 8774 KB

Memory inside container:
Total Memory: 2043480 KB
Free Memory: 2003936 KB

@sboeuf sboeuf force-pushed the monitor_network_golang branch from 849e97e to 80b905e Compare July 31, 2018 22:27
@katacontainersbot
Copy link
Contributor

PSS Measurement:
Qemu: 167995 KB
Proxy: 5830 KB
Shim: 9198 KB

Memory inside container:
Total Memory: 2043480 KB
Free Memory: 2003332 KB

@opendev-zuul
Copy link

opendev-zuul bot commented Jul 31, 2018

Build succeeded (third-party-check pipeline).

@bergwolf
Copy link
Member

bergwolf commented Aug 1, 2018

To clarify, this depends on #287 for the kata cli network sub-command. Adding WiP because of it.

@bergwolf bergwolf added the wip label Aug 1, 2018
@sboeuf sboeuf force-pushed the monitor_network_golang branch from 80b905e to 3124c9d Compare August 1, 2018 05:44
@sboeuf
Copy link
Author

sboeuf commented Aug 1, 2018

Thanks @bergwolf ! Indeed, it relies on the fact that #287 needs to be merged first.

@katacontainersbot
Copy link
Contributor

PSS Measurement:
Qemu: 165854 KB
Proxy: 5851 KB
Shim: 8934 KB

Memory inside container:
Total Memory: 2043480 KB
Free Memory: 2003892 KB

@codecov
Copy link

codecov bot commented Aug 1, 2018

Codecov Report

Merging #534 into master will decrease coverage by 0.14%.
The diff coverage is 60.64%.

@@            Coverage Diff             @@
##           master     #534      +/-   ##
==========================================
- Coverage   65.25%   65.11%   -0.15%     
==========================================
  Files          85       87       +2     
  Lines        9978    10373     +395     
==========================================
+ Hits         6511     6754     +243     
- Misses       2815     2942     +127     
- Partials      652      677      +25

@opendev-zuul
Copy link

opendev-zuul bot commented Aug 1, 2018

Build succeeded (third-party-check pipeline).

@ghost
Copy link

ghost commented Aug 29, 2018

@sboeuf #287 has been merged now but since opentracing support is being added for kata as tracked here , Do we wish to keep this PR open? considering its gonna be unnecessary after opentracing is added.

@jodh-intel
Copy link
Contributor

Hi @ydjainopensource - I think we'll still need this as the tracing can only show that changes occurred - this new application needs to modify the network.

@ghost
Copy link

ghost commented Aug 29, 2018

Okay no issues we will keep this open

@ghost
Copy link

ghost commented Sep 4, 2018

I have tested the commit base on branch master after add some log print, but there is a little strange problem: call kata-runtime kata-netwowk add-iface in netmon will fail。
$ sudo docker run --rm --name test -tid alpine sleep 10000

023313cf56b58d3283fefc84f4d1787cac2916e758a1d19012c7ff6a0ad4500e

$ sudo nsenter --net=$(sudo docker inspect test |jq -r .[0].NetworkSettings.SandboxKey) ./kata-netmon -d -log info -r /usr/bin/kata-runtime -s 023313cf56b58d3283fefc84f4d1787cac2916e758a1d19012c7ff6a0ad4500e

I will get error messages after sudo docker network connect newnetwork test:

INFO[0062] Exec command: &{Path:/usr/bin/kata-runtime Args:[/usr/bin/kata-runtime kata-network add-iface 023313cf56b58d3283fefc84f4d1787cac2916e758a1d190
12c7ff6a0ad4500e /var/run/kata-containers/netmon/sbs/023313cf56b58d3283fefc84f4d1787cac2916e758a1d19012c7ff6a0ad4500e/shared.json] Env:[] Dir: Stdin: Std
out: Stderr: ExtraFiles:[] SysProcAttr: Process: ProcessState: ctx: lookPathErr: finished:false childFiles:[] closeAfterSta
rt:[] closeAfterWait:[] goroutine:[] errch: waitDone:} name=kata-netmon pid=22782 sandbox=023313cf56b58d3283fefc84f4d1787cac2916e758a1d19012c7ff6a0
ad4500e source=netmon
FATA[0062] handleEvents() error="exit status 1" name=kata-netmon pid=22782 sandbox=023313cf56b58d3283fefc84f4d1787cac2916e758a1
d19012c7ff6a0ad4500e source=netmon

but it will work if execute the command manually:
sudo nsenter --net=$(sudo docker inspect test |jq -r .[0].NetworkSettings.SandboxKey) /usr/bin/kata-runtime kata-network add-iface 023313cf56b58d3283fefc84f4d1787cac2916e758a1d19012c7ff6a0ad4500e /var/run/kata-containers/netmon/sbs/023313cf56b58d3283fefc84f4d1787cac2916e758a1d19012c7ff6a0ad4500e/shared.json

and the new tap tap1 interface created Successfully

$ sudo nsenter --net=$(sudo docker inspect test |jq -r .[0].NetworkSettings.SandboxKey) ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ip_vti0@NONE: mtu 1332 qdisc noop state DOWN group default qlen 1
link/ipip 0.0.0.0 brd 0.0.0.0
9: eth0@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:00:ca:fe:00:00 brd ff:ff:ff:ff:ff:ff link-netnsid 0
11: eth1@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:00:ca:fe:00:01 brd ff:ff:ff:ff:ff:ff link-netnsid 0
47124: tap1@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1500
link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff
44374: tap0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1500
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff

so maybe there's some permissions issue in netmon or the way of my use is wrong?

@sboeuf
Copy link
Author

sboeuf commented Sep 4, 2018

@ningbo9 the PR is not completely ready as it does not include the modification inside kata-runtime itself to launch the network monitor.

# network being added to the existing network namespace, after the
# sandbox has been created.
# (default: disabled)
#enable = true
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nits: as I put a test commit at kata-containers/tests#743, I noticed that it would be better to call this enable_netmon instead, so that we can easily grep and replace it in scripts.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of course I can do that and I agree this might help!

@bergwolf
Copy link
Member

bergwolf commented Sep 13, 2018

btw, @sboeuf if you want to merge this PR feel free to do so. It would be great if you can rename the enable option to enable_netmon though.

Anyway, whatever error I'm seeing w/ network hotplug, it is not related to your PR. So I'm giving my
LGTM

Approved with PullApprove

@caoruidong
Copy link
Member

Maybe the different guest rootfs distro or kernel causes this error ?

@bergwolf
Copy link
Member

@caoruidong I've tried alpine based initrd w/ agent as init, and centos based rootfs image w/ systemd as init, both failed the same way. It seems kata-containers/tests#743 have given the same results:

+ sudo docker network create foobartestnetwork
4485b0308d12816eabc6ffbb900228c12b349dee3866aa1211ec1d946c5c0511
+ sudo docker run --runtime=kata-runtime -d --name kata-vKBoFN busybox tail -f /dev/null
b3c68f2d9c37de4176f1de711cc43b090632c744d95f17196643c0fc983dac33
+ sudo docker network connect foobartestnetwork kata-vKBoFN
+ sleep 10
++ sudo docker exec -it kata-vKBoFN ip addr show eth1
++ sed -ne 's/.*inet \([.0-9]\{7,15\}\)\/[0-9]\{1,2\} .*/\1/p'
the input device is not a TTY
+ ipaddr=
+ sudo docker rm -f kata-vKBoFN
kata-vKBoFN
+ sudo docker network rm foobartestnetwork
foobartestnetwork
+ echo hotplugged network ip address is
hotplugged network ip address is
+ test -n ''

@sboeuf what guest rootfs distro are you testing with?

Copy link
Member

@caoruidong caoruidong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

type Interface struct {
Device string `json:"device,omitempty"`
Name string `json:"name,omitempty"`
IPAddresses []*IPAddress `json:"IPAddresses,omitempty"`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capitalization? OK.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh! You mean from the json definition?
Yes I'll change that!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. Thanks.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wait, I did that so that it comply with the structure defined in agent/protocols/grpc/. I'm afraid the unmarshalling might not work if I change this.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair enough!

@sboeuf sboeuf force-pushed the monitor_network_golang branch 2 times, most recently from bd4ea50 to bf8c37b Compare September 13, 2018 15:41
@katacontainersbot
Copy link
Contributor

PSS Measurement:
Qemu: 165597 KB
Proxy: 4063 KB
Shim: 9015 KB

Memory inside container:
Total Memory: 2043460 KB
Free Memory: 2006712 KB

@opendev-zuul
Copy link

opendev-zuul bot commented Sep 13, 2018

Build failed (third-party-check pipeline) integration testing with
OpenStack. For information on how to proceed, see
http://docs.openstack.org/infra/manual/developers.html#automated-testing

@sboeuf
Copy link
Author

sboeuf commented Sep 13, 2018

@amshinde PTAL and feel free to merge if you're fine with it.

Copy link
Member

@amshinde amshinde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm @sboeuf
Just some minor nits.

// For simplicity the code will only focus on IPv4 addresses for now.
netlinkFamily = netlink.FAMILY_V4

storageParentPath = "/var/run/kata-containers/netmon/sbs"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this go in the Makefile?

Copy link
Author

@sboeuf sboeuf Sep 14, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Makefile does not contain any other storage path yet. Should this be part of a more global PR pushing the default storage paths to the Makefile?
WDYT?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok lets address in a separate PR.

}

// First, ignore if the interface name contains "kata". This way we
// are preventing from adding interfaces created by Kata Containers.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/adding/deleting/

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

netmon/netmon.go Outdated

// First, ignore if the interface name contains "kata". This way we
// are preventing from adding interfaces created by Kata Containers.
if strings.Contains(linkAttrs.Name, kataSuffix) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not just use strings.HasSuffix here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

bergwolf added a commit to bergwolf/kata-tests that referenced this pull request Sep 14, 2018
Let's see what we can get in CI environment. Please DO NOT MERGE!

Depends-on: github.com/kata-containers/runtime#534
Fixes: #999999999

Signed-off-by: Peng Tao <[email protected]>
Sebastien Boeuf added 9 commits September 14, 2018 09:15
This commit introduces a new watcher dedicated to the monitoring
of a specific network namespace in order to detect any change that
could happen to the network.

As a result of such a detection, the watcher should call into the
appropriate runtime path with the correct arguments to modify the
pod network accordingly.

Fixes kata-containers#170

Signed-off-by: Sebastien Boeuf <[email protected]>
In order to reduce the overhead due to the import of the whole
agent protocol, only the needed structures are duplicated. This
is a temporary solution, and those structures should be defined
into their own package to prevent from such overhead.

Note: the overhead of the binray size went down from 15MiB to
3MiB when this commit removed the dependency on the agent protocol.

Signed-off-by: Sebastien Boeuf <[email protected]>
Instead of dumping logs through the standard output with fmt.Printf()
function, this commit improves the logging by relying on logrus.
Also, it relies on the syslog hook so that all the logs get redirected
to the journal.

Signed-off-by: Sebastien Boeuf <[email protected]>
This commit modifies the Makefile at the root of this repository
so that the binary kata-netmon can be built from there.

Signed-off-by: Sebastien Boeuf <[email protected]>
This commit adds some unit testing in order to validate some of the
new code that have been introduced with the new network monitor.

Signed-off-by: Sebastien Boeuf <[email protected]>
8abc400 agent: add test to WaitProcess()
f746ed8 agent: allow multiple waitProcess()
157f1c1 travis: Add variable needed to run static checks
ed54087 travis: bump golang version
ba0c7fc client: wait for session to be fully closed
0865c98 agent: wait session to be fully shutdown
55f1480 vendor: update yamux dependency
5e36bfc network: Wait for network device in UpdateInterface
218ce89 device: Rename getBlockDeviceNodeName to getPCIDeviceName
c9a4e2e uevent: Store the interface field as device name for network interfaces
74a5364 build: fix make proto error
b1c2ad8 agent: add support for online memory and cpu separately.

Signed-off-by: Sebastien Boeuf <[email protected]>
Because the network monitor will be listening to every event received
through the netlink socket, it will be notified everytime a new link
will be added/updated/modified in the network namespace it's running
into. The goal being to detect new interface added by Docker such as
a veth pair.

The problem is that kata-runtime will add other internal interfaces
when the network monitor will ask for the addition of the new veth
pair. And we need a way to ignore those new interfaces being created
as they relate to the veth pair that is being added. That's why, in
order to prevent from running into an infinite loop, virtcontainers
needs to tag the internal interfaces with the "kata" suffix so that
the network monitor will be able to ignore them.

Signed-off-by: Sebastien Boeuf <[email protected]>
This patch enables the code responsible for starting and stopping
the network monitor.

Signed-off-by: Sebastien Boeuf <[email protected]>
In order to choose if the network monitor should be used or not, this
patch makes it configurable from the configuration.toml file.

Signed-off-by: Sebastien Boeuf <[email protected]>
@sboeuf sboeuf force-pushed the monitor_network_golang branch from bf8c37b to 0ffe81c Compare September 14, 2018 16:38
@sboeuf
Copy link
Author

sboeuf commented Sep 14, 2018

@amshinde changes applied, PTAL.

@amshinde
Copy link
Member

amshinde commented Sep 14, 2018

lgtm.
@sboeuf CI seems to be failing on ubuntu.

Approved with PullApprove

@sboeuf
Copy link
Author

sboeuf commented Sep 14, 2018

@amshinde yeah I've just restarted because three builds failed because of networking issues. Nothing related to the PR.

@katacontainersbot
Copy link
Contributor

PSS Measurement:
Qemu: 169337 KB
Proxy: 4017 KB
Shim: 8739 KB

Memory inside container:
Total Memory: 2043460 KB
Free Memory: 2006952 KB

@sboeuf
Copy link
Author

sboeuf commented Sep 14, 2018

@amshinde could you please merge this one?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature New functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants