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

CAPT Playground #336

Closed
wants to merge 31 commits into from
Closed

Conversation

jacobweinstock
Copy link
Member

Description

WIP for creating a playground in which to use, learn, and test CAPT.

Why is this needed

Fixes: #

How Has This Been Tested?

How are existing users impacted? What migration steps/scripts do we need?

Checklist:

I have:

  • updated the documentation and/or roadmap (if required)
  • added unit or e2e tests
  • provided instructions on how to upgrade

@jacobweinstock jacobweinstock force-pushed the playground branch 4 times, most recently from a4e2802 to ea3ceda Compare January 24, 2024 18:30
@chrisdoherty4
Copy link
Member

Looking sharp, but I do feel like we should just script this. A lot of the Go code is boilerplate around command invocations as we talked about.

@jacobweinstock
Copy link
Member Author

jacobweinstock commented Jan 25, 2024

Looking sharp, but I do feel like we should just script this. A lot of the Go code is boilerplate around command invocations as we talked about.

I'm open to discussing this. Here's my take. Its quite a bit nicer to work with Go for all the yaml creation than a shell script. A single binary is preferable too. I prefer working with Go around writing command, stdout, stderr to log a file than a script. For me, boilerplate in and of itself isnt a strong enough reason to move to shell. Also, this will be a good amount of code regardless of the language. I prefer to not maintaining a large amount of shell script code. I'm keen to know more from your end. Thanks!

@chrisdoherty4
Copy link
Member

@jacobweinstock Truthfully I glanced through the code and was keying off our last convo; you're in the thick of it, so if you have good reasons I'm good sticking with Go.

This automates the process of deploying
a CAPT playground. Lots of work still to
do here but it's functioning.

Signed-off-by: Jacob Weinstock <[email protected]>
This enables any network for kind to be used
and we parse the details.

Signed-off-by: Jacob Weinstock <[email protected]>
Signed-off-by: Jacob Weinstock <[email protected]>
When specified, the public key is added to
control plane and worker nodes.

Signed-off-by: Jacob Weinstock <[email protected]>
Signed-off-by: Jacob Weinstock <[email protected]>
Signed-off-by: Jacob Weinstock <[email protected]>
Being able to specify the image version is helpful
when you want to deploy the CAPT container
with a non release tag.

For troubleshooting the auditing and logging will be
very helpful.

Signed-off-by: Jacob Weinstock <[email protected]>
Writing to one file both command and output is preferred.
New versions of CAPT and Tink stack allow us to remove
workarounds.

Signed-off-by: Jacob Weinstock <[email protected]>
This had a side affect of panics being
swallowed and not showing the stack trace.

Signed-off-by: Jacob Weinstock <[email protected]>
It's preferred to only have on writer
and both command and output are written there.

Signed-off-by: Jacob Weinstock <[email protected]>
Signed-off-by: Jacob Weinstock <[email protected]>
Now you can bring your own image.
It must be in an OCI registry.

Signed-off-by: Jacob Weinstock <[email protected]>
Add the output to the error return of
exec.CombinedOutput so that we don't lose
why a command failed.

Signed-off-by: Jacob Weinstock <[email protected]>
Add note on running in and out of
Docker.

Signed-off-by: Jacob Weinstock <[email protected]>
Signed-off-by: Jacob Weinstock <[email protected]>
This means users dont need to compile
a Go binary to run the playground. This
also means we dont need to build and release
a Go binary.

Signed-off-by: Jacob Weinstock <[email protected]>
Signed-off-by: Jacob Weinstock <[email protected]>
The taskfile implementation is
not on par with the previous Go
binary version. Still need to clean up
the organization of the taskfile and
clean up variable passing, etc.

Signed-off-by: Jacob Weinstock <[email protected]>
Signed-off-by: Jacob Weinstock <[email protected]>
Fixes some non-customizable values. Add KUBECONFIG
to all commands. There seems to be an issue when
the users existing env has a KUBECONFIG defined.
The KUBECONFIG in the `env` section of Tasks doesn't
take precedence.

Signed-off-by: Jacob Weinstock <[email protected]>
These new tasks apply the workload manifest
which initiates the cluster creation process.
Also get the workload cluster kubeconfig and
write it to the output directory.

Signed-off-by: Jacob Weinstock <[email protected]>
Env vars in TaskFile do not override the
shell env vars. This means that a users
KUBECONFIG is only overriden when its set
with the command to run.

Signed-off-by: Jacob Weinstock <[email protected]>
deps in conjuntion with `run: once` allows
deps to not run so many times as before.
Update readme and add one time output of
next steps.

Signed-off-by: Jacob Weinstock <[email protected]>
Signed-off-by: Jacob Weinstock <[email protected]>
Signed-off-by: Jacob Weinstock <[email protected]>
@jacobweinstock
Copy link
Member Author

Going to have this be in the https://github.com/tinkerbell/playground repo instead of here. tinkerbell/playground#191

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.

2 participants