Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build eksctl-anywhere binary from source #858

Merged
merged 8 commits into from
Sep 8, 2023

Conversation

stmcginnis
Copy link
Contributor

@stmcginnis stmcginnis commented Sep 7, 2023

Issue number:

N/A

Description of changes:

Existing method gets eksctl-anywhere by curling the binary of a specific release version. Base functionality is fairly stable, and we often need to pick up the latest when adding a new variant to get support for a newer k8s version. That is the case now with needing the k8s 1.28 support that is not in a release yet.

Testing done:

Ran make images, built with no error.

$ TESTSYS_RESOURCE_ACTION=test docker run -it --rm metal-k8s-cluster-resource-agent:latest bash
bash-4.2# eksctl version
0.144.0
bash-4.2# eksctl-anywhere version
v0.0.0-dev-release-0.17

Cleaned up caching and run make images -e TESTSYS_EKSA_REF=heads/main to pick up the latest eksctl-anywhere from main.

$ TESTSYS_RESOURCE_ACTION=test docker run -it --rm metal-k8s-cluster-resource-agent:latest bash
bash-4.2# eksctl-anywhere version
v0.0.0-dev

Terms of contribution:

By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.

This reduces the runner size from 16 to 8. Testsys builds are not overly
CPU resource constrained, so this uses the smaller runner to reduce some
expense.

Signed-off-by: Sean McGinnis <[email protected]>
Dockerfile Outdated Show resolved Hide resolved
tools/Dockerfile Show resolved Hide resolved
tools/Dockerfile Outdated Show resolved Hide resolved
Change to a smaller runner size since the larger instance doesn't speed
things up too much. Also renames the workflow so the definition file and
workflow run name are in sync.

Signed-off-by: Sean McGinnis <[email protected]>
Signed-off-by: Sean McGinnis <[email protected]>
Copy link
Contributor

@etungsten etungsten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM if testing is good.

To test I think we can first make sure it builds, then try docker running a shell in vsphere-k8s-cluster-resource-agent and check the version of eksctl-anywhere.

GitHub Action runners do not provide a TTY. This results in errors when
running `make tools` in the CI checks:

```
ERROR: failed to get console: provided file is not a console
```

This switches the `docker build` argument over to use `plain` instad of
`tty` to avoid this error.

Signed-off-by: Sean McGinnis <[email protected]>
Existing method gets eksctl-anywhere by curling the binary of a specific
release version. Base functionality is fairly stable, and we often need
to pick up the latest when adding a new variant to get support for a
newer k8s version. That is the case now with needing the k8s 1.28 support
that is not in a release yet.

Signed-off-by: Sean McGinnis <[email protected]>
@stmcginnis
Copy link
Contributor Author

Build now passing, with the exception of the existing failure for the Build/build check.

@webern
Copy link
Contributor

webern commented Sep 8, 2023

What's going on with the CI failures for --offline?

@stmcginnis
Copy link
Contributor Author

What's going on with the CI failures for --offline?

I don't know, I've asked that on several PRs over the last month or two, but no one has given a good answer. I tried digging in a little, but I was not able to figure out what changed to cause this to start happening.

My guess it is either due to a change in the SDK or a change in the newer versions of the Rust toolchain used. It seems like something isn't getting mounted in the right place for the --offline build to find the cached crates.

tools/Dockerfile Show resolved Hide resolved
@etungsten etungsten merged commit 25aef7e into bottlerocket-os:develop Sep 8, 2023
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants