You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2020/10/20 11:02:35 UTC
[cloudstack-primate] branch master updated: allow adding docker
Private registry details while deploying cluster (#802)
This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack-primate.git
The following commit(s) were added to refs/heads/master by this push:
new f3e9f8a allow adding docker Private registry details while deploying cluster (#802)
f3e9f8a is described below
commit f3e9f8acf95611037a629540fa3596e3285b92ae
Author: Pearl Dsilva <pe...@gmail.com>
AuthorDate: Tue Oct 20 16:32:23 2020 +0530
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 <pe...@shapeblue.com>
---
src/components/view/ListView.vue | 2 +-
src/locales/en.json | 2 +-
src/store/modules/user.js | 11 ++++
src/views/compute/CreateKubernetesCluster.vue | 72 +++++++++++++++++++++++++--
4 files changed, 82 insertions(+), 5 deletions(-)
diff --git a/src/components/view/ListView.vue b/src/components/view/ListView.vue
index cb86d67..c68fd42 100644
--- a/src/components/view/ListView.vue
+++ b/src/components/view/ListView.vue
@@ -439,7 +439,7 @@ export default {
value: this.editableValue
}).then(json => {
this.editableValueKey = null
-
+ this.$store.dispatch('RefreshFeatures')
this.$message.success(`${this.$t('message.setting.updated')} ${record.name}`)
if (json.updateconfigurationresponse &&
json.updateconfigurationresponse.configuration &&
diff --git a/src/locales/en.json b/src/locales/en.json
index 64a7058..922dda5 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -1603,7 +1603,7 @@
"label.private.interface": "Private Interface",
"label.private.ip.range": "Private IP Range",
"label.private.ips": "Private IP Addresses",
-"label.private.registry": "Private registry",
+"label.private.registry": "Private Registry",
"label.private.zone": "Private Zone",
"label.privateinterface": "Private Interface",
"label.privateip": "Private IP Address",
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index aba087d..6e66c0d 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -274,6 +274,17 @@ const user = {
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)
+ })
+ })
}
}
}
diff --git a/src/views/compute/CreateKubernetesCluster.vue b/src/views/compute/CreateKubernetesCluster.vue
index 75e70d4..9759a5d 100644
--- a/src/views/compute/CreateKubernetesCluster.vue
+++ b/src/views/compute/CreateKubernetesCluster.vue
@@ -176,11 +176,11 @@
</span>
<a-input
v-decorator="['masternodes', {
- initialValue: '1',
+ initialValue: '2',
rules: [{ required: true, message: $t('message.error.input.value') },
{
validator: (rule, value, callback) => {
- if (value && (isNaN(value) || value <= 0)) {
+ if (value && (isNaN(value) || value < 2)) {
callback(this.$t('message.validate.number'))
}
callback()
@@ -246,7 +246,65 @@
</a-select-option>
</a-select>
</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">
<a-button @click="closeAction">{{ this.$t('label.cancel') }}</a-button>
<a-button :loading="loading" type="primary" @click="handleSubmit">{{ this.$t('label.ok') }}</a-button>
@@ -277,6 +335,7 @@ export default {
keyPairs: [],
keyPairLoading: false,
haEnabled: false,
+ usePrivateRegistry: false,
loading: false
}
},
@@ -468,6 +527,13 @@ export default {
if (this.isValidValueForKey(values, 'keypair') && this.arrayHasItems(this.keyPairs) && this.keyPairs[values.keypair].id != null) {
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 => {
const jobId = json.createkubernetesclusterresponse.jobid
this.$store.dispatch('AddAsyncJob', {