Commit Graph

50 Commits

Author SHA1 Message Date
Brandon McNama
d455f917fb docs: document omitting DiskPartition size
Documents the effect of omitting the size of a DiskPartition.

Closes talos-systems/talos#3014

Signed-off-by: Brandon McNama <brandonmcnama@outlook.com>
2021-01-04 08:55:00 -08:00
Alexey Palazhchenko
f3465b8e3e feat: support type filter in list API and CLI
Closes #2068.

Signed-off-by: Alexey Palazhchenko <alexey.palazhchenko@gmail.com>
2020-12-24 06:34:02 -08:00
Andrey Smirnov
5590fe19eb docs: update references to 0.8.0, add 0.8.0 AWS AMIs
Updating things for the final release.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-12-24 05:16:15 -08:00
Andrey Smirnov
6a0e652f0c fix: correctly transport gRPC errors from apid
Before these changes, errors were always sent as strings, so if original
error was gRPC error (which is almost always the case for apid), it is
formatted as string and original fields (like code) are lost in the
formatted string.

With this change, apid sends errors as official `grpc.Status` protobuf
structure, and client decodes that into Go grpc.Status based error.

This change is backwards and forwards compatible.

This should fix more cases when integration tests were not able to
ignore grpc `transport is closing` errors when they were sent as strings
from the apid endpoint.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-12-23 11:08:51 -08:00
Artem Chernyshev
a83e8758db feat: add commands to manage/query etcd cluster
Used already existing protobufs for that.

Commands:
`talosctl etcd members -n <node>`
`talosctl etcd leave -n <node>`
`talosctl etcd forfeit-leadership -n <node>`

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-12-22 11:49:10 -08:00
Artem Chernyshev
6540e9bf70 feat: support disk image in talosctl cluster create
Fixes: https://github.com/talos-systems/talos/issues/2973

Can now supply disk image using `--disk-image-path` flag.
May need to enable `--with-apply-config` if it's necessary to bootstrap
nodes properly.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-12-22 17:06:00 +03:00
Andrey Smirnov
b1d4814308 feat: update Kubernetes to 1.20.1
See https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-12-21 23:52:29 +03:00
Artem Chernyshev
14b43068d0 docs: fix SBC docs to point to beta.0 instead of beta.1
We don't have beta.1 yet.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-12-21 04:02:22 -08:00
Andrey Smirnov
a4f864d469 docs: update Talos release for SBCs
Also add `conv=fsync bs=4M` to `dd` commands.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-12-20 04:32:46 -08:00
Artem Chernyshev
2e74b29524 fix: properly define shorthand in talosctl time command
Previously it was defaulting to `c`.

Signed-off-by: Artem Chernyshev <artem.0xd2@gmail.com>
2020-12-18 06:49:08 -08:00
Artem Chernyshev
f5b55f41fa docs: add fallback to default page description if none is set on current page
Also filled in some of the descriptions specific for particular pages.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-12-17 13:03:27 -08:00
Artem Chernyshev
a5f928d1d4 docs: add a note for being careful about enabling debug flag
Enabling debug on slow serial consoles degrades Talos bootstrap
performance and so Talos nodes never get configured properly.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-12-16 06:30:09 -08:00
Andrew Rynhard
f0d333157e release(v0.8.0-alpha.3): prepare release
This is the official v0.8.0-alpha.3 release.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-11 17:18:43 +03:00
Andrey Smirnov
80184393bc feat: update kernel to 5.9.13, new KSPP requirements
Pulls in following changes:

* https://github.com/talos-systems/toolchain/pull/20
* https://github.com/talos-systems/tools/pull/116
* https://github.com/talos-systems/pkgs/pull/214
* https://github.com/talos-systems/pkgs/pull/215
* https://github.com/talos-systems/pkgs/pull/216
* https://github.com/talos-systems/pkgs/pull/217
* https://github.com/talos-systems/go-procfs/pull/4

New empty amd64 images for u-boot & rpi-firmware reduce the size of
amd64 installer image.

For backwards compatibility QEMU provisioner still injects "legacy" KSPP
kernel args into initial boot environment.

Installer correctly upgrades KSPP options when moving from one version
of Talos to another.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-12-10 12:41:58 -08:00
Andrey Smirnov
54ed80e244 feat: reset with system disk wipe spec
Idea is to add an option to perform "selective" reset: default reset
operation is to wipe all partitions (triggering reinstall), while spec
allows only to wipe some of the operations.

Other operations are performed exactly in the same way for any reset
flow.

Possible use case: reset only `EPHEMERAL` partition.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-12-10 11:31:07 -08:00
Andrey Smirnov
c5ffe9f4f7 test: add support for mounting ISO in talosctl cluster create
If disk is empty and ISO path is given, QEMU provisioner mounts ISO on
the first boot.

To drop into maintenance mode:

```
talosctl cluster create --provisioner=qemu --iso-path=./_out/talos-amd64.iso --skip-injecting-config --wait=false
```

Then inject the config, bootstrap the node, wait for it to come up (via
`talosctl cluster health`).

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-12-10 05:55:44 -08:00
Artem Chernyshev
68dd5b9add feat: add talosctl merge config command
Allows merging two Talos configs into one. Merges the config in whatever
is set by TALOSCONFIG or ~/.talos/config.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-12-09 13:07:45 -08:00
Artem Chernyshev
d7ce831465 feat: add talosctl config contexts
Bonus to `talosctl config merge`.
Got that idea after using talosctl for a weekend.
I feel that can be a good addition to have a command that can list existing
contexts in a table view, which is similar to what `kubectl config get-contexts`
does. To avoid going through the file which has all the certs and such.

Called it just `contexts` to align with whatever we have now (to switch
    context you need to use `talosctl config context`).

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-12-09 12:19:10 -08:00
Andrey Smirnov
872e792dbc feat: update Kubernetes to 1.20.0
Official K8s release matching Talos 0.8.0.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-12-09 06:11:48 -08:00
Andrew Rynhard
dc0a1e1ca9 docs: update Equinix Metal guide
Adds a guide for Equinix Metal.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-08 09:16:15 -08:00
Andrey Smirnov
350280eb59 feat: implement "staged" (failsafe/backup) upgrades
Regular upgrade path takes just one reboot, but it requires all the
processes to be stopped on the node before upgrade might proceed. Under
some circumstances and with potential Talos bugs it might not work
rendering Talos upgrades almost impossible.

Staged upgrades build upon regular install flow to run the upgrade on
the node reboot. Such upgrades require two reboots of the node, and it
requires two pulls of the installer image, but they should be much less
suspicious to the failure. Once the upgrade is staged, node can be
rebooted in any possible way, including hard reset and upgrade is
performed on the next boot.

New ADV format was implemented as well to allow to store install image
ref/options across reboots. New format allows for bigger values and
takes 50% of the `META` partition. Old ADV is still kept for
compatibility reasons.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-12-08 08:34:26 -08:00
Andrew Rynhard
73629cb562 docs: add architectural doc on the root file system layout
This adds documentation on how the root file system is laid out.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-08 18:48:32 +03:00
Andrew Rynhard
05d99b0df4 docs: add a note on caveats in container mode
Outlines limitations in the API in container mode.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-08 18:47:08 +03:00
Andrew Rynhard
6d7e8fc5c8 docs: add storage doc
Adds a basic guide on storage.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-08 18:44:28 +03:00
Andrew Rynhard
42f36caddd docs: add guide for custom CAs
This adds a guide on how to add a custom CA.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-08 18:41:58 +03:00
Artem Chernyshev
5d48bd5f6a feat: allow disabling NoSchedule taint on masters using TUI installer
I think this should come handy for setting up single node SBC clusters.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-12-07 07:31:54 -08:00
Eashwar Ranganathan
2bc7ed0ed9 docs: add docs for network connectivity
Adds documentation on the ports used by various components of Talos
Signed-off-by: Eashwar Ranganathan <eashwar@eashwar.com>
2020-12-05 10:25:21 -08:00
Andrew Rynhard
019ab60038 docs: improve SBC documentation
Improves the SBC documentation.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-04 16:12:00 -08:00
Andrew Rynhard
6f845ae00e release(v0.8.0-alpha.2): prepare release
This is the official v0.8.0-alpha.2 release.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-04 15:34:00 -08:00
Andrew Rynhard
0c254e79d6 feat: add support for the Pine64 Rock64
This adds support for the Rock64.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-04 09:44:20 -08:00
Seán C McCord
b8bb5e47c4 docs: fix typos
Fixed spelling errors.

Signed-off-by: Seán C McCord <ulexus@gmail.com>
2020-12-03 16:04:48 -08:00
Artem Chernyshev
63e0d02aa9 feat: add TUI for configuring network interfaces settings
Allows configuring:
- cidr.
- dhcp enable/disable.
- MTU.
- Ignore.
- Dhcp metric.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-12-03 11:05:55 -08:00
Spencer Smith
7811589db8 docs: add openstack docs
This PR adds a guide on how to deploy on Openstack with our new image.
It also fixes a small typo I noticed in gcp docs.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-12-03 10:48:45 -08:00
Artem Chernyshev
c7062e3f4d feat: make GenerateConfiguration accept current time as a parameter
If the node time is out of sync, it can generate incorrect
configuration. And maintenance mode does not allow us starting ntp,
because there is no containerd.

By providing current UTC time of the machine where talosctl client is
running, it is possible to force GenerateConfiguration use correct time.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-12-03 08:28:11 -08:00
Spencer Smith
bee365ed6f docs: ensure port for vbox and proxmox docs
This PR adds the default port to these docs so it's clear that port is
required.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-12-02 14:30:51 -05:00
Andrey Smirnov
621968977e feat: update kubernetes to 1.20.0-rc.0
Talos 0.8 is going to ship with K8s 1.20.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-12-02 10:50:58 -08:00
Andrew Rynhard
03094861c2 chore: output SBC images as compressed raw images
By publishing SBC images as compressed raw images, tools like etcher can flash SD cards
by using URLs to the release asset. It is also common in this community to publish compressed
images instead of tarballs.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-01 20:49:51 -08:00
Andrew Rynhard
db905c6f74 chore: build SBC images
This will build SBC images and output them to the artifacts directory. These images
will be published on releases.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-01 12:33:53 -08:00
Andrew Rynhard
5fe41ba32b feat: allow boards to set kernel args
This allows boards to provide kernel args at install time. We need this so that
we can set the console.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-01 07:08:20 -08:00
Andrew Rynhard
10db642b2f feat: add support for the Banana Pi M64
This adds the Banana Pi M64 to the list of supported boards.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-30 18:17:37 -08:00
Andrew Rynhard
94c7878e86 docs: add console kernel arg to rpi_4 image generation
This documents how to generate the rpi_4 board image with the correct console args.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-30 18:00:44 -08:00
Andrew Rynhard
6221cbcba0 docs: add console kernel arg to libretech_all_h3_cc_h5 image generation
This documents how to generate the libretech_all_h3_cc_h5 board image with the correct
console args.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-30 17:57:14 -08:00
Andrey Smirnov
08c84fe678 feat: stop including K8s version by default in talosctl gen config
Default image versions are kept as commented out examples.

This allows better experience for generating config on amd64 for arm64
servers. (e.g. for RPi).

Without embedded values in the config, Talos is going to use the
defaults which work better.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-30 12:52:53 -08:00
Andrew Rynhard
99aa3cdba5 feat: add support for the Raspberry Pi 4 Model B
This adds support for the Raspberry Pi 4 Model B.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-30 09:29:48 -08:00
Andrey Smirnov
07f4ed7fb4 feat: upgrade etcd to 3.4.14
No major fixes, just keeping version up to date.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-26 09:14:41 -08:00
Andrey Smirnov
1eac88e470 feat: add support for installing to SBCs
This introduces the notion of a "board" in Talos. A board is an interface that is capable
of modifying the installation in specific ways for a given SBC. This also adds support for the
libretech_all_h3_cc_h5.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-26 07:18:25 -08:00
Artem Chernyshev
f96cffd2b2 feat: add ability to choose CNI config
Initial version which only allows setting CNI using preset, no custom
CNI urls are supported at the moment. Still need to figure out what kind
of UI can be used for that.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-11-26 06:49:54 -08:00
Andrew Rynhard
1fc3dcf02d release(v0.8.0-alpha.1): prepare release
This is the official v0.8.0-alpha.1 release.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-25 20:44:16 -08:00
Andrey Smirnov
28ba6e416e feat: update Kubernetes to v1.20.0-beta.2
Talos 0.8 is going to ship with K8s 1.20.x.

Changes to support new `control-plane` label,
upgrade-k8s supports automated fixups for 1.20.

See also: https://github.com/talos-systems/bootkube-plugin/pull/22

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-25 06:39:14 -08:00
Andrey Smirnov
dd810d0514 docs: add 0.8 docs for the upcoming release
I reverted some reference docs changes in 0.7 which are related to changes
which went only into 0.8.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-24 06:02:40 -08:00