225 Commits

Author SHA1 Message Date
Andrey Smirnov
6acba980d7 fix: make Flannel CNI image follow $PKGS version
Flannel CNI image default was hardcoded in the bootkube-plugin, so it
might become outdated as `$PKGS` get rebuilt. Fix that by embedding
`$PKGS` variable with the Talos build.

Note: we might want to print `$PKGS` variable with `talosctl version`
for easier troubleshooting (or version tag is enough?).

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-28 12:28:48 -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
Andrey Smirnov
d3ccb3d1e0 fix: move installer image variables out of machinery
Machinery is supposed to be consumed without special build instructions,
so move images to "main" talos tree.

As config implementation is in the machinery, I had to drop the default
installer image there.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-24 15:05:49 -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
Andrew Rynhard
ac00b7ec9c feat: add default install image
We longer require an install image in the install config.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-09-22 09:18:35 -07:00
Spencer Smith
fe1a4e4810 docs: add v0.7 docs
This PR adds the 0.7 docs into the mix so we can start creating docs for
things specific to that version.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-09-22 07:10:14 -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
a5e7e97e9b feat: use latest packages
This brings in a version of packages that have been built with gcc 10.2.0.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-09-05 06:13:36 -07:00
Andrew Rynhard
2b84cf1967 feat: upgrade runc to v1.0.0-rc92
This brings in the latest stable version of runc.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-09-04 13:09:37 -07:00
Andrew Rynhard
6a85a47ffa feat: upgrade containerd to v1.4.0
This brings in the latest stable containerd.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-09-04 02:59:08 -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
ec01bcf874 chore: remove extra COPY from rootfs
This stage is already derived from `rootfs-base`, so this copy statement
should be doing nothing.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-03 11:51:07 -07:00
Andrew Rynhard
555cae1073 fix: add syslinux to create ISO
We need syslinux to create an ISO.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-09-02 12:46:57 -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
d820f08966 feat: update linux to 5.8.5
This PR pulls in the new stable linux version.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-08-27 16:37:03 -07:00
Andrew Rynhard
805a762fa4 feat: upgrade Linux to v5.7.15
This brings in the latest version of v5.7 Linux.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-08-18 12:59:17 -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
Spencer Smith
21ae962fcc feat: pull in kernel with fuse support
This PR pulls in the latest pkgs build, which contains a kernel with
FUSE support enabled.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-07-28 09:44:11 -07: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
Andrey Smirnov
c54639e541 feat: implement server-side API for cluster health checks
This implements existing server-side health checks as defined in
`internal/pkg/cluster/checks` in Talos API.

Summary of changes:

* new `cluster` API

* `apid` now listens without auth on local file socket

* `cluster` API is for now implemented in `machined`, but we can move it
to the new service if we find it more appropriate

* `talosctl health` by default now does server-side health check

UX: `talosctl health` without arguments does health check for the
cluster if it has healthy K8s to return master/worker nodes. If needed,
node list can be overridden with flags.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-15 13:52:13 -07:00
Andrey Smirnov
cbb7ca8390 refactor: merge osd into machined
This merges `osd` API into `machined`. API was copied from `osd` into
`machined`, and `osd` API was deprecated.

For backwards compatibility, `machined` still implements `osd` API, so
older Talos API clients can still talk to the node without changes.

Docs were updated. No functional changes.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-13 12:50:00 -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
Andrew Rynhard
6c9ef2ae59 feat: upgrade Linux to v5.7.7
This brings in the latest stable version of Linux.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-07-01 14:57:48 -07:00
Andrew Rynhard
159a28eba7 fix: report the correct containerd version
This brings in an updated build of containerd this has the
correct version string.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-07-01 12:19:01 -07:00
Andrew Rynhard
821ba79306 feat: upgrade containerd to v1.3.6
This brings in the latest stable containerd.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-07-01 10:10:49 -07:00
Andrew Rynhard
888c8b948a feat: add /system directory
This adds the `/system` directory to provide a dedicated
directory for all system related runtime files.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-07-01 09:51:56 -07:00
Andrey Smirnov
b20fcfd5d0 chore: upgrade golangci-lint to 1.27
This version is built with newer Go which fixes
`fatal error: mlock failed` on Ubuntu kernels which are actually
patched, but their minor version doesn't match Go expectations.

New linters were disabled to minimize the changes, and plan is to fix
the linting errors in subsequent PRs.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-06-26 11:08:59 -04:00
Spencer Smith
718fd28264 chore: update kernel to support CONFIG_CRYPTO_USER_API_HASH
This PR pulls in a newer kernel with CONFIG_CRYPTO_USER_API_HASH
support. This is needed for cilium 1.7.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-06-17 13:47:34 -07:00
Andrew Rynhard
65d02f9ddb feat: add open-iscsi
A number of storage providers depend on having open-iscsi installed
on the host. This adds open-iscsi along with any dependencies.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-06-14 14:16:27 -07:00
Andrew Rynhard
2ab2ec296e fix: update LVM2
This brings in an updated build of LVM2 that addresses a
segfault error. We were also missing libaio.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-06-12 13:18:03 -07:00
Spencer Smith
0adfd81bd4 feat: update linux kernel (with 32 bit support) and talos pkgs for v0.6
This PR bundles three commits from the pkgs repo:

- c09825e05a
- 393291ddf2
- 908b75b81f

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-06-11 15:43:56 -07:00
Andrew Rynhard
336f983c21 docs: add v0.6 docs
This adds the documentation for v0.6 and removes v0.3 since
it is no longer supported.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-06-10 10:39:38 -07:00
Andrew Rynhard
90efb0a74e feat: add LVM2
This adds LVM2 to the rootfs. This is required by rook.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-26 06:07:16 -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
Andrew Rynhard
00b7176a8a feat: upgrade Linux to v5.6.13
This brings in the latest version of Linux.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-18 14:41:59 -07:00
Andrew Rynhard
cc7ee56852 feat: enable rpfilter
This brings in an updated kernel that enables rpfilter.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-11 08:42:49 -07:00
Andrew Rynhard
fa5299b924 fix: update kernel package
This updates packages to include a kernel built with
CONFIG_NETFILTER_XT_MATCH_SOCKET=y since it is recommended
by cilium.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-08 06:04:39 -07:00
Andrew Rynhard
1c20a32ab4 chore: pin markdown linting libraries
A new version of markdownlint-cli was released that breaks the
lint-markdown target. This pins all the libraries we use for
linting markdown files to specific versions that are known to
work.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-07 10:19:01 -04:00
Andrew Rynhard
0204feeb0b chore: fix prototool lint
We were never copying the protobuf files in, so prototool was never
really linting anything. This ensures that the `api` directory is copied
in.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-29 08:14:39 -07:00
Andrew Rynhard
37a7906f09 chore: fix markdown linting issues
This fixes random markdown linting issues. The previous `sentences-per-line`
library seems to be broken now, and unmaintained. This moves to using
`textlint` instead.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-26 20:38:03 -07:00
Andrew Rynhard
5e822d02a6 chore: update pkgs tag to v0.2.0
This change updates the pkgs tag to v0.2.0. There is no difference in
the content of the packages.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-14 08:58:31 -07:00
Andrew Rynhard
7cf28dc805 refactor: rename ntpd to timed
This renames the ntpd application to timed.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-13 15:02:26 -07:00