Skip to content

Commit d11fc77

Browse files
adding Operator Node Selector, fixing bugs with node selector tables, and adding tooltips to all icon buttons (#160)
* adding Operator Node Selector, fixing bugs with node selector taables, and adding tooltips to all icon buttons * moving to Jet 13.0.2 and creating new TPL file for release
1 parent f5b7dfa commit d11fc77

34 files changed

+390
-175
lines changed

THIRD_PARTY_LICENSES.txt

Lines changed: 113 additions & 50 deletions
Large diffs are not rendered by default.

electron/app/js/helmUtils.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,8 @@ function processHelmChartValues(args, helmChartValues) {
233233
for (const [propertyName, propertyValue] of Object.entries(helmChartValues)) {
234234
if (propertyName === 'imagePullSecrets') {
235235
args.push(...formatArrayOfObjectsSetArgument(propertyName, propertyValue));
236+
} else if (propertyName === 'nodeSelector') {
237+
args.push(...formatNodeSelectorSetArgument(propertyValue));
236238
} else {
237239
args.push('--set', formatSetArgument(propertyName, propertyValue));
238240
}
@@ -270,6 +272,22 @@ function formatArrayOfObjectsSetArgument(name, objectArray) {
270272
return result;
271273
}
272274

275+
function formatNodeSelectorSetArgument(nodeSelectorMap) {
276+
const result = [];
277+
for (const [key, value] of Object.entries(nodeSelectorMap)) {
278+
result.push('--set', formatSetArgument(`nodeSelector.${_getQuotedInnerKey(key)}`, value, true));
279+
}
280+
return result;
281+
}
282+
283+
function _getQuotedInnerKey(key) {
284+
let result = key;
285+
if (key.includes('.')) {
286+
result = `${key.replaceAll('.', '\\.')}`;
287+
}
288+
return result;
289+
}
290+
273291
module.exports = {
274292
addOrUpdateWkoHelmChart,
275293
installWko,

electron/app/locales/en/webui.json

Lines changed: 56 additions & 28 deletions
Large diffs are not rendered by default.

webui/package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

webui/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"jet-audit": "ojaf"
1111
},
1212
"dependencies": {
13-
"@oracle/oraclejet": "^13.0.1",
13+
"@oracle/oraclejet": "^13.0.2",
1414
"@oracle/wrc-jet-pack": "~2.3.0",
1515
"i18next": "^21.9.1",
1616
"jquery": "^3.6.0",

webui/src/js/models/k8s-domain-definition.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,9 @@ define(['knockout', 'utils/observable-properties', 'utils/common-utilities', 'ut
9696
this.memoryLimit = props.createProperty();
9797
this.memoryLimit.addValidator(...validationHelper.getK8sMemoryValidators());
9898

99-
this.domainNodeSelector = props.createListProperty(['name', 'value']);
99+
// Jet tables do not work if you allow changing the value used as the primary key so always add a uid...
100+
//
101+
this.domainNodeSelector = props.createListProperty(['uid', 'name', 'value']);
100102

101103
// update the secrets list when the uid changes.
102104
this.uid.observable.subscribe(() => {

webui/src/js/models/wko-definition.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ define(['utils/observable-properties', 'utils/validation-helper'],
6464
this.javaLoggingFileSizeLimit = props.createProperty(20000000);
6565
this.javaLoggingFileCount = props.createProperty(10);
6666

67+
// Jet tables do not work if you allow changing the value used as the primary key so always add a uid...
68+
//
69+
this.nodeSelector = props.createListProperty(['uid', 'name', 'value']);
70+
6771
// internal fields that should not be read or written to the project file.
6872
this.internal = {
6973
operatorImagePullRegistryAddress: props.createProperty()

webui/src/js/utils/wko-actions-base.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,17 @@ function(WktActionsBase, project, wktConsole, i18n, projectIo, dialogHelper, val
234234
this.addHelmChartValueIfSet(helmChartValues, 'javaLoggingFileSizeLimit', this.project.wko.javaLoggingFileSizeLimit);
235235
this.addHelmChartValueIfSet(helmChartValues, 'javaLoggingFileCount', this.project.wko.javaLoggingFileCount);
236236

237+
if (this.project.wko.nodeSelector.hasValue()) {
238+
const nodeSelectorMap = {};
239+
this.project.wko.nodeSelector.value.forEach(label => {
240+
nodeSelectorMap[label.name] = label.value;
241+
});
242+
243+
if (Object.keys(nodeSelectorMap).length > 0) {
244+
helmChartValues['nodeSelector'] = nodeSelectorMap;
245+
}
246+
}
247+
237248
return helmChartValues;
238249
}
239250

@@ -336,4 +347,4 @@ function(WktActionsBase, project, wktConsole, i18n, projectIo, dialogHelper, val
336347
}
337348

338349
return WkoActionsBase;
339-
});
350+
});

webui/src/js/viewModels/app-main.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,10 @@ function(accUtils, ko, i18n, project, wktConsole, dialogHelper, viewHelper, scre
213213
return this.navCollapsed() ? 'oj-ux-ico-arrow-right' : 'oj-ux-ico-arrow-left';
214214
}, this);
215215

216+
this.collapseArrowTooltip = ko.computed(() => {
217+
return this.navCollapsed() ? this.labelMapper('expand-arrow-tooltip') : this.labelMapper('collapse-arrow-tooltip');
218+
});
219+
216220
this.collapseNav = () => {
217221
this.navCollapsed(!this.navCollapsed());
218222

webui/src/js/viewModels/domain-design-view.js

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,6 @@ function (project, accUtils, utils, ko, i18n, screenUtils, BufferingDataProvider
2121
this.applyAuxImageConfig(newValue);
2222
}));
2323

24-
// subscriptions.push(this.project.k8sDomain.clusters.observable.subscribe(() => {
25-
// document.getElementById('clusters-table').refresh();
26-
// }));
27-
28-
subscriptions.push(this.project.k8sDomain.domainNodeSelector.observable.subscribe(() => {
29-
document.getElementById('domain-node-selector-table').refresh();
30-
}));
31-
3224
subscriptions.push(project.image.createPrimaryImage.observable.subscribe(() => {
3325
document.getElementById('create-image-switch').refresh();
3426
const primaryImageTag = document.getElementById('primary-image-tag');
@@ -423,8 +415,8 @@ function (project, accUtils, utils, ko, i18n, screenUtils, BufferingDataProvider
423415
},
424416
];
425417

426-
this.domainNodeSelectorDP =
427-
new ArrayDataProvider(this.project.k8sDomain.domainNodeSelector.observable, { keyAttributes: 'name' });
418+
this.domainNodeSelectorDP = new BufferingDataProvider(
419+
new ArrayDataProvider(this.project.k8sDomain.domainNodeSelector.observable, { keyAttributes: 'uid' }));
428420

429421
this.handleAddDomainNodeSelector = () => {
430422
const labelNames = [];
@@ -437,7 +429,11 @@ function (project, accUtils, utils, ko, i18n, screenUtils, BufferingDataProvider
437429
nextIndex++;
438430
}
439431

440-
this.project.k8sDomain.domainNodeSelector.addNewItem({ name: `new-label-${nextIndex + 1}`, value: '' });
432+
this.project.k8sDomain.domainNodeSelector.addNewItem({
433+
uid: utils.getShortUuid(),
434+
name: `new-label-${nextIndex + 1}`,
435+
value: ''
436+
});
441437
};
442438
}
443439

0 commit comments

Comments
 (0)