Shipwright is an extensible framework for building container images on Kubernetes. With Shipwright, developers can define and reuse build strategies that build container images for their CI/CD pipelines. Any tool that builds images within a container can be supported, such as Kaniko, Cloud Native Buildpacks, and Buildah.
| Dependency | Supported versions |
|---|---|
| Kubernetes | v1.15.*, v1.16.*, v1.17.* |
| Tekton | v0.14.2 |
The following are the build strategies supported by this operator, out-of-the-box:
Users have the option to define their own BuildStrategy or ClusterBuildStrategy resources and make them available for consumption via the Build resource.
This operator ships four CRDs :
- The
BuildStragegyCRD and theClusterBuildStrategyCRD is used to register a strategy. - The
BuildCRD is used to define a build configuration. - The
BuildRunCRD is used to start the actually image build using a registered strategy.
| Version | Docs | Examples |
|---|---|---|
| HEAD | Docs @ HEAD | Examples @ HEAD |
Examples of Build resource using the example strategies shipped with this operator.
- Get a Kubernetes cluster and
kubectlset up to connect to your cluster. - Install Tekton by running install-tekton.sh, it installs v0.14.2.
- Install operator-sdk by running install-operator-sdk.sh, it installs v0.17.0.
- Create a namespace called build-examples by running
kubectl create namespace build-examples. - Execute
make localto register well-known build strategies including Kaniko and start the operator locally. - Create a Kaniko build.
apiVersion: build.dev/v1alpha1 kind: Build metadata: name: kaniko-golang-build namespace: build-examples spec: source: url: https://github.com/sbose78/taxi contextDir: . strategy: name: kaniko kind: ClusterBuildStrategy dockerfile: Dockerfile output: image: image-registry.openshift-image-registry.svc:5000/build-examples/taxi-app- Start a Kaniko buildrun
apiVersion: build.dev/v1alpha1 kind: BuildRun metadata: name: kaniko-golang-buildrun namespace: build-examples spec: buildRef: name: kaniko-golang-build serviceAccount: generate: true- Build, test & run using HACK.md.
Kubernetes slack: #shipwright
| Build Strategy | Alpha | Beta | GA |
|---|---|---|---|
| Source-to-Image | ☑ | ||
| Buildpacks-v3-heroku | ☑️ | ||
| Buildpacks-v3 | ☑️ | ||
| Kaniko | ☑️ | ||
| Buildah | ☑️ |
| Feature | Alpha | Beta | GA |
|---|---|---|---|
| Private Git Repos | ☑️ | ||
| Private Output Image Registry | ☑️ | ||
| Private Builder Image Registry | ☑️ | ||
| Cluster scope BuildStrategy | ☑️ | ||
| Runtime Base Image | ⚪️ | ||
| Binary builds | |||
| Image Caching | |||
| ImageStreams support | |||
| Entitlements |