diff --git a/internal/certmgmt/deployers/sp_volcengine_alb.go b/internal/certmgmt/deployers/sp_volcengine_alb.go
index ae306cbae..ff18c346f 100644
--- a/internal/certmgmt/deployers/sp_volcengine_alb.go
+++ b/internal/certmgmt/deployers/sp_volcengine_alb.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcenginealb.NewDeployer(&volcenginealb.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
Region: xmaps.GetString(options.ProviderExtendedConfig, "region"),
DeployTarget: xmaps.GetString(options.ProviderExtendedConfig, "deployTarget"),
LoadbalancerId: xmaps.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
diff --git a/internal/certmgmt/deployers/sp_volcengine_apig.go b/internal/certmgmt/deployers/sp_volcengine_apig.go
index 20d010dea..80f463d76 100644
--- a/internal/certmgmt/deployers/sp_volcengine_apig.go
+++ b/internal/certmgmt/deployers/sp_volcengine_apig.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcengineapig.NewDeployer(&volcengineapig.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
Region: xmaps.GetString(options.ProviderExtendedConfig, "region"),
DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
diff --git a/internal/certmgmt/deployers/sp_volcengine_cdn.go b/internal/certmgmt/deployers/sp_volcengine_cdn.go
index 843086b94..6afd4a6a2 100644
--- a/internal/certmgmt/deployers/sp_volcengine_cdn.go
+++ b/internal/certmgmt/deployers/sp_volcengine_cdn.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcenginecdn.NewDeployer(&volcenginecdn.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
})
diff --git a/internal/certmgmt/deployers/sp_volcengine_certcenter.go b/internal/certmgmt/deployers/sp_volcengine_certcenter.go
index ebaa0e8e1..507f5e76a 100644
--- a/internal/certmgmt/deployers/sp_volcengine_certcenter.go
+++ b/internal/certmgmt/deployers/sp_volcengine_certcenter.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcenginecertcenter.NewDeployer(&volcenginecertcenter.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
Region: xmaps.GetString(options.ProviderExtendedConfig, "region"),
})
return provider, err
diff --git a/internal/certmgmt/deployers/sp_volcengine_clb.go b/internal/certmgmt/deployers/sp_volcengine_clb.go
index 959b02197..862045e87 100644
--- a/internal/certmgmt/deployers/sp_volcengine_clb.go
+++ b/internal/certmgmt/deployers/sp_volcengine_clb.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcengineclb.NewDeployer(&volcengineclb.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
Region: xmaps.GetString(options.ProviderExtendedConfig, "region"),
DeployTarget: xmaps.GetString(options.ProviderExtendedConfig, "deployTarget"),
LoadbalancerId: xmaps.GetString(options.ProviderExtendedConfig, "loadbalancerId"),
diff --git a/internal/certmgmt/deployers/sp_volcengine_dcdn.go b/internal/certmgmt/deployers/sp_volcengine_dcdn.go
index bbb516216..9216ac1de 100644
--- a/internal/certmgmt/deployers/sp_volcengine_dcdn.go
+++ b/internal/certmgmt/deployers/sp_volcengine_dcdn.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcenginedcdn.NewDeployer(&volcenginedcdn.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
})
diff --git a/internal/certmgmt/deployers/sp_volcengine_imagex.go b/internal/certmgmt/deployers/sp_volcengine_imagex.go
index 1e8f1b376..43bf3dab1 100644
--- a/internal/certmgmt/deployers/sp_volcengine_imagex.go
+++ b/internal/certmgmt/deployers/sp_volcengine_imagex.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcengineimagex.NewDeployer(&volcengineimagex.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
Region: xmaps.GetString(options.ProviderExtendedConfig, "region"),
ServiceId: xmaps.GetString(options.ProviderExtendedConfig, "serviceId"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
diff --git a/internal/certmgmt/deployers/sp_volcengine_live.go b/internal/certmgmt/deployers/sp_volcengine_live.go
index 276201ac1..252b0001b 100644
--- a/internal/certmgmt/deployers/sp_volcengine_live.go
+++ b/internal/certmgmt/deployers/sp_volcengine_live.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcenginelive.NewDeployer(&volcenginelive.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
})
diff --git a/internal/certmgmt/deployers/sp_volcengine_tos.go b/internal/certmgmt/deployers/sp_volcengine_tos.go
index e4021d037..916acd4f6 100644
--- a/internal/certmgmt/deployers/sp_volcengine_tos.go
+++ b/internal/certmgmt/deployers/sp_volcengine_tos.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcenginetos.NewDeployer(&volcenginetos.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
Region: xmaps.GetString(options.ProviderExtendedConfig, "region"),
Bucket: xmaps.GetString(options.ProviderExtendedConfig, "bucket"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
diff --git a/internal/certmgmt/deployers/sp_volcengine_vod.go b/internal/certmgmt/deployers/sp_volcengine_vod.go
index 9ff2127f3..b28c9f046 100644
--- a/internal/certmgmt/deployers/sp_volcengine_vod.go
+++ b/internal/certmgmt/deployers/sp_volcengine_vod.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcenginevod.NewDeployer(&volcenginevod.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
SpaceName: xmaps.GetString(options.ProviderExtendedConfig, "spaceName"),
DomainMatchPattern: xmaps.GetString(options.ProviderExtendedConfig, "domainMatchPattern"),
DomainType: xmaps.GetString(options.ProviderExtendedConfig, "domainType"),
diff --git a/internal/certmgmt/deployers/sp_volcengine_waf.go b/internal/certmgmt/deployers/sp_volcengine_waf.go
index 04534d205..b5685f575 100644
--- a/internal/certmgmt/deployers/sp_volcengine_waf.go
+++ b/internal/certmgmt/deployers/sp_volcengine_waf.go
@@ -19,6 +19,7 @@ func init() {
provider, err := volcenginewaf.NewDeployer(&volcenginewaf.DeployerConfig{
AccessKeyId: credentials.AccessKeyId,
AccessKeySecret: credentials.SecretAccessKey,
+ ProjectName: credentials.ProjectName,
Region: xmaps.GetString(options.ProviderExtendedConfig, "region"),
AccessMode: xmaps.GetString(options.ProviderExtendedConfig, "accessMode"),
Domain: xmaps.GetString(options.ProviderExtendedConfig, "domain"),
diff --git a/internal/domain/access.go b/internal/domain/access.go
index a46d70b85..14ae89bbf 100644
--- a/internal/domain/access.go
+++ b/internal/domain/access.go
@@ -620,6 +620,7 @@ type AccessConfigForVercel struct {
type AccessConfigForVolcEngine struct {
AccessKeyId string `json:"accessKeyId"`
SecretAccessKey string `json:"secretAccessKey"`
+ ProjectName string `json:"projectName,omitempty"`
}
type AccessConfigForVultr struct {
diff --git a/pkg/core/certmgr/providers/volcengine-cdn/volcengine_cdn.go b/pkg/core/certmgr/providers/volcengine-cdn/volcengine_cdn.go
index d66e00a98..c794a6aa8 100644
--- a/pkg/core/certmgr/providers/volcengine-cdn/volcengine_cdn.go
+++ b/pkg/core/certmgr/providers/volcengine-cdn/volcengine_cdn.go
@@ -23,6 +23,8 @@ type CertmgrConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
}
type Certmgr struct {
diff --git a/pkg/core/certmgr/providers/volcengine-certcenter/volcengine_certcenter.go b/pkg/core/certmgr/providers/volcengine-certcenter/volcengine_certcenter.go
index 8a14eddd8..a3b0133dc 100644
--- a/pkg/core/certmgr/providers/volcengine-certcenter/volcengine_certcenter.go
+++ b/pkg/core/certmgr/providers/volcengine-certcenter/volcengine_certcenter.go
@@ -5,6 +5,7 @@ import (
"fmt"
"log/slog"
+ "github.com/samber/lo"
ve "github.com/volcengine/volcengine-go-sdk/volcengine"
vesession "github.com/volcengine/volcengine-go-sdk/volcengine/session"
@@ -17,6 +18,8 @@ type CertmgrConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 火山引擎地域。
Region string `json:"region"`
}
@@ -58,6 +61,7 @@ func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM string) (*cert
// 上传证书
// REF: https://www.volcengine.com/docs/6638/1365580
importCertificateReq := &vecertificateservice.ImportCertificateInput{
+ ProjectName: lo.EmptyableToPtr(c.config.ProjectName),
CertificateInfo: &vecertificateservice.CertificateInfoForImportCertificateInput{
CertificateChain: ve.String(certPEM),
PrivateKey: ve.String(privkeyPEM),
diff --git a/pkg/core/certmgr/providers/volcengine-live/volcengine_live.go b/pkg/core/certmgr/providers/volcengine-live/volcengine_live.go
index 91d6d5d2f..a0beaf060 100644
--- a/pkg/core/certmgr/providers/volcengine-live/volcengine_live.go
+++ b/pkg/core/certmgr/providers/volcengine-live/volcengine_live.go
@@ -7,6 +7,7 @@ import (
"strings"
"time"
+ "github.com/samber/lo"
velive "github.com/volcengine/volc-sdk-golang/service/live/v20230101"
ve "github.com/volcengine/volcengine-go-sdk/volcengine"
@@ -19,6 +20,8 @@ type CertmgrConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
}
type Certmgr struct {
@@ -57,6 +60,7 @@ func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM string) (*cert
// 查询证书列表,避免重复上传
// REF: https://www.volcengine.com/docs/6469/1186278#%E6%9F%A5%E8%AF%A2%E8%AF%81%E4%B9%A6%E5%88%97%E8%A1%A8
listCertReq := &velive.ListCertV2Body{}
+ listCertReq.ProjectName = lo.EmptyableToPtr(c.config.ProjectName)
listCertResp, err := c.sdkClient.ListCertV2(ctx, listCertReq)
c.logger.Debug("sdk request 'live.ListCertV2'", slog.Any("request", listCertReq), slog.Any("response", listCertResp))
if err != nil {
@@ -93,7 +97,8 @@ func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM string) (*cert
// 上传新证书
// REF: https://www.volcengine.com/docs/6469/1186278#%E6%B7%BB%E5%8A%A0%E8%AF%81%E4%B9%A6
createCertReq := &velive.CreateCertBody{
- CertName: ve.String(certName),
+ ProjectName: lo.EmptyableToPtr(c.config.ProjectName),
+ CertName: ve.String(certName),
Rsa: velive.CreateCertBodyRsa{
Prikey: privkeyPEM,
Pubkey: certPEM,
diff --git a/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go b/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go
index 099fe9719..88f7385fe 100644
--- a/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go
+++ b/pkg/core/deployer/providers/volcengine-alb/volcengine_alb.go
@@ -21,6 +21,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 火山引擎地域。
Region string `json:"region"`
// 部署目标。
@@ -58,6 +60,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
Region: config.Region,
})
if err != nil {
@@ -139,6 +142,7 @@ func (d *Deployer) deployToLoadbalancer(ctx context.Context, cloudCertId string)
}
describeListenersReq := &vealb.DescribeListenersInput{
+ ProjectName: lo.EmptyableToPtr(d.config.ProjectName),
LoadBalancerId: ve.String(d.config.LoadbalancerId),
Protocol: ve.String("HTTPS"),
PageNumber: ve.Int64(int64(describeListenersPageNumber)),
diff --git a/pkg/core/deployer/providers/volcengine-apig/volcengine_apig.go b/pkg/core/deployer/providers/volcengine-apig/volcengine_apig.go
index 4bbf74df1..814ed1e81 100644
--- a/pkg/core/deployer/providers/volcengine-apig/volcengine_apig.go
+++ b/pkg/core/deployer/providers/volcengine-apig/volcengine_apig.go
@@ -22,6 +22,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 火山引擎地域。
Region string `json:"region"`
// 域名匹配模式。
@@ -53,6 +55,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
Region: config.Region,
})
if err != nil {
diff --git a/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go b/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go
index 701f4ec93..93a7169bb 100644
--- a/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go
+++ b/pkg/core/deployer/providers/volcengine-cdn/volcengine_cdn.go
@@ -7,6 +7,7 @@ import (
"log/slog"
"strings"
+ "github.com/samber/lo"
ve "github.com/volcengine/volcengine-go-sdk/volcengine"
vesession "github.com/volcengine/volcengine-go-sdk/volcengine/session"
@@ -22,6 +23,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 域名匹配模式。
// 零值时默认值 [DOMAIN_MATCH_PATTERN_EXACT]。
DomainMatchPattern string `json:"domainMatchPattern,omitempty"`
@@ -51,6 +54,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
})
if err != nil {
return nil, fmt.Errorf("could not create certmgr: %w", err)
@@ -168,6 +172,7 @@ func (d *Deployer) getMatchedDomainsByWildcard(ctx context.Context, wildcardDoma
}
listCdnDomainsReq := &vecdn.ListCdnDomainsInput{
+ Project: lo.EmptyableToPtr(d.config.ProjectName),
Domain: ve.String(strings.TrimPrefix(wildcardDomain, "*.")),
Status: ve.String("online"),
PageNum: ve.Int64(int64(listCdnDomainsPageNum)),
diff --git a/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go b/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go
index d37c3f6ac..aaa51d488 100644
--- a/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go
+++ b/pkg/core/deployer/providers/volcengine-certcenter/volcengine_certcenter.go
@@ -15,6 +15,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 火山引擎地域。
Region string `json:"region"`
}
@@ -35,6 +37,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
Region: config.Region,
})
if err != nil {
diff --git a/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go b/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go
index 43093f6bd..ff3f0f5d9 100644
--- a/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go
+++ b/pkg/core/deployer/providers/volcengine-clb/volcengine_clb.go
@@ -20,6 +20,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 火山引擎地域。
Region string `json:"region"`
// 部署目标。
@@ -54,6 +56,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
Region: config.Region,
})
if err != nil {
diff --git a/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go b/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go
index e0d3372a7..097550223 100644
--- a/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go
+++ b/pkg/core/deployer/providers/volcengine-dcdn/volcengine_dcdn.go
@@ -22,6 +22,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 火山引擎地域。
Region string `json:"region"`
// 域名匹配模式。
@@ -53,6 +55,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
Region: config.Region,
})
if err != nil {
@@ -162,7 +165,7 @@ func (d *Deployer) getAllDomains(ctx context.Context) ([]string, error) {
domains := make([]string, 0)
// 查询域名配置列表
- // https://www.volcengine.com/docs/6559/1171745
+ // REF: https://www.volcengine.com/docs/6559/1171745
listDomainConfigPageNumber := 1
listDomainConfigPageSize := 100
for {
@@ -173,8 +176,9 @@ func (d *Deployer) getAllDomains(ctx context.Context) ([]string, error) {
}
listDomainConfigReq := &vedcdn.ListDomainConfigInput{
- PageNumber: ve.Int32(int32(listDomainConfigPageNumber)),
- PageSize: ve.Int32(int32(listDomainConfigPageSize)),
+ ProjectName: lo.IfF(d.config.ProjectName != "", func() []*string { return ve.StringSlice([]string{d.config.ProjectName}) }).Else(nil),
+ PageNumber: ve.Int32(int32(listDomainConfigPageNumber)),
+ PageSize: ve.Int32(int32(listDomainConfigPageSize)),
}
listDomainConfigResp, err := d.sdkClient.ListDomainConfigWithContext(ctx, listDomainConfigReq)
d.logger.Debug("sdk request 'dcdn.ListDomainConfig'", slog.Any("request", listDomainConfigReq), slog.Any("response", listDomainConfigResp))
diff --git a/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go b/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go
index aab05c0f3..44891c8bb 100644
--- a/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go
+++ b/pkg/core/deployer/providers/volcengine-imagex/volcengine_imagex.go
@@ -18,6 +18,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 火山引擎地域。
Region string `json:"region"`
// 服务 ID。
@@ -48,6 +50,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
Region: config.Region,
})
if err != nil {
diff --git a/pkg/core/deployer/providers/volcengine-live/volcengine_live.go b/pkg/core/deployer/providers/volcengine-live/volcengine_live.go
index 9a7ec6604..40b46176b 100644
--- a/pkg/core/deployer/providers/volcengine-live/volcengine_live.go
+++ b/pkg/core/deployer/providers/volcengine-live/volcengine_live.go
@@ -22,6 +22,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 域名匹配模式。
// 零值时默认值 [DOMAIN_MATCH_PATTERN_EXACT]。
DomainMatchPattern string `json:"domainMatchPattern,omitempty"`
@@ -50,6 +52,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
})
if err != nil {
return nil, fmt.Errorf("could not create certmgr: %w", err)
diff --git a/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go b/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go
index d1206940e..8666582fe 100644
--- a/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go
+++ b/pkg/core/deployer/providers/volcengine-tos/volcengine_tos.go
@@ -17,6 +17,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 火山引擎地域。
Region string `json:"region"`
// 存储桶名。
@@ -47,6 +49,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
Region: config.Region,
})
if err != nil {
diff --git a/pkg/core/deployer/providers/volcengine-vod/volcengine_vod.go b/pkg/core/deployer/providers/volcengine-vod/volcengine_vod.go
index a1cae7bf0..d840b8b0a 100644
--- a/pkg/core/deployer/providers/volcengine-vod/volcengine_vod.go
+++ b/pkg/core/deployer/providers/volcengine-vod/volcengine_vod.go
@@ -24,6 +24,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 点播空间名称。
SpaceName string `json:"spaceName"`
// 域名匹配模式。
@@ -56,6 +58,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
})
if err != nil {
return nil, fmt.Errorf("could not create certmgr: %w", err)
diff --git a/pkg/core/deployer/providers/volcengine-waf/volcengine_waf.go b/pkg/core/deployer/providers/volcengine-waf/volcengine_waf.go
index 1ceb95eea..bbbb2c849 100644
--- a/pkg/core/deployer/providers/volcengine-waf/volcengine_waf.go
+++ b/pkg/core/deployer/providers/volcengine-waf/volcengine_waf.go
@@ -21,6 +21,8 @@ type DeployerConfig struct {
AccessKeyId string `json:"accessKeyId"`
// 火山引擎 AccessKeySecret。
AccessKeySecret string `json:"accessKeySecret"`
+ // 火山引擎项目名称。
+ ProjectName string `json:"projectName,omitempty"`
// 火山引擎地域。
Region string `json:"region"`
// WAF 接入模式。
@@ -51,6 +53,7 @@ func NewDeployer(config *DeployerConfig) (*Deployer, error) {
pcertmgr, err := certmgrimpl.NewCertmgr(&certmgrimpl.CertmgrConfig{
AccessKeyId: config.AccessKeyId,
AccessKeySecret: config.AccessKeySecret,
+ ProjectName: config.ProjectName,
Region: config.Region,
})
if err != nil {
@@ -106,6 +109,7 @@ func (d *Deployer) deployWithCNAME(ctx context.Context, cloudCertId string) erro
// 查询云 WAF 实例防护网站信息
// REF: https://www.volcengine.com/docs/6511/1214827
listDomainReq := &vewaf.ListDomainInput{
+ ProjectName: lo.EmptyableToPtr(d.config.ProjectName),
Region: ve.String(d.config.Region),
Domain: ve.String(d.config.Domain),
AccurateQuery: ve.Int32(1),
@@ -124,6 +128,7 @@ func (d *Deployer) deployWithCNAME(ctx context.Context, cloudCertId string) erro
// REF: https://www.volcengine.com/docs/6511/1214835
domainInfo := listDomainResp.Data[0]
updateDomainReq := &vewaf.UpdateDomainInput{
+ ProjectName: lo.EmptyableToPtr(d.config.ProjectName),
Region: ve.String(d.config.Region),
Domain: ve.String(d.config.Domain),
AccessMode: ve.Int32(10),
diff --git a/ui/src/components/access/forms/AccessConfigFieldsProviderVolcEngine.tsx b/ui/src/components/access/forms/AccessConfigFieldsProviderVolcEngine.tsx
index 1485944fb..2fe6dbe95 100644
--- a/ui/src/components/access/forms/AccessConfigFieldsProviderVolcEngine.tsx
+++ b/ui/src/components/access/forms/AccessConfigFieldsProviderVolcEngine.tsx
@@ -36,6 +36,16 @@ const AccessConfigFormFieldsProviderVolcEngine = () => {
>