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: '',
input: {
accessKeyId: {
type: String,
component: {
placeholder: 'accessKeyId',
rules: [{ required: true, message: '必填项' }]
placeholder: 'accessKeyId'
},
required: true
rules: [{ required: true, message: '必填项' }]
},
accessKeySecret: {
type: String,
component: {
placeholder: 'accessKeySecret',
rules: [{ required: true, message: '必填项' }]
}
placeholder: 'accessKeySecret'
},
rules: [{ required: true, message: '必填项' }]
}
},

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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