Skip to content

Releases: shipwright-io/build

v0.5.0

10 Jun 13:59
1cb88d0
Compare
Choose a tag to compare

Release v0.5.0

Breaking Changes

  • Build's status fields .succeeded and .reason have been removed. These were deprecated in v0.4.0. Clients should inspect the status condition type Succeeded instead - refer to the documentation for more information.

Deprecations

  • The runtime image feature is officially deprecated, and its capabilities will be removed in a subsequent release.

Features

#791 by SaschaSchwarze0: Build strategy authors can now specify an imagePullPolicy on each step, for example to enforce the Always policy also for images that do not use the latest tag

#776 by qu1queee: Add SHA label to SHP controller img

#770 by SaschaSchwarze0: Remove usage of Tekton's pipelines resources in favor of a shipwright-managed step to clone a Git repository, and Tekton results to store information such as Git commit SHA and image digest and size

#751 by HeavyWombat: Added Git command as a replacement for the Tekton Git Resource.

#717 by qu1queee: Add EP on enabling local source code feature

#711 by SaschaSchwarze0: The Shipwright Build controller image is now provided for multiple platforms

#675 by qu1queee: Provide support for rootless Buildkit as a new Build Strategy.

#616 by otaviof: Adding .spec.sources attribute to Build, which consists of a slice of BuildSource. Using thisconstruction, users can describe remote-artifacts to be downloaded before the build process starts.

Fixes

#792 by HeavyWombat: Fixed issue with the source step failing for Git repositories that contain submodules that require authentication.

#775 by HeavyWombat: Fixed issue with Git validation by using the existing context with its timeout to be used for Git validations actions as well. Since this timeout is greater than the default timeout, it is less likely to fail unexpectedly in high load situations.

#768 by imjasonh: Permissions granted to the controller SA are reduced to what it actually needs to run

#766 by imjasonh: Released container images are automatically tagged with the release version.

#758 by qu1queee: Bump github.com/go-git to support a ctx with timeout when listing

#746 by SaschaSchwarze0: Correcting the SpecSourceSecretNotFound reason in the build documentation to SpecSourceSecretRefNotFound

#733 by imjasonh: The controller no longer configures a readiness probe or liveness probe.

#728 by SaschaSchwarze0: Fix a panic while capturing metrics if no buildSpec is set in the BuildRun's status

API Changes

#796 by imjasonh: Mark the runtime feature as deprecated

#725 by imjasonh: The deprecated .status.succeeded and .status.reason fields are removed.

Docs

#760 by qu1queee: Ensure contexDir is supported in S2I strategies

#755 by qu1queee: Add ImJasonH as an approver for PRs

Misc

#782 by SaschaSchwarze0: Update sample build strategy to latest ko version

#771 by qu1queee: Add sanity check on release notes content

#749 by SaschaSchwarze0: Use buildah v1.20.1 in the sample build strategies

#745 by SaschaSchwarze0: Updating build tool versions: Kaniko to v1.6.0 and ko to v0.8.2

#741 by qu1queee: Bump to tektoncd/pipelines v0.23.0

#720 by zhangtbj: Clean operator-sdk related settings and info from CI and document

#697 by qu1queee: Add EP on Parameterize Build Strategies

#671 by zhangtbj: Switch the default branch from master to main

v0.4.0

06 Apr 17:39
057a225
Compare
Choose a tag to compare

Release v0.4.0

Breaking Changes

  1. All Build custom resources (Build, BuildRun, BuildStrategy, ClusterBuildStrategy) moved from the build.dev group to shipwright.io.
  2. The build controller now installs in the "shipwright-build" namespace, with the deployment name "shipwright-build-controller".
  3. In Build, the git source fields httpProxy, httpsProxy, noProxy and flavor were removed.

Users currently running v0.3.0 should use the following procedure to upgrade to v0.4.0:

  1. Install v0.4.0 using the release YAML manifest.
  2. Download existing Build, BuildStrategy, and ClusterBuildStrategy objects from your cluster in YAML format.
  3. For each object, change the apiVersion from build.dev/v1alpha1 to shipwright.io/v1alpha1. Remove any identifiers and creation timestamps from the object's metadata.
  4. Run kubectl apply -f against each manifest to re-create the relevant object.

Once the desired Shipwright build objects have been migrated to the new api group, you can remove v0.3.0 from your cluster:

  1. Delete the build-operator namespace.
  2. (optional) Delete all BuildRun, Build, BuildStrategy, and ClusterBuildStrategy objects in the build.dev api group on the cluster.
  3. (optional) Delete the custom resource definitions for BuildRun, Build, BuildStrategy, and ClusterBuildStrategy in the build.dev api group.

Deprecations

The following API fields are marked deprecated, and will be removed in a subsequent release:

  1. BuildRun: status.succeeded and status.reason have been deprecated. Clients should inspect the status condition type Succeeded instead. Refer to the documentation for further information.

Features

#649 by SaschaSchwarze0: Expose configuration for the Burst and QPS settings of the kube-api client

#642 by zhangtbj: Add informers and listers for the advanced usages and simplify the generated clientset folder from pkg/client/build to pkg/client directly

#641 by qu1queee: Introduce new Failed Reasons for BuildRun Status.Conditions and enhance the scenarios when BuildRuns are marked as Failed.

#623 by SaschaSchwarze0: Exposing MaxConcurrentReconciles configuration of controllers to allow increasing them from the default (1) to be able to handle a larger amount of objects in the system

#617 by SaschaSchwarze0: Update Kaniko to v1.5.1 including better retry support for the image push to the container registry

#603 by SaschaSchwarze0: - Adding a sample build strategy for ko

Fixes

#710 by HeavyWombat: Fix nil-pointer dereference with panic in case Build spec Strategy field was not set.

#690 by ImJasonH: Tag nightly release images to avoid registry garbage collection

#639 by adambkaplan: Github actions: ensure nightly and release jobs are not run on contributor forks.

#622 by SaschaSchwarze0: Fixing the predicate functions for delete operations so that unnecessary reconciliations are omitted and a completed BuildRun does not get updated if the TaskRun gets deleted.

#592 by HeavyWombat: Fixed an issue where the build-controller fails to Reconcile with a panic due to a nil pointer dereference. The issue can arise in case there is a failed TaskRun with a pod that has still running (unfinished) containers.

#672 by xiujuan95: sourceURL validation is disabled by default.

API Changes

#683 by ImJasonH: Remove unused fields from GitSource

#674 by ImJasonH: BuildRun .status.succeeded and .status.reason are marked as deprecated in favor of .status.conditions.

#609 by ImJasonH: BREAKING: Rename API group from build.dev to shipwright.io

Docs

#669 by qu1queee: Ensure the README is easier to digest and that it highlights the main value for Shipwright users.

#610 by ImJasonH: BREAKING: Change installation namespace, SA, ClusterRole{Binding}, and Deployment names

#648 by mattui: Correct link the link of controller.yaml in configuration.md

Misc

#715 by SaschaSchwarze0: The Kaniko build strategy is updated to use v1.5.2 of Kaniko

#687 by ImJasonH: Update Go type and field names; no user-visible changes expected.Existing code to interact with the API is expected to work. When updating to new versions of the generated Go client, code will need to change to reference new field names.

#686 by ImJasonH: Status reason "SpecRuntimeSecretRefNotFound" changed to "SpecBuilderSecretRefNotFound" to accurately reflect its use.

#663 by xiujuan95: Tekton version is bumped to v0.21.0

#654 by SaschaSchwarze0: Adding the KILL capability to the Kaniko executor to allow it to kill daemon processes started by non-root

#646 by qu1queee: Remove last dependency to the operator-sdk

#635 by qu1queee: Make use of shipwright assets instead of random repositories.

#634 by qu1queee: Ensure default branch of repositories falls to HEAD when revision is not specified in the Build

#631 by zhangtbj: Renamed "build operator" to "build controller" in code and documentation.

#629 by mattcui: Add make target for generating crds through controller-gen

#595 by qu1queee: Restructure BuildRun reconcile code into separate classes.

#593 by qu1queee: Move controller/reconcile logic into reconciler pkg

Nightly Releases

03 Mar 10:29
0980094
Compare
Choose a tag to compare
Nightly Releases Pre-release
Pre-release

Nightly Releases

v0.3.0

09 Feb 09:36
205624f
Compare
Choose a tag to compare

Tuning of CRD´s Status fields

This release provides enhancements on the Build and BuildRun Status fields, providing more readability for users around the state of these resources. It also include dependencies updates (e.g. Tekton, k8s), new Enhancement Proposals (and their implementation) and bug fixes.

Features

6ce5153 - Introduce conditions for buildruns
87c92df - Bump tekton to v0.20.1
2a552ce - Refactor Build Controller validations logic
3da6b2d - Propagate annotations from BuildStrategy to TaskRun
7381cbf - Add more labels for Counter count metrics
34d9184 - Remove step prefix in all buildstrategy steps
8fdea51 - Run integration tests via GitHub Actions
8a944ad - Enabling github actions for unit tests
9bdb882 - Introduce spec.source.url validation

Fixes

072a355 - Remove the conditions pkg
bf3cabd - Rework Build controller
a00ab1c - Fix flaky unit-test spec for Build
644ed56 - Fix buildah ClusterBuildStrategy
17d6f7b - Make conditions sequence test less strict
5df8cb0 - skippy peanut butter
2749e4c - Add missing buildRun condition updates on errors
abc17ba - Correct annotation propagation logic
d084b0a - Print operator log for failed integration test case
3015ea7 - Go back to main branch for dora
c75d2bf - Add detailed error message for e2e test

Backwards incompatible changes

None

Docs

d9c0f32 - Update docs, scripts and Makefile for tekton v0.20.1
9f2614b - Enhance auth document with a build secret annotation
954d1c1 - Add missing shipwright header into CLI proposal
cade9d4 - Update main README.md with Community meetings info
26443a1 - EP: Propagating annotations from the build strategy to the pod
bfb1f90 - Shipwright Command-Line Interface (EP)
acede2a - Email communication channels
7a6bcf7 - Replace mailto links for Shipwright email lists

Misc

4621566 - Refactor unit-tests
45490fe - Add release.yaml github action
c0ffc16 - Update e2e tests with BuildRun Conditions
4b5759d - Enhance integration-test
1951f7c - Don't retry flakes in integration tests
4bbe9ff - Accept ExceededNodeResources as a valid Reason in integration tests
860b9ca - Sync Go and operator SDK versions used
1fce4e8 - Add trimpath Go build flag
2dce719 - Fix trailing, duplicate, missing whitesapces
23f5763 - Add details about code check to testing doc
4bc04b2 - Harmonise function signatures in test code
02b142c - Refactor build and buildrun timeout logic
965b0fd - Add missing comments
1be85e3 - Fix ineffassign findings
401f68c - Remove unused variables
18aad74 - Introduce new Makefile targets for sanity checking
664fcf6 - Fix misspell findings
ec12dda - Add condition test cases to integration test
74c0513 - Remove operator-sdk install from integration tests
b073f77 - update vendor dependencies
9bdb882 - Add main logic, unit test and integration test for build controller validates spec.source.url

Thanks

Thanks to the contributors of the v0.3.0 release:

Thanks for the release notes:

and for all the folks that participated on the latest community meetings:

v0.2.0

27 Nov 12:55
6e81ae8
Compare
Choose a tag to compare

🦃 Bump dependencies to kubernetes 1.18! 🦃

This release provides updates on our core dependencies, new features to improve the strategies and controllers, plus a good number of fixes. Don´t forget to visit our official website https://shipwright.io/ .

Features

  • Shipwright/Build now available as an operator on Operator Hub!
  • Bump operator-sdk to v0.18, k8s to 1.18 (#462)
  • Bump tekton-pipeline to v0.17.1 (#447)
  • Add conditions pkg to support Build CRDs to operate on Conditions. (#475)
  • Set ownerReference to build->buildrun. (#409)
  • Make build operator leader durations configurable. (#433)
  • Use single step for all four Buildpacks lifecycle phases. (#491)

Fixes

  • For the Kaniko strategy:
    • Bring Kaniko version and arguments in sync. (#438)
    • Update Kaniko builder image to v1.3.0 (#490)
  • For the Cloud Native Buildpacks strategy (Paketo):
    • Move Buildpacks Paketo strategy to use full tag builder image. (#434)
    • Add user group ID for each buildpack step. (#451)
    • Bring ruby test sample back. (#459)
  • Fixes to code generators. (#435)
  • Fixes for CRDs and fakes generator. (#473)
  • Change error messages start with a lower case letter. (#445)
  • Organize imports. (#452)
  • Fix go module files. (#461)
  • Enhance metrics calls observation. (#456)
  • Handle non-existing annotation. (#460)
  • Add build strategy labels to task run. (#465)
  • Add buildrunname label for custom metric. (#467)
  • Partial fix for issue 486. (#488)

Backwards incompatible changes

  • Bump operator-sdk to v0.18, k8s to 1.18 (#462)

    Warning: The above will force users that are using our Build clientsets to provide a context and options when doing
    CRUD operations on the CRD objects(Build/BuildRun/BuildStrategy/ClusterBuildStrategy)

Misc

  • Added https://shipwright.io/ website. We will be hosting here blog posts around
    use cases on how to use Shipwright/Build.

Docs

  • Add Remote Artifacts EP. (#419)

Thanks

Thanks to the contributors of the v0.2.0:

and for all the folks that participated on the latest community meetings:

Shipwright Build release v0.1.1

21 Oct 11:04
50419d7
Compare
Choose a tag to compare

🎃 Added typed clientSets for the Build Custom Resources! 🎃

We added typed clientSets, see build/clientset. This allows any other go project to export our CRDs and use them in a native way.

Fixes

  • Validate both source and output secret references in the Build controller. (#389)
  • For the Cloud Native Buildpacks strategy (Paketo)
    • Remove Ruby runtime samples, while this runtime is not yet supported in Paketo. (#400)
    • Switch the Paketo builder image registry, from gcr to dockerhub. (#406)
    • Move to Paketo full tag builder image (#434 )
  • For the Kaniko strategy
    • Update to Kaniko 1.0 (#401)
    • Add SETFCAP Linux capability ( #415 )
    • Bring Kaniko version and arguments in sync (#438 )
    • Upgrade Kaniko builder image to v1.2.0 (#439 )
  • Validate nil pointer exceptions during BuildRun controller Reconcile (#396)
  • Fix goreport findings (#426 )
  • Remove shipwright copyright headers from generated files (#417)
  • Refactor config environment variable override code (#427)
  • Simplify installation process (#385)
  • Fixes to code generators (#435 )
  • Make build operator leader duration configurable (#433 )
  • Wire test variables through e2e lib code (#442 )

Misc

  • Add Build clientsets and related dependencies (#416 )
  • Introduce integration-tests framework (#391 )

Docs

  • Improved the Getting Started doc (#394)
  • Fix text in local image registry proposal (#402)
  • Fix README typo and link fixes (#428)

Thanks

Thanks to the contributors of the v0.1.1

and for all the folks that participated on the latest community meetings:

Shipwright Build release v0.1.0

10 Sep 07:56
27a2a0a
Compare
Choose a tag to compare

🎉 First Shipwright Build Release! 🎉

This is the very first release of Shipwright Build. With Shipwright Build, 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.

Features

  • Build hosts the user provide information. This defines the strategy, source input and the desired output.
    • ✨ Add Private Git support
    • ✨ Add credential setting for output image
    • ✨ Add revision support for Git source
    • ✨ Enhance the ServiceAccount generation
    • ✨ Add timeout setting to build and buildRun
    • ✨ Add Runtime Image support
  • BuildRun hosts the details of an image construction, abstracting this from the user and taking advantage of the Tekton Pipelines task to build the image.
    • ✨ Separate build definition from buildRun
    • ✨ Improve failure status for buildRun
    • ✨ Add build snapshot in buildrun status
    • ✨ Add BuildRun deletion when delete the Build
    • ✨ Improve error handling in buildrun controllor
    • ✨ Add image tag definition in buildrun spec
    • ✨ Delete generated service account on end of the buildRun
    • ✨ BuildRun reconciles enhancement
    • ✨ Stop working on the br creation if build.registered=false
    • ✨ Retrieve build in buildrun controller only to create taskrun
  • BuildStrategy hosts a list of steps to execute in the Tekton Task definition during the BuildRun execution. ClusterBuildStrategy similar to the BuildStrategy but it is cluster-scoped.
    • ✨ Add Source-to-Image, Buildpacks-v3, Kaniko, Buildah BuildStrategy supports
    • ✨ Add ClusterBuildStrategy support
    • ✨ Add paketo builder option for buildpack
    • ✨ Support contextDir for Buildpack strategies
    • ✨ Use kaniko to build s2i's Dockerfile
    • ✨ Upgrade to latest Kaniko version with workaround for AWS client delay and use new redo snapshotMode
    • ✨ Move the steps resources definition into the strategies

Misc

  • 🔨 Improve the Travis/CI process
  • 🔨 Add more unit tests for all controllers
  • 🔨 Add security controls and policies for build process
  • 🔨 Refine the E2E test framework
  • 🔨 Bump operator-sdk to v0.17.0
  • 🔨 Bump Tekton Pipelines v0.14.2
  • 🔨 Report combined coverage using gocov
  • 🔨 Adding some enhancements on the logging we define
  • 🔨 Add basic metrics for build controller
  • 🔨 Initial Release Pipeline
  • 🔨 Generate and verify copyright in source files
  • 🔨 Add ramp-up duration metrics to build
  • 🔨 Enable label customization for histograms
  • ⏫ Change controller HA to leader-for-lease mode
  • ⏫ Add liveness and readness probes on the operator

Thanks

Thanks to these contributors who contributed to v0.1.0!