Commit Graph

65 Commits

Author SHA1 Message Date
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
Andrey Smirnov
9a32e34cb1 feat: implement apply configuration without reboot
This allows config to be written to disk without being applied
immediately.

Small refactoring to extract common code paths.

At first, I tried to implement this via the sequencer, but looks like
it's too hard to get it right, as sequencer lacks context and config to
be written is not applied to the runtime.

Fixes #2828

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-23 12:42:44 -08:00
Spencer Smith
6a9e55d07b docs: ensure we configure nodes in guides
This PR makes sure we go through the step of running `talosctl
config nodes` for each of our environment guides.

Will close #2609

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-11-19 13:48:41 -05:00
Spencer Smith
80c6a02b5e docs: ensure gcp docs have firewall and node info
This PR fixes some missing info in the GCP docs to make sure that we
allow for talosctl in the firewall, as well as set the node in talosctl
so the kubeconfig command works.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-11-19 10:33:00 -08:00
Artem Chernyshev
b6874ee82a feat: add TUI based talos interactive installer
This is initial commit of the installer.
What's done:
- verifying node availability before starting any operations.
- gathering information about disks on the machine.
- allows setting: install disk, hostname, machine type, installer image,
  kubernetes version, dns domain, cluster-name.
- dumps/merges talosconfig to a file after applying configuration.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-11-18 12:34:15 -08:00
Seán C McCord
5d4d179cd8 feat: support ipv6 routes
While IPv6 were mostly supported already, there was a single segment in
the interface setup which forced everything into an IPv4 route.
This limitation has been removed.

In so doing, route metrics have been cleaned up a small amount.
This change allows the specification of the route metric from the
config.

Fixes #2772

Signed-off-by: Seán C McCord <ulexus@gmail.com>
2020-11-17 13:11:26 -08:00
Andrey Smirnov
6d832445e2 docs: add qemu diagram and video walkthrough
This shows improved in 0.7 Talos in QEMU experience.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-17 11:43:16 -08:00
Artem Chernyshev
8513123d22 feat: return client config as the second value in GenerateConfiguration
To be used in interactive installer to output the node client
configuration to a file.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-11-17 07:20:05 -08:00
Andrey Smirnov
83bb1afcb6 feat: drop to maintenance mode in cloud platforms if userdata is missing
On first boot of Talos, if userdata is missing, Talos is going to drop
into maintenance mode which allows to upload config to the server via
`talosctl apply-config` command.

See also: https://github.com/talos-systems/go-retry/pull/4

Fixes #2780

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-16 11:03:26 -08:00
Andrey Smirnov
61facf700a chore: build arm64 images in CI
This changes installer image/iso output to be tar via stdout
(optionally), so that we can copy back artifacts back from remote docker
daemon.

Fixes #2776

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-13 12:34:48 -08:00
Andrey Smirnov
16c5fa64f6 docs: improve configuration reference documentation
`docgen` now correctly extracts documentation for the structure itself,
and supports mix of Go-style and yaml-style docblocks, so that we can
keep linter happy while embedding examples.

Fixes for the encoder to keep things marshaled same way even with the
presence of the struct docs.

Add real examples replacing fake ones.

Add top-level hacked examples for `Config`, `MachineConfig` and
`ClusterConfig` to show the overall structure without pulling in all the
deep structure of those types.

Fixes #2768

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-13 11:50:26 -08:00
Artem Chernyshev
0f924b5122 feat: add generate config gRPC API
Fixes: https://github.com/talos-systems/talos/issues/2766

This API is implemented in Maintenance and Machine services.
Can be used to generate configuration on the node, instead of using
talosctl to generate it locally.

To be used in interactive installer and talosctl gen config.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-11-13 08:07:32 -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
58df555580 feat: add example command in maintenance, enforce cert fingerprint
Server in maintenance mode now prints certficate fingerprint and
provides sample talosctl command to upload config to the node.

`talosctl` can optionally enforce server certificate fingerprint.

See also https://github.com/talos-systems/crypto/pull/4

Fixes #2753

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-12 07:36:18 -08:00
Artem Chernyshev
93e30a1738 chore: remove maintenance service interface and use machine service
Now maintenance service implements `MachineService` interface, stubbing
all not implemented methods.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-11-11 12:33:44 -08:00
Andrew Rynhard
71321214a1 feat: add storage API
This is the initial implementation of a storage API.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-11 10:12:25 -08:00
Andrey Smirnov
026244097a refactor: drop osd compatibility layer
Fixes #2761

Service `osd` was merged into machined on Jul, 13th, before 0.6 release.

It's time to drop the backwards compatibility with clients before 0.6.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-11 09:38:19 -08:00
Andrew Rynhard
8338daf086 fix: use ghcr.io/talos-systems/kubelet
Moves us off of docker.io.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-11 08:44:07 -08:00
Spencer Smith
b746d51f56 docs: add proxmox doc
This PR adds a guide to using proxmox with talos.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-11-10 13:37:27 -08:00
Spencer Smith
762feabe05 docs: add live walkthroughs where applicable
This PR adds embedded youtube videos in places where we have done
walkthroughs of this functionality.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-11-10 16:05:26 -05:00
Andrew Rynhard
bf1e81b1f4 release(v0.8.0-alpha.0): prepare release
This is the official v0.8.0-alpha.0 release.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-10 12:23:02 -08:00
Spencer Smith
1a7e9f0b7c docs: add virtualbox deployment guide
This PR adds instructions on running Talos on virtualbox.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-11-10 11:38:28 -08:00
Seán C McCord
05c7cbd67b docs: add high-level orientation docs for talosctl
Adds some high-level meta documentation for the function and usage of
talosctl.

Fixes #2743

Signed-off-by: Seán C McCord <ulexus@gmail.com>
2020-11-10 11:38:06 -08:00
Andrey Smirnov
b2b86a622e fix: remove 'token creds' from maintenance service
This fixes the reverse Go dependency from `pkg/machinery` to `talos`
package.

Add a check to `Dockerfile` to prevent `pkg/machinery/go.mod` getting
out of sync, this should prevent problems in the future.

Fix potential security issue in `token` authorizer to deny requests
without grpc metadata.

In provisioner, add support for launching nodes without the config
(config is not delivered to the provisioned nodes).

Breaking change in `pkg/provision`: now `NodeRequest.Type` should be set
to the node type (as config can be missing now).

In `talosctl cluster create` add a flag to skip providing config to the
nodes so that they enter maintenance mode, while the generated configs
are written down to disk (so they can be tweaked and applied easily).

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-11-09 14:10:32 -08:00
Seán C McCord
f9a32ff386 docs: add a description of endpoints and nodes
Adds a description of the roles of endpoints and nodes in the talosctl
config.

Fixes #2731

Signed-off-by: Seán C McCord <ulexus@gmail.com>
2020-11-06 17:42:33 -08:00
Seán C McCord
6c09aacb1c docs: describe talos upgrade
Describe the Talos upgrade procedure and provide answers to common
questions about it.

Fixes issue #2626

Signed-off-by: Seán C McCord <ulexus@gmail.com>
2020-11-06 09:28:53 -08:00