446 Commits

Author SHA1 Message Date
Andrey Smirnov
32d231debd feat: update Go to 1.15.5
Release contains important security fixes:

https://groups.google.com/g/golang-announce/c/NpBGTTmKzpM/m/fLguyiM2CAAJ

Fixes #2775

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-13 09:20:56 -08:00
Andrey Smirnov
df6ad3fa80 feat: upgrade Kubernetes default version to 1.19.4
k8s.io modules don't have 1.19.4 tag yet :(

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-12 08:51:04 -08:00
Andrey Smirnov
5fca20e137 chore: bump Go to 1.15.4
See:

* https://github.com/talos-systems/pkgs/pull/185
* https://github.com/talos-systems/tools/pull/111
* https://github.com/talos-systems/extras/pull/3

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-09 08:49:37 -08:00
Andrew Rynhard
4d9555a3ac fix: update packages
Brings in the R8169 driver.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-07 15:22:53 -08:00
Spencer Smith
5fee81bb11 feat: upgrade kernel to v5.9.3
This PR brings in an upgraded pkgs version that contains fe414af3b4

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-11-03 08:52:22 -08:00
Andrew Rynhard
06227639f8 feat: upgrade packages
Brings in latest stable packages.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-02 12:08:54 -08:00
Andrew Rynhard
1ca61ddce7 feat: add ISO support
This reverts commit 3515f4e0f8c11352539ed0d430e1f44f73c8229f.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-02 10:21:40 -08:00
Andrey Smirnov
350d75eb46 feat: build talosctl-cni-bundle, use it in talosctl for QEMU
This builds a bundle with CNI plugins for talosctl which is
automatically downloaded by `talosctl` if CNI plugins are missing.

CNI directories are moved by default to the `~/.talos/cni` path.

Also add a bunch of pre-flight checks to the QEMU provisioner to make it
easier to bootstrap the Talos QEMU cluster.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-30 16:30:37 -07:00
Andrey Smirnov
66829b14d5 test: bump Talos version for upgrade tests, bump Cilium version
Use 0.6.3 as upgrade source version, use latest Cilium release.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-29 22:22:21 +03:00
Andrey Smirnov
f5cef16bc5 feat: bump Linux to 5.8.16, enable mpt3sas driver
See https://github.com/talos-systems/pkgs/pull/181

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-28 08:47:16 -07:00
Andrey Smirnov
bc9e0c0dba fix: re-implement upgrade (install) with preserve
For 0.6 -> 0.7 upgrade, in any case config.yaml is preserved and moved
from `/boot` to `/system/state`.

For single node upgrade, `EPHEMERAL` partition is not touched and other
partitions are re-created as needed.

Bump provision tests to 0.6/0.7 upgrades as we get closer to the new
release.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-28 07:25:26 -07:00
Artem Chernyshev
d0ed6d7cc6 feat: encode comments as part of talosctl generated configs
Comments encoding works, defaults encoding works.
Docgen was revamped: now it generates go files.
While markdown files are all handled by
`pkg/machinery/config/encoder/markdown.go`.

Changed scheme for docs. Now it no longer relies on a single `doc.go` in
the root of a package. Instead it can generate separate `*_doc.go` files
for each file in the package. `docgen` now expects to get 3 params
instead of 2. 3rd parameter is used to define a unique method name for
getting the list of structs in the file.

Backward compatibility is supported if we define package name as the 3rd
parameter.

1st parameter no longer scans whole current directory, instead it points
to the particular file that should be processed by docgen.

`talosctl docs` command now supports two flags: `--config` and `--cli`.
They allow generating only docs for v1alpha1 configs or for talosctl. If
no flags are defined, all docs are generated.

Additionally made field types clickable in the output markdown file.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-10-26 13:05:23 -07:00
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