authored by
Asherah Connor
<ashe@kivikakk.ee>
6 months ago
committed by Asherah Connor <ashe@kivikakk.ee> 6 months ago
committed by Asherah Connor <ashe@kivikakk.ee> 6 months ago
README.md
| 8 +++++---
internal/controller/nixbuild_controller.go
| 18 ++++++++++--------
2 files changed, 15 insertions(+), 11 deletions(-)
@@ -1,10 +1,12 @@
OK, so going forward I think we do the following:
-* create NixBuilds in enbi's namespace, reinstate the crossowner ref.
-* annotation controller can automatically create the NixBuild in enbi; maybe
+* [x] create NixBuilds in enbi's namespace, reinstate the crossowner ref.
+ * [x] don't watch objects in other namespaces.
+* [ ] annotation controller can automatically create the NixBuild in enbi; maybe
add an annotation to the Deployment to track the latest one (or an Event or
something).
-* we'll want to generate random names for them much like replicaset pods etc.
+* [ ] we'll want to generate random names for them much like replicaset pods
+ etc.
---
diff --git a/internal/controller/nixbuild_controller.go b/internal/controller/nixbuild_controller.go
index 26dfc2f..083c3dc 100644
--- a/internal/controller/nixbuild_controller.go
+++ b/internal/controller/nixbuild_controller.go
@@ -40,8 +40,10 @@ import (
"k8s.io/client-go/tools/record"
"k8s.io/utils/ptr"
ctrl "sigs.k8s.io/controller-runtime"
+ "sigs.k8s.io/controller-runtime/pkg/builder"
"sigs.k8s.io/controller-runtime/pkg/client"
logf "sigs.k8s.io/controller-runtime/pkg/log"
+ "sigs.k8s.io/controller-runtime/pkg/predicate"
"github.com/aws/aws-sdk-go-v2/aws"
s3 "github.com/aws/aws-sdk-go-v2/service/s3"
@@ -474,13 +476,11 @@ func (r *NixBuildReconciler) ensureNodeBuildJob(ctx context.Context, log logr.Lo
},
},
}
- // XXX: not doing this because cross references owner refs aren't OK. Need to
- // add a finaliser or something.
- // if err := ctrl.SetControllerReference(nb, &job, r.Scheme); err != nil {
- // log.Error(err, "unable to set build Job owner!")
- // r.Recorder.Eventf(nb, "Warning", "ErrModifyingBuildJob", "Couldn't set build Job owner: %v", err)
- // return nil, err
- // }
+ if err := ctrl.SetControllerReference(nb, &job, r.Scheme); err != nil {
+ log.Error(err, "unable to set build Job owner!")
+ r.Recorder.Eventf(nb, "Warning", "ErrModifyingBuildJob", "Couldn't set build Job owner: %v", err)
+ return nil, err
+ }
if err := r.Create(ctx, &job); err != nil {
log.Error(err, "unable to create build Job!")
r.Recorder.Eventf(nb, "Warning", "ErrCreatingBuildJob", "Couldn't create build Job %s in namespace %s: %v", jobName, r.Namespace, err)
@@ -648,7 +648,9 @@ func (r *NixBuildReconciler) SetupWithManager(mgr ctrl.Manager) error {
return ctrl.NewControllerManagedBy(mgr).
For(&enbiv1alpha1.NixBuild{}).
- Owns(&batchv1.Job{}).
+ Owns(&batchv1.Job{}, builder.WithPredicates(predicate.NewPredicateFuncs(func(o client.Object) bool {
+ return o.GetNamespace() == r.Namespace
+ }))).
Named("nixbuild").
Complete(r)
}