1178 Commits

Author SHA1 Message Date
Andrew Rynhard
dc19cdab9d docs: add matchbox getting started guide
This adds a basic guide on using Talos with Matchbox.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-23 07:20:49 -08:00
Andrew Rynhard
b2ec56ca92 refactor: rename version label
Since we are standardizing on talos.dev everywhere else, we should align
version label with this.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-23 06:54:51 -08:00
Andrew Rynhard
2dd90a226d refactor: remove CNI bundle
The common pattern is for CNIs to install everything required. I don't
think we need to do this beforehand anymore. If we end up finding that
we do we can always add it back.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-23 06:54:19 -08:00
Andrew Rynhard
6a1a9fc8d9 fix: retry cordon and uncordon
When implementing the controller-manager I found a race condition between it
and the cordon operation. The controller-manager annotates the node to
indicate that an upgrade is in progress, and Talos tries to mark the
node as unschedulable at nearly the same time. This leads to a race
condition. The fix is to simply retry the cordon.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-16 11:15:22 -08:00
Andrew Rynhard
7b99d32f1e fix: require arg length of 1 for kubeconfig command
The kubeconfig command needs only one argument.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-16 09:53:28 -08:00
Andrew Rynhard
baaa308b94 chore: prepare release v0.3.0-alpha.8
This is the official v0.3.0-alpha.8 release.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
v0.3.0-alpha.8
2019-11-15 15:40:07 -08:00
Andrey Smirnov
8c7fadde95 test: disable discovery-based test as it might break e2e
It seems to work reliably in basic-integration, but fails in e2e
(receives less responses than expected). We can re-enable once we get to
the root cause of the problem.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-15 14:29:27 -08:00
Andrew Rynhard
ae83221e4a test: add integration test for full boot sequence
This adds an integration test that can be ran on a KVM enabled Linux
machine. It makes use of docker, matchbox, dnsmasq, libvirt, and HAproxy
to create an HA cluster.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-15 09:02:52 -08:00
Brad Beam
91ac62389d docs: Add examples to networkd
Add simple examples around static addressing and assigning multiple addresses
to a single interface.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-11-14 22:11:40 -08:00
Andrew Rynhard
cbca760562 fix: set --upgrade flag properly on installs
For some reason, if the `--upgrade` flag wasn't in the form of
`--upgrade=<true|false>` (with an `=`), the flag was always true. This
adds `=` to all flags.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-14 19:31:13 -08:00
Andrey Smirnov
af2b6fa130 test: implement node discovery for integration tests
This adds support for node discovery for API-based tests, but discovery
is based on k8s state. Discovery can be overridden if we provide a list
of node IPs as a flag.

Also adds a test for K8s API server version.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-14 15:35:07 -08:00
Andrew Rynhard
82c59368af fix: honor the extraArgs option for the kubelet
This allows users to supply extra arguments for the kubelet.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-14 15:34:35 -08:00
Andrey Smirnov
bb89d908b3 fix: make logging middleware first in the list, fix duration
Logging middleware should be the first one to log the request properly
including logging before proxy goes into action.

I had sec -> msec convertion wrong, but in the end I thought I should
replace it simply with `duration.String()` which is nicer.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-14 15:33:43 -08:00
Andrey Smirnov
0b4ab02833 chore: reverse order of events in osctl service
Now it shows event from last one down the oldest one.

Andrew, you wanted that :)

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-14 11:23:04 -08:00
Spencer Smith
cd3827f9de docs: update gcp docs
This PR will uplift the GCP documentation to match our current way to
deploy talos via CLI.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-11-14 10:03:31 -05:00
Andrew Rynhard
e1fc9017d2 feat: allow extra arguments to be passed to etcd
This allows for an arbitrary set of args to be passed to etcd. Due to
the fact the we do the discovery of the current cluster state, we
blacklist initial-cluster. Additionally, we black list args that would
makes sense to modify, like the path to the certs.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-14 05:53:00 -08:00
Spencer Smith
f0c8feb56c docs: Update azure doc
This PR updates the azure doc to match the newer processes of deploying
talos.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-11-13 19:20:16 -08:00
Andrew Rynhard
127fa54a76 docs: add docs command to osctl
This allows osctl to generate documentation for itself.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-13 17:14:53 -08:00
Sekerin Evgeniy
83d5f4c721 feat: Add context key to osctl
Added context key for change context on osctl

Signed-off-by: Sekerin Evgeniy <sekerin.e.a@gmail.com>
2019-11-13 11:32:15 -08:00
Andrew Rynhard
d2787db993 fix: use the config's cluster version for control plane image
This makes use of the config's control plane version to set the
hyperkube image to the expected version.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-13 08:29:30 -08:00
Brad Beam
d67fbf269b feat: Add support for resetting the network during bootup
This introduces the ability to reset the network interface during the bootup sequence.
This allows for user defined static networking to be the only configuration on the
network interface instead of potentially dhcp+static.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-11-12 10:48:28 -08:00
Andrew Rynhard
714ae3e7c1 docs: add a project dropdown
The dropdown is a better place to group information about the project that
isn't documentation. This places the roadmap and use cases under the project
dropdown.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 21:48:34 -08:00
Andrew Rynhard
6c55234793 docs: remove stale docs
The KVM, Xen, and Digital Rebar docs are either not accurate or just a
blank page. We should remove them and add them back when we are ready
to.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 21:30:10 -08:00
Andrew Rynhard
5f2da192f2 docs: fix proxy Dockerfile example
Small fixes to the Dockerfile example for proxy setups.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 20:49:25 -08:00
Andrew Rynhard
ded96fa0fb docs: disable PurgeCSS
PurgeCSS seems to be removing portions of the styles in
docs/website/assets/css. This disables it until we can figure out a
better solution.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 20:47:22 -08:00
Andrew Rynhard
86e99948fa refactor: rename initial network task func
The name of the function was not accurate to what it does. This fixes
that.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 19:53:38 -08:00
Andrew Rynhard
5e7ec9ce7a chore: address deprecation warning from netlink package
The netlink package deprecated the `IsNotExist` function in favor os the
new `errors.Unwrap` and `errors.Is` functions. This moves to using
`errors.Is`.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 19:47:11 -08:00
Andrew Rynhard
04d5e9e60a chore: prepare release v0.3.0-alpha.7
This is the official v0.3.0-alpha.7 release.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
v0.3.0-alpha.7
2019-11-11 18:50:12 -08:00
Andrew Rynhard
9218fa8b21 fix: upgrade rtnetlink package
This fixes an issue with our initial networking setup. The latest
package version is needed.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 18:17:06 -08:00
Andrew Rynhard
eed169e457 chore: format docs to one sentence per line
Small nit fix.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 15:23:35 -08:00
Andrew Rynhard
3de9b45183 chore: remove CertificateKey
This was used by kubeadm. We no longer need it.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 15:13:56 -08:00
Andrew Rynhard
7b22dad662 docs: add customization guide for running behing a proxy
This adds docs on how to run Talos behind a proxy.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 14:36:41 -08:00
Andrey Smirnov
63212ab17e test: fix integration test for k8s version
Push versions to constants, introduce 'platform' to version API to
discover node mode. Check kernel version for non-containers.

A bit of refactoring on version package to expose something closer to a
single response.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-11 13:42:21 -08:00
Andrey Smirnov
e658c442a6 feat: implement grpc request loggging
Logging is pretty simple and bare minimum is being logged. I believe
better logging can be provided for apid when it does fan-out, but that
is beyond the scope for the first PR.

Sample logs:

```
$ osctl-linux-amd64 logs machined-api
machined 2019/11/11 21:16:43 OK [/machine.Machine/ServiceList] 0.000ms unary Success (:authority=unix:/run/system/machined/machine.sock;content-type=application/grpc;user-agent=grpc-go/1.23.0)
machined 2019/11/11 21:17:09 Unknown [/machine.Machine/Logs] 0.000ms stream open /run/system/log/machined.log: no such file or directory (:authority=unix:/run/system/machined/machine.sock;content-type=application/grpc;user-agent=grpc-go/1.23.0)
```

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-11 13:42:08 -08:00
Brad Beam
e667a08bf0 feat: Add support for defining ntp servers via config
This introduces support for defining ntp servers via `config.machine.time.servers` parameter.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-11-11 12:11:52 -08:00
Brad Beam
bc6582e118 chore: Move back to official procfs repo
Code was merged upstream and a release cut, so we dont need to use my fork anymore.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-11-11 12:51:10 -06:00
Andrew Rynhard
4680f66bc5 docs: add autogenerated config reference
This adds a small program to parse our config structs and generate
markdown from them. This will allow us to enforce a standard and require
documentation for fields as they get added.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 08:38:39 -08:00
Andrew Rynhard
34eb691f81 fix: mount extra disks after system disk
The extra disks functionality was completely broken. One fundamental
issue was that we were attempting to create and mount the partitions
before the system disk was created. This moves the extra disks tasks to
the correct part of the boot sequnce. This also adds a simple check that
refuses to operate on a disk if any partitions are found.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-11 07:59:25 -08:00
Brad Beam
531e7d8144 feat: Add meminfo api
Add ability to retrieve node memory stats ( /proc/meminfo ).

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-11-10 21:02:43 -06:00
Andrew Rynhard
90fd52ad8c docs: fix roadmap layout
This adds margins to the roadmap to make it centered like the docs.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-10 15:59:51 -08:00
Andrew Rynhard
8795271c65 docs: update landing page
This updates our note on our commitment to staying in lockstep with
Kubernetes and Linux.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-10 15:39:30 -08:00
Brad Beam
8988c1c6a0 feat: Disable networkd configuration if ip kernel parameter is specified
This allows the kernel argument `ip` to take precedence over networking configuration. Documentation for
this parameter can be found here https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-11-10 12:07:01 -08:00
Andrew Rynhard
83ccbb1d2a docs: add public roadmap
This adds the first pass out our public roadmap. It is intended to be a
living document.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-11-09 05:04:16 -08:00
Andrey Smirnov
b3fd85174a fix: remove duplicate line
Just remove duplicate line (to satisfy commit message linter).

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-08 16:58:46 -08:00
Andrey Smirnov
add4a8d5ab fix: recover from panics in grpc servers
This installs default middleware to recover from panics (convert them to
errors) in all the grpc servers by default.

Slight refactoring to allow that as grpc can only accept Unary/Stream
interceptors only once.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-08 15:28:18 -08:00
Andrey Smirnov
6231b7db3c chore: run gofumports after protoc-gen
This fixes import order and guarantess clean diff after `make generate`.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-09 00:20:45 +03:00
Brad Beam
7897374ff1 feat: Add support for streaming apis in apid
This brings in the recent updates to protoc-gen-proxy to allow support
for proxying streaming api requests. We artificially limit it to only the first
target specified in the list while we work through what multi target stream
support looks like.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-11-08 14:22:30 -06:00
Spencer Smith
6d5bbaf7c8 chore: re-enable e2e for aws clusters
This PR adds in the necessary manifests and fixes to deploy aws clusters
as part of e2e testing.

Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2019-11-07 15:32:14 -05:00
Brad Beam
32fe6297fe feat(networkd): Add support for custom nameservers
This adds support for specify nameservers in the config.

When I was adding tests I noticed the netconf code for setting
the MTU caused a panic. Given how we retrieve the data ( device centric )
in the static addressing method, I think this is safe to remove.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-11-07 13:57:02 -06:00
Andrey Smirnov
8fdf71789e test: add 'integration-test' to e2e runs
Also refactored `integration-test` build as a generic step to be shared
by basic-integration and e2e-integration steps.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-11-07 06:30:34 -08:00