Commit Graph

43 Commits

Author SHA1 Message Date
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
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
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
Andrew Rynhard
25a950f1d4 chore: fix markdown-lint
Updates the `lint-markdown` target.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-04 09:25:16 -08:00
Andrew Rynhard
562f816526 refactor: use gRPC for interactive installation
Instead of hosting a web service, we decided to implement a gRPC service
that exposes APIs that can be used in a client-side interactive installer.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-03 08:36:44 -08:00
Rick Richardson
0c48c3d447 docs: fix AWS guides
Clarifies that a user should use the instance's private IPs in the creation of the NLB

Signed-off-by: Rick Richardson <rick@letter.co>
2020-11-02 20:19:21 -08:00
Andrew Rynhard
221b0fcf5b docs: address small nits
Small fixes to configuration comments, and docs website.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-10-30 17:13:28 -07: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
a741509ca5 docs: update config reference docs
Mostly some nits, small examples, distributing docs better,
splitting examples, etc.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-30 23:52:21 +03:00
Artem Chernyshev
764300a48b fix: read/write human readable representations for bytes and octals
Use octal representation to dump FileMode to yaml.
Use 100MB/1GB/1.5TB representations for partitions size, but only if
that doesn't lead to losing precision. Decoding of them should work as
well.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-10-30 12:15:43 -07:00
Artem Chernyshev
061b296530 feat: allow specifying user-disks in talosctl cluster create
User-disks are supported by QEMU and Firecracker providers.
Can be defined by using the following parameters:
```
--user-disk /mount/path:1GB
```

Can get more than 1 user disk.
Same set of user disks will be created for all master and worker nodes.

Additionally enable user-disks in qemu e2e test.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-10-30 08:44:08 -07:00
Andrew Rynhard
7e7e371170 docs: fix small CSS issues
Adds a dashed line between struct field sections in generate configuration
markdown. Also improves the padding of the headers in the right sidebar.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-10-30 07:32:13 -07:00
Andrey Smirnov
a32c0a78f7 docs: improve the config reference documentation
Lots of small changes, changing layout, adding back references,
propagating examples, etc.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-29 18:41:46 -07:00
Andrey Smirnov
18e847fa8b fix: bump type for DiskSize to be 64-bit
Otherwise we're bound with 4GiB partititions.

Discovered by @Unix4ever.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-10-29 22:00:35 +03:00
Andrew Rynhard
964e4405c3 docs: improve search bar
The search bar was taking too much space in the header. This moves it
to the sidebar. The search query now filters based on the current version
of docs.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-10-29 07:17:51 -07:00
Andrew Rynhard
55bb1ffc24 fix: remove default time server in time command
This was causing the ntp query to always use pool.ntp.org.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-10-28 10:38:01 -07:00
Artem Chernyshev
6f9cd9bee2 docs: fix config reference types links
Looks like gridsome can't handle markdown inside <code> tags.
Completely replaced this thing with html syntax.

Signed-off-by: Artem Chernyshev <artem.0xD2@gmail.com>
2020-10-27 07:53:25 -07:00
Andrew Rynhard
1b0ed13231 docs: move to gridsome
Brings in a new theme, improved content, and restructured layout.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-10-26 21:14:14 -07:00