mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	allow adding docker Private registry details while deploying cluster (#802)
* allow adding docker Private registry details while deploying cluster * Set min master node count for HA to 2 * generalize refresh of features list * Update user.js Co-authored-by: Pearl Dsilva <pearl.dsilva@shapeblue.com> Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
		
							parent
							
								
									dd64c7709c
								
							
						
					
					
						commit
						f394f2f596
					
				| @ -439,7 +439,7 @@ export default { | |||||||
|         value: this.editableValue |         value: this.editableValue | ||||||
|       }).then(json => { |       }).then(json => { | ||||||
|         this.editableValueKey = null |         this.editableValueKey = null | ||||||
| 
 |         this.$store.dispatch('RefreshFeatures') | ||||||
|         this.$message.success(`${this.$t('message.setting.updated')} ${record.name}`) |         this.$message.success(`${this.$t('message.setting.updated')} ${record.name}`) | ||||||
|         if (json.updateconfigurationresponse && |         if (json.updateconfigurationresponse && | ||||||
|           json.updateconfigurationresponse.configuration && |           json.updateconfigurationresponse.configuration && | ||||||
|  | |||||||
| @ -1603,7 +1603,7 @@ | |||||||
| "label.private.interface": "Private Interface", | "label.private.interface": "Private Interface", | ||||||
| "label.private.ip.range": "Private IP Range", | "label.private.ip.range": "Private IP Range", | ||||||
| "label.private.ips": "Private IP Addresses", | "label.private.ips": "Private IP Addresses", | ||||||
| "label.private.registry": "Private registry", | "label.private.registry": "Private Registry", | ||||||
| "label.private.zone": "Private Zone", | "label.private.zone": "Private Zone", | ||||||
| "label.privateinterface": "Private Interface", | "label.privateinterface": "Private Interface", | ||||||
| "label.privateip": "Private IP Address", | "label.privateip": "Private IP Address", | ||||||
|  | |||||||
| @ -274,6 +274,17 @@ const user = { | |||||||
|           reject(error) |           reject(error) | ||||||
|         }) |         }) | ||||||
|       }) |       }) | ||||||
|  |     }, | ||||||
|  |     RefreshFeatures ({ commit }) { | ||||||
|  |       return new Promise((resolve, reject) => { | ||||||
|  |         api('listCapabilities').then(response => { | ||||||
|  |           const result = response.listcapabilitiesresponse.capability | ||||||
|  |           resolve(result) | ||||||
|  |           commit('SET_FEATURES', result) | ||||||
|  |         }).catch(error => { | ||||||
|  |           reject(error) | ||||||
|  |         }) | ||||||
|  |       }) | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -176,11 +176,11 @@ | |||||||
|           </span> |           </span> | ||||||
|           <a-input |           <a-input | ||||||
|             v-decorator="['masternodes', { |             v-decorator="['masternodes', { | ||||||
|               initialValue: '1', |               initialValue: '2', | ||||||
|               rules: [{ required: true, message: $t('message.error.input.value') }, |               rules: [{ required: true, message: $t('message.error.input.value') }, | ||||||
|                       { |                       { | ||||||
|                         validator: (rule, value, callback) => { |                         validator: (rule, value, callback) => { | ||||||
|                           if (value && (isNaN(value) || value <= 0)) { |                           if (value && (isNaN(value) || value < 2)) { | ||||||
|                             callback(this.$t('message.validate.number')) |                             callback(this.$t('message.validate.number')) | ||||||
|                           } |                           } | ||||||
|                           callback() |                           callback() | ||||||
| @ -246,7 +246,65 @@ | |||||||
|             </a-select-option> |             </a-select-option> | ||||||
|           </a-select> |           </a-select> | ||||||
|         </a-form-item> |         </a-form-item> | ||||||
| 
 |         <div v-if="$store.getters.features.kubernetesclusterexperimentalfeaturesenabled"> | ||||||
|  |           <a-form-item :label="$t('label.private.registry')"> | ||||||
|  |             <a-switch v-decorator="['privateregistry']" @change="checked => { this.usePrivateRegistry = checked }" /> | ||||||
|  |           </a-form-item> | ||||||
|  |           <div v-if="usePrivateRegistry"> | ||||||
|  |             <a-form-item> | ||||||
|  |               <span slot="label"> | ||||||
|  |                 {{ $t('label.username') }} | ||||||
|  |                 <a-tooltip :title="apiParams.dockerregistryusername.description"> | ||||||
|  |                   <a-icon type="info-circle" style="color: rgba(0,0,0,.45)" /> | ||||||
|  |                 </a-tooltip> | ||||||
|  |               </span> | ||||||
|  |               <a-input | ||||||
|  |                 v-decorator="['dockerregistryusername', { | ||||||
|  |                   rules: [{ required: true, message: $t('label.required') }] | ||||||
|  |                 }]" | ||||||
|  |                 :placeholder="apiParams.dockerregistryusername.description"/> | ||||||
|  |             </a-form-item> | ||||||
|  |             <a-form-item> | ||||||
|  |               <span slot="label"> | ||||||
|  |                 {{ $t('label.password') }} | ||||||
|  |                 <a-tooltip :title="apiParams.dockerregistrypassword.description"> | ||||||
|  |                   <a-icon type="info-circle" style="color: rgba(0,0,0,.45)" /> | ||||||
|  |                 </a-tooltip> | ||||||
|  |               </span> | ||||||
|  |               <a-input-password | ||||||
|  |                 v-decorator="['dockerregistrypassword', { | ||||||
|  |                   rules: [{ required: true, message: $t('label.required') }] | ||||||
|  |                 }]" | ||||||
|  |                 :placeholder="apiParams.dockerregistrypassword.description"/> | ||||||
|  |             </a-form-item> | ||||||
|  |             <a-form-item> | ||||||
|  |               <span slot="label"> | ||||||
|  |                 {{ $t('label.url') }} | ||||||
|  |                 <a-tooltip :title="apiParams.dockerregistryurl.description"> | ||||||
|  |                   <a-icon type="info-circle" style="color: rgba(0,0,0,.45)" /> | ||||||
|  |                 </a-tooltip> | ||||||
|  |               </span> | ||||||
|  |               <a-input | ||||||
|  |                 v-decorator="['dockerregistryurl', { | ||||||
|  |                   rules: [{ required: true, message: $t('label.required') }] | ||||||
|  |                 }]" | ||||||
|  |                 :placeholder="apiParams.dockerregistryurl.description"/> | ||||||
|  |             </a-form-item> | ||||||
|  |             <a-form-item> | ||||||
|  |               <span slot="label"> | ||||||
|  |                 {{ $t('label.email') }} | ||||||
|  |                 <a-tooltip :title="apiParams.dockerregistryemail.description"> | ||||||
|  |                   <a-icon type="info-circle" style="color: rgba(0,0,0,.45)" /> | ||||||
|  |                 </a-tooltip> | ||||||
|  |               </span> | ||||||
|  |               <a-input | ||||||
|  |                 v-decorator="['dockerregistryemail', { | ||||||
|  |                   rules: [{ required: true, message: $t('label.required') }] | ||||||
|  |                 }]" | ||||||
|  |                 :placeholder="apiParams.dockerregistryemail.description"/> | ||||||
|  |             </a-form-item> | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|         <div :span="24" class="action-button"> |         <div :span="24" class="action-button"> | ||||||
|           <a-button @click="closeAction">{{ this.$t('label.cancel') }}</a-button> |           <a-button @click="closeAction">{{ this.$t('label.cancel') }}</a-button> | ||||||
|           <a-button :loading="loading" type="primary" @click="handleSubmit">{{ this.$t('label.ok') }}</a-button> |           <a-button :loading="loading" type="primary" @click="handleSubmit">{{ this.$t('label.ok') }}</a-button> | ||||||
| @ -277,6 +335,7 @@ export default { | |||||||
|       keyPairs: [], |       keyPairs: [], | ||||||
|       keyPairLoading: false, |       keyPairLoading: false, | ||||||
|       haEnabled: false, |       haEnabled: false, | ||||||
|  |       usePrivateRegistry: false, | ||||||
|       loading: false |       loading: false | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
| @ -468,6 +527,13 @@ export default { | |||||||
|         if (this.isValidValueForKey(values, 'keypair') && this.arrayHasItems(this.keyPairs) && this.keyPairs[values.keypair].id != null) { |         if (this.isValidValueForKey(values, 'keypair') && this.arrayHasItems(this.keyPairs) && this.keyPairs[values.keypair].id != null) { | ||||||
|           params.keypair = this.keyPairs[values.keypair].id |           params.keypair = this.keyPairs[values.keypair].id | ||||||
|         } |         } | ||||||
|  |         if (this.usePrivateRegistry) { | ||||||
|  |           params.dockerregistryusername = values.dockerregistryusername | ||||||
|  |           params.dockerregistrypassword = values.dockerregistrypassword | ||||||
|  |           params.dockerregistryurl = values.dockerregistryurl | ||||||
|  |           params.dockerregistryemail = values.dockerregistryemail | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         api('createKubernetesCluster', params).then(json => { |         api('createKubernetesCluster', params).then(json => { | ||||||
|           const jobId = json.createkubernetesclusterresponse.jobid |           const jobId = json.createkubernetesclusterresponse.jobid | ||||||
|           this.$store.dispatch('AddAsyncJob', { |           this.$store.dispatch('AddAsyncJob', { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user