Since we are standardizing on talos.dev everywhere else, we should align
version label with this.
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
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>
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>
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>
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>
Add simple examples around static addressing and assigning multiple addresses
to a single interface.
Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>