Comments (4)
@tcdowney I haven't tried anything else, but maybe pushing different sources? That would definitely convince Kpack to generate a new build!
from korifi.
@gcapizzi is there any way of getting out of this state apart from deleting the app?
from korifi.
It is actually much easier to reproduce:
- Push an app with manifest - it succeeds
- Run the very same push command without changing the code or whatever - the issue is reproduced
there is the following error in the controllers' logs:
{"severity":"ERROR","timestamp":"2023-06-29T14:54:12.789685021Z","caller":"controller/controller.go:324","message":"Reconciler error","controller":"buildworkload","controllerGroup":"korifi.cloudfoundry.org","controllerKind":"BuildWorkload","BuildWorkload":{"name":"08eea9c4-5c92-4e60-9312-e6d7411fdf1e","namespace":"cf-space-dd834ab6-df38-4e27-bce4-d5e51bf0b08c"},"namespace":"cf-space-dd834ab6-df38-4e27-bce4-d5e51bf0b08c","name":"08eea9c4-5c92-4e60-9312-e6d7411fdf1e","reconcileID":"11abdc0d-9e47-4e79-929a-556842dd9e2a","error":"failed ensuring custom builder: failed creating or updating kpack Builder: Object cf-space-dd834ab6-df38-4e27-bce4-d5e51bf0b08c/db956d9f-fa86-5728-8c11-728c946c5046 is already owned by another BuildWorkload controller c99b17d1-b9a5-44ef-b032-fe147ddb950c","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:324\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:265\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:226"}
What happens is that upon the second push new CFBuild and a BuildWorkload are created. When reconciling the second build workload, the build workload reconciler would try to setup a custom kpack builder. As the builder for that set of buildpacks has been already created during the previous push, the controller would try to update it by setting a controller reference from the build workload to the builder. However, this is not possible as there is already a controller rereference from the first build workload to the builder, hence the error
from korifi.
I believe that this commit changes the way how ownership to the builder is set. It used to be a simple owner reference, now it is controller reference.
from korifi.
Related Issues (20)
- Replace servicebinding.io duck types with direct secret reference HOT 1
- Revisit usages of secret.StringData
- As a Korifi kubectl user I want my service binding to go to a Failed state when I try to chage its credential type
- [Feature]: As a Korifi user, my annotations and labels appear on the StatefulSet
- Monitor app health during Korifi upgrade HOT 1
- Korifi installation on single namespace HOT 3
- upgrade or re-install steps for new version HOT 4
- Disabling cert manager dependency as part of helm install HOT 1
- Deploy Spring music on acceptance
- Remove the 'statefulsetRunnerTemporarySetPodSeccompProfile' and 'jobTaskRunnerTemporarySetPodSeccompProfile' flags
- Push app env var related code into the env builder
- As a Korifi API user I do not want to see a "type" field in my user provided serivce details in VCAP_SERVICES
- [Bug]: Application is crashing and getting the permission denied after deploying the DotNet app. HOT 7
- Gateway object for korifi api uses protocol mode passthrough with TLS Protocol. Looks like Nginx gateway fabric does not support TLS protocol and passthrough? HOT 2
- Track kpack PR https://github.com/buildpacks-community/kpack/pull/1562
- Support upper case letters in route definition HOT 1
- Bug: App environment not reliably updated after restart
- Run CATS
- Automate version bump
- Bump k8s.io dependencies to 0.30.0
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from korifi.