Skip to content

Commit d034152

Browse files
committed
Merge remote-tracking branch 'origin/master' into 3.5
2 parents 17006f0 + f368b30 commit d034152

39 files changed

+5970
-428
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ pkgs: FORCE_BUILD=
206206
pkgs: build-tools $(PKGS)
207207
@echo Done building packages
208208

209-
pkg/pillar: pkg/lisp pkg/xen-tools pkg/dnsmasq pkg/strongswan pkg/gpt-tools pkg/watchdog eve-pillar
209+
pkg/pillar: pkg/lisp pkg/xen-tools pkg/dnsmasq pkg/strongswan pkg/gpt-tools pkg/watchdog pkg/rkt pkg/rkt-stage1 eve-pillar
210210
@true
211211
pkg/qrexec-dom0: pkg/qrexec-lib pkg/xen-tools eve-qrexec-dom0
212212
@true

README.md

Lines changed: 54 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# EVE is Edge Virtualization Engine
2+
23
[![CircleCI](https://circleci.com/gh/lf-edge/eve.svg?style=svg)](https://circleci.com/gh/lf-edge/eve)
34
[![Goreport](https://goreportcard.com/badge/github.com/lf-edge/eve)](https://goreportcard.com/report/github.com/lf-edge/eve)
45
[![Godoc](https://godoc.org/github.com/lf-edge/eve/pkg/pillar?status.svg)](https://godoc.org/github.com/lf-edge/eve/pkg/pillar)
@@ -11,71 +12,88 @@ To get its job done, EVE leverages a lot of great open source projects: [Xen Pro
1112

1213
## How to use
1314

14-
You will need qemu 3.x+ (https://www.qemu.org/), Docker (https://www.docker.com)
15-
and go 1.12+ (https://golang.org) installed in your system.
15+
You will need [QEMU 3.x+](https://www.qemu.org/), [Docker](https://www.docker.com)
16+
and [go 1.12+](https://golang.org) installed in your system.
1617

1718
Note, that since Linuxkit and manifest-tool are evolving pretty rapidly, we're
1819
vendoring those under build-tools/src. This means you don't have to have them
1920
locally installed, but it also means your first build time will be much longer.
2021

2122
If you're on MacOS the following steps should get you all the dependencies:
2223

23-
0. Get Go:
24+
### Install Dependencies
2425

25-
```
26-
https://golang.org/dl/
27-
```
28-
1. Get Docker:
26+
#### Get Go
2927

30-
```
31-
https://store.docker.com/editions/community/docker-ce-desktop-mac
32-
```
33-
2. Make sure brew is installed:
28+
```sh
29+
https://golang.org/dl/
30+
```
3431

35-
```
36-
https://brew.sh/
37-
```
38-
3. Brew install qemu.
32+
#### Get Docker
3933

40-
```
41-
$ brew install qemu
42-
```
34+
```sh
35+
https://store.docker.com/editions/community/docker-ce-desktop-mac
36+
```
4337

4438
Make sure that Docker is up and running on your system. On MacOS just start a docker Application, on Linux make sure docker service is running. Regardless of how you start Docker you can make sure that it is ready for you by running the following command and making sure that it returns both a version of the client AND a version of the server:
4539

46-
```
40+
```sh
4741
docker version
4842
```
4943

50-
EVE requires beeing built in Git repository (the tools keep looking up git commit IDs). The easiest way is to clone EVE repository from GitHub:
44+
#### Get QEMU
45+
46+
##### On OSX using [Brew](https://brew.sh/)
47+
48+
```sh
49+
$ brew install qemu
50+
```
51+
52+
##### On Ubuntu
53+
54+
```sh
55+
$ sudo apt install qemu
5156
```
57+
58+
#### Get Project EVE
59+
60+
EVE requires being built in Git repository (the tools keep looking up git commit IDs). The easiest way is to clone EVE repository from GitHub:
61+
62+
```sh
5263
git clone https://github.com/lf-edge/eve.git
5364
cd eve
5465
```
5566

5667
Build both the build-tools as well as the live image in the source directory:
5768

58-
```
69+
```sh
5970
make build-tools
6071
make live
6172
```
73+
6274
This will download the relevant dockers from docker hub and create a bootable
63-
image 'dist/<ARCH>/live.img'.
75+
image `dist/<ARCH>/live.img`.
6476

65-
Please note that not all containers will be fetched from the docker
66-
hub. mkimage-raw-efi in particular will be built.
77+
Please note that not all containers will be fetched from Docker Hub.
78+
`mkimage-raw-efi` in particular will be built.
6779

68-
Also, keep in mind that since the initial build fetches a LOT of bits
69-
over the network it may occasionally time out and fail. Typically
70-
re-running make fixes the issue. If it doesn't you can attempt a local
71-
build of all the required EVE packages first by running:
80+
> **_NOTE:_** Since the initial build fetches a LOT of bits
81+
> over the network it may occasionally time out and fail. Typically
82+
> re-running `make` fixes the issue. If it doesn't you can attempt a local
83+
> build of all the required EVE packages first by running `make pkgs`
7284
73-
```
74-
make pkgs
85+
#### Running in QEMU
86+
87+
Finally run the resulting image in QEMU with some default assumptions:
88+
89+
```sh
90+
make run
7591
```
7692

77-
Finally run the resulting image by typing `make run`. This will launch
78-
qemu with some default assumptions.
93+
> **_NOTE:_** The default QEMU configuration needs 4GB of memory available.
94+
> If you get an error message about being unable to allocate memory, try freeing up some RAM.
95+
> If you can't free up 4GB, you can reduce the memory allocation in the `Makefile` from 4096 (4GB) to 2048 (2GB).
96+
> Running QEMU with less than 2GB of memory is not recommended.
7997
8098
Once the image boots you can interact with it either by using the console
8199
(right there in the terminal window from which make run was executed).
@@ -87,7 +105,9 @@ from containerd - use that instead).
87105
Once in a container you can run the usual xl commands to start VMs and
88106
interact with Xen.
89107

90-
### Custom Config Partition
108+
To exit out of the QEMU environment, press `Ctrl-A + C` to reach the QEMU console, then `q` to quit.
109+
110+
### Customizing the Configuration
91111

92112
As described in [BUILD.md](./docs/BUILD.md) and [REGISTRATION.md](./docs/REGISTRATION.md), a booting EVE looks in its config partition to determine:
93113

@@ -105,7 +125,7 @@ Note that the directory must exist to be mounted; if not, it will be ignored. Th
105125

106126
## How to use on an ARM board
107127

108-
While running everything on your laptop with qemu could be fun, nothing
128+
While running everything on your laptop with QEMU could be fun, nothing
109129
beats real hardware. The most cost-effective option, not surprisingly,
110130
is ARM. We recommend using HiKey board [http://www.lenovator.com/product/90.html](http://www.lenovator.com/product/90.html).
111131
Once you acquire the board you will need to build an installer image by running

api/API.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,3 +335,12 @@ The response MUST contain no body content.
335335
Edge Devices are expected to have intermittent connectivity, with limited bandwidth, memory and storage. It is likely that, at some point, a Device will run out of local memory or storage to cache information, logs or metrics messages that need to be sent to a Controller.
336336

337337
The choice of which messages to keep, how long to keep them, which to discard, and how to handle these overflows are implementation-dependent and are NOT specified in this document.
338+
339+
## HTTP MetaData
340+
341+
Edge Devices may send some MetaData in HTTP header to the controller. This will help
342+
the controller side troubleshooting at the HTTP level. The Device UUID can be included
343+
in the HTTP header 'X-Request-ID'. Since the UUID on Device is obtained from the
344+
controller, when the UUID is not available yet, the Device Serial-Number and
345+
Soft-Serial-Number can be included in the HTTP header fields 'X-Serial-Number' and
346+
'X-Soft-Serial' respectively.

api/go/config/devmodel.pb.go

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/go/config/storage.pb.go

Lines changed: 64 additions & 56 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/proto/config/storage.proto

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ message SignatureInfo {
1616
}
1717

1818
enum DsType {
19-
DsUnknown = 0;
20-
DsHttp = 1;
21-
DsHttps = 2;
22-
DsS3 = 3;
23-
DsSFTP = 4;
19+
DsUnknown = 0;
20+
DsHttp = 1;
21+
DsHttps = 2;
22+
DsS3 = 3;
23+
DsSFTP = 4;
24+
DsContainerRegistry = 5;
2425
}
2526

2627
message DatastoreConfig {
@@ -43,14 +44,15 @@ message DatastoreConfig {
4344

4445

4546
enum Format {
46-
FmtUnknown = 0;
47-
RAW = 1;
48-
QCOW = 2;
49-
QCOW2 = 3;
50-
VHD = 4;
51-
VMDK = 5;
52-
OVA = 6;
53-
VHDX = 7;
47+
FmtUnknown = 0;
48+
RAW = 1;
49+
QCOW = 2;
50+
QCOW2 = 3;
51+
VHD = 4;
52+
VMDK = 5;
53+
OVA = 6;
54+
VHDX = 7;
55+
CONTAINER = 8;
5456
}
5557

5658
message Image {

0 commit comments

Comments
 (0)