epinio icon indicating copy to clipboard operation
epinio copied to clipboard

Spike: Other ways to run buildpacks from Epinio

Open manno opened this issue 4 years ago • 9 comments

Research if we can replace the Tekton buildpack addon with something else.

The current version does not support project.toml.

  • https://github.com/epinio/epinio/blob/main/docs/howtos/custom-python-builder.md
  • https://github.com/buildpacks/lifecycle/issues/555
  • https://github.com/paketo-buildpacks/rfcs/blob/main/text/0003-replace-buildpack-yml.md
  • https://github.com/paketo-buildpacks/rfcs/blob/main/text/0026-environment-variable-configuration-of-buildpacks.md

Can we run pack in a Tekton task instead?

manno avatar Jul 09 '21 14:07 manno

Running pack itself might not work on systems that aren't running docker as it has a dependency on the docker daemon.

agracey avatar Jul 12 '21 14:07 agracey

That said, if it's an issue, we can assume a new enough kernel to allow for nested namespaces.

agracey avatar Jul 12 '21 14:07 agracey

Tekton has been removed: https://github.com/epinio/epinio/pull/1141

Closing this

jimmykarily avatar Feb 07 '22 08:02 jimmykarily

This still applies to 'lifecycle'. I wanted to note that we already build on Docker (the internal registry). And that pack uses lifecycle. If we want support for 'project.toml', we need to switch. Also we should do this before writing docs on buildpacks, as the new way is different.

manno avatar Mar 15 '22 11:03 manno

This page describes what pack is supposed to be and what it offers on top of the lifecycle: https://github.com/buildpacks/spec/blob/main/platform.md#lifecycle-interface

"pack is a CLI implementation of the Platform Interface Specification" for Cloud Native Buildpacks"

At some point we should start thinking about image rebasing and such

jimmykarily avatar Apr 08 '22 06:04 jimmykarily

Currently we don’t use docker to do the builds and it works fine on containerd based clusters. AFAICT, pack would not work on k3s and RKE2 clusters.

agracey avatar Apr 08 '22 13:04 agracey

As Andrew already wrote pack relies on Docker. There is already a pack issue for additional containerd support: https://github.com/buildpacks/pack/issues/1393

We could require Docker only on the cli side, but since the Ui and and cli should be on par it would not help in our case.

thardeck avatar Apr 12 '22 14:04 thardeck

As part of this spike it might be worth checking out how pack implements rebasing [of buildpack images] and supports additional buildpacks.

thardeck avatar Apr 12 '22 14:04 thardeck

There are a lot of flags that you can pass to the lifecycle command. I'd imagine that we can get all the same functionality as pack without needing to use it as an intermediate.

agracey avatar Apr 13 '22 19:04 agracey

Since the Buildpack issue is staling you can still customize the build via BP_ env vars, with the epinio manifest.

enrichman avatar Sep 19 '22 08:09 enrichman