202 Commits

Author SHA1 Message Date
Spencer Smith
e03a68f8eb feat: update k8s and sonobuoy versions
This PR will update k8s to the latest 1.18 release and bump sonobuoy to
help resolve some e2e flakes. Also adds some retry logic around the
sonobuoy run.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-06-10 06:47:36 -07:00
Andrew Rynhard
8f472675ee docs: add kernel options to firecracker reqs
This adds a note on a few more requirements on the host kernel for
running Talos with firecracker.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-06-09 11:26:30 -07:00
Timothy Gerla
6a5b788d06 docs: remove repeated component in the Arges architecture image
- Removed the repeated "metal metadata server" line in the Arges
architecture image.

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-29 08:46:23 -07:00
Patatman
f648f555b6 docs: add talosctl docs document
Initial version of the talosctl docs.

Signed-off-by: Patatman <git@jeursen.nl>
2020-05-29 08:45:44 -07:00
Timothy Gerla
172a55f2f0 docs: fix a few minor styling issues
- center the "Certified Kubernetes" logo
- adjust margin on an unordered list

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-28 11:12:50 -07:00
Andrew Rynhard
20e721c47a docs: make v0.5 docs the default
This updates links and dropdown menus to point to the v0.5
documentation.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-27 10:09:47 -07:00
Patatman
cbc0ab9e58 docs: add metal overview diagram
This adds a diagram to the metal overview that illustrates the PXE boot and
installation process. Fixes #2130.

Signed-off-by: Patatman <git@jeursen.nl>
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-25 10:10:35 -07:00
Timothy Gerla
e70b7e3073 docs: fix broken links in components pages (fixes #2117)
- Intra-site docs links need to be relative
- Add nuxt-interpolation to rewrite <a> tags to <nuxt-link> tags
which improves the single-page-app behavior when clicking on internal links.

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-18 08:06:23 -07:00
Timothy Gerla
0b6b371bca docs: add some information about Arges and expand the bare metal section a bit
- Add links to Arges in 0.4 and 0.5 docs
- Add an Arges architecture diagram
- Add margins around images in docs

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-18 08:00:53 -07:00
nold
fa6ae016a9 docs: overview of talos components
This should fix issue #1933

Signed-off-by: Gerrit Pannek <nold@gnu.one>
2020-05-16 09:10:37 -07:00
Spencer Smith
c63c7f15e2 fix: respect nameservers when using docker cluster
This PR will fix some unexpected user behavior where nameservers were
always getting written to 8.8.8.8,1.1.1.1 for the docker-based talos
clusters. This occurred even when updating the docker daemon's config.
This PR will make the docker provisioner respect the --nameserver flag
and allow that to be used to override the defaults.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-05-15 13:58:30 -07:00
Timothy Gerla
8fca374ca6 docs: add a sitemap and Netlify redirects
- add nuxtjs/sitemap for an automatic sitemap generator
- add auto-generated explicit redirects for docs pages: right now, if you
navigate to a deep docs page (/docs/v0.5/en/guides/cloud/aws, for instance),
you will get an HTTP 404 from Netlify because the page doesn't exist
on disk, but the resulting single-page-app javascript will show you the content.
These redirects are an attempt to solve the 404 problem which probably affects
search engines.

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-13 12:28:01 -07:00
Andrew Rynhard
1902519727 feat: add events API
This adds an event stream to the runtime, and the ability to stream
events via the API.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-13 12:18:10 -07:00
Timothy Gerla
5348332d26 docs: adjust docs layouts and add tables of contents
- add an auto-generated table of contents with markdown-toc
- docs pages now fill the whole page width; other pages are are 4/5ths wide as before
- clean up and reorganize some styles
- version dropdown moved to the left
- cleaned up the github edit link
- a couple of responsive cleanups
- add page title to HTML title attribute

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-11 10:26:31 -07:00
Timothy Gerla
fdc4bc506c docs: update copyright date
- Update the page footer copyright date to 2020

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-11 07:24:01 -07:00
Andrew Rynhard
8e07b1bab3 feat: add bootstrap API
This adds the ability to bootstrap a cluster using the API.
The API simply starts the bootkube service.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-07 16:47:28 -07:00
Timothy Gerla
18f830f85f docs: backport intro text to 0.3 and 0.4 docs
- Replaced the basic intro text for 0.3 and 0.4 on the docs home page with
more useful information and links to next steps.

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-05 10:02:05 -07:00
Timothy Gerla
fb71eeed91 docs: fix netlify deep linking for 0.5 docs by generating fallback routes
From https://nuxtjs.org/faq/netlify-deployment#for-site-generated-in-spa-mode

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-05 07:35:07 -07:00
Andrew Rynhard
56d7bf19fe feat: add recovery API
This adds an API for recovering the self-hosted control plane.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-04 19:38:30 -07:00
Timothy Gerla
f59620473e docs: add 0.5 pre-release docs, add linkable anchors, other fixes
- add 0.5 docs branched from 0.4
- add intro page and "get help" pages
- moved Docker and Firecracker into a "Local Clusters" category
- switch to markdown-it from markd for consistency between corp site and docs site
- use markdown-it-anchor to create linkable anchors to sections within a page
- improve urls to use / instead of # for docs pages (WARNING: this breaks old links)
- continue to simplify handling in the Content.vue component
- update JS deps

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-04 16:04:53 -07:00
Timothy Gerla
688efabb93 fix: clean up docs page scripts in preparation for 0.5 docs
- simplify the docs page handling logic and get more nuxt-like
- the handleClick function was vestigial and didn't do anything anymore, remove it
- simplify the Vuex state quite a bit, remove activeDocPath
- clean up github link generation code, and fix #2076

Signed-off-by: Timothy Gerla <tim@gerla.net>
2020-05-02 02:49:19 -07:00
Seán C McCord
c1299d3ff0 feat: allow dual-stack support with bootkube wrapper
Handle dual-stack configurations with the bootkube wrapper.  This uses
the new PodCIDRs and ServiceCIDRs `asset.Config` parameters in bootkube.
It also relies on the bootkube-plugin features for manipulating
kube-proxy config and installing the dual-stack DNS service.

Fixes #2055

Signed-off-by: Seán C McCord <ulexus@gmail.com>
2020-04-28 20:10:58 -07:00
Andrey Smirnov
55dcbbc8d0 feat: add commands talosctl health/crashdump
This extracts health & crashdump features which were specific to
provisioning code into separate package which can be used standalone.

Everything else is just new glue.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-04-27 20:43:10 -07:00
zerodayz
aa1f380178 docs: add install and troubleshooting section in firecracker getting started
Signed-off-by: zerodayz <cerninr@gmail.com>

docs: add installation chapter to firecracker getting started

docs: add troubleshooting chapter to firecracker getting started

docs: add install and troubleshooting section in firecracker getting started

Signed-off-by: zerodayz <cerninr@gmail.com>
2020-04-27 18:01:41 -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
0051a43aee docs: improve CLI menu and metal docs
This addresses a few common points of confusion for new users.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-21 10:28:00 -07:00
Andrew Rynhard
98e8a69193 docs: default to v0.4
This brings the v0.4 docs out of pre-release status, and updates links
to point to v0.4 docs by default.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-20 08:21:48 -07:00
Niklas Wik
dba6de506e feat: add extra headers to fetch of extraManifests
Provides capability to add extra headers in cases where files can only be fetched with token based authenction.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: extra manifest headers for fetching manifests

- Changed config to map of key value pairs.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: added docs for new extra headers fetch

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: fix linter issue

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>
2020-04-15 06:51:39 -07:00
Spencer Smith
8d2f8d6127 chore: remove random.trust_cpu references
This PR removes the references to adding in the random CPU trust to the
kernel for all v0.4 docs, as well as in the iso command in the
installer. This is no longer needed with the newer linux kernel.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-04-14 17:10:56 -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
Andrew Rynhard
b0234817f3 docs: add firecracker documentation
This adds documentation on how to create clusters using the firecracker provisioner.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-10 13:03:53 -07:00
Tim Gerla
38eda25398 docs: sidebar improvements and content organization
- Lots of usability improvements to the docs sidebar.
- Headers aren't links to content anymore.
- All of the old index content has been moved to "Overview" pages that have
  explicit links in the docs sidebar.
- Lots and lots of styling cleanups.

Signed-off-by: Tim Gerla <tim@gerla.net>
2020-04-09 14:35:41 -07:00
Spencer Smith
38609bf581 feat: introduce ability to specify extra hosts in /etc/hosts
This PR will allow users to configure /etc/hosts through the network
config section, as opposed to having to use a file append operation.

Example usage might look something like:

```
...
...
machine:
  ...
  ...
  network:
    extraHostEntries:
      - ip: 192.168.1.100
        aliases:
          - test
          - test.wtf.bbq
...
...
```

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-04-03 12:17:55 -04:00
Spencer Smith
b84d5e2660 feat: allow for exposing ports on docker clusters
This PR will introduce a `-p/--exposed-ports` flag to talosctl. This
flag will allow us to enable port forwards on worker nodes only. This
will allow for ingresses on docker clusters so we can hopefully use
ingress for Arges initial bootstrapping. I modeled this after how KIND allows ingresses
[here](https://kind.sigs.k8s.io/docs/user/ingress/)

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-03-30 15:24:25 -04:00
Spencer Smith
3a4eaeeef0 feat: upgrade kubernetes to 1.18
This PR will pull in the latest release of k8s 1.18 so we can start
validating it through our test suite.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-03-26 14:59:43 -04:00
Andrey Smirnov
104af4380e feat: make --wait default option to talosctl cluster create
It seems to be useful enough to be the default one and it prevents
simple mistakes while trying to access the cluster which is not ready
yet.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-03-25 06:36:43 -07:00
Niklas Wik
c10465d4fb docs: Add example of a VLAN configured device.
Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: fixes linting for doc update

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: initial work for supporting vlans

Adding VLAN as option to machine config under devices.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: Add addressing support for VLAN devices.

- Refactors static addressing to not be dependent on machine.Device

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: Add addressing support for VLAN devices.

- Support of VLAN being the default network to use by removing need of addressing on master device.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: Fix the fmt of go files

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: refactor based on review comment.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: remove unused function

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: initial work for supporting vlans

Adding VLAN as option to machine config under devices.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: Add addressing support for VLAN devices.

- Refactors static addressing to not be dependent on machine.Device

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: Add addressing support for VLAN devices.

- Support of VLAN being the default network to use by removing need of addressing on master device.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: Fix the fmt of go files

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: refactor based on review comment.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: fix test case function arguments

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: Add log for debugging address configuration failures

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: fix lint issues.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: fix the lint error.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: Fix when addressing set with kernel options

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>
2020-03-25 04:15:35 -07:00
Dave Thomas
f596a952fb docs: add bare-metal install example yaml
Signed-off-by: Dave Thomas <davejonthomas@gmail.com>
2020-03-23 18:37:22 -07:00
Spencer Smith
3485ea9f09 fix: update k8s to 1.17.3
This PR will update k8s to v1.17.3 to address CVEs mentioned in https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/kubernetes-security-announce/2UOlsba2g0s

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-03-23 17:08:52 -07:00
Andrew Rynhard
98a368befd chore: run npm audit fix
This is addresses security vulnerabilities.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-03-21 17:25:49 -07:00
Andrew Rynhard
5dbc26c7a3 feat: rename osctl to talosctl
This is a rename of the osctl binary. We decided that talosctl is a
better name for the Talos CLI. This does not break any APIs, but does
make older documentation only accurate for previous versions of Talos.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-03-20 19:07:39 -07:00
Andrew Rynhard
69fa63a7b2 refactor: perform upgrade upon reboot
This PR introduces a new strategy for upgrades. Instead of attempting to
zap the partition table, create a new one, and then format the
partitions, this change will only update the `vmlinuz`, and
`initramfs.xz` being used to boot. It introduces an A/B style upgrade
process, which will allow for easy rollbacks. One deviation from our
original intention with upgrades is that this change does not completely
reset a node. It falls just short of that and does not reset the
partition table. This forces us to keep the current partition scheme in
mind as we make changes in the future, because an upgrade assumes a
specific partition scheme. We can improve upgrades further in the
future, but this will at least make them more dependable. Finally, one
more feature in this PR is the ability to keep state. This enables
single node clusters to upgrade since we keep the etcd data around.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-03-20 17:32:18 -07:00
Andrey Smirnov
564e9e3c00 feat: add support for --with-debug to osctl cluster create
This enables config option 'debug: yes' which redirects service logs to
console which helps debugging cases when API is not available.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-03-20 16:46:09 -07:00
Tim Gerla
2ee7f5f798 docs: update the website generator's npm packages
- Update the website generator's package list to quiet github.
- Apply a couple of auto-lint fixes.

Signed-off-by: Tim Gerla <tim@gerla.net>
2020-03-20 13:40:47 -07:00
Andrey Smirnov
0babc39653 feat: split osctl commands into Talos API and cluster management
This keeps backwards compatibility with `osctl` CLI binary with the
exception of `osctl config generate` which was renamed to `osctl
gen config` to avoid confusion with other `osctl config`
commands which operate on client config, not Talos server config.

Command implementation and helpers were split into subpackages for
cleaner code and more visible boundaries. The resulting binary still
combines commands from both sections into a single binary.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-03-20 22:45:04 +03:00
Spencer Smith
2f4ccfda9a fix: respect dns domain from machine config
BREAKING CHANGE: This PR fixes a bug where we were only passing `cluster.local` to the
kubelet configuration. It will also pull in a new version of the
bootkube fork to ensure that custom domains got propogated down to the
API Server certs, as well as the CoreDNS configuration for a cluster.

Existing users should be aware that, if they were previously trying to
use this option in machine configs, that an upgrade will may break
their cluster. It will update a kubelet flag with the new domain, but
CoreDNS and API Server certs will not change since bootkube has already
run. One option may be to change these values manually inside the
Kubernetes cluster. However, it may prove easier to rebuild the cluster
if necessary.

Additionally, this PR also exposes a flag to `osctl config generate`
to allow tweaking this domain value as well.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-03-20 12:28:17 -04:00
Andrew Rynhard
be6e3288fa fix: add debug option to v1alpha1 config
This PR fixes the `debug` option in the config.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-03-17 06:17:53 -07:00
Spencer Smith
12bfd8dd94 feat: allow for persistence of config data
This PR will allow users to set the `persist: true` value in their
config data to tell talos not to re-pull the config data at each reboot.
The default will still remain as a "pull every time" methodolgy in order
to encourage immutability by default.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2020-03-06 11:42:00 -05:00
Andrey Smirnov
34cec9bbfb feat: make admin kubeconfig cert lifetime configurable
Fixes #1906

This provides lifetime as duration relative to kubeconfig generation
time (the moment `osctl kubeconfig` was called).

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-03-01 16:01:27 +03:00
Andrew Rynhard
9cf217d2c1 fix: default reboot flag to false
We should default to shutting down when resetting.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-02-19 16:14:00 -08:00