{{driver.label}}
++ {{driver.label}} +
{{/link-to}} {{/if}} {{/each}} diff --git a/lib/shared/addon/components/cluster-driver/driver-rke/component.js b/lib/shared/addon/components/cluster-driver/driver-rke/component.js index 55a6eecbf..6fe1dc339 100644 --- a/lib/shared/addon/components/cluster-driver/driver-rke/component.js +++ b/lib/shared/addon/components/cluster-driver/driver-rke/component.js @@ -9,7 +9,7 @@ import { underlineToCamel, removeEmpty, keysToCamel, validateEndpoint, randomStr } from 'shared/utils/util'; import { validateHostname } from '@rancher/ember-api-store/utils/validate'; - +import { validateCertWeakly } from 'shared/utils/util'; import C from 'shared/utils/constants'; import YAML from 'yamljs'; import json2yaml from 'json2yaml'; @@ -436,8 +436,7 @@ export default InputTextFile.extend(ClusterDriver, { return out; }), - value: computed('pasteOrUpload', { - + yamlValue: computed('pasteOrUpload', { get() { const intl = get(this, 'intl'); @@ -536,7 +535,7 @@ export default InputTextFile.extend(ClusterDriver, { validate() { this._super(...arguments); - let errors = get(this, 'errors') || []; + let errors = []; let config = get(this, `cluster.rancherKubernetesEngineConfig`); if ( !get(this, 'isCustom') ) { @@ -561,6 +560,10 @@ export default InputTextFile.extend(ClusterDriver, { errors = this.validateEtcdService(errors); } + if ( get(this, 'cluster.localClusterAuthEndpoint.enabled') ) { + errors = this.validateAuthorizedClusterEndpoint(errors); + } + const clusterOptErrors = get(this, 'clusterOptErrors') || []; if ( get(config, 'cloudProvider.name') === 'azure' ) { @@ -578,6 +581,25 @@ export default InputTextFile.extend(ClusterDriver, { return errors.length === 0 && clusterOptErrors.length === 0; }, + validateAuthorizedClusterEndpoint(errors) { + let { localClusterAuthEndpoint } = get(this, 'cluster'); + let { caCerts, fqdn } = localClusterAuthEndpoint; + + if (caCerts) { + if (!validateCertWeakly(caCerts) ) { + errors.push(this.intl.t('newCertificate.errors.cert.invalidFormat')); + } + } else { + errors.push(this.intl.t('newCertificate.errors.cert.required')); + } + + if (fqdn) { + errors = validateHostname(fqdn, 'FQDN', get(this, 'intl'), { restricted: true }, errors); + } + + return errors; + }, + validateEtcdService(errors) { const etcdService = get(this, 'cluster.rancherKubernetesEngineConfig.services.etcd') || {}; const { creation, retention } = etcdService; diff --git a/lib/shared/addon/components/cluster-driver/driver-rke/template.hbs b/lib/shared/addon/components/cluster-driver/driver-rke/template.hbs index 82e45a4c1..59bc1dd7c 100644 --- a/lib/shared/addon/components/cluster-driver/driver-rke/template.hbs +++ b/lib/shared/addon/components/cluster-driver/driver-rke/template.hbs @@ -49,13 +49,13 @@ showDownload=false canChangeName=false autoResize=true - value=value + value=yamlValue }}