979 Commits

Author SHA1 Message Date
Andrew Rynhard
06aa63fbb3 docs: change doc content margins and padding
This bumps the content of a doc page up and drops the sidebar down.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-19 20:36:00 -07:00
Andrew Rynhard
d73bbbc9c5 docs: move docs version dropdown to docs page
This moves the documentation version dropdown menu into the
documentation page.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-19 20:14:24 -07:00
Andrew Rynhard
4252124009 docs: use horizontal containerd logo
The horizontal logo looks better than the stacked one when next to the
other logos.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-19 20:07:42 -07:00
Andrew Rynhard
17093416e6 docs: add FAQs page
The FAQs should be pulled out from the documentation as they are
specific to a version of Talos and more of a marketing message. This
adds a dedicated page for the FAQs.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-19 19:26:30 -07:00
Andrew Rynhard
7b801aa1bf docs: add community dropdown
This adds a dropdown menu to the header that makes it easy to find our
community links.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-19 19:01:20 -07:00
Andrew Rynhard
18f3596767 docs: improve dropdown menu
The adds shadow and border radius to dropdown menu.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-19 17:45:12 -07:00
Andrew Rynhard
d9dd55687b docs: show background only on landing page
The background should only be shown on the landing page.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-19 17:27:07 -07:00
Andrew Rynhard
6cc8a8bc04 docs: add landing page
This replaces the Mardown based landing page with a pure HTML approach.
This allows us to have a landing page that is much more impactful.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-19 14:45:47 -07:00
Andrew Rynhard
13d0e5840c docs: add v0.3 boilerplate
This adds the logic for handling multiple versions of documentation, and
adds a copy of the v0.2 docs as a starting point.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-18 23:46:12 -07:00
Andrew Rynhard
655aaa3149 docs: add documentation website
This will allow us to iterate faster on documentation for multiple
versions of Talos.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-18 21:28:40 -07:00
Andrey Smirnov
0d09e6f530 chore: bump tools & pkgs for Go 1.13.2
Ref:

* https://github.com/talos-systems/pkgs/pull/68
* https://github.com/talos-systems/tools/pull/80

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-10-18 00:20:34 +03:00
Brad Beam
c3d43a8171 chore: Update gitmeta to latest release
Fix issue inconsistency between build-container and talos

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-10-16 14:31:37 -07:00
Brad Beam
e6bf92ce31 feat(osd): Enable hitting multiple OSD endpoints
This enables the ability to specify additional <talos> endpoints to connect to
to pull back data.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-10-16 15:30:25 -05:00
Spencer Smith
d0111fe617 feat: allow specifcation of full url for endpoint
This PR moves to using the full URL for endpoint instead of trying to
hardcode 6443 in various places like we were doing.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-10-16 13:45:05 -04:00
Andrew Rynhard
eb99cab416 refactor: improve validate flag names
This is a minor refactor of the validate flags.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-15 22:37:57 -07:00
Andrew Rynhard
d430a37e46 refactor: use go 1.13 error wrapping
This removes the github.com/pkg/errors package in favor of the official
error wrapping in go 1.13.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-15 22:20:50 -07:00
Andrew Rynhard
94c28657d3 feat: add config validation task
This should provide a better UX around misconfigured Talos nodes. It is
just the start of something we can expand on.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-15 20:26:26 -07:00
Andrew Rynhard
3343144a11 fix: set packet and metal platform mode to metal
The packet and metal platforms were erroneously set to cloud mode. This
sets them to metal.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-15 19:07:00 -07:00
Andrew Rynhard
8153c2e2a9 feat: add Runtime interface
Instead of passing around a struct, it is better if we pass around an
interface that describes the behavior we want. The Runtime interface
provides a common place to describe runtime specific parameters. This
initial implementation offers the runtime mode, the platform specifics,
and the config.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-15 17:41:37 -07:00
Andrey Smirnov
e6f980463f chore: bump golangci-lint to 1.21
This release comes with support for caching lint results. It should
allow for speed ups when some packages don't change between the runs, so
cached information about packages might be used instead of running
linter collect phase on the package.

In my non-scientific test:

1. Fresh: 40s
2. One file change: 15s

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-10-15 14:01:58 -07:00
Andrew Rynhard
20f2a12a6e refactor: add helper func to create cert and key
It is common for us to create a certificate and key using a root CA.
This adds a helper function to make this process easier and
standardized. For now, the function is only used when generating
configs, but there are a number of places we should update in follow
ups.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-15 08:01:42 -07:00
Andrew Rynhard
3ded7e3b2c fix: always run networkd
Without networkd, the /etc/resolv.conf in containers causes CoreDNS to
fail with "Forwarding loop detected in "." zone." With networkd running,
we overwrite /etc/resolv.conf and avoid this. I'm not sure this is what
we want in the long run, but this will fix things for now.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-15 07:38:41 -07:00
Andrew Rynhard
8b0bd3408c fix: run only essential services in container mode
This adds NTP and Udev to the list of services designated only for
non-container modes. We should be able to rely on the host running
Docker for accurate time and Udev information.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-14 22:53:23 -07:00
Andrew Rynhard
77ef18351b chore: remove custom log paths
These services should log to the default system log path.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-14 22:44:26 -07:00
Andrew Rynhard
10b6202c4f refactor: improve metal platform
This brings in a few minor improvements to the metal platform. The first
is to use talos.config=metal-iso to indicate that the machine's config
can be found in an ISO image. The second is a fix to ensure that /mnt
exists.

This adds support for creating more than one node using the qemu-boot.sh
script.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-14 22:05:56 -07:00
Andrew Rynhard
63c7ea4987 refactor: use control plane endpoint instead of master IPs
Since we no longer have the static IP requirement, we can update all
references to the "master IPs" to use the control plane endpoint.

This adds support for creating more than one node using the qemu-boot.sh
script.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-14 21:52:43 -07:00
Andrew Rynhard
6c33547452 fix: add slub_debug=P to ISO kernel args
This option is required by KSPP.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-14 10:57:56 -07:00
Andrew Rynhard
792a35e8ae fix: use talos.config instead of talos.userdata
The new kernel parameter talos.config should be used instead of
tallos.userdata.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-14 10:44:59 -07:00
Spencer Smith
533b9f4757 fix: use localhost for osd endpoint on masters
This PR will fix a bug where osd fails to start when the instances are
behind a load balancer (only one LB IP specified in machine config). For
masters, osd should be able to look to localhost anyways, and workers
will still gather the endpoints via kubernetes node lookups.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-10-14 10:37:03 -07:00
Andrew Rynhard
80e3876df5 feat: remove proxyd
We have decided that proxyd is not the best architectue for HA
Kubernetes. Our recommendation to users will be to create a load
balancer instead.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-14 08:11:00 -07:00
Andrew Rynhard
fef151748b feat: use the unified pkgs repo artifacts
This moves to using a single revision of pkgs. It includes a few
changes:

- kernel with KVM host support
- containerd v1.3.0

This change brings in a kernel with host KVM support. This will allow us
to use VMs within Talos for things like integrations tests. This also
allows users to do things with KVM as they see fit.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-14 07:18:17 -07:00
Andrew Rynhard
6c3b0ef442 fix: check if cluster network config is nil
This checks if the cluster network section is nil before using it,
avoiding a panic.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-12 19:04:26 -07:00
Andrew Rynhard
efb5ec8d8f chore: prepare release v0.3.0-alpha.1
This is the official v0.3.0-alpha.1 release.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
v0.3.0-alpha.1
2019-10-11 09:10:46 -07:00
Andrew Rynhard
1d09ae2f5a fix: retry endpoint discovery
The endpoint discovery performed by OSD depends on a generated
kubeconfig that references a client certificate which is not on disk by
the time the OSD service runner is created. This adds a wait for the
kubelet to be healthy and retry logic to tolerate any race conditions.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-11 08:56:30 -07:00
Brad Beam
64bf42960c fix: Make updating cert sans an append operation
This updates any discovered CertSANs to be appended to the list provided by userdata.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-10-11 07:52:39 -07:00
Brad Beam
d3f20db0aa fix: Use correct names for kubelet config
With the change to bootkube, kubelet.conf has changed names and is now kubelet-kubeconfig.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-10-11 07:42:32 -07:00
Andrew Rynhard
34599be9f2 fix: generate admin client certificate with 10 year expiration
This generates the admin Talos certificate with an expiration of 10
years.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-11 07:12:13 -07:00
Spencer Smith
5d5f530bb0 chore: update sonobuoy for conformance tests
This PR updates the sonobuoy version. We're currently running
conformance tests with 0.15.x

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-10-10 18:26:05 -07:00
Tim Gerla
fec434aee9 docs: some docs improvements based on community feedback (try 2)
Signed-off-by: Tim Gerla <tim@gerla.net>

docs: fix unbalanced header

Signed-off-by: Tim Gerla <tim@gerla.net>
2019-10-10 15:25:00 -07:00
Spencer Smith
313ca2cb23 chore: re-enable end to end tests
This PR will add the bits necessary to make use of changes to our
v1alpha1 cluster api provider for CI testing. This is needed since we've
had machine config changes.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-10-10 17:32:44 -04:00
Spencer Smith
ee1b256e0f feat: add external IP discovery for azure
This PR will add the ability to query metadata servers in azure to fetch
external IPs. Needed to ensure certs get generated with proper cert SANs

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-10-10 16:57:44 -04:00
Andrew Rynhard
92de30715e feat: add retry package
This package provides a consistent way for us to retry arbitrary logic.
It provides the following backoff algorithms:

- exponential
- linear
- constant

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-10 13:11:02 -07:00
Andrew Rynhard
a799b05012 fix: always write the config to disk
Since some applications read the config from disk on startup, we need to
write the config to disk just before starting them in order to relay any
data that has been added to the config during bootup.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-10 11:53:39 -07:00
Andrew Rynhard
bf59264228 fix: marshal v1alpha1 config in String() method
This implements the String() method.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-10 11:35:56 -07:00
Andrew Rynhard
e1a50d36a9 fix: update platform task to set hostname and cert SANs
This adds a setter for the certificate SANs and sets the hostname based
on info from the platform.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-09 18:11:05 -07:00
Andrey Smirnov
c2cb0f9778 chore: enable 'wsl' linter and fix all the issues
I wish there were less of them :)

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-10-10 01:16:29 +03:00
Andrew Rynhard
edc21ea910 fix: set --cluster-dns kubelet flag properly
This removes the hardcoded IP and replaces it with the calculated IP.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-09 13:17:11 -07:00
Spencer Smith
e36133b3d3 feat: output cluster network info for all node types
This PR will push the cluster network node configs for all nodes. This
is needed so that non-init nodes can know the service address range to
use for determining the IP of services like coredns.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-10-09 16:08:08 -04:00
Andrey Smirnov
bb5f5cc754 chore: bump golangci-lint to 1.20
Memory usage reduced around 8-10x: now it stays stable at 1GB.

I disabled some of the new linters, and one rule which is violated a
lot.

I might make sense to go back and enable `wsl` fixing all the issues
(leaving that for another PR).

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-10-09 22:21:08 +03:00
Andrew Rynhard
d9287cdfb5 fix: set kubelet-preferred-address-types to prioritize InternalIP
When creating docker based clusters, we need to use `InternalIP` for
kubelet connections. The default is
`Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP`, but
`Hostname` doesn't work in docker because we don't depend on docker for
DNS.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-09 09:38:13 -07:00