There is a misconception that Kaniko means non-root, but in order to build a container it has to work with layers which requires root.
Using Kaniko also doesn't solve for:
How do you run containers within that build in order to test them? How do you run KinD/K3s within that build to validate the containers e2e?