Replies: 2 comments
-
A couple requirements I'd like to see (I'm kinda just repeating your considerations XD)
|
Beta Was this translation helpful? Give feedback.
0 replies
-
We looked at transforming our Tasks and injecting Dash (https://git.kernel.org/pub/scm/utils/dash/dash.git) vs. busybox with the same init container technique as a workaround for managing step failure. Injecting shells, debuggers, etc. via this approach is a pretty powerful technique, I'm just not sure it's a platform vs. document thing. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I've talked about this a bit with @bobcatfish in the past, and maybe others, but I wanted to float it here before writing up a full TEP (and I wanted to try out GitHub Discussions 😎 )
Tekton could inject a basic shell into steps, similar to how we inject the entrypoint binary, by adding an initContainer that copies a binary into a shared volume under
/tekton/something
. This would let steps that don't include a shell to take advantage ofscript:
and perform basic actions in the step environment.We've had some TEPs (#302, #182, #342, others) that boil down to "I want to do something shell-ey, and my image doesn't have a shell". This would give us an avenue to solve those cases without reimplementing shell-like features in Tekton itself.
Examples
How
busybox
provides a shell and basic tools in a single binary inside a multi-arch image (supports amd64, arm, arm64, ppc64le, s390x, plenty of others). Busybox is GPL, so if that's a problem we could find another alternative.Considerations
script:
already makes that support difficult, and shell injection can make this even worse. Let's be aware of the tradeoffs at least.If this seems worth exploring, I can propose a TEP.
Beta Was this translation helpful? Give feedback.
All reactions