Commit Graph

117 Commits

Author SHA1 Message Date
Andrew Rynhard
a420b85b07 chore: run unique E2E tests
In order to run more than one instance of E2E testing at a time, we need
to ensure that all resources are unique to the run.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-08-12 14:14:08 -07:00
Andrew Rynhard
2ee769d19e chore: add image test step
Instead of building platform specific images in the default pipeline, we
should build just one image as part of our basic testing to make sure
installations work as expected.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-08-11 10:51:33 -07:00
Andrew Rynhard
817380bad6 chore: refactor the Jsonnet file
This change improves the drone jsonnet file by making it more DRY and
structuring it in a way that makes it much easier to follow.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-08-11 09:23:30 -07:00
Andrew Rynhard
8786916fd0 chore: build drone YAML via jsonnet
This PR aims to DRY the drone config file by using Jsonnet to generate
it.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-08-09 22:30:37 -07:00
Andrey Smirnov
2227d1f6b6 chore: add race-enabled test run
As Go race detector doesn't work under libmuscl, use stock glibc-based
golang container.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-08-09 17:12:34 +03:00
Andrew Rynhard
3383e72d37 chore: remove machined from rootfs target
The machined dependency is not needed in the rootfs target. The
dependency is handled by buildkit.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-08-08 12:26:30 -07:00
Brad Beam
bfc1646cd9 chore(ci): Add e2e promotion pipeline
Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-08-08 11:27:57 -05:00
Spencer Smith
9e02c77c0a chore: add azure e2e testing
This PR will allow us to run an azure e2e test in parallel with our
current GCE implementation.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-08-07 12:16:32 -04:00
Spencer Smith
38dfddbab3 feat: break up osctl cluster create and basic/e2e tests
This PR will break cluster create apart from the other steps in
integration tests. It will allow us to run the cluster create, then use
it for parallel e2e builds in different cloud environments.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-08-01 10:55:24 -04:00
Andrey Smirnov
3024c26a55 chore: update dockerfile/buildkit versions
New buildkit release: https://github.com/moby/buildkit/releases/tag/v0.6.0

New release was published for buildkit's dockerfile:
https://github.com/moby/buildkit/releases/tag/dockerfile%2F1.1.2-experimental,
so we can stick to release version now.

These releases include fixes/implementation for `RUN --security=insecure`.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-08-01 01:05:42 +03:00
Andrew Rynhard
12486ef0e2 chore: remove rootfs output param
This removes the `--output` flag from the rootfs target. With the output
specified it was outputting the file directory structure to the build
directory.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-29 20:26:54 -07:00
Andrew Rynhard
e63c882b89 refactor: split machined into phases
This change aims to standardize the boot process. It introduces the
concept of a phase, which is comprised of tasks. Phases are ran in serial and
the tasks that make up a phase are ran concurrently.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-29 12:40:03 -07:00
Andrew Rynhard
0ec17e4169 feat: run rootfs from squashfs
This change moves the rootfs to a squashfs image.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-25 08:38:31 -07:00
Andrey Smirnov
8c59adb9dc chore: allow to run tests only for specified packages
This allows to do `make test TESTPKGS=./internal/app/machined`.

Also update Dockerfile slug as
https://github.com/moby/buildkit/pull/1081 was merged into master.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-07-23 22:17:22 +03:00
Andrew Rynhard
6fa7c1fcbd chore: compress Azure image
The image needs to be compressed in order to publish it to GitHub.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-22 14:48:24 -07:00
Andrew Rynhard
32961efbe0 chore: remove the raw disk after Azure build
The raw disk causes the release to fail.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-22 14:20:50 -07:00
Spencer Smith
089890f36b chore: setup gce for e2e builds
This PR will provide a basis for running e2e tests on GCE several times
a day. We'll need to add a cron event to the drone repo once merged.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-07-22 12:46:02 -04:00
Andrey Smirnov
7df9ef049c chore: repair 'make all'
Target 'binaries' was referencing non-existent `Dockerfile` target, so
any `make all` failed.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-07-19 08:12:23 -07:00
Andrey Smirnov
9f9acf1f05 chore: run tests in the buildkit itself
This relies on two PRs to the buildkit:

* https://github.com/moby/buildkit/pull/1081
* https://github.com/moby/buildkit/pull/1085

Sysfs fix was merged to upstream, so updated tag, while using
`Dockerfile` slug I can switch to dockerfile2llb with support for
`--security=insecure`.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-07-19 07:53:49 -07:00
Andrew Rynhard
8e8aae98dd feat: add machined
This commit splits our current init into init and machined.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-16 13:12:21 -07:00
Brad Beam
7adef1ea62 feat(init): Add azure as a supported platform
Update initramfs to interact with azure endpoints for userdata.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-07-16 12:59:53 -07:00
Andrew Rynhard
1e9548d149 feat: use new pkgs for initramfs and rootfs
This brings in the newly compiled libraries and binaries from our new
pkg builds.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-15 10:32:29 -07:00
Andrew Rynhard
666f04fdbc feat: update kernel
This kernel update brings in:

- modules support
- BPF support
- Azure support

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-10 20:19:59 -07:00
Andrey Smirnov
82fe5b55e5 chore: make unit-tests use isolated instances of containerd
This makes test launch their own isolated instance of containerd with
its own root/state directories and listening socket address. Each test
brings this instance up/down on its own.

Add options to override containerd address in the code (used only in the
tests).

Enable parallel go test runs once again.

P.S. I wish I could share that 'SetupSuite' phase across the tests, but
afaik there's no way in Go to share `_test.go` code across packages. If
we put it as normal package, this might pull in test dependencies (like
`testify`) into production code, which I don't like.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-07-10 19:46:32 +03:00
Andrew Rynhard
50eb51938c chore: prevent duplicate build of test container
This change removes the test-container step, and consolidates it to only a
test step. This prevents the build of the test container being done
twice.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-06 11:29:18 -07:00
Brad Beam
c1ec77ef42 feat: Use individual component steps for drone
Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-07-05 23:11:40 -07:00
Spencer Smith
ff9934cfe2 chore: update toolchain version and output created config files
Decided to combine two very small changes (which I'm now grumpy at myself for doing).

First, we'll update the toolchain image versions to allow for the use of a new containerd and runc. Also updated go.mod and go.sum to make use of newer containerd version. Closes #743 and #744.

Second, I added the bit of logic to osctl config generate to determine the working directory and let the user know that we created the various yaml files there. Closes #760.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-07-05 17:59:25 -04:00
Andrey Smirnov
077ea451b5
chore: use 'fast' gitmeta (#836)
See PR https://github.com/talos-systems/gitmeta/pull/10,
https://github.com/talos-systems/gitmeta/pull/12

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-07-04 23:46:55 +03:00
Andrew Rynhard
d82444a42d
chore: revert #816 (#829)
This reverts commit 11f8392e53.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-04 08:43:34 -07:00
Andrew Rynhard
11f8392e53
chore: fix GCE image creation (#816)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-03 18:06:47 -07:00
Spencer Smith
c29e5aec93
chore: publish gce images with releases (#809)
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-07-02 10:47:22 -04:00
Andrew Rynhard
85afe4f828
feat: use eudev for udevd (#780)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-06-25 19:25:57 -07:00
Andrew Rynhard
ebc725afa6
feat: add support for upgrading init nodes (#761)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-06-24 15:25:32 -07:00
Andrew Rynhard
99cb06d9c7
chore: update floating IPs for E2E test (#762)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-06-21 23:05:17 -07:00
Spencer Smith
26e14f08eb chore: bump k8s version in makefile (#758)
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-06-21 21:47:55 -07:00
Spencer Smith
e01bc3be05
chore: update toolchain images (#754)
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-06-21 16:24:23 -04:00
Spencer Smith
4ba12fecd8
feat(ci): enable nightly e2e tests (#716)
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-06-17 12:36:48 -04:00
Brad Beam
8a5acff119
fix: Add gitmeta as dependency for push (#718)
Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-06-05 16:01:46 -05:00
Andrew Rynhard
ecfa945fc8
chore: download official gitmeta to BINDIR (#717)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-06-05 11:44:15 -07:00
Spencer Smith
16530db722
fix: don't set BUILDKIT_CACHE to empty string in Makefile (#705)
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-06-03 13:59:39 -04:00
Andrew Rynhard
f95f8f87a4
feat: upgrade Kubernetes to v1.15.0-beta.1 (#696)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-05-30 18:56:30 -07:00
Andrew Rynhard
4bdcccfd00
fix: add libressl to rootfs (#659)
This library is required by socat.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-05-15 19:09:27 -07:00
Andrew Rynhard
18a1536b01
feat: use osctl in installer (#654)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-05-15 16:14:30 -07:00
Andrey Smirnov
4bf649f14c chore: workaround flaky tests (#651)
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-05-13 15:00:59 -07:00
Andrew Rynhard
3c52f5e686
feat: add support for UEFI (#642)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-05-12 10:11:33 -07:00
Andrew Rynhard
86e24601b1
chore: publish AMIs on tags (#633)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-05-09 13:04:41 -07:00
Andrew Rynhard
f0e162a7f5
refactor: move osinstall into osctl (#629)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-05-09 08:49:32 -07:00
Andrew Rynhard
21c0b05af6
feat: upgrade Linux to v4.19.40 (#630)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-05-09 06:29:22 -07:00
Andrew Rynhard
08789a0b8c
feat: update toolchain (#628)
This toolchain brings in:
- Linux v4.19.40
- Musl v1.1.22
- Golang v1.12.5
- Protobuf v3.7.1
- Golang-protobuf v1.3.1

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-05-09 05:36:13 -07:00
Andrew Rynhard
67a8343590
chore: build iso image (#616)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-05-05 13:13:01 -07:00