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

Proposal : buildkit-tekton local executor project #674

Open
vdemeester opened this issue Apr 11, 2022 · 8 comments
Open

Proposal : buildkit-tekton local executor project #674

vdemeester opened this issue Apr 11, 2022 · 8 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.

Comments

@vdemeester
Copy link
Member

TL;DR: adoption of buildkit-tekton in the tektoncd org.

The buildkit-tekton propose an alternative implementation of the Tekton API, dedicate to local execution. It is currently composed of two artifcats:

  • a buildkit frontend
  • a tkn-local command to easily consume this frontend from the comand-line

A bit more context around this can be visible in #145 and in CI/CD and the development workflow.

Since the inception of the Tekton project, we always focused our work around kubernetes, but with a higher end-goal which is, to probably in a long-term future, be able to execute Tekton Task and Pipeline elsewhere. We are trying our hardest in tektoncd/pipeline to leak as little as possible from k8s in our APIs.
This alternate implementation / executor is inline with that approach, as it provides an alternative execution flow, and should help us detect where we are leaking too much from Kubernetes.

Who will own it

@vdemeester vdemeester added the kind/feature Categorizes issue or PR as related to a new feature. label Apr 11, 2022
@tekton-robot
Copy link
Contributor

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale with a justification.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close with a justification.
If this issue should be exempted, mark the issue as frozen with /lifecycle frozen with a justification.

/lifecycle stale

Send feedback to tektoncd/plumbing.

@tekton-robot tekton-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 10, 2022
@dibyom dibyom removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 8, 2022
@tekton-robot
Copy link
Contributor

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale with a justification.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close with a justification.
If this issue should be exempted, mark the issue as frozen with /lifecycle frozen with a justification.

/lifecycle stale

Send feedback to tektoncd/plumbing.

@tekton-robot tekton-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 6, 2022
@jerop jerop added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Nov 7, 2022
@jerop
Copy link
Member

jerop commented Feb 17, 2023

/lifecycle frozen

@jerop
Copy link
Member

jerop commented Mar 1, 2023

discussed this topic at the governance/community working group and agreed that we're interested in adopting buildkit-tekton, but we need to identify the work that needs to be done before adoption (e.g. alignment with design principles)

@aaron-prindle
Copy link
Contributor

aaron-prindle commented Jan 22, 2024

As of 1/22/2024 it might also make sense to look into leveraging dagger - eg: possibly creating a Tekton frontend over dagger.
dagger is a framework for CI/CD pipelines built to allow for executing in different enviroments (local) and to be extensible (extensible front ends, etc.). dagger leverages buildkit

@vdemeester
Copy link
Member Author

@aaron-prindle can you go into more detail on what you mean by a "frontend" over dagger ? I am assuming it would be something that would take a set of Tekton Resources and translate it to the graphql that dagger uses so it can be used by it, am I right ? (If that's the case, it's very similar to what buildkit-tekton aims to do — but one level lower — and, yeah that's something that might be worth to explore, this was in my "personal backlog" to try that out someday 😬 )

@aaron-prindle
Copy link
Contributor

aaron-prindle commented Jan 24, 2024

@vdemeester exactly! The idea would be to translate a set of Tekton Resources -> dagger graph for local execution. This video shows something similar to the concept I was suggesting only for a Github Actions "frontend" for dagger:
https://www.youtube.com/watch?v=rHk3spfCHFQ

The gist being that instead of using buildkit directly and then writing the additional logic to map/pass artifacts, params, etc. across different Tasks we can likely leverage dagger which has these type of primitives for DAGs on top of buildkit already.

@vdemeester
Copy link
Member Author

vdemeester commented Jan 25, 2024

The gist being that instead of using buildkit directly and then writing the additional logic to map/pass artifacts, params, etc. across different Tasks we can likely leverage dagger which has these type of primitives for DAGs on top of buildkit already.

Having worked on both, it's a bit higher level yes, but in both case primitives are there. A very thin 1h "test" of this (from last august — according to the last modified date on my laptop) is there. I was essentially slightly simpler than with buildkit but not that much different.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Projects
Status: Todo
Development

No branches or pull requests

5 participants