kpack icon indicating copy to clipboard operation
kpack copied to clipboard

Create a curated file for use with `kp import`

Open mgibson1121 opened this issue 3 years ago • 2 comments

Motivation

When users onboard to kpack we offer a tutorial to get them started. Steps 3, 4, and 5 of this tutorial instruct the user to create a clusterstore, clusterstack, and a builder configuration. By providing a file that allows users to bootstrap and update clusterstacks, clusterstores, and clusterbuilders using kp import we have two opportunities:

  1. To minimize the friction of onboarding onto the kpack project and allow users to see value more quickly
  2. Provide a less manual way of to update these resources when new dependencies are made available by a provider of buildpacks and stack images

What

Create a file that contains paths to images that can be used by kp import to create or update clusterbuilder, clusterstack, and clusterstore resources. Release a new version of this file with paths to new images when the provider of the dependencies releases new versions of buildpacks and stacks.

As we do in the tutorial, I propose we use the resources provided by the Paketo project and reference images they provide.

Solutioning:

The outcomes specified in the above section could be achieved by configuring the file users import as follows:

  • Create/update three clusterstack resources for each of the Stacks Paketo provides
  • Create/update a clusterstore with Paketo buildpacks for Java, NodeJS, Go, PHP, Ruby, .NET Core, nginx, and httpd
  • Create/update clusterbuilders that each use a different Paketo stack (base, full, tiny)
    • Each of these clusterbuilders should have a buildpack oder definition optimized for the apps for which the associated stack is suitable to build on top of
    • We can borrow opinions here from Paketo by looking at the builder images they maintain: base, tiny, full
  • When the Paketo project makes new stacks and buildpack images referenced in the file available, we should release a new version of the file in our Github repo

mgibson1121 avatar Mar 08 '21 18:03 mgibson1121

This will require users to be able to configure the kp-config. I created an issue on the kpack-cli repo: https://github.com/vmware-tanzu/kpack-cli/issues/160

matthewmcnew avatar Mar 08 '21 23:03 matthewmcnew

Worth discussing if we want to include all paketo stacks/buildpacks on the repo & where exactly we publish this descriptor.

matthewmcnew avatar Mar 08 '21 23:03 matthewmcnew