Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions cmd/release-controller/sync_release_payload.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,6 @@ func newReleasePayload(release *releasecontroller.Release, tag *imagev1.TagRefer
Namespace: jobNamespace,
ReleaseCreationJobName: name,
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: jobNamespace,
ReleaseMirrorJobName: releaseMirrorJobName(name),
},
ProwCoordinates: v1alpha1.ProwCoordinates{Namespace: prowNamespace},
},
PayloadVerificationConfig: v1alpha1.PayloadVerificationConfig{
Expand All @@ -79,6 +75,14 @@ func newReleasePayload(release *releasecontroller.Release, tag *imagev1.TagRefer
}}
}

// We should only be populating the ReleaseMirrorCoordinates if/when they are actually defined...
if release.Config.AlternateImageRepository != "" && release.Config.AlternateImageRepositorySecretName != "" {
payload.Spec.PayloadCreationConfig.ReleaseMirrorCoordinates = v1alpha1.ReleaseMirrorCoordinates{
Namespace: jobNamespace,
ReleaseMirrorJobName: releaseMirrorJobName(name),
}
}

// Sort the ReleaseVerification items into a consistent order
var sortedKeys []string
for key := range verificationJobs {
Expand Down
64 changes: 0 additions & 64 deletions cmd/release-controller/sync_release_payload_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -121,10 +117,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -177,10 +169,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -234,10 +222,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -292,10 +276,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -350,10 +330,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -417,10 +393,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.12.11",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.12.11-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -492,10 +464,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.12.11",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.12.11-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -556,10 +524,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -625,10 +589,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -694,10 +654,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -768,10 +724,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -923,10 +875,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -1033,10 +981,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.11.0-0.nightly-2022-03-11-113341",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.11.0-0.nightly-2022-03-11-113341-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -1106,10 +1050,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.18.0-0.nightly-2025-01-01-000000",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.18.0-0.nightly-2025-01-01-000000-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down Expand Up @@ -1172,10 +1112,6 @@ func TestNewReleasePayload(t *testing.T) {
Namespace: "ci-release",
ReleaseCreationJobName: "4.12.0",
},
ReleaseMirrorCoordinates: v1alpha1.ReleaseMirrorCoordinates{
Namespace: "ci-release",
ReleaseMirrorJobName: "4.12.0-alternate-mirror",
},
ProwCoordinates: v1alpha1.ProwCoordinates{
Namespace: "ci",
},
Expand Down
20 changes: 20 additions & 0 deletions pkg/cmd/release-payload-controller/payload_accepted_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ const (
// - .spec.payloadOverride.override
// - .status.blockingJobResults
// - .status.releaseCreationJobResult.status
// - .status.releaseMirrorJobResult.status
//
// and populates the following condition:
// - .status.conditions.PayloadAccepted
Expand Down Expand Up @@ -137,6 +138,10 @@ func computeReleasePayloadAcceptedCondition(payload *v1alpha1.ReleasePayload) me
return acceptedCondition
}

if mirrorJobPending(payload) {
return acceptedCondition
}

// Check for "Accepted" PayloadOverride
switch payload.Spec.PayloadOverride.Override {
case v1alpha1.ReleasePayloadOverrideAccepted:
Expand Down Expand Up @@ -180,3 +185,18 @@ func computeReleasePayloadAcceptedCondition(payload *v1alpha1.ReleasePayload) me

return acceptedCondition
}

// mirrorJobPending reports whether a configured mirror job has not yet reached
// a terminal state and the payload has not already been accepted or rejected.
// When true, acceptance/rejection evaluation should wait.
func mirrorJobPending(payload *v1alpha1.ReleasePayload) bool {
if payload.Spec.PayloadCreationConfig.ReleaseMirrorCoordinates.ReleaseMirrorJobName == "" {
return false
}
if v1helpers.IsConditionTrue(payload.Status.Conditions, v1alpha1.ConditionPayloadAccepted) ||
v1helpers.IsConditionTrue(payload.Status.Conditions, v1alpha1.ConditionPayloadRejected) {
return false
}
return payload.Status.ReleaseMirrorJobResult.Status != v1alpha1.ReleaseMirrorJobSuccess &&
payload.Status.ReleaseMirrorJobResult.Status != v1alpha1.ReleaseMirrorJobFailed
}
Loading