diff --git a/webui/src/js/utils/k8s-domain-deployer.js b/webui/src/js/utils/k8s-domain-deployer.js index 021c4ac44..767882e5f 100644 --- a/webui/src/js/utils/k8s-domain-deployer.js +++ b/webui/src/js/utils/k8s-domain-deployer.js @@ -247,30 +247,52 @@ function (project, wktConsole, k8sHelper, i18n, projectIo, dialogHelper, K8sDoma return Promise.resolve(false); } - // Create Secrets - busyDialogMessage = i18n.t('k8s-domain-deployer-create-secrets-in-progress', - {domainName: domainUid, namespace: domainNamespace}); - dialogHelper.updateBusyDialog(busyDialogMessage, 10 / totalSteps); - const secrets = this.project.k8sDomain.secrets.value; - if (secrets && secrets.length > 0) { - for (const secret of secrets) { - let secretName = ''; - const secretData = {}; - for (const [key, value] of Object.entries(secret)) { - if (key === 'name') { - secretName = value; - } else if (key !== 'uid') { - // skip artificial uid field... - secretData[key] = value; + // Create Secrets, if needed + if (this.project.settings.targetDomainLocation.value === 'mii') { + busyDialogMessage = i18n.t('k8s-domain-deployer-create-secrets-in-progress', + {domainName: domainUid, namespace: domainNamespace}); + dialogHelper.updateBusyDialog(busyDialogMessage, 10 / totalSteps); + const secrets = this.project.k8sDomain.secrets.value; + if (secrets && secrets.length > 0) { + for (const secret of secrets) { + let secretName = ''; + const secretData = {}; + for (const [key, value] of Object.entries(secret)) { + if (key === 'name') { + secretName = value; + } else if (key !== 'uid') { + // skip artificial uid field... + secretData[key] = value; + } + } + wktLogger.debug('Creating secret %s', secretName); + + const createSecretResults = + await window.api.ipc.invoke('k8s-create-generic-secret', kubectlExe, domainNamespace, secretName, secretData, kubectlOptions); + if (!createSecretResults.isSuccess) { + const errMessage = i18n.t('k8s-domain-deployer-create-secret-failed-error-message', + {secretName: secretName, namespace: domainNamespace, error: createSecretResults.reason}); + dialogHelper.closeBusyDialog(); + await window.api.ipc.invoke('show-error-message', errTitle, errMessage); + return Promise.resolve(false); } } - wktLogger.debug('Creating secret %s', secretName); + } + } - const createSecretResults = - await window.api.ipc.invoke('k8s-create-generic-secret', kubectlExe, domainNamespace, secretName, secretData, kubectlOptions); - if (!createSecretResults.isSuccess) { - const errMessage = i18n.t('k8s-domain-deployer-create-secret-failed-error-message', - {secretName: secretName, namespace: domainNamespace, error: createSecretResults.reason}); + // Create ConfigMap, if needed + if (this.project.settings.targetDomainLocation.value === 'mii') { + if (!this.project.k8sDomain.configMapIsEmpty()) { + const configMapData = this.k8sDomainConfigMapGenerator.generate().join('\n'); + wktLogger.debug(configMapData); + busyDialogMessage = i18n.t('k8s-domain-deployer-create-config-map-in-progress', + {domainName: domainUid, domainNamespace: domainNamespace}); + dialogHelper.updateBusyDialog(busyDialogMessage, 11 / totalSteps); + const mapResults = await (window.api.ipc.invoke('k8s-apply', kubectlExe, configMapData, kubectlOptions)); + if (!mapResults.isSuccess) { + const configMapName = this.project.k8sDomain.modelConfigMapName.value; + const errMessage = i18n.t('k8s-domain-deployer-create-config-map-failed-error-message', + {configMapName: configMapName, domainNamespace: domainNamespace, error: mapResults.reason}); dialogHelper.closeBusyDialog(); await window.api.ipc.invoke('show-error-message', errTitle, errMessage); return Promise.resolve(false); @@ -278,24 +300,6 @@ function (project, wktConsole, k8sHelper, i18n, projectIo, dialogHelper, K8sDoma } } - // Create ConfigMap, if needed - if (!this.project.k8sDomain.configMapIsEmpty()) { - const configMapData = this.k8sDomainConfigMapGenerator.generate().join('\n'); - wktLogger.debug(configMapData); - busyDialogMessage = i18n.t('k8s-domain-deployer-create-config-map-in-progress', - {domainName: domainUid, domainNamespace: domainNamespace}); - dialogHelper.updateBusyDialog(busyDialogMessage, 11 / totalSteps); - const mapResults = await (window.api.ipc.invoke('k8s-apply', kubectlExe, configMapData, kubectlOptions)); - if (!mapResults.isSuccess) { - const configMapName = this.project.k8sDomain.modelConfigMapName.value; - const errMessage = i18n.t('k8s-domain-deployer-create-config-map-failed-error-message', - {configMapName: configMapName, domainNamespace: domainNamespace, error: mapResults.reason}); - dialogHelper.closeBusyDialog(); - await window.api.ipc.invoke('show-error-message', errTitle, errMessage); - return Promise.resolve(false); - } - } - // Deploy domain busyDialogMessage = i18n.t('k8s-domain-deployer-deploy-in-progress', {domainName: domainUid, domainNamespace: domainNamespace}); diff --git a/webui/src/js/utils/k8s-domain-resource-generator.js b/webui/src/js/utils/k8s-domain-resource-generator.js index 84f39ae49..a85a12da2 100644 --- a/webui/src/js/utils/k8s-domain-resource-generator.js +++ b/webui/src/js/utils/k8s-domain-resource-generator.js @@ -5,8 +5,8 @@ */ 'use strict'; -define(['models/wkt-project', 'utils/k8s-domain-configmap-generator', 'js-yaml', 'utils/i18n'], - function(project, K8sDomainConfigMapGenerator, jsYaml, i18n) { +define(['models/wkt-project', 'utils/k8s-domain-configmap-generator', 'js-yaml', 'utils/i18n', 'utils/wkt-logger'], + function(project, K8sDomainConfigMapGenerator, jsYaml, i18n, logger) { class K8sDomainResourceGenerator { constructor() { this.project = project; @@ -36,7 +36,8 @@ define(['models/wkt-project', 'utils/k8s-domain-configmap-generator', 'js-yaml', } }; - if (this.project.k8sDomain.domainHome.hasValue()) { + logger.debug('Domain home path: %s', this.project.k8sDomain.domainHome.value) + if (this.project.k8sDomain.domainHome.value) { domainResource.spec.domainHome = this.project.k8sDomain.domainHome.value; } diff --git a/webui/src/js/viewModels/domain-design-view.js b/webui/src/js/viewModels/domain-design-view.js index 4e25ce6ae..b7610926d 100644 --- a/webui/src/js/viewModels/domain-design-view.js +++ b/webui/src/js/viewModels/domain-design-view.js @@ -35,6 +35,10 @@ function (project, accUtils, utils, ko, i18n, BufferingDataProvider, return this.project.settings.targetDomainLocation.observable() === 'pv'; }); + this.isModelInImage = ko.computed(() => { + return this.project.settings.targetDomainLocation.observable() === 'mii'; + }); + this.domainHomeHelpLabel = ko.computed(() => { const domainHomeHelpKey = this.isDomainInPV() ? 'domain-home-help' : 'domain-home-readonly-help'; return this.labelMapper(domainHomeHelpKey); @@ -143,7 +147,7 @@ function (project, accUtils, utils, ko, i18n, BufferingDataProvider, {keyAttributes: 'uid', sortComparators: propertyComparators})); this.hasEncryptionSecret = () => { - return this.project.settings.targetDomainLocation.value === 'mii'; + return this.isModelInImage(); }; this.secretsTableColumnMetadata = () => { diff --git a/webui/src/js/views/domain-design-view.html b/webui/src/js/views/domain-design-view.html index 985a0321f..c27beef02 100644 --- a/webui/src/js/views/domain-design-view.html +++ b/webui/src/js/views/domain-design-view.html @@ -176,80 +176,84 @@
-
- - - - - - + +
+
+ + + + + + - - - -
+ + + + +
-
-
- - - -
+ +
+
+ + + +
+