Skip to content

Commit 8c0f0b0

Browse files
author
oatmealraisin
committed
Add parent BuildConfig to Build OwnerReferences
1 parent 8c8d904 commit 8c0f0b0

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

pkg/build/generator/generator.go

+12-3
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,14 @@ func (g *BuildGenerator) generateBuildFromConfig(ctx kapi.Context, bc *buildapi.
410410
ObjectMeta: kapi.ObjectMeta{
411411
Name: buildName,
412412
Labels: bcCopy.Labels,
413+
OwnerReferences: []kapi.OwnerReference{
414+
{
415+
APIVersion: "v1", // BuildConfig.APIVersion is not populated
416+
Kind: "BuildConfig", // BuildConfig.Kind is not populated
417+
Name: bcCopy.Name,
418+
UID: bcCopy.UID,
419+
},
420+
},
413421
},
414422
Status: buildapi.BuildStatus{
415423
Phase: buildapi.BuildPhaseNew,
@@ -748,9 +756,10 @@ func generateBuildFromBuild(build *buildapi.Build, buildConfig *buildapi.BuildCo
748756
newBuild := &buildapi.Build{
749757
Spec: buildCopy.Spec,
750758
ObjectMeta: kapi.ObjectMeta{
751-
Name: getNextBuildNameFromBuild(buildCopy, buildConfig),
752-
Labels: buildCopy.ObjectMeta.Labels,
753-
Annotations: buildCopy.ObjectMeta.Annotations,
759+
Name: getNextBuildNameFromBuild(buildCopy, buildConfig),
760+
Labels: buildCopy.ObjectMeta.Labels,
761+
Annotations: buildCopy.ObjectMeta.Annotations,
762+
OwnerReferences: buildCopy.ObjectMeta.OwnerReferences,
754763
},
755764
Status: buildapi.BuildStatus{
756765
Phase: buildapi.BuildPhaseNew,

pkg/build/generator/generator_test.go

+16
Original file line numberDiff line numberDiff line change
@@ -772,6 +772,7 @@ func TestGenerateBuildFromConfig(t *testing.T) {
772772
resources := mockResources()
773773
bc := &buildapi.BuildConfig{
774774
ObjectMeta: kapi.ObjectMeta{
775+
UID: "test-uid",
775776
Name: "test-build-config",
776777
Namespace: kapi.NamespaceDefault,
777778
Labels: map[string]string{"testlabel": "testvalue"},
@@ -841,6 +842,9 @@ func TestGenerateBuildFromConfig(t *testing.T) {
841842
if build.Annotations[buildapi.BuildNumberAnnotation] != "13" {
842843
t.Errorf("Build number annotation value %s does not match expected value 13", build.Annotations[buildapi.BuildNumberAnnotation])
843844
}
845+
if len(build.OwnerReferences) == 0 || build.OwnerReferences[0].Kind != "BuildConfig" || build.OwnerReferences[0].Name != bc.Name {
846+
t.Errorf("generated build does not have OwnerReference to parent BuildConfig")
847+
}
844848

845849
// Test long name
846850
bc.Name = strings.Repeat("a", 100)
@@ -1103,6 +1107,14 @@ func TestGenerateBuildFromBuild(t *testing.T) {
11031107
buildapi.BuildJenkinsBuildURIAnnotation: "baz",
11041108
buildapi.BuildPodNameAnnotation: "ruby-sample-build-1-build",
11051109
},
1110+
OwnerReferences: []kapi.OwnerReference{
1111+
{
1112+
Name: "test-owner",
1113+
Kind: "BuildConfig",
1114+
APIVersion: "v1",
1115+
UID: "foo",
1116+
},
1117+
},
11061118
},
11071119
Spec: buildapi.BuildSpec{
11081120
CommonSpec: buildapi.CommonSpec{
@@ -1137,6 +1149,10 @@ func TestGenerateBuildFromBuild(t *testing.T) {
11371149
if _, ok := newBuild.ObjectMeta.Annotations[buildapi.BuildPodNameAnnotation]; ok {
11381150
t.Errorf("%s annotation exists, expected it not to", buildapi.BuildPodNameAnnotation)
11391151
}
1152+
if !reflect.DeepEqual(build.ObjectMeta.OwnerReferences, newBuild.ObjectMeta.OwnerReferences) {
1153+
t.Errorf("Build OwnerReferences does not match the original Build OwnerReferences")
1154+
}
1155+
11401156
}
11411157

11421158
func TestGenerateBuildFromBuildWithBuildConfig(t *testing.T) {

0 commit comments

Comments
 (0)