Skip to content

Commit 8c35beb

Browse files
authored
[AN-404] Clearer workflow submission setting messaging (#5244)
1 parent 49cc0c5 commit 8c35beb

File tree

1 file changed

+58
-50
lines changed

1 file changed

+58
-50
lines changed

src/pages/workspaces/workspace/workflows/WorkflowView.js

Lines changed: 58 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1100,8 +1100,60 @@ export const WorkflowView = _.flow(
11001100
]),
11011101
]),
11021102
]),
1103-
div({ style: { display: 'flex', alignItems: 'baseline', minWidth: 'max-content' } }, [
1104-
span({ style: { marginTop: '1.0rem', marginBottom: '0.5rem' } }, [
1103+
div([
1104+
span([
1105+
'Runtime options: ',
1106+
h(InfoBox, { style: { marginLeft: '0.1rem', whiteSpace: 'pre-line' } }, [
1107+
'Terra will remember these submission settings in this browser.',
1108+
]),
1109+
]),
1110+
]),
1111+
isFeaturePreviewEnabled(PREVIEW_COST_CAPPING) &&
1112+
div(
1113+
{
1114+
style: {
1115+
display: 'flex',
1116+
flexDirection: 'column',
1117+
alignSelf: 'flex-start',
1118+
marginTop: '0.0rem',
1119+
fontSize: 12,
1120+
},
1121+
},
1122+
[
1123+
span([
1124+
'Set cost limit per workflow (BETA) ',
1125+
h(InfoBox, { style: { marginLeft: '0.1rem', whiteSpace: 'pre-line' } }, [
1126+
'Important cost limit considerations:',
1127+
h('br'),
1128+
'1. Costs are in USD.',
1129+
h('br'),
1130+
'2. Costs are VM and disk costs only. Bucket storage and egress costs are not included.',
1131+
h('br'),
1132+
'3. Based on GCP list prices. Discounts are not included.',
1133+
h('br'),
1134+
'4. GPU costs are not included (coming soon!).',
1135+
h('br'),
1136+
'5. Workflows may not terminate immediately upon hitting limit, plan for a margin of error.',
1137+
h('br'),
1138+
'6. Workflow costs vary by input. Set a limit that considers variability.',
1139+
]),
1140+
]),
1141+
div({ style: { display: 'flex', alignItems: 'center', marginLeft: '0rem', marginBottom: '0.5rem' } }, [
1142+
span({ style: { marginRight: '0.5rem' } }, ['$']),
1143+
h(NumberInput, {
1144+
id: 'workflow-run-budget',
1145+
value: perWorkflowCostCap || '',
1146+
min: 0.01,
1147+
max: 9999999999.99,
1148+
placeholder: 'Example: 1.00',
1149+
onChange: (v) => this.setState({ perWorkflowCostCap: v ? v.toFixed(2) : undefined }),
1150+
style: { fontSize: 12, marginTop: '0.5rem', width: '100%', marginLeft: '0.1rem' },
1151+
}),
1152+
]),
1153+
]
1154+
),
1155+
div({ style: { fontSize: 12, display: 'flex', alignItems: 'baseline', minWidth: 'max-content' } }, [
1156+
span({ style: { marginTop: '0.5rem', marginBottom: '0.5rem' } }, [
11051157
div([
11061158
span({ style: { ...styles.checkBoxSpanMargins, marginLeft: 0 } }, [
11071159
h(
@@ -1200,7 +1252,7 @@ export const WorkflowView = _.flow(
12001252
isClearable: false,
12011253
onlyInteger: false,
12021254
value: retryMemoryFactor,
1203-
style: { width: '5rem' },
1255+
style: { fontSize: 12, width: '5rem' },
12041256
onChange: (v) => this.setState({ retryMemoryFactor: v }),
12051257
}),
12061258
]),
@@ -1248,7 +1300,7 @@ export const WorkflowView = _.flow(
12481300
placeholder: 'Script',
12491301
value: monitoringScript,
12501302
onChange: (v) => this.setState({ monitoringScript: v }),
1251-
style: { marginTop: '0.5rem', width: '90%', marginRight: '0.5rem' },
1303+
style: { fontSize: 12, marginTop: '0.5rem', width: '90%', marginRight: '0.5rem' },
12521304
}),
12531305
h(InfoBox, ['Standalone .sh script that runs inside task container']),
12541306
]),
@@ -1258,7 +1310,7 @@ export const WorkflowView = _.flow(
12581310
placeholder: 'Image',
12591311
value: monitoringImage,
12601312
onChange: (v) => this.setState({ monitoringImage: v }),
1261-
style: { marginTop: '0.5rem', width: '90%', marginRight: '0.5rem' },
1313+
style: { fontSize: 12, marginTop: '0.5rem', width: '90%', marginRight: '0.5rem' },
12621314
}),
12631315
h(InfoBox, ['Image that runs as a sibling alongside task container']),
12641316
]),
@@ -1268,57 +1320,13 @@ export const WorkflowView = _.flow(
12681320
placeholder: 'Image script',
12691321
value: monitoringImageScript,
12701322
onChange: (v) => this.setState({ monitoringImageScript: v }),
1271-
style: { marginTop: '0.5rem', width: '90%', marginRight: '0.5rem' },
1323+
style: { fontSize: 12, marginTop: '0.5rem', width: '90%', marginRight: '0.5rem' },
12721324
}),
12731325
h(InfoBox, ['Script that runs inside the sibling container']),
12741326
]),
12751327
]),
12761328
]),
12771329
]),
1278-
isFeaturePreviewEnabled(PREVIEW_COST_CAPPING) &&
1279-
div(
1280-
{
1281-
style: {
1282-
display: 'flex',
1283-
flexDirection: 'column',
1284-
marginLeft: '2rem',
1285-
alignSelf: 'flex-start',
1286-
marginBottom: '-2rem',
1287-
},
1288-
},
1289-
[
1290-
span({ style: { fontWeight: 'bold' } }, [
1291-
'Set cost limit per workflow (BETA) ',
1292-
h(InfoBox, { style: { marginLeft: '0.1rem', whiteSpace: 'pre-line' } }, [
1293-
'Important cost limit considerations:',
1294-
h('br'),
1295-
'1. Costs are in USD.',
1296-
h('br'),
1297-
'2. Costs are VM and disk costs only. Bucket storage and egress costs are not included.',
1298-
h('br'),
1299-
'3. Based on GCP list prices. Discounts are not included.',
1300-
h('br'),
1301-
'4. GPU costs are not included (coming soon!).',
1302-
h('br'),
1303-
'5. Workflows may not terminate immediately upon hitting limit, plan for a margin of error.',
1304-
h('br'),
1305-
'6. Workflow costs vary by input. Set a limit that considers variability.',
1306-
]),
1307-
]),
1308-
div({ style: { display: 'flex', alignItems: 'center', marginLeft: '0rem' } }, [
1309-
span({ style: { marginRight: '0.5rem' } }, ['$']),
1310-
h(NumberInput, {
1311-
id: 'workflow-run-budget',
1312-
value: perWorkflowCostCap || '',
1313-
min: 0.01,
1314-
max: 9999999999.99,
1315-
placeholder: 'Example: 1.00',
1316-
onChange: (v) => this.setState({ perWorkflowCostCap: v ? v.toFixed(2) : undefined }),
1317-
style: { marginTop: '0.5rem', width: '100%', marginLeft: '0.1rem' },
1318-
}),
1319-
]),
1320-
]
1321-
),
13221330
]),
13231331
h(StepButtons, {
13241332
tabs: [

0 commit comments

Comments
 (0)