-
Notifications
You must be signed in to change notification settings - Fork 35
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
RFC : How Do We Best Leverage K8s as a Runtime? #22
Conversation
Signed-off-by: Topher Bullock <[email protected]>
Signed-off-by: Topher Bullock <[email protected]>
Thanks for putting this up, @topherbullock! Some quick (and, possibly stupid) thoughts: Is it right to rephrase those three "problems" into
? In terms of For does that make any sense? Thanks! |
Yeah, that rephrasing makes sense to me @cirocosta! It seems like using outputs as images is in the Tekton backlog, so this would get us a little further if they implement it (or be a good place for us to jump in to contribute): tektoncd/pipeline#639 , tektoncd/pipeline#216 I think for now we can start looking at a simple pipeline to exercise those use cases, and move forward with a POC using Tekton (and maybe later do a bake-off experiment against native K8s) to run a single build of a job in that pipeline. Here's the simplest concourse example that exercises the first case of using images: ---
resources:
- name: ubuntu
type: registry-image
source:
repository: ubuntu
jobs:
- name: fetch-and-use-ubuntu
plan:
- get: ubuntu
- task: use-it
image: ubuntu
config:
platform: linux
run:
path: echo
args: ["Hello, world!"]
|
Here are some things @chenbh and I discovered during our investigation: Things we've found:
tekton Qs:
k8s Qs:
limitations:
Concourse Qs:
|
@kcmannem and I did some more digging
|
Thinking more about build logs / piping stdin, stdout, stderr :
This would be possible using the attach / exec API; which aren't properly supported by the current k8s go client. :c
We would need to support in-cluster configuration as well as out-of-cluster config our K8s Client. In order to retrieve build events from
This relies on the K8s Logging Architecture being configured for the level of build output logging a Concourse cluster would produce. I'm not entirely sure of the details of the underlying architecture in terms of scaling to follow logs from many containers. |
- Convert concourse pipeline yml to a tekton version - Put is WIP and untested - Get done but untested - Currently building booklit.yml Signed-off-by: Bohan Chen <[email protected]> Co-authored-by: Sameer Vohra <[email protected]>
Something of note, regarding |
Hi,
That is, of course, hoping Concourse is going to keep supporting these platforms! |
Going to close this for the same reason as #20 (comment) @aledeganopix4d The likely approach there will be to support K8s workers alongside non-K8s workers, i.e. to support multiple runtimes. I'm sure there will be trickier parts to work out, like how to schedule Windows work on K8s, but we fully intend to support all platforms now and forever. |
Proposal
This is an initial proposal to consider whether Tekton vs native K8s resources would be the best path forward for Concourse's K8s runtime implementation.
To make the path forward clearer, we may want to include a POC which spells out how converting a build plan to a set of K8s objects would happen in practical terms.
Signed-off-by: Topher Bullock [email protected]