Coder Social home page Coder Social logo

New Build experience via CLI about build HOT 9 CLOSED

gabemontero avatar gabemontero commented on August 18, 2024
New Build experience via CLI

from build.

Comments (9)

sbose78 avatar sbose78 commented on August 18, 2024 1

cc @zhangtbj Were you looking for a similar experience ?

from build.

zhangtbj avatar zhangtbj commented on August 18, 2024 1

It may be also related to the local build support, comment here for a record: https://blogs.vmware.com/opensource/2020/11/17/buildkit-cli-for-kubectl/
(The kubectl plugin can build the Dockerfile locally and run the image on kube without pushing it to container registry)

from build.

sbose78 avatar sbose78 commented on August 18, 2024

I would like to have buildv2 integrate with our oc tooling. The simplicity of oc new-app and oc new-build experience is something we should not lose.

from build.

siamaksade avatar siamaksade commented on August 18, 2024

It might make sense to bootstrap a new CLI focused on builds v2. This CLI could then become a oc plugin and managed through krew

from build.

zhangtbj avatar zhangtbj commented on August 18, 2024

Hi @sbose78 and @siamaksade ,

Yes, After Release 0.1, we plan to have the local(binary) support in build v2.

I also investigated and summarized the oc binary build in build v1 before:
box-image

I think it is a good way.

  • But I remember we need provide an additional upload service/controller to support to upload the source code archive file from local to server side.
  • And it is better there is an individual CLI (which can be a plugin of oc), so that the build v2 user from community can use it directly with download the full capabilities oc CLI

What do you think? :)

from build.

adambkaplan avatar adambkaplan commented on August 18, 2024

In discussion with @sbose78 @gabemontero @coreydaley-redhat @otaviof and @siamaksade, we think that the CLI should have a similar new-build experience that helps developers create a Build object. The broader new-app functionality is beyond the scope of this project.

from build.

zhangtbj avatar zhangtbj commented on August 18, 2024

Hi @gabemontero ,

Thanks for the info, I took a look at the Binary Build proposal in this document: https://docs.google.com/document/d/1wo7-tdssRdEHSGX5D6fCbJXEs7ghawRnQOq1WgaSUUA

If I understand you correctly, you prefer to use https://github.com/rhuss/buildah-poc as PoC for build v2, is that correct?

We also did some investigation before and had a try the buildah-poc, I think kubectl cp performance maybe is not good: #97 (comment)

So I am wondering:

  • Can we use another sync way (like ksync: https://github.com/ksync/ksync) to sync or upload the binary from client to server side better, or leverage OpenShift BuildConfig Binary-Builds in build v1, to have a similar upload service or a REST API in our build v2 side to help receive and get binary from local?
  • Can we use the Tekton condition (https://github.com/tektoncd/pipeline/blob/master/docs/conditions.md) to check if the binary is uploaded to server side correctly
  • For the upload service, I think we also need to consider, do you need one build service or pod to receive the bianry and do the build for each buildrun, or do we want to use a central upload service as a kube service to serve the upload request for all buildruns.

Above are just my thinking, we can think about or discuss later together.

from build.

gabemontero avatar gabemontero commented on August 18, 2024

Hi @gabemontero ,

Thanks for the info, I took a look at the Binary Build proposal in this document: https://docs.google.com/document/d/1wo7-tdssRdEHSGX5D6fCbJXEs7ghawRnQOq1WgaSUUA

If I understand you correctly, you prefer to use https://github.com/rhuss/buildah-poc as PoC for build v2, is that correct?

No, I don't necessarily have a preference. That most likely was something from @otaviof at least that is my assumption.

We should definitely iterate on the implementation details. Including what you have below.

My preferences if any revolve more around what NOT to do, namely we should hopefully be able improve upon on how it was done with OpenShift Builds V1, which I provided the details for how it was done in the document. The approach used there stems in part from when it was implemented and what was and was not available in k8s at the time.

We also did some investigation before and had a try the buildah-poc, I think kubectl cp performance maybe is not good: #97 (comment)

So I am wondering:

* Can we use another sync way (like ksync: https://github.com/ksync/ksync) to sync or upload the binary from client to server side better, or leverage `OpenShift BuildConfig Binary-Builds` in build v1, to have a similar upload service or a REST API in our build v2 side to help receive and get binary from local?

* Can we use the Tekton condition (https://github.com/tektoncd/pipeline/blob/master/docs/conditions.md) to check if the binary is uploaded to server side correctly

* For the upload service, I think we also need to consider, do you need one build service or pod to receive the bianry and do the build for each buildrun, or do we want to use a central upload service as a kube service to serve the upload request for all buildruns.

Above are just my thinking, we can think about or discuss later together.

from build.

gabemontero avatar gabemontero commented on August 18, 2024

So since I opened this a year and a half ago, some things have changed:

Hence, I think this umbrella item I opened way back when is past its usefulness.

Any remaining items in my opinion in mapping oc new-build / new-app capabilities I at least are dependent on analogous imagestream support i.e. shipwright-io/community#25 from @imjasonh based on @ricardomaraschini grass root efforts, where we "pick" the builder / base image based on source code analysis of the remote/local repo being used. CLI items would in theory stem from that.

So I closing this out

from build.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.