Releases: shipwright-io/build
v0.6.0
Release v0.6.0
Breaking Changes
This release removes .spec.runtime
from the Build and BuildRun APIs, which was previously deprecated in v0.5.0.
Features
#883 by @SaschaSchwarze0: Nightly and normal releases now include a sample-strategies.yaml
#858 by @MayukhSobo: The BuildRun status is improved when a BuildRun Pod gets evicted.
#854 by @shahulsonhal: You can now specify annotations and labels in the Build that will be added to the image
#835 by @HeavyWombat: Introduced support for so called bundle images, which contain packaged source code and can be used instead of a Git repository for builds.
#817 by @coreydaley: Developers can now add Environment Variables to the Spec section of their Builds and BuildRuns.The Environment Variables will be added to all Steps of the chosen BuildStrategy, though any conflictswill result in a failed TaskRun.
#816 by @SaschaSchwarze0: The message field of the Succeeded condition of a failed BuildRun now includes the name of the step that has failed
#809 by @gabemontero: Support for cancelling an active BuildRun has been added.
#781 by @qu1queee: Add support for parameters in the strategies, so that users can parameterize their usage.
Fixes
#885 by @SaschaSchwarze0: The -sa suffix from generated service accounts has been removed so that BuildRuns with names longer than 60 characters also work with older Calico versions
#840 by @shahulsonhal: Added validation to make sure that Build and BuildRun names follow the required character limits
#813 by @HeavyWombat: Fixed issue in source retrieval code that led to slow loading times compared to the previous implementation.
API Changes
#871 by @shahulsonhal: You can now see the TaskRun results in BuildRun status
#854 by @shahulsonhal: You can now specify annotations and labels in the Build that will be added to the image
#836 by @imjasonh: Removes the .spec.runtime field that was deprecated in v0.5.0.
#835 by @HeavyWombat: Introduced support for so called bundle images, which contain packaged source code and can be used instead of a Git repository for builds.
#817 by @coreydaley: Developers can now add Environment Variables to the Spec section of their Builds and BuildRuns. The Environment Variables will be added to all Steps of the chosen BuildStrategy, though any conflicts will result in a failed TaskRun.
#809 by @gabemontero: Support for cancelling an active BuildRun has been added.
#781 by @qu1queee: Add support for parameters in the strategies, so that users can parameterize their usage.
Docs
#880 by @SaschaSchwarze0: Correcting the statement about the contextDir which is supported in all sample build strategies
Misc
#848 by @dalbar: Fixed documentation for build and buildStrategies
#839 by @HeavyWombat: Updated Git download step to avoid misleading warnings and messages.
#837 by @HeavyWombat: Improved output messages created by the Git step to be more human readable.
v0.5.1
Release v0.5.1
This is a patch release bump that fixes #806 .
Release v0.5.0 lacks of RBAC permissions required by the OwnerReferencesPermissionEnforcement admission controller, which is enabled by default in OpenShift clusters. This was causing reconcile errors on the Shipwright controllers.
Note: We recommend OpenShift users to bump directly to this Release v0.5.1, instead of the v0.5.0.
Fixes
#807 by adambkaplan: Add RBAC permissions to let the build controller set owner references if a cluster has the OwnerReferencesPermissionEnforcement admission controller enabled.
Misc
#804 by qu1queee: Enhance CI with automated README updates
v0.5.0
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 typeSucceeded
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
Release v0.4.0
Breaking Changes
- All Build custom resources (
Build
,BuildRun
,BuildStrategy
,ClusterBuildStrategy
) moved from thebuild.dev
group toshipwright.io
. - The build controller now installs in the "shipwright-build" namespace, with the deployment name "shipwright-build-controller".
- In
Build
, the git source fieldshttpProxy
,httpsProxy
,noProxy
andflavor
were removed.
Users currently running v0.3.0 should use the following procedure to upgrade to v0.4.0:
- Install v0.4.0 using the release YAML manifest.
- Download existing
Build
,BuildStrategy
, andClusterBuildStrategy
objects from your cluster in YAML format. - For each object, change the
apiVersion
frombuild.dev/v1alpha1
toshipwright.io/v1alpha1
. Remove any identifiers and creation timestamps from the object's metadata. - 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:
- Delete the
build-operator
namespace. - (optional) Delete all
BuildRun
,Build
,BuildStrategy
, andClusterBuildStrategy
objects in thebuild.dev
api group on the cluster. - (optional) Delete the custom resource definitions for
BuildRun
,Build
,BuildStrategy
, andClusterBuildStrategy
in thebuild.dev
api group.
Deprecations
The following API fields are marked deprecated, and will be removed in a subsequent release:
BuildRun
:status.succeeded
andstatus.reason
have been deprecated. Clients should inspect the status condition typeSucceeded
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
Nightly Releases
v0.3.0
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:
- 👏 @xiujuan95
- 👏 @coreydaley
- 👏 @EmilyEmily
- 👏 @otaviof
- 👏 @adambkaplan
- 👏 @imjasonh
- 👏 @qu1queee
- 👏 @SaschaSchwarze0
- 👏 @HeavyWombat
- 👏 @zhangtbj
Thanks for the release notes:
and for all the folks that participated on the latest community meetings:
v0.2.0
🦃 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:
- For the Cloud Native Buildpacks strategy (Paketo):
- 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:
- 👏 @xiujuan95
- 👏 @routerhan
- 👏 @SaschaSchwarze0
- 👏 @zhangtbj
- 👏 @HeavyWombat
- 👏 @qu1queee
- 👏 @adambkaplan
- 👏 @sbose78
- 👏 @otaviof
- 👏 @coreydaley
and for all the folks that participated on the latest community meetings:
Shipwright Build release v0.1.1
🎃 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)
- For the Kaniko strategy
- 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
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
- 👏 @SaschaSchwarze0
- 👏 @zhangtbj
- 👏 @HeavyWombat
- 👏 @qu1queee
- 👏 @adambkaplan
- 👏 @sbose78
- 👏 @bigkevmcd
- 👏 @jduimovich
and for all the folks that participated on the latest community meetings:
Shipwright Build release v0.1.0
🎉 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!
- ❤️ @sbose78
- ❤️ @SaschaSchwarze0
- ❤️ @qu1queee
- ❤️ @zhangtbj
- ❤️ @xiujuan95
- ❤️ @otaviof
- ❤️ @routerhan
- ❤️ @baijum
- ❤️ @Avni-Sharma
- ❤️ @adambkaplan
- ❤️ @HeavyWombat
- ❤️ @DhritiShikhar
- ❤️ @EmilyEmily