diff --git a/app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.html b/app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.html index 59d5c39e4..3d8ac4e91 100644 --- a/app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.html +++ b/app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationData.html @@ -53,12 +53,17 @@

This field is required.

This key is already defined.

+

This key is invalid. A valid key must consist of alphanumeric characters, '-', '_' or '.'

diff --git a/app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationDataController.js b/app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationDataController.js index 09658cf23..30289e834 100644 --- a/app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationDataController.js +++ b/app/kubernetes/components/kubernetes-configuration-data/kubernetesConfigurationDataController.js @@ -25,7 +25,8 @@ class KubernetesConfigurationDataController { } this.state.duplicateKeys = KubernetesFormValidationHelper.getDuplicates(_.map(this.formValues.Data, (data) => data.Key)); - this.isValid = Object.keys(this.state.duplicateKeys).length === 0; + this.state.invalidKeys = KubernetesFormValidationHelper.getInvalidKeys(_.map(this.formValues.Data, (data) => data.Key)); + this.isValid = Object.keys(this.state.duplicateKeys).length === 0 && Object.keys(this.state.invalidKeys).length === 0; } addEntry() { @@ -94,6 +95,7 @@ class KubernetesConfigurationDataController { $onInit() { this.state = { duplicateKeys: {}, + invalidKeys: {}, }; } } diff --git a/app/kubernetes/helpers/formValidationHelper.js b/app/kubernetes/helpers/formValidationHelper.js index cb506e366..7ac2897f4 100644 --- a/app/kubernetes/helpers/formValidationHelper.js +++ b/app/kubernetes/helpers/formValidationHelper.js @@ -1,6 +1,17 @@ import _ from 'lodash-es'; class KubernetesFormValidationHelper { + static getInvalidKeys(names) { + const res = {}; + _.forEach(names, (name, index) => { + const valid = /^[-._a-zA-Z0-9]+$/.test(name); + if (!valid) { + res[index] = true; + } + }); + return res; + } + static getDuplicates(names) { const groupped = _.groupBy(names); const res = {};