Skip to content

Commit

Permalink
MGMT-19148: Add OLM operator setup jobs finalizing stage
Browse files Browse the repository at this point in the history
This patch adds a new finalizing stage that indicates that the assisted
installer controller is waiting for OLM setup jobs to complete.

Related: https://issues.redhat.com/browse/MGMT-19148
Related: https://issues.redhat.com/browse/MGMT-19056
Signed-off-by: Juan Hernandez <[email protected]>
  • Loading branch information
jhernand committed Oct 21, 2024
1 parent 818d92f commit ca7bfd2
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 5 deletions.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 10 additions & 1 deletion internal/cluster/finalizing_stages.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ var finalizingStagesTimeoutsDefaultsHardTimeous = map[models.FinalizingStage]tim
models.FinalizingStageApplyingOlmManifests: shortWaitTimeout,
models.FinalizingStageWaitingForOlmOperatorsCsv: generalWaitTimeout,
models.FinalizingStageWaitingForOlmOperatorsCsvInitialization: generalWaitTimeout,
models.FinalizingStageWaitingForOLMOperatorSetupJobs: shortWaitTimeout,
models.FinalizingStageDone: shortWaitTimeout,
}

Expand All @@ -34,6 +35,7 @@ var finalizingStagesTimeoutsDefaultsSoftTimeouts = map[models.FinalizingStage]ti
models.FinalizingStageApplyingOlmManifests: shortWaitTimeout,
models.FinalizingStageWaitingForOlmOperatorsCsv: generalWaitTimeout,
models.FinalizingStageWaitingForOlmOperatorsCsvInitialization: generalWaitTimeout,
models.FinalizingStageWaitingForOLMOperatorSetupJobs: shortWaitTimeout,
models.FinalizingStageDone: shortWaitTimeout,
}

Expand All @@ -43,6 +45,7 @@ var finalizingStages = []models.FinalizingStage{
models.FinalizingStageApplyingOlmManifests,
models.FinalizingStageWaitingForOlmOperatorsCsvInitialization,
models.FinalizingStageWaitingForOlmOperatorsCsv,
models.FinalizingStageWaitingForOLMOperatorSetupJobs,
models.FinalizingStageDone,
}

Expand All @@ -52,6 +55,12 @@ var nonFailingFinalizingStages = []models.FinalizingStage{
models.FinalizingStageWaitingForOlmOperatorsCsv,
}

var olmOperatorFinalizingStages = []models.FinalizingStage{
models.FinalizingStageWaitingForOlmOperatorsCsvInitialization,
models.FinalizingStageWaitingForOlmOperatorsCsv,
models.FinalizingStageWaitingForOLMOperatorSetupJobs,
}

func convertStageToEnvVar(stage models.FinalizingStage) string {
return fmt.Sprintf("FINALIZING_STAGE_%s_TIMEOUT", strings.ReplaceAll(strings.ToUpper(string(stage)), " ", "_"))
}
Expand Down Expand Up @@ -80,7 +89,7 @@ func finalizingStageDefaultTimeout(stage models.FinalizingStage, softTimeoutEnab

func finalizingStageTimeout(stage models.FinalizingStage, operators []*models.MonitoredOperator, softTimeoutEnabled bool, log logrus.FieldLogger) time.Duration {
timeout := finalizingStageDefaultTimeout(stage, softTimeoutEnabled, log)
if funk.Contains([]models.FinalizingStage{models.FinalizingStageWaitingForOlmOperatorsCsvInitialization, models.FinalizingStageWaitingForOlmOperatorsCsv}, stage) {
if funk.Contains(olmOperatorFinalizingStages, stage) {
timeoutSeconds := timeout.Seconds()
for _, m := range operators {
if m.OperatorType == models.OperatorTypeOlm {
Expand Down
1 change: 1 addition & 0 deletions internal/cluster/finalizing_stages_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ var _ = DescribeTable("finalizing stage timeouts",
olmStages = []models.FinalizingStage{
models.FinalizingStageWaitingForOlmOperatorsCsvInitialization,
models.FinalizingStageWaitingForOlmOperatorsCsv,
models.FinalizingStageWaitingForOLMOperatorSetupJobs,
}
nonOlmStages = funk.Subtract(finalizingStages, olmStages).([]models.FinalizingStage)
toSeconds = func(d time.Duration) int64 {
Expand Down
5 changes: 4 additions & 1 deletion models/finalizing_stage.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions restapi/embedded_spec.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions swagger.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5104,6 +5104,7 @@ definitions:
- Applying olm manifests
- Waiting for olm operators csv initialization
- Waiting for olm operators csv
- Waiting for OLM operator setup jobs
- Done


Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit ca7bfd2

Please sign in to comment.