Skip to content

Instantly share code, notes, and snippets.

@vdemeester
Last active June 4, 2019 13:50
Show Gist options
  • Save vdemeester/129f77ad3b2e9705e1a7d6d59ac6f7a6 to your computer and use it in GitHub Desktop.
Save vdemeester/129f77ad3b2e9705e1a7d6d59ac6f7a6 to your computer and use it in GitHub Desktop.
knative/build deprecation issue

Knative Build deprecation in favor of Tekton Pipelines Steering Committee proposal

Author: Vincent Demeester [email protected] Date: June 6 2019

Objective

Propose to mark knative/build as deprecated and drive user to the Tekton project as their building engine. This doc should be used as a forum for external comment and questions, to resolve any concerns before the Steering Committee decides whether to adopt the proposal.

Background

Starting with v1beta1 API of knative (serving), the embedded build feature will be removed from the Knative Service definition, see the proposal here. This removes Serving optional dependency on Knative Build, making Knative Build fully decoupled from the rest of the Knative components and only responsible to build images that will be using in services later on. This responsability is shared with any projects capable of building images in Kubernetes.

The Tekton Pipeline (https://github.com/tektoncd/pipeline) project originates from Knative project (was knative/build-pipeline) and is enhancing Knative Build functionality, providing advanced CI/CD features on top of the base that Knative laid.

The Tekton Pipeline's Task and TaskRun objects are mapping Knative's Build and BuildTemplate object, making the migration from Knative Build to Tekton Pipelines easy. This migration steps should be documented in the near future.

The Tekton Catalog project (https://github.com/tektoncd/catalog) aims to provides a catalog of re-usable task, similar to what Knative BuildTemplate repository is doing today (https://github.com/knative/build-template)

In this catalog, there is an on-going effort to provide tasks to easily deploy and interact with Knative services (tektoncd/catalog#36). This effort aims to make it easy for user to move from Serving v1alpha1 API to v1beta1 by using Tekton Pipeline Tasks to deploy their services.

User are getting confused wether the should use Knative Build or Tekton Pipeline (see knative/build#606). Deprecating Knative Build would resolve this confusion as it would make it clear that the "building the service(s) image" part is not Knative's responsability and user can use whatever tools is capable of doing that — preferably Tekton Pipelines 👼.

Proposal

Starting from the Knative release that use v1beta1 as GA github.com/knative/build will be marked as deprecated . It will stopped to do releases co-versioned and timed with the other Knative components but might still receive bug and security fixes until officialy marked as dead (same dependency of knative serving API version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment