Commit Graph

234 Commits

Author SHA1 Message Date
Andrey Smirnov
aef7933a6a chore: fix the check-dirty command to abort on untracked files
`git describe` ignores untracked files in `-dirty`

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-20 14:33:48 -07:00
Andrey Smirnov
56f1ee37fd feat: upgrade Kubernetes to 1.19.3
Just minor release bump.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-20 05:12:32 -07:00
Andrey Smirnov
af6388c755 feat: bump packages for Linux 5.8.15 and containerd 1.4.1
See:

* https://github.com/talos-systems/pkgs/pull/179
* https://github.com/talos-systems/pkgs/pull/178

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-16 14:39:17 -07:00
Andrey Smirnov
4701a5d40f chore: bump Go to 1.15.3
See https://github.com/talos-systems/tools/pull/110

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-15 09:23:28 -07:00
Andrey Smirnov
8cf1b4089b feat: bump packages version for the kernel with BBR TCP congestion algo
Fixes #2638

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-14 15:25:05 -07:00
Andrey Smirnov
1572966686 feat: bring in install-cni & pod-checkpointer from extras packages
This introduces newly built multi-arch images from
`talos-systems/extras`.

Also fixed default installer image if config is missing.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-08 14:45:00 -07:00
Andrey Smirnov
8dfddd2ef9 chore: bump pkgs version
This brings in new kernel configs which includes the following PRs:

* https://github.com/talos-systems/pkgs/pull/174
* https://github.com/talos-systems/pkgs/pull/171

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-07 13:50:44 -07:00
Andrey Smirnov
7474f96d2d chore: publish list of images to release notes
This uses `talosctl images`. This way it's easy to find installer image
or talos image for any release.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-07 09:59:35 -07:00
Andrey Smirnov
ff0d4b305a feat: build Talos images/artifacts for amd64/arm64
By default, build outside of Drone works the same and builds only amd64
version, loads images back into dockerd, etc.

If multiple platforms are used, multi-arch images are built which can't
be exported to docker or to `.tar` image, they're always pushed to the
registry (even for PR builds to our internal CI registry).

Artifacts as files (initramfs, kernel) now have `-arch` suffix:
`vmlinuz-amd64`, `initramfs-amd64.xz`. "Magic" script normalizes output
paths depending on whether single platform or multiple platforms were
given.

VM provisioners accept magic `${ARCH}` in initramfs/kernel paths which
gets replaced by cluster architecture.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-27 10:32:07 -07:00
Andrew Rynhard
d8c494e1a8 chore: fix docker login
Updates the drone config to setup the GHCR credentials.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-09-23 16:22:55 -07:00
Andrew Rynhard
d7dc60d1f9 chore: fix docker login
We need to specify the registry when running `docker login`.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-09-23 15:59:19 -07:00
Andrew Rynhard
7d2741fc4b chore: migrate to ghcr.io
Move to GHCR.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-09-23 15:06:30 -07:00
Andrey Smirnov
551ab70847 feat: ugrade Linux kernel to 5.8.10
This addresses CVE-2020-14386.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-17 14:35:40 -07:00
Andrey Smirnov
b4341d8780 feat: upgrade kubernetes to 1.19.1
Release notes: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.19.md#v1191

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-11 06:58:12 -07:00
Andrey Smirnov
788cd15c29 test: add e2e test to the provision (upgrade) tests
Add sonobuoy runner code with log fetching on failure. Use hand-picked
set of e2e tests to run: verify basic pod functionality, verify service
connectivity.

Add option `--run-e2e` to the `talosctl health` to run quick e2e test to
verify cluster health.

Add option to run provision tests with custom CNI, run one track of
provision tests with Cilium.

Bump Cilium to 1.8.2.

Talos 0.6 won't uncordon node automatically after upgrade from 0.5, as
0.5 doesn't put annotation. Workaround that in upgrade tests.

Bump upgrade test version to 0.6.0 release.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-08 13:26:31 -07:00
Andrey Smirnov
6b98ab729e refactor: deduplicate packages version in Dockerfile
There's no way to use variable substitution in `COPY --from=`, but we
can use that in `FROM`.

Also bump TOOLS version to finish bump from #2497.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-07 07:42:06 -07:00
Andrew Rynhard
3515f4e0f8 feat: remove ISO support
This feature has long been broken. It is time to remove it.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-09-04 01:00:40 -07:00
Andrey Smirnov
8ad43d4b1f chore: upgrade Go to 1.15.1
See:

* https://github.com/talos-systems/pkgs/pull/161
* https://github.com/talos-systems/tools/pull/104

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-03 15:36:53 -07:00
Andrey Smirnov
e7dc34e8b8 chore: upgrade Go to 1.14.8
See also:

* https://github.com/talos-systems/pkgs/pull/158
* https://github.com/talos-systems/tools/pull/102

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-01 13:40:27 -07:00
Andrew Rynhard
1a4059a553 feat: add grub bootloader
This moves to using grub instead of syslinux.

BREAKING CHANGE: Single node upgrades will fail in this change. This
will also break the A/B fallback setup since this version introduces
an entirely new partition scheme, that any fallback will not know about.
We plan on addressing these issues in a follow up change.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-09-01 12:06:43 -07:00
Andrey Smirnov
2f99f551e7 chore: drop vmlinux from assets
`vmlinux` (uncompressed kernel) shouldn't be much useful to the people
as it can't be booted directly with most of the boot tools (it's too
huge). We had it enabled for firecracker, but now firecracker has
support for decompressing `vmlinuz` on the fly.

So, to reduce confusion, make assets smaller, remove `vmlinux`.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-01 07:57:56 -07:00
Spencer Smith
4238d4428b feat: update kubernetes to v1.19.0
This PR version bumps all of the kubnernetes version defaults to the
v1.19.0 release.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-08-26 15:30:36 -07:00
Andrew Rynhard
83aa3bd3ab chore: bump next version to v0.6.0-beta.2
This updates the "next" version in our integration tests.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-08-21 01:44:26 -07:00
Andrey Smirnov
bddd4f1bf6 refactor: move external API packages into machinery/
This moves `pkg/config`, `pkg/client` and `pkg/constants`
under `pkg/machinery` umbrella.

And `pkg/machinery` is published as Go module inside Talos repository.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-08-17 09:56:14 -07:00
Andrey Smirnov
050d34275a chore: integrate importvet
This integrates [importvet](https://github.com/talos-systems/importvet)
into `lint` target.

First rule file was added for public packages `pkg/` which shouldn't
depend on other parts of Talos tree (except for the API definitions).

Only one change: `internal/cis` was moved under single user -
`pkg/config/internal/cis` to satisfy the rules.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-08-11 13:19:15 -07:00
Andrew Rynhard
16c8f167c4 chore: update packages
This bring in:

- Go v1.14.7
- Linux v5.7.14

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-08-08 09:18:18 -07:00
Andrey Smirnov
a5d64d97c1 test: update qemu/firecracker provisioners
Fixes #2363 #2364 #2370 #2371

Several changes packed together:

* use compressed `vmlinuz` everywhere, firecracker provisioner
uncompresses it before first use, drop `vmlinux`

* handle reboots in qemu launcher to support reset API case, update
empty disk check to handle reset behavior (erasing partition table)

* make bootloader support default in provisioners, and flag to disable
that

* early support for target architecture for qemu provisioner

This should allow us to use `qemu` in CI/CD (not included into this PR):
integration test passes with qemu.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-30 21:17:25 +03:00
Andrew Rynhard
1b491d0a66 feat: upgrade Kubernetes to v1.19.0-rc.3
This brings in the latest version of Kubernetes.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-07-29 11:04:50 -07:00
Andrew Rynhard
6f5d24cc3d chore: add release notes
This ensures that releases have notes.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-07-28 14:14:33 -07:00
Andrey Smirnov
2770d6414c test: upgrade versions the upgrade tests are operating on
This bumps next version to the latest 0.6 alpha and latest 0.5.

This also enables single node preserve test.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-28 12:35:37 -07:00
Andrey Smirnov
76c44ac468 test: remove apid load balancer for firecracker
We're not using load balancer for `apid` (always using client-side load
balancing), so we can remove this safely.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-28 20:21:21 +03:00
Andrey Smirnov
b5b70ec858 chore: upgrade pkgs and tools for Go 1.14.6
This also brings in multi-arch pkgs and tools, but we're not consuming
arm64 images yet.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-27 12:33:53 -07:00
Andrew Rynhard
1f31d24e55 chore: use Kubernetes pipelines
This moves to using Kubernetes pipelines.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-07-27 12:09:53 -07:00
Andrey Smirnov
41d5f7859a chore: update golangci-lint to 1.28.3
Fixes #2272

`gofumpt` is now included into `golangci-lint`, but not the
`gofumports`, so we keep it using it as separate binary, but we keep
versions in sync with `golangci-lint`.

This contains fixes from:

* `gofumpt` (automated, mostly around octal constants)
* `exhaustive` in `switch` statements
* `noctx` (adding context with default timeout to http requests)

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-16 08:05:42 -07:00
Andrey Smirnov
e82895ccc5 chore: upgrade Go to 1.14.5
go1.14.5 (released 2020/07/14) includes security fixes to the
crypto/x509 and net/http packages.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-16 07:05:54 -07:00
Spencer Smith
f290f88160 chore: update clusterctl for CI testing
This PR brings in the latest version of clusterctl that has built-in
support for the talos repos. I'll be chasing this with a move to using
the control-plane provider as well!

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-07-15 19:33:59 -04:00
Andrew Rynhard
0617a10027 feat: upgrade Kubernetes to v1.19.0-rc.0
This brings in the latest version of Kubernetes.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-07-14 13:07:18 -07:00
Andrew Rynhard
a5a2d959ed feat: upgrade runc to v1.0.0-rc90
This updates runc to the same version vendored by containerd.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-07-02 13:19:33 -07:00
Andrey Smirnov
3ae5e0e749 test: add short integration test with custom CNI
This adds new flug to `cluster create` to launch cluster with custom
CNI, `integration` pipeline gets a new step to run short test with
Cilium 1.8.0 CNI.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-01 11:19:19 -07:00
Andrey Smirnov
e46a09f56a chore: make default pipeline run shorter integration test
This moves full integratation test and provision tests to
the `integration` pipeline.

Docker test wasn't affected much, as anyways docker can't run long
integration tests, so it mostly affects firecracker and provision tests.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-01 00:14:55 +03:00
Andrey Smirnov
197369bdc1 fix: make installer re-read partition table before formatting
This hopefully should fix errors like:

```
2020/06/25 18:23:22 attaching loopback device
2020/06/25 18:23:22 partitioning /dev/loop2 - ESP
2020/06/25 18:23:22 partitioning /dev/loop2 - EPHEMERAL
2020/06/25 18:23:22 formatting partition "/dev/loop2p1" as "fat" with label "ESP"
2020/06/25 18:23:22 detaching loopback device
2020/06/25 18:23:22 failed to format device: exit status 1: mkfs.vfat: can't open '/dev/loop2p1': No such file or directory
```

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-06-26 12:22:00 -07:00
Andrew Rynhard
d0d2ac3c74 test: default to using the bootstrap API
This moves our test scripts to using the bootstrap API. Some
automation around invoking the bootstrap API was also added
to give the same ease of use when creating clusters with the
CLI.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-06-24 08:46:10 -07:00
Spencer Smith
90115bb3ef feat: update kubernetes to 1.19.0-beta.1
This PR brings in all changes necessary to deploy kubernetes 1.19.x.

It relies on an update to our bootkube-plugin project, as well as
implementation of some Image() functions for our various control plane
components, since they are all distinct images and not just hyperkube.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-06-10 15:01:11 -04:00
Spencer Smith
e03a68f8eb feat: update k8s and sonobuoy versions
This PR will update k8s to the latest 1.18 release and bump sonobuoy to
help resolve some e2e flakes. Also adds some retry logic around the
sonobuoy run.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-06-10 06:47:36 -07:00
Andrew Rynhard
77150f51cf chore: update provision test versions
This adds latest 0.6 alpha and 0.5 stable to the upgrade tests.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-29 14:58:54 -07:00
Andrey Smirnov
2fb00344ab chore: upgrade Go to 1.14.3 and use toolchain for race detector
With Go 1.14.3 we can run race-enabled code on muslc, so this opens path
to run unit-tests-race under Talos environment with rootfs, enabling all
the tests to run under race detector.

Also fixed the tests run by specifying platform in the test environment.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-05-25 08:35:11 -07:00
Andrey Smirnov
652531853f test: update Talos versions for upgrade tests
Our policy it to support two last releases (0.4, 0.5 at the moment).

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-05-20 07:43:10 -07:00
Spencer Smith
c1b6f05b00 chore: use clusterctl and v1alpha3 providers for tests
This PR will update our testing ocde to make use of the clusterctl tool,
as well as use the newer versions of various providers and updated
manifests.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-05-01 07:42:19 -07:00
Andrew Rynhard
49307d554d refactor: improve machined
This is a rewrite of machined. It addresses some of the limitations and
complexity in the implementation. This introduces the idea of a
controller. A controller is responsible for managing the runtime, the
sequencer, and a new state type introduced in this PR.

A few highlights are:

- no more event bus
- functional approach to tasks (no more types defined for each task)
  - the task function definition now offers a lot more context, like
    access to raw API requests, the current sequence, a logger, the new
    state interface, and the runtime interface.
- no more panics to handle reboots
- additional initialize and reboot sequences
- graceful gRPC server shutdown on critical errors
- config is now stored at install time to avoid having to download it at
  install time and at boot time
- upgrades now use the local config instead of downloading it
- the upgrade API's preserve option takes precedence over the config's
  install force option

Additionally, this pulls various packes in under machined to make the
code easier to navigate.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-28 08:20:55 -07:00
Andrew Rynhard
a10acd592a chore: address random CI nits
This PR does the following:

- updates the conform config
- cleans up conform scopes
- moves slash commands to the talos-bot
- adds a check list to the pull request template
- disables codecov comments
- uses `BOT_TOKEN` so all actions are performed as the talos-bot user
- adds a `make conformance` target to make it easy for contributors to
check their commit before creating a PR
- bumps golangci-lint to v1.24.0

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-13 13:01:14 -07:00