mirror of https://github.com/certd/certd
perf: 支持阿里云oss
parent
6314e8d7eb
commit
87a2673e8c
|
@ -39,6 +39,7 @@
|
||||||
"@midwayjs/static-file": "^3.16.4",
|
"@midwayjs/static-file": "^3.16.4",
|
||||||
"@midwayjs/typeorm": "^3.16.4",
|
"@midwayjs/typeorm": "^3.16.4",
|
||||||
"@midwayjs/validate": "^3.16.4",
|
"@midwayjs/validate": "^3.16.4",
|
||||||
|
"ali-oss": "^6.21.0",
|
||||||
"axios": "^1.7.2",
|
"axios": "^1.7.2",
|
||||||
"basic-ftp": "^5.0.5",
|
"basic-ftp": "^5.0.5",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
|
@ -69,6 +70,7 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@midwayjs/mock": "^3.16.4",
|
"@midwayjs/mock": "^3.16.4",
|
||||||
|
"@types/ali-oss": "^6.16.11",
|
||||||
"@types/cache-manager": "^3.4.3",
|
"@types/cache-manager": "^3.4.3",
|
||||||
"@types/jest": "^26.0.24",
|
"@types/jest": "^26.0.24",
|
||||||
"@types/koa": "2.13.4",
|
"@types/koa": "2.13.4",
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
import { IsAccess, AccessInput } from '@certd/pipeline';
|
|
||||||
|
|
||||||
@IsAccess({
|
|
||||||
name: 'aliyun',
|
|
||||||
title: '阿里云授权',
|
|
||||||
desc: '',
|
|
||||||
})
|
|
||||||
export class AliyunAccess {
|
|
||||||
@AccessInput({
|
|
||||||
title: 'accessKeyId',
|
|
||||||
component: {
|
|
||||||
placeholder: 'accessKeyId',
|
|
||||||
},
|
|
||||||
helper: '登录阿里云控制台->AccessKey管理页面获取。',
|
|
||||||
required: true,
|
|
||||||
})
|
|
||||||
accessKeyId = '';
|
|
||||||
@AccessInput({
|
|
||||||
title: 'accessKeySecret',
|
|
||||||
component: {
|
|
||||||
placeholder: 'accessKeySecret',
|
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
encrypt: true,
|
|
||||||
helper: '注意:证书申请需要dns解析权限;其他阿里云插件,需要对应的权限,比如证书上传需要证书管理权限;嫌麻烦就用主账号的全量权限的accessKey',
|
|
||||||
})
|
|
||||||
accessKeySecret = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
new AliyunAccess();
|
|
|
@ -1 +0,0 @@
|
||||||
export * from './aliyun-access.js';
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
||||||
import { Autowire, ILogger } from '@certd/pipeline';
|
import { Autowire, ILogger } from '@certd/pipeline';
|
||||||
import { AliyunAccess } from '../access/index.js';
|
import { AliyunAccess } from '@certd/plugin-plus';
|
||||||
|
|
||||||
@IsDnsProvider({
|
@IsDnsProvider({
|
||||||
name: 'aliyun',
|
name: 'aliyun',
|
||||||
title: '阿里云',
|
title: '阿里云',
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
export * from './dns-provider/index.js';
|
export * from './dns-provider/index.js';
|
||||||
export * from './plugin/index.js';
|
export * from './plugin/index.js';
|
||||||
export * from './access/index.js';
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput, utils } from '@certd/pipeline';
|
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput, utils } from '@certd/pipeline';
|
||||||
import { AliyunAccess } from '../../access/index.js';
|
import { AliyunAccess } from '@certd/plugin-plus';
|
||||||
import { appendTimeSuffix } from '../../utils/index.js';
|
import { appendTimeSuffix } from '../../utils/index.js';
|
||||||
import { CertInfo } from '@certd/plugin-cert';
|
import { CertInfo } from '@certd/plugin-cert';
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ export class DeployCertToAliyunAckIngressPlugin extends AbstractTaskPlugin {
|
||||||
this.K8sClient = sdk.K8sClient;
|
this.K8sClient = sdk.K8sClient;
|
||||||
}
|
}
|
||||||
async execute(): Promise<void> {
|
async execute(): Promise<void> {
|
||||||
console.log('开始部署证书到阿里云cdn');
|
this.logger.info('开始部署证书到阿里云cdn');
|
||||||
const { regionId, ingressClass, clusterId, isPrivateIpAddress, cert } = this;
|
const { regionId, ingressClass, clusterId, isPrivateIpAddress, cert } = this;
|
||||||
const access = (await this.accessService.getById(this.accessId)) as AliyunAccess;
|
const access = (await this.accessService.getById(this.accessId)) as AliyunAccess;
|
||||||
const client = await this.getClient(access, regionId);
|
const client = await this.getClient(access, regionId);
|
||||||
|
@ -144,7 +144,7 @@ export class DeployCertToAliyunAckIngressPlugin extends AbstractTaskPlugin {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
const ingressList = await k8sClient.getIngressList({ namespace });
|
const ingressList = await k8sClient.getIngressList({ namespace });
|
||||||
console.log('ingressList:', ingressList);
|
this.logger.info('ingressList:', ingressList);
|
||||||
if (!ingressList || !ingressList.items) {
|
if (!ingressList || !ingressList.items) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline';
|
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { AliyunAccess } from '../../access/index.js';
|
import { AliyunAccess } from "@certd/plugin-plus";
|
||||||
@IsTaskPlugin({
|
@IsTaskPlugin({
|
||||||
name: 'DeployCertToAliyunCDN',
|
name: 'DeployCertToAliyunCDN',
|
||||||
title: '部署证书至阿里云CDN',
|
title: '部署证书至阿里云CDN',
|
||||||
|
@ -50,12 +50,12 @@ export class DeployCertToAliyunCDN extends AbstractTaskPlugin {
|
||||||
|
|
||||||
async onInstance() {}
|
async onInstance() {}
|
||||||
async execute(): Promise<void> {
|
async execute(): Promise<void> {
|
||||||
console.log('开始部署证书到阿里云cdn');
|
this.logger.info('开始部署证书到阿里云cdn');
|
||||||
const access = (await this.accessService.getById(this.accessId)) as AliyunAccess;
|
const access = (await this.accessService.getById(this.accessId)) as AliyunAccess;
|
||||||
const client = await this.getClient(access);
|
const client = await this.getClient(access);
|
||||||
const params = await this.buildParams();
|
const params = await this.buildParams();
|
||||||
await this.doRequest(client, params);
|
await this.doRequest(client, params);
|
||||||
console.log('部署完成');
|
this.logger.info('部署完成');
|
||||||
}
|
}
|
||||||
|
|
||||||
async getClient(access: AliyunAccess) {
|
async getClient(access: AliyunAccess) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline';
|
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { AliyunAccess } from '../../access/index.js';
|
import { AliyunAccess } from "@certd/plugin-plus";
|
||||||
@IsTaskPlugin({
|
@IsTaskPlugin({
|
||||||
name: 'DeployCertToAliyunDCDN',
|
name: 'DeployCertToAliyunDCDN',
|
||||||
title: '部署证书至阿里云DCDN',
|
title: '部署证书至阿里云DCDN',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput, TaskOutput } from '@certd/pipeline';
|
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput, TaskOutput } from '@certd/pipeline';
|
||||||
import { appendTimeSuffix, checkRet } from '../../utils/index.js';
|
import { appendTimeSuffix, checkRet } from '../../utils/index.js';
|
||||||
import { AliyunAccess } from '../../access/index.js';
|
import { AliyunAccess } from "@certd/plugin-plus";
|
||||||
|
|
||||||
@IsTaskPlugin({
|
@IsTaskPlugin({
|
||||||
name: 'uploadCertToAliyun',
|
name: 'uploadCertToAliyun',
|
||||||
|
|
Loading…
Reference in New Issue