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 = {};