Although the GitHub release plug requires a tag and will fail on a
promotion, this is still useful as it will allow us to mimic a release
before we tag.
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
Instead of building platform specific images in the default pipeline, we
should build just one image as part of our basic testing to make sure
installations work as expected.
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
This change improves the drone jsonnet file by making it more DRY and
structuring it in a way that makes it much easier to follow.
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
Problem was triggered by udevd trigger, root cause is not clear, but
workaround is to disable it for container mode.
Implement CPU/mem limits for `osctl cluster create`, apply defaults,
bump defaults for cicd.
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
This is another attempt at fixing the clone logic to make it work when
building the master branch.
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
This fixes and issue with cloning the master branch caused by git
refusing to fetch into the current branch.
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
- Wait a little after cluster comes up
- Change interaction with CONFORMANCE variable to work around
set -eou pipefail restrictions
- Set sonobouy runner version to latest to work with alpha
version
Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
This PR updates the kubernetes version constant, as well as pulls in the
new kubeadm image with the last alpha of v1.16.0 baked in. Additionally,
moves the CNI daemon sets to apps/v1, since they're now out of beta.
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
This PR will allow us to run an azure e2e test in parallel with our
current GCE implementation.
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
This re-arranges phases a bit so that shutdown actions are pushed back
to the top-level main.go of machined.
Small rudimentary event.Bus is introduce to facilitate event passing
(shutdown/restart) between various machined components and main.go. This
might be not the best implementation, just something to allow this
message passing without global variables or such.
Machined API was refactored to run as goroutine service.
ACPI & signal handlers re-built as phase tasks, and activated for
non-container, container modes respectively.
As part of the fix, now `docker stop` triggers correct shutdown of Talos
(not a big deal, but good for testing).
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
This PR will break cluster create apart from the other steps in
integration tests. It will allow us to run the cluster create, then use
it for parallel e2e builds in different cloud environments.
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
They are outdated, `osctl cluster` implements cluster up/down in a
better way. K8s manifests are left intact, they are used in integration
tests.
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
This change aims to standardize the boot process. It introduces the
concept of a phase, which is comprised of tasks. Phases are ran in serial and
the tasks that make up a phase are ran concurrently.
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
This allows to do `make test TESTPKGS=./internal/app/machined`.
Also update Dockerfile slug as
https://github.com/moby/buildkit/pull/1081 was merged into master.
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
This PR will provide a basis for running e2e tests on GCE several times
a day. We'll need to add a cron event to the drone repo once merged.
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
This relies on two PRs to the buildkit:
* https://github.com/moby/buildkit/pull/1081
* https://github.com/moby/buildkit/pull/1085
Sysfs fix was merged to upstream, so updated tag, while using
`Dockerfile` slug I can switch to dockerfile2llb with support for
`--security=insecure`.
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
Switch from `StringSliceVar` to `StringArrayVar` to maintain commas
in kernel args.
Update entrypoint script to allow specifying extra kernel args.
Remove default console settings in kernel config.
Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
This makes test launch their own isolated instance of containerd with
its own root/state directories and listening socket address. Each test
brings this instance up/down on its own.
Add options to override containerd address in the code (used only in the
tests).
Enable parallel go test runs once again.
P.S. I wish I could share that 'SetupSuite' phase across the tests, but
afaik there's no way in Go to share `_test.go` code across packages. If
we put it as normal package, this might pull in test dependencies (like
`testify`) into production code, which I don't like.
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
We run tests in parallel mode (`go test -p 4`), default is to run in
parallel in fact. But tests are not isolated, as some of them launch
containerd on a fixed file socket (as socket path is hardcoded in
Talos), and that might lead to any weirdness when tests try to
launch containerd concurrently on the same file socket.
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
Remove duplicated code which was setting up grpc client with common
method. Should have no functional changes otherwise.
Add args len check where missing.
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
* refactor(init): Allow kubeadm init on controlplane
This shifts the cluster formation from init(bootstrap) and join(control plane)
to init(control plane).
This makes use of the previously implemented initToken to provide a TTL for
cluster initialization to take place and allows us to mostly treat all control
plane nodes equal. This also sets up the path for us to handle master upgrades
and not be concerned with odd behavior when upgrading the previously defined
init node.
To facilitate kubeadm init across all control plane nodes, we make use of the
initToken to run `kubeadm init phase certs` command to generate any missing
certificates once. All other control plane nodes will attempt to sync the
necessary certs/files via all defined trustd endpoints and being the startup
process.
* feat(init): Add service runner context to PreFunc
Signed-off-by: Brad Beam <brad.beam@talos-systems.com>