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

Split builder from operator #125

Closed
nicolaferraro opened this issue Sep 25, 2018 · 9 comments
Closed

Split builder from operator #125

nicolaferraro opened this issue Sep 25, 2018 · 9 comments
Assignees

Comments

@nicolaferraro
Copy link
Member

Currently maven builds are performed inside the operator

@astefanutti astefanutti self-assigned this Mar 25, 2019
@lburgazzoli
Copy link
Contributor

Would be nice if we can have a solution generic enough that we could back-it by a "native" build thing such as knative build pipeline

@astefanutti
Copy link
Member

I've started evolving the existing builder interface to add a builder pod implementation that takes a serialised build request as input and output build status. This is quite close to the the Knative Build CRD, so it should be possible to support a Knative builder strategy.

@nicolaferraro
Copy link
Member Author

That's nice. And it also helps with installation in Operator Hub.

@astefanutti
Copy link
Member

That's nice. And it also helps with installation in Operator Hub.

Exactly. It will remove the requirement for the persistent volume mount for the operator pod and make the operator self-installable.

@nicolaferraro
Copy link
Member Author

I was thinking...
Maybe it would be good to make the operator and the builder communicate through a custom resource instead of a direct serialized request. This would allow us also to move the operator in a global namespace if needed... in a multi-tenant installation.

So, a builder as a mini sub-operator that is instantiated by the main one.
I think this was a old idea from @lburgazzoli.. Wdyt @astefanutti ?

@astefanutti
Copy link
Member

Maybe it would be good to make the operator and the builder communicate through a custom resource instead of a direct serialized request.

This is exactly what I've just done this morning. The initial driver was to be capable of passing the build status from the build pod back to the operator, but I was thinking as well to the general benefits.

@astefanutti
Copy link
Member

This is still sketchy but it kind of works: https://github.com/astefanutti/camel-k/commit/6969cdb92d271062b9815dd119f45929844196f4#diff-1c74f711585f905376ce82cb6324d86bR1

Next steps:

  • Add a build CRD controller to manage the build pod lifecycle
  • Polish the reconciliation with the integration context and integration lifecycle
  • Check it's compatible with Knative build

@lburgazzoli
Copy link
Contributor

This is still sketchy but it kind of works: astefanutti@6969cdb#diff-1c74f711585f905376ce82cb6324d86bR1

Next steps:

* Add a build CRD controller to manage the build pod lifecycle

* Polish the reconciliation with the integration context and integration lifecycle

* Check it's compatible with Knative build

I think for the latest point we could have the dedicated builder pod that translates to a knative build (or any other build type)

@lburgazzoli
Copy link
Contributor

This is still sketchy but it kind of works: astefanutti@6969cdb#diff-1c74f711585f905376ce82cb6324d86bR1
Next steps:

* Add a build CRD controller to manage the build pod lifecycle

* Polish the reconciliation with the integration context and integration lifecycle

* Check it's compatible with Knative build

I think for the latest point we could have the dedicated builder pod that translates to a knative build (or any other build type)

like we do create the builder pod according to the platform configuration

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants