refactor: access selector

pull/9/head^2
xiaojunnuo 2022-10-20 23:11:57 +08:00
parent b10ff5b6ee
commit 038b1c9ca4
12 changed files with 98 additions and 125 deletions

View File

@ -6,19 +6,16 @@ export class AliyunAccessProvider {
desc: '', desc: '',
input: { input: {
accessKeyId: { accessKeyId: {
type: String,
component: { component: {
placeholder: 'accessKeyId', placeholder: 'accessKeyId'
rules: [{ required: true, message: '必填项' }]
}, },
required: true rules: [{ required: true, message: '必填项' }]
}, },
accessKeySecret: { accessKeySecret: {
type: String,
component: { component: {
placeholder: 'accessKeySecret', placeholder: 'accessKeySecret'
rules: [{ required: true, message: '必填项' }] },
} rules: [{ required: true, message: '必填项' }]
} }
}, },

View File

@ -9,14 +9,13 @@ export class AliyunDnsProvider extends AbstractDnsProvider {
desc: '', desc: '',
input: { input: {
accessProvider: { accessProvider: {
label: '授权', title: '授权',
type: [String, Object], helper: '需要aliyun类型的授权',
desc: '需要aliyun类型的授权',
component: { component: {
name: 'access-provider-selector', name: 'access-provider-selector',
filter: 'aliyun' filter: 'aliyun'
}, },
required: true rules: [{ required: true, message: '必填项' }]
} }
}, },
output: { output: {

View File

@ -8,11 +8,10 @@ const define = {
label: '部署到阿里云AckIngress', label: '部署到阿里云AckIngress',
input: { input: {
clusterId: { clusterId: {
label: '集群id', title: '集群id',
component: { component: {
placeholder: '集群id' placeholder: '集群id'
}, }
required: true
}, },
secretName: { secretName: {
label: '保密字典Id', label: '保密字典Id',

View File

@ -5,20 +5,19 @@ export class SSHAccessProvider {
label: '主机', label: '主机',
desc: '', desc: '',
input: { input: {
host: { required: true }, host: { rules: [{ required: true, message: '此项必填' }] },
port: { port: {
label: '端口', title: '端口',
type: Number, value: '22',
default: '22', rules: [{ required: true, message: '此项必填' }]
required: true
}, },
username: { username: {
default: 'root', value: 'root',
required: true rules: [{ required: true, message: '此项必填' }]
}, },
password: { desc: '登录密码' }, password: { helper: '登录密码' },
privateKey: { privateKey: {
desc: '密钥,密码或此项必填一项' helper: '密钥,密码或此项必填一项'
} }
} }
} }

View File

@ -13,17 +13,16 @@ export class HostShellExecute extends AbstractHostPlugin {
label: '执行远程主机脚本命令', label: '执行远程主机脚本命令',
input: { input: {
accessProvider: { accessProvider: {
label: '主机登录配置', title: '主机登录配置',
type: [String, Object], helper: '登录',
desc: '登录',
component: { component: {
name: 'access-provider-selector', name: 'access-selector',
filter: 'ssh' type: 'ssh'
}, },
required: true required: true
}, },
script: { script: {
label: 'shell脚本命令', title: 'shell脚本命令',
component: { component: {
name: 'a-textarea' name: 'a-textarea'
} }

View File

@ -13,33 +13,30 @@ export class UploadCertToHost extends AbstractHostPlugin {
label: '上传证书到主机', label: '上传证书到主机',
input: { input: {
crtPath: { crtPath: {
label: '证书保存路径' title: '证书保存路径'
}, },
keyPath: { keyPath: {
label: '私钥保存路径' title: '私钥保存路径'
}, },
accessProvider: { accessProvider: {
label: '主机登录配置', title: '主机登录配置',
type: [String, Object], helper: 'access授权',
desc: 'access授权',
component: { component: {
name: 'access-provider-selector', name: 'access-provider-selector',
filter: 'ssh' filter: 'ssh'
}, },
required: true rules: [{ required: true, message: '此项必填' }]
}, },
sudo: { sudo: {
label: '是否sudo' title: '是否sudo'
} }
}, },
output: { output: {
hostCrtPath: { hostCrtPath: {
type: String, helper: '上传成功后的证书路径'
desc: '上传成功后的证书路径'
}, },
hostKeyPath: { hostKeyPath: {
type: String, helper: '上传成功后的私钥路径'
desc: '上传成功后的私钥路径'
} }
} }
} }

View File

@ -6,19 +6,17 @@ export class DnspodAccessProvider {
desc: '腾讯云的域名解析接口已迁移到dnspod', desc: '腾讯云的域名解析接口已迁移到dnspod',
input: { input: {
id: { id: {
type: String,
component: { component: {
placeholder: 'dnspod接口账户id', placeholder: 'dnspod接口账户id'
rules: [{ required: true, message: '该项必填' }] },
} rules: [{ required: true, message: '该项必填' }]
}, },
token: { token: {
type: String, title: 'token',
label: 'token',
component: { component: {
placeholder: '开放接口token', placeholder: '开放接口token'
rules: [{ required: true, message: '该项必填' }] },
} rules: [{ required: true, message: '该项必填' }]
} }
} }
} }

View File

@ -5,20 +5,16 @@ export class TencentAccessProvider {
label: '腾讯云', label: '腾讯云',
input: { input: {
secretId: { secretId: {
type: String,
label: 'secretId',
component: { component: {
placeholder: 'secretId', placeholder: 'secretId'
rules: [{ required: true, message: '该项必填' }] },
} rules: [{ required: true, message: '该项必填' }]
}, },
secretKey: { secretKey: {
type: String,
label: 'secretKey',
component: { component: {
placeholder: 'secretKey', placeholder: 'secretKey'
rules: [{ required: true, message: '该项必填' }] },
} rules: [{ required: true, message: '该项必填' }]
} }
} }
} }

View File

@ -9,12 +9,11 @@ export class DnspodDnsProvider extends AbstractDnsProvider {
desc: '腾讯云的域名解析接口已迁移到dnspod', desc: '腾讯云的域名解析接口已迁移到dnspod',
input: { input: {
accessProvider: { accessProvider: {
label: '授权', title: '授权',
type: [String, Object], helper: '需要dnspod类型的授权',
desc: '需要dnspod类型的授权',
component: { component: {
name: 'access-provider-selector', name: 'access-selector',
filter: 'dnspod' type: 'dnspod'
}, },
required: true required: true
} }

View File

@ -15,30 +15,19 @@ export class DeployCertToTencentCDN extends AbstractTencentPlugin {
label: '部署到腾讯云CDN', label: '部署到腾讯云CDN',
input: { input: {
domainName: { domainName: {
label: 'cdn加速域名', title: 'cdn加速域名',
required: true rules: [{ required: true, message: '该项必填' }]
}, },
certName: { certName: {
label: '证书名称', title: '证书名称',
desc: '证书上传后将以此参数作为名称前缀' helper: '证书上传后将以此参数作为名称前缀'
},
certType: {
default: 'upload',
label: '证书来源',
options: [
{ value: 'upload', label: '直接上传' },
{ value: 'cloud', label: '从证书库', desc: '需要uploadCertToTencent作为前置任务' }
],
desc: '如果选择‘从证书库’类型,则需要以《上传证书到腾讯云》作为前置任务',
required: true
}, },
accessProvider: { accessProvider: {
label: 'Access提供者', title: 'Access提供者',
type: [String, Object], helper: 'access 授权',
desc: 'access 授权',
component: { component: {
name: 'access-provider-selector', name: 'access-selector',
filter: 'tencent' type: 'tencent'
}, },
required: true required: true
} }

View File

@ -14,36 +14,37 @@ export class DeployCertToTencentCLB extends AbstractTencentPlugin {
desc: '暂时只支持单向认证证书,暂时只支持通用负载均衡', desc: '暂时只支持单向认证证书,暂时只支持通用负载均衡',
input: { input: {
region: { region: {
label: '大区', title: '大区',
default: 'ap-guangzhou', value: 'ap-guangzhou',
component: {
name: 'a-select',
options: [{ value: 'ap-guangzhou' }]
},
required: true required: true
}, },
domain: { domain: {
label: '域名', title: '域名',
type: [String, Array],
required: true, required: true,
desc: '要更新的支持https的负载均衡的域名' helper: '要更新的支持https的负载均衡的域名'
}, },
loadBalancerId: { loadBalancerId: {
label: '负载均衡ID', title: '负载均衡ID',
desc: '如果没有配置则根据域名匹配负载均衡下的监听器根据域名匹配时暂时只支持前100个', helper: '如果没有配置则根据域名匹配负载均衡下的监听器根据域名匹配时暂时只支持前100个',
required: true required: true
}, },
listenerId: { listenerId: {
label: '监听器ID', title: '监听器ID',
desc: '如果没有配置则根据域名或负载均衡id匹配监听器' helper: '如果没有配置则根据域名或负载均衡id匹配监听器'
}, },
certName: { certName: {
label: '证书名称', title: '证书名称前缀'
desc: '如无uploadCertToTencent作为前置则此项需要设置默认为域名'
}, },
accessProvider: { accessProvider: {
label: 'Access提供者', title: 'Access提供者',
type: [String, Object], helper: 'access授权',
desc: 'access授权',
component: { component: {
name: 'access-provider-selector', name: 'access-selector',
filter: 'tencent' type: 'tencent'
}, },
required: true required: true
} }

View File

@ -15,57 +15,57 @@ export class DeployCertToTencentTKEIngress extends AbstractTencentPlugin {
desc: '需要【上传到腾讯云】作为前置任务', desc: '需要【上传到腾讯云】作为前置任务',
input: { input: {
region: { region: {
label: '大区', title: '大区',
default: 'ap-guangzhou', value: 'ap-guangzhou',
required: true required: true
}, },
clusterId: { clusterId: {
label: '集群ID', title: '集群ID',
required: true, required: true,
desc: '例如cls-6lbj1vee', desc: '例如cls-6lbj1vee',
request: true request: true
}, },
namespace: { namespace: {
label: '集群namespace', title: '集群namespace',
default: 'default', value: 'default',
required: true required: true
}, },
secreteName: { secreteName: {
type: [String, Array], title: '证书的secret名称',
label: '证书的secret名称',
desc: '支持多个(传入数组)',
required: true required: true
}, },
ingressName: { ingressName: {
type: [String, Array], title: 'ingress名称',
label: 'ingress名称', required: true
desc: '支持多个(传入数组)'
}, },
ingressClass: { ingressClass: {
type: String, title: 'ingress类型',
label: 'ingress类型', component: {
desc: '可选 qcloud / nginx' name: 'a-select',
options: [
{ value: 'qcloud' },
{ value: 'nginx' }
]
},
helper: '可选 qcloud / nginx'
}, },
clusterIp: { clusterIp: {
type: String, title: '集群内网ip',
label: '集群内网ip', helper: '如果开启了外网的话,无需设置'
desc: '如果开启了外网的话,无需设置'
}, },
clusterDomain: { clusterDomain: {
type: String, title: '集群域名',
label: '集群域名', helper: '可不填,默认为:[clusterId].ccs.tencent-cloud.com'
desc: '可不填,默认为:[clusterId].ccs.tencent-cloud.com'
}, },
/** /**
* AccessProvider的key,或者一个包含access的具体的对象 * AccessProvider的key,或者一个包含access的具体的对象
*/ */
accessProvider: { accessProvider: {
label: 'Access授权', title: 'Access授权',
type: [String, Object], helper: 'access授权',
desc: 'access授权',
component: { component: {
name: 'access-provider-selector', name: 'access-selector',
filter: 'tencent' type: 'tencent'
}, },
required: true required: true
} }