@openshift-assisted/ui-lib 2.53.1 → 2.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ACMClusterDeploymentDetailsStep.d.ts.map +1 -1
  2. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.d.ts +0 -17
  3. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.d.ts.map +1 -1
  4. package/build/@types/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.d.ts.map +1 -1
  5. package/build/@types/cim/components/ClusterDeployment/clusterDetails/useDetailsFormik.d.ts +19 -0
  6. package/build/@types/cim/components/ClusterDeployment/clusterDetails/useDetailsFormik.d.ts.map +1 -0
  7. package/build/@types/cim/components/common/CpuArchitectureDropdown.d.ts.map +1 -1
  8. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.d.ts +2 -1
  9. package/build/@types/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.d.ts.map +1 -1
  10. package/build/@types/common/components/clusterConfiguration/ExternalPlatformsDropdown.d.ts.map +1 -1
  11. package/build/@types/common/components/clusterWizard/ReviewValidations.d.ts.map +1 -1
  12. package/build/@types/common/components/clusterWizard/validationsInfoUtils.d.ts +0 -1
  13. package/build/@types/common/components/clusterWizard/validationsInfoUtils.d.ts.map +1 -1
  14. package/build/@types/common/selectors/clusterSelectors.d.ts +0 -1
  15. package/build/@types/common/selectors/clusterSelectors.d.ts.map +1 -1
  16. package/build/@types/common/types/clusters.d.ts +2 -2
  17. package/build/@types/common/types/clusters.d.ts.map +1 -1
  18. package/build/@types/ocm/components/clusterConfiguration/DiscoveryImageForm.d.ts.map +1 -1
  19. package/build/@types/ocm/components/clusterConfiguration/DiscoveryImageModal.d.ts +0 -1
  20. package/build/@types/ocm/components/clusterConfiguration/DiscoveryImageModal.d.ts.map +1 -1
  21. package/build/@types/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.d.ts.map +1 -1
  22. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.d.ts.map +1 -1
  23. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.d.ts.map +1 -1
  24. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.d.ts +4 -0
  25. package/build/@types/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.d.ts.map +1 -1
  26. package/build/@types/ocm/components/clusterConfiguration/operators/OperatorCheckbox.d.ts.map +1 -1
  27. package/build/@types/ocm/components/clusterConfiguration/operators/bundleSpecs.d.ts.map +1 -1
  28. package/build/@types/ocm/components/clusterConfiguration/operators/utils.d.ts +2 -2
  29. package/build/@types/ocm/components/clusterConfiguration/operators/utils.d.ts.map +1 -1
  30. package/build/@types/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.d.ts.map +1 -1
  31. package/build/@types/ocm/components/clusterConfiguration/review/ReviewSummary.d.ts.map +1 -1
  32. package/build/@types/ocm/components/clusterConfiguration/review/TableSummaryExpandable.d.ts +1 -0
  33. package/build/@types/ocm/components/clusterConfiguration/review/TableSummaryExpandable.d.ts.map +1 -1
  34. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/StaticIpForm.d.ts.map +1 -1
  35. package/build/@types/ocm/components/clusterConfiguration/staticIp/components/StaticIpPage.d.ts.map +1 -1
  36. package/build/@types/ocm/components/clusterWizard/ClusterDetails.d.ts.map +1 -1
  37. package/build/@types/ocm/components/clusterWizard/ClusterWizardContextProvider.d.ts.map +1 -1
  38. package/build/@types/ocm/components/clusterWizard/NewClusterWizard.d.ts.map +1 -1
  39. package/build/@types/ocm/components/clusterWizard/Operators.d.ts.map +1 -1
  40. package/build/@types/ocm/components/clusterWizard/OperatorsBundle.d.ts +3 -3
  41. package/build/@types/ocm/components/clusterWizard/OperatorsBundle.d.ts.map +1 -1
  42. package/build/@types/ocm/components/clusterWizard/OptionalOperatorsDropdown.d.ts +13 -0
  43. package/build/@types/ocm/components/clusterWizard/OptionalOperatorsDropdown.d.ts.map +1 -0
  44. package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts +2 -3
  45. package/build/@types/ocm/components/clusterWizard/wizardTransition.d.ts.map +1 -1
  46. package/build/@types/ocm/services/InfraEnvsService.d.ts.map +1 -1
  47. package/build/@types/ocm/store/slices/current-cluster/slice.d.ts +2 -0
  48. package/build/@types/ocm/store/slices/current-cluster/slice.d.ts.map +1 -1
  49. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ACMClusterDeploymentDetailsStep.js +4 -2
  50. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ACMClusterDeploymentDetailsStep.js.map +1 -1
  51. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.js +5 -31
  52. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.js.map +1 -1
  53. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js +1 -11
  54. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.js.map +1 -1
  55. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/useDetailsFormik.js +41 -0
  56. package/build/cjs/cim/components/ClusterDeployment/clusterDetails/useDetailsFormik.js.map +1 -0
  57. package/build/cjs/cim/components/common/CpuArchitectureDropdown.js +1 -1
  58. package/build/cjs/cim/components/common/CpuArchitectureDropdown.js.map +1 -1
  59. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js +9 -3
  60. package/build/cjs/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.js.map +1 -1
  61. package/build/cjs/common/components/clusterConfiguration/ExternalPlatformsDropdown.js +1 -1
  62. package/build/cjs/common/components/clusterConfiguration/ExternalPlatformsDropdown.js.map +1 -1
  63. package/build/cjs/common/components/clusterWizard/ReviewValidations.js +16 -0
  64. package/build/cjs/common/components/clusterWizard/ReviewValidations.js.map +1 -1
  65. package/build/cjs/common/components/clusterWizard/validationsInfoUtils.js +1 -17
  66. package/build/cjs/common/components/clusterWizard/validationsInfoUtils.js.map +1 -1
  67. package/build/cjs/common/selectors/clusterSelectors.js +2 -8
  68. package/build/cjs/common/selectors/clusterSelectors.js.map +1 -1
  69. package/build/cjs/common/types/clusters.js.map +1 -1
  70. package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageForm.js +5 -2
  71. package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageForm.js.map +1 -1
  72. package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageModal.js +2 -2
  73. package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageModal.js.map +1 -1
  74. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js +6 -2
  75. package/build/cjs/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.js.map +1 -1
  76. package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js +1 -1
  77. package/build/cjs/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.js.map +1 -1
  78. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js +3 -1
  79. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.js.map +1 -1
  80. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js +3 -1
  81. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.js.map +1 -1
  82. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js +11 -8
  83. package/build/cjs/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.js.map +1 -1
  84. package/build/cjs/ocm/components/clusterConfiguration/operators/OperatorCheckbox.js +33 -13
  85. package/build/cjs/ocm/components/clusterConfiguration/operators/OperatorCheckbox.js.map +1 -1
  86. package/build/cjs/ocm/components/clusterConfiguration/operators/bundleSpecs.js +1 -2
  87. package/build/cjs/ocm/components/clusterConfiguration/operators/bundleSpecs.js.map +1 -1
  88. package/build/cjs/ocm/components/clusterConfiguration/operators/utils.js +3 -3
  89. package/build/cjs/ocm/components/clusterConfiguration/operators/utils.js.map +1 -1
  90. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.js +75 -20
  91. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.js.map +1 -1
  92. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewSummary.js +2 -2
  93. package/build/cjs/ocm/components/clusterConfiguration/review/ReviewSummary.js.map +1 -1
  94. package/build/cjs/ocm/components/clusterConfiguration/review/TableSummaryExpandable.css +3 -0
  95. package/build/cjs/ocm/components/clusterConfiguration/review/TableSummaryExpandable.js +2 -3
  96. package/build/cjs/ocm/components/clusterConfiguration/review/TableSummaryExpandable.js.map +1 -1
  97. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/StaticIpForm.js +10 -1
  98. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/StaticIpForm.js.map +1 -1
  99. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/StaticIpPage.js +5 -5
  100. package/build/cjs/ocm/components/clusterConfiguration/staticIp/components/StaticIpPage.js.map +1 -1
  101. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js +2 -9
  102. package/build/cjs/ocm/components/clusterWizard/ClusterDetails.js.map +1 -1
  103. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js +4 -4
  104. package/build/cjs/ocm/components/clusterWizard/ClusterWizardContextProvider.js.map +1 -1
  105. package/build/cjs/ocm/components/clusterWizard/NewClusterWizard.js +6 -3
  106. package/build/cjs/ocm/components/clusterWizard/NewClusterWizard.js.map +1 -1
  107. package/build/cjs/ocm/components/clusterWizard/Operators.js +36 -8
  108. package/build/cjs/ocm/components/clusterWizard/Operators.js.map +1 -1
  109. package/build/cjs/ocm/components/clusterWizard/OperatorsBundle.js +34 -15
  110. package/build/cjs/ocm/components/clusterWizard/OperatorsBundle.js.map +1 -1
  111. package/build/cjs/ocm/components/clusterWizard/OperatorsSelect.test.js +11 -5
  112. package/build/cjs/ocm/components/clusterWizard/OperatorsSelect.test.js.map +1 -1
  113. package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js +1 -1
  114. package/build/cjs/ocm/components/clusterWizard/OperatorsStep.js.map +1 -1
  115. package/build/cjs/ocm/components/clusterWizard/OptionalOperatorsDropdown.js +34 -0
  116. package/build/cjs/ocm/components/clusterWizard/OptionalOperatorsDropdown.js.map +1 -0
  117. package/build/cjs/ocm/components/clusterWizard/wizardTransition.js +67 -28
  118. package/build/cjs/ocm/components/clusterWizard/wizardTransition.js.map +1 -1
  119. package/build/cjs/ocm/hooks/useInfraEnvId.js +2 -2
  120. package/build/cjs/ocm/hooks/useInfraEnvId.js.map +1 -1
  121. package/build/cjs/ocm/services/InfraEnvsService.js +4 -1
  122. package/build/cjs/ocm/services/InfraEnvsService.js.map +1 -1
  123. package/lib/cim/components/ClusterDeployment/clusterDetails/ACMClusterDeploymentDetailsStep.tsx +3 -1
  124. package/lib/cim/components/ClusterDeployment/clusterDetails/ClusterDeploymentDetailsStep.tsx +5 -86
  125. package/lib/cim/components/ClusterDeployment/clusterDetails/ClusterDetailsFormFields.tsx +1 -12
  126. package/lib/cim/components/ClusterDeployment/clusterDetails/useDetailsFormik.tsx +97 -0
  127. package/lib/cim/components/common/CpuArchitectureDropdown.tsx +2 -1
  128. package/lib/common/components/clusterConfiguration/DiskEncryptionFields/DiskEncryptionControlGroup.tsx +18 -8
  129. package/lib/common/components/clusterConfiguration/ExternalPlatformsDropdown.tsx +3 -1
  130. package/lib/common/components/clusterWizard/ReviewValidations.tsx +24 -0
  131. package/lib/common/components/clusterWizard/validationsInfoUtils.ts +0 -20
  132. package/lib/common/selectors/clusterSelectors.ts +2 -9
  133. package/lib/common/types/clusters.ts +3 -1
  134. package/lib/ocm/components/clusterConfiguration/DiscoveryImageForm.tsx +11 -2
  135. package/lib/ocm/components/clusterConfiguration/DiscoveryImageModal.tsx +13 -3
  136. package/lib/ocm/components/clusterConfiguration/OcmClusterDetailsFormFields.tsx +9 -1
  137. package/lib/ocm/components/clusterConfiguration/OcmDiscoveryImageConfigForm.tsx +1 -1
  138. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/CustomManifestsPage.tsx +8 -1
  139. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/CustomManifestsForm.tsx +3 -1
  140. package/lib/ocm/components/clusterConfiguration/manifestsConfiguration/components/utils.tsx +12 -6
  141. package/lib/ocm/components/clusterConfiguration/operators/OperatorCheckbox.tsx +37 -17
  142. package/lib/ocm/components/clusterConfiguration/operators/bundleSpecs.tsx +2 -3
  143. package/lib/ocm/components/clusterConfiguration/operators/utils.tsx +5 -4
  144. package/lib/ocm/components/clusterConfiguration/review/ReviewOperatorsTable.tsx +114 -24
  145. package/lib/ocm/components/clusterConfiguration/review/ReviewSummary.tsx +1 -4
  146. package/lib/ocm/components/clusterConfiguration/review/TableSummaryExpandable.css +3 -0
  147. package/lib/ocm/components/clusterConfiguration/review/TableSummaryExpandable.tsx +1 -1
  148. package/lib/ocm/components/clusterConfiguration/staticIp/components/StaticIpForm.tsx +10 -1
  149. package/lib/ocm/components/clusterConfiguration/staticIp/components/StaticIpPage.tsx +9 -6
  150. package/lib/ocm/components/clusterWizard/ClusterDetails.tsx +2 -14
  151. package/lib/ocm/components/clusterWizard/ClusterWizardContextProvider.tsx +5 -13
  152. package/lib/ocm/components/clusterWizard/NewClusterWizard.tsx +7 -3
  153. package/lib/ocm/components/clusterWizard/Operators.tsx +45 -10
  154. package/lib/ocm/components/clusterWizard/OperatorsBundle.tsx +72 -26
  155. package/lib/ocm/components/clusterWizard/OperatorsSelect.test.ts +11 -5
  156. package/lib/ocm/components/clusterWizard/OperatorsStep.tsx +1 -1
  157. package/lib/ocm/components/clusterWizard/OptionalOperatorsDropdown.tsx +106 -0
  158. package/lib/ocm/components/clusterWizard/wizardTransition.ts +90 -36
  159. package/lib/ocm/hooks/useInfraEnvId.ts +2 -2
  160. package/lib/ocm/services/InfraEnvsService.ts +4 -1
  161. package/package.json +11 -11
  162. package/build/cjs/ocm/components/clusterConfiguration/DiscoveryImageModal.css +0 -3
  163. package/lib/ocm/components/clusterConfiguration/DiscoveryImageModal.css +0 -3
@@ -1,5 +1,10 @@
1
1
  import {
2
- findValidationStep,
2
+ Cluster,
3
+ ClusterValidationId,
4
+ Host,
5
+ HostValidationId,
6
+ } from '@openshift-assisted/types/assisted-installer-service';
7
+ import {
3
8
  getAllClusterWizardSoftValidationIds,
4
9
  getWizardStepClusterStatus,
5
10
  WizardStepsValidationMap,
@@ -12,11 +17,9 @@ import {
12
17
  Validation as HostValidation,
13
18
  } from '../../../common/types/hosts';
14
19
  import { getKeys, stringToJSON } from '../../../common/utils';
15
- import {
16
- Cluster,
17
- Host,
18
- HostValidationId,
19
- } from '@openshift-assisted/types/assisted-installer-service';
20
+ import { Validation, ValidationsInfo } from '../../../common';
21
+
22
+ type ValidationId = ClusterValidationId | HostValidationId;
20
23
 
21
24
  export type ClusterWizardStepsType =
22
25
  | 'cluster-details'
@@ -55,16 +58,6 @@ export const disconnectedSteps: ClusterWizardStepsType[] = [
55
58
  export const ClusterWizardFlowStateNew = 'new';
56
59
  export type ClusterWizardFlowStateType = Cluster['status'] | typeof ClusterWizardFlowStateNew;
57
60
 
58
- export const getLastStepForWizard = (
59
- customManifestsStepNeedsToBeFilled: boolean,
60
- ): ClusterWizardStepsType => {
61
- if (customManifestsStepNeedsToBeFilled) {
62
- return 'custom-manifests';
63
- } else {
64
- return 'review';
65
- }
66
- };
67
-
68
61
  export const isStepAfter = (stepA: ClusterWizardStepsType, stepB: ClusterWizardStepsType) => {
69
62
  const indexA = wizardStepsOrder.findIndex((step) => step === stepA);
70
63
  const indexB = wizardStepsOrder.findIndex((step) => step === stepB);
@@ -79,8 +72,7 @@ export const getClusterWizardFirstStep = (
79
72
  locationState: ClusterWizardFlowStateType | undefined,
80
73
  staticIpInfo: StaticIpInfo | undefined,
81
74
  state?: ClusterWizardFlowStateType,
82
- hosts?: Host[] | undefined,
83
- customManifestsStepNeedsToBeFilled?: boolean,
75
+ cluster?: Cluster,
84
76
  ): ClusterWizardStepsType => {
85
77
  // Just for the first time when the cluster is created
86
78
  if (locationState === ClusterWizardFlowStateNew && !staticIpInfo) {
@@ -96,40 +88,42 @@ export const getClusterWizardFirstStep = (
96
88
 
97
89
  switch (state) {
98
90
  case 'ready':
99
- return getLastStepForWizard(customManifestsStepNeedsToBeFilled || false);
91
+ return 'review';
100
92
  case 'pending-for-input':
101
93
  case 'adding-hosts':
102
94
  case 'insufficient':
103
- if (customManifestsStepNeedsToBeFilled) {
104
- return 'custom-manifests';
105
- }
106
- return getStepForFailingHostValidations(hosts);
95
+ return getStepForFailingValidations(cluster);
107
96
  default:
108
97
  return 'cluster-details';
109
98
  }
110
99
  };
111
100
 
112
- const getStepForFailingHostValidations = (hosts: Host[] | undefined) => {
113
- const failingValidations: HostValidationId[] = getHostFailingValidationIds(hosts);
114
- const minimumStep = 'host-discovery';
101
+ const MINIMUM_STEP = 'host-discovery';
102
+ const getStepForFailingValidations = (cluster?: Cluster) => {
103
+ // test host validations first, then cluster validations
104
+ const failingValidations: Set<ValidationId> = new Set<ValidationId>([
105
+ ...getHostFailingValidationIds(cluster?.hosts),
106
+ ...getClusterFailingValidationIds(cluster),
107
+ ]);
108
+
115
109
  let step;
116
110
  for (const failingValidationId of failingValidations) {
117
- step = findValidationStep<string>(failingValidationId, wizardStepsValidationsMap, minimumStep);
111
+ step = findValidationStep(failingValidationId, wizardStepsValidationsMap);
118
112
  if (step !== undefined) {
119
113
  break;
120
114
  }
121
115
  }
122
- return (step || minimumStep) as ClusterWizardStepsType;
116
+ return step || MINIMUM_STEP;
123
117
  };
124
118
 
125
- const getHostFailingValidationIds = (hosts: Host[] | undefined) => {
126
- const failingValidations: HostValidationId[] = [];
119
+ const getHostFailingValidationIds = (hosts?: Host[]): Set<ValidationId> => {
120
+ const failingValidations = new Set<HostValidationId>();
127
121
  hosts?.forEach((host) => {
128
122
  const validationsInfo = stringToJSON<HostValidationsInfo>(host.validationsInfo) || {};
129
123
  getKeys(validationsInfo).forEach((group) => {
130
124
  const f: (validation: HostValidation) => void = (validation) => {
131
125
  if (validation.status === 'failure') {
132
- failingValidations.push(validation.id);
126
+ failingValidations.add(validation.id);
133
127
  }
134
128
  };
135
129
  const validationGroup = validationsInfo[group] as HostValidation[];
@@ -139,6 +133,47 @@ const getHostFailingValidationIds = (hosts: Host[] | undefined) => {
139
133
  return failingValidations;
140
134
  };
141
135
 
136
+ const getClusterFailingValidationIds = (cluster?: Cluster): Set<ValidationId> => {
137
+ const failingValidations = new Set<ValidationId>();
138
+ const validationsInfo = stringToJSON<ValidationsInfo>(cluster?.validationsInfo) || {};
139
+
140
+ getKeys(validationsInfo).forEach((group) => {
141
+ const f: (validation: Validation) => void = (validation) => {
142
+ if (validation.status === 'failure') {
143
+ failingValidations.add(validation.id);
144
+ }
145
+ };
146
+ const validationGroup = validationsInfo[group] as Validation[];
147
+ validationGroup.forEach(f);
148
+ });
149
+ return failingValidations;
150
+ };
151
+
152
+ const findValidationStep = (
153
+ validationId: ValidationId,
154
+ wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardStepsType>,
155
+ ): ClusterWizardStepsType | undefined => {
156
+ let isBeforeMinimumStep = true;
157
+
158
+ return wizardStepsOrder.find((wizardStepId) => {
159
+ if (wizardStepId === MINIMUM_STEP) {
160
+ isBeforeMinimumStep = false;
161
+ }
162
+ if (isBeforeMinimumStep) {
163
+ return false;
164
+ }
165
+
166
+ // find first matching validation-map name, ignoring steps before minimumStep
167
+ const { host: hostValidationMap, cluster: clusterValidationMap } =
168
+ wizardStepsValidationsMap[wizardStepId];
169
+
170
+ return (
171
+ hostValidationMap.validationIds.includes(validationId as HostValidationId) ||
172
+ clusterValidationMap.validationIds.includes(validationId as ClusterValidationId)
173
+ );
174
+ });
175
+ };
176
+
142
177
  type TransitionProps = { cluster: Cluster };
143
178
 
144
179
  const buildEmptyValidationsMap = (): WizardStepValidationMap => ({
@@ -190,6 +225,7 @@ const hostDiscoveryStepValidationsMap: WizardStepValidationMap = {
190
225
  groups: ['hardware'],
191
226
  validationIds: [
192
227
  'connected',
228
+ 'hostname-valid',
193
229
  'media-connected',
194
230
  'lso-requirements-satisfied',
195
231
  'odf-requirements-satisfied',
@@ -230,12 +266,18 @@ const storageStepValidationsMap: WizardStepValidationMap = {
230
266
  const networkingStepValidationsMap: WizardStepValidationMap = {
231
267
  cluster: {
232
268
  groups: ['network'],
233
- validationIds: [],
269
+ validationIds: [
270
+ 'api-vips-defined',
271
+ 'machine-cidr-defined',
272
+ 'cluster-cidr-defined',
273
+ 'service-cidr-defined',
274
+ 'all-hosts-are-ready-to-install',
275
+ ],
234
276
  },
235
277
  host: {
236
278
  allowedStatuses: ['known', 'disabled'],
237
279
  groups: ['network'],
238
- validationIds: [],
280
+ validationIds: ['apps-domain-name-resolved-correctly'],
239
281
  },
240
282
  // TODO(jtomasek): container-images-available validation is currently not running on the backend, it stays in pending.
241
283
  // marking it as soft validation is the easy way to prevent it from blocking the progress.
@@ -250,6 +292,19 @@ const networkingStepValidationsMap: WizardStepValidationMap = {
250
292
  ],
251
293
  };
252
294
 
295
+ const customManifestsValidationsMap: WizardStepValidationMap = {
296
+ cluster: {
297
+ groups: ['network'],
298
+ validationIds: ['platform-requirements-satisfied', 'custom-manifests-requirements-satisfied'],
299
+ },
300
+ host: {
301
+ allowedStatuses: ['known', 'disabled'],
302
+ groups: ['network'],
303
+ validationIds: [],
304
+ },
305
+ softValidationIds: ['ntp-synced', 'container-images-available', 'mtu-valid'],
306
+ };
307
+
253
308
  const reviewStepValidationsMap: WizardStepValidationMap = {
254
309
  cluster: {
255
310
  groups: [],
@@ -265,7 +320,6 @@ const reviewStepValidationsMap: WizardStepValidationMap = {
265
320
 
266
321
  const credentialsValidationMap = buildEmptyValidationsMap();
267
322
 
268
- const customManifestsValidationsMap = buildEmptyValidationsMap();
269
323
  const disconnectedReviewValidationsMap = buildEmptyValidationsMap();
270
324
  const disconnectedBasicValidationsMap = buildEmptyValidationsMap();
271
325
 
@@ -274,13 +328,13 @@ export const wizardStepsValidationsMap: WizardStepsValidationMap<ClusterWizardSt
274
328
  'static-ip-yaml-view': staticIpValidationsMap,
275
329
  'static-ip-network-wide-configurations': staticIpValidationsMap,
276
330
  'static-ip-host-configurations': staticIpValidationsMap,
277
- 'custom-manifests': customManifestsValidationsMap,
278
331
  operators: operatorsStepValidationsMap,
279
332
  'host-discovery': hostDiscoveryStepValidationsMap,
280
333
  storage: storageStepValidationsMap,
281
334
  networking: networkingStepValidationsMap,
282
- review: reviewStepValidationsMap,
335
+ 'custom-manifests': customManifestsValidationsMap,
283
336
  'credentials-download': credentialsValidationMap,
337
+ review: reviewStepValidationsMap,
284
338
  'disconnected-review': disconnectedReviewValidationsMap,
285
339
  'disconnected-basic': disconnectedBasicValidationsMap,
286
340
  };
@@ -55,12 +55,12 @@ export default function useInfraEnvId(
55
55
  ]);
56
56
 
57
57
  React.useEffect(() => {
58
- if (!clusterId) {
58
+ if (!clusterId && !isSingleClusterFeatureEnabled) {
59
59
  setError('Missing clusterId to load infrastructure environment');
60
60
  } else if (!infraEnvId) {
61
61
  void findInfraEnvId();
62
62
  }
63
- }, [clusterId, findInfraEnvId, infraEnvId]);
63
+ }, [clusterId, findInfraEnvId, infraEnvId, isSingleClusterFeatureEnabled]);
64
64
 
65
65
  return { infraEnvId, error };
66
66
  }
@@ -21,7 +21,10 @@ const InfraEnvsService = {
21
21
  const { data: infraEnvs } = await InfraEnvsAPI.list(
22
22
  !isSingleClusterFeatureEnabled ? clusterId : '',
23
23
  );
24
- if (infraEnvs.length > 0) {
24
+ if (isSingleClusterFeatureEnabled) {
25
+ return infraEnvs[0].id;
26
+ }
27
+ if (infraEnvs.length > 0 && clusterId) {
25
28
  InfraEnvCache.updateInfraEnvs(clusterId, infraEnvs);
26
29
  infraEnvId = InfraEnvCache.getInfraEnvId(clusterId, cpuArchitecture);
27
30
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "dependencies": {
3
- "@openshift-assisted/locales": "2.53.1",
4
- "@openshift-assisted/types": "2.53.1",
3
+ "@openshift-assisted/locales": "2.54.0",
4
+ "@openshift-assisted/types": "2.54.0",
5
5
  "@openshift-console/dynamic-plugin-sdk": "^4.19.1",
6
6
  "@patternfly/patternfly": "6.4.0",
7
7
  "@patternfly/react-code-editor": "6.4.1",
@@ -24,7 +24,7 @@
24
24
  "ip-address": "^10.1.1",
25
25
  "is-cidr": "^4.0.2",
26
26
  "is-in-subnet": "^4",
27
- "js-yaml": "^4.1.1",
27
+ "js-yaml": "^4.2.0",
28
28
  "lodash-es": "^4.17.23",
29
29
  "parse-url": "^9.2.0",
30
30
  "prism-react-renderer": "^1.1.1",
@@ -35,13 +35,13 @@
35
35
  },
36
36
  "description": "React component library for the Assisted Installer UI",
37
37
  "devDependencies": {
38
- "@tsconfig/recommended": "^1.0.2",
39
- "@types/file-saver": "^2.0.1",
40
- "@types/human-date": "^1.4.0",
41
- "@types/humanize-plus": "^1.8.0",
42
- "@types/js-yaml": "^4.0.1",
43
- "@types/lodash-es": "^4.17.6",
44
- "@types/node": "^24.0.0",
38
+ "@tsconfig/recommended": "^1.0.13",
39
+ "@types/file-saver": "^2.0.7",
40
+ "@types/human-date": "^1.4.5",
41
+ "@types/humanize-plus": "^1.8.2",
42
+ "@types/js-yaml": "^4.0.9",
43
+ "@types/lodash-es": "^4.17.12",
44
+ "@types/node": "^24.12.4",
45
45
  "@types/react": "18.2.37",
46
46
  "@types/react-autosuggest": "^10.1.5",
47
47
  "@types/react-dom": "18.2.15",
@@ -136,5 +136,5 @@
136
136
  ]
137
137
  }
138
138
  },
139
- "version": "2.53.1"
139
+ "version": "2.54.0"
140
140
  }
@@ -1,3 +0,0 @@
1
- #generate-discovery-iso-modal {
2
- height: 791px;
3
- }
@@ -1,3 +0,0 @@
1
- #generate-discovery-iso-modal {
2
- height: 791px;
3
- }