Releases: shipwright-io/build
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