Azure / draft-classic

A tool for developers to create cloud-native applications on Kubernetes.
https://draft.sh
MIT License
3.93k stars 397 forks source link

[FEATURE]: enable using other building engines (img, buildah, etc.) #773

Closed squillace closed 6 years ago

squillace commented 6 years ago

For comment.

bacongobbler commented 6 years ago

I think this ticket's requests are being covered in https://github.com/Azure/draft/issues/700. Basically we need to break out the container builder infra into separate "drivers" which can then be installed via draft plugin install. Once that's done, we can write up documentation to demonstrate how users can create and use other container builders with Draft.

Is there something else missing from that ticket that we need to track separately here, or should we go ahead and close this as a duplicate? :)

AkihiroSuda commented 6 years ago

WDYT about using CBI (a vendor-neutral interface for building images on a Kubernetes cluster)? https://github.com/containerbuilding/cbi

The following plugins are implemented so far:

Plugin Backend Dockerfile cloudbuild.yaml OpenShift S2I BuildKit LLB
docker Docker Yes ✅
buildkit BuildKit Yes ✅ Planned
buildah Buildah Yes ✅
kaniko kaniko Yes ✅
img img Yes ✅
gcb Google Cloud Container Builder Yes ✅ Yes ✅
s2i OpenShift Source-to-Image (S2I) Yes ✅

Discussion in Skaffold community: https://github.com/GoogleContainerTools/skaffold/issues/596

bacongobbler commented 6 years ago

closing as a duplicate of #700 so we can track one ticket

@AkihiroSuda can CBI run builds locally as well? A pluggable interface sounds nice, but at the same time we have users (me) who wants to use their local container builders to do the build and push steps as their machines are vastly quicker for processing power than what's available in the cloud. That said I wouldn't be opposed to allowing someone to add support for CBI once we have the infra in place to support image builder drivers. Might be a good discussion point to carry on in #700.