This commit is contained in:
Fu Diwei 2025-09-27 23:14:23 +08:00
parent cf78918ab3
commit 0904c6950c
6 changed files with 28 additions and 6 deletions

View File

@ -20,6 +20,7 @@ func init() {
provider, err := udnr.NewChallengeProvider(&udnr.ChallengeProviderConfig{
PrivateKey: credentials.PrivateKey,
PublicKey: credentials.PublicKey,
ProjectId: credentials.ProjectId,
DnsPropagationTimeout: options.DnsPropagationTimeout,
DnsTTL: options.DnsTTL,
})

View File

@ -19,6 +19,7 @@ const (
EnvPublicKey = envNamespace + "PUBLIC_KEY"
EnvPrivateKey = envNamespace + "PRIVATE_KEY"
EnvProjectId = envNamespace + "PROJECT_ID"
EnvTTL = envNamespace + "TTL"
EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
@ -31,6 +32,7 @@ var _ challenge.ProviderTimeout = (*DNSProvider)(nil)
type Config struct {
PrivateKey string
PublicKey string
ProjectId string
PropagationTimeout time.Duration
PollingInterval time.Duration
@ -53,7 +55,7 @@ func NewDefaultConfig() *Config {
}
func NewDNSProvider() (*DNSProvider, error) {
values, err := env.Get(EnvPrivateKey, EnvPublicKey)
values, err := env.Get(EnvPrivateKey, EnvPublicKey, EnvProjectId)
if err != nil {
return nil, fmt.Errorf("ucloud-udnr: %w", err)
}
@ -61,6 +63,7 @@ func NewDNSProvider() (*DNSProvider, error) {
config := NewDefaultConfig()
config.PrivateKey = values[EnvPrivateKey]
config.PublicKey = values[EnvPublicKey]
config.ProjectId = values[EnvProjectId]
return NewDNSProviderConfig(config)
}
@ -98,6 +101,9 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
udnrDomainDNSQueryReq := d.client.NewQueryDomainDNSRequest()
udnrDomainDNSQueryReq.Dn = ucloud.String(authZone)
if d.config.ProjectId != "" {
udnrDomainDNSQueryReq.SetProjectId(d.config.ProjectId)
}
if udnrDomainDNSQueryResp, err := d.client.QueryDomainDNS(udnrDomainDNSQueryReq); err != nil {
return fmt.Errorf("ucloud-udnr: %w", err)
} else {
@ -108,6 +114,9 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
udnrDomainDNSDeleteReq.DnsType = ucloud.String(record.DnsType)
udnrDomainDNSDeleteReq.RecordName = ucloud.String(record.RecordName)
udnrDomainDNSDeleteReq.Content = ucloud.String(record.Content)
if d.config.ProjectId != "" {
udnrDomainDNSDeleteReq.SetProjectId(d.config.ProjectId)
}
d.client.DeleteDomainDNS(udnrDomainDNSDeleteReq)
break
}
@ -120,6 +129,9 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
udnrDomainDNSAddReq.RecordName = ucloud.String(subDomain)
udnrDomainDNSAddReq.Content = ucloud.String(info.Value)
udnrDomainDNSAddReq.TTL = ucloud.Int(int(d.config.TTL))
if d.config.ProjectId != "" {
udnrDomainDNSAddReq.SetProjectId(d.config.ProjectId)
}
if _, err := d.client.AddDomainDNS(udnrDomainDNSAddReq); err != nil {
return fmt.Errorf("ucloud-udnr: %w", err)
}
@ -142,6 +154,9 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
udnrDomainDNSQueryReq := d.client.NewQueryDomainDNSRequest()
udnrDomainDNSQueryReq.Dn = ucloud.String(authZone)
if d.config.ProjectId != "" {
udnrDomainDNSQueryReq.SetProjectId(d.config.ProjectId)
}
if udnrDomainDNSQueryResp, err := d.client.QueryDomainDNS(udnrDomainDNSQueryReq); err != nil {
return fmt.Errorf("ucloud-udnr: %w", err)
} else {
@ -152,6 +167,9 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
udnrDomainDNSDeleteReq.DnsType = ucloud.String(record.DnsType)
udnrDomainDNSDeleteReq.RecordName = ucloud.String(record.RecordName)
udnrDomainDNSDeleteReq.Content = ucloud.String(record.Content)
if d.config.ProjectId != "" {
udnrDomainDNSDeleteReq.SetProjectId(d.config.ProjectId)
}
d.client.DeleteDomainDNS(udnrDomainDNSDeleteReq)
break
}

View File

@ -11,6 +11,7 @@ import (
type ChallengeProviderConfig struct {
PrivateKey string `json:"privateKey"`
PublicKey string `json:"publicKey"`
ProjectId string `json:"projectId,omitempty"`
DnsPropagationTimeout int32 `json:"dnsPropagationTimeout,omitempty"`
DnsTTL int32 `json:"dnsTTL,omitempty"`
}
@ -23,6 +24,7 @@ func NewChallengeProvider(config *ChallengeProviderConfig) (core.ACMEChallenger,
providerConfig := internal.NewDefaultConfig()
providerConfig.PrivateKey = config.PrivateKey
providerConfig.PublicKey = config.PublicKey
providerConfig.ProjectId = config.ProjectId
if config.DnsTTL != 0 {
providerConfig.TTL = config.DnsTTL
}

View File

@ -90,7 +90,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
getUcdnDomainConfigReq := d.sdkClient.NewGetUcdnDomainConfigRequest()
getUcdnDomainConfigReq.DomainId = []string{d.config.DomainId}
if d.config.ProjectId != "" {
getUcdnDomainConfigReq.ProjectId = ucloud.String(d.config.ProjectId)
getUcdnDomainConfigReq.SetProjectId(d.config.ProjectId)
}
getUcdnDomainConfigResp, err := d.sdkClient.GetUcdnDomainConfig(getUcdnDomainConfigReq)
d.logger.Debug("sdk request 'ucdn.GetUcdnDomainConfig'", slog.Any("request", getUcdnDomainConfigReq), slog.Any("response", getUcdnDomainConfigResp))
@ -112,7 +112,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
updateUcdnDomainHttpsConfigV2Req.CertName = ucloud.String(upres.CertName)
updateUcdnDomainHttpsConfigV2Req.CertType = ucloud.String("ussl")
if d.config.ProjectId != "" {
updateUcdnDomainHttpsConfigV2Req.ProjectId = ucloud.String(d.config.ProjectId)
updateUcdnDomainHttpsConfigV2Req.SetProjectId(d.config.ProjectId)
}
updateUcdnDomainHttpsConfigV2Resp, err := d.sdkClient.UpdateUcdnDomainHttpsConfigV2(updateUcdnDomainHttpsConfigV2Req)
d.logger.Debug("sdk request 'ucdn.UpdateUcdnDomainHttpsConfigV2'", slog.Any("request", updateUcdnDomainHttpsConfigV2Req), slog.Any("response", updateUcdnDomainHttpsConfigV2Resp))

View File

@ -99,7 +99,7 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
addUFileSSLCertReq.USSLId = ucloud.String(upres.CertId)
addUFileSSLCertReq.CertificateName = ucloud.String(upres.CertName)
if d.config.ProjectId != "" {
addUFileSSLCertReq.ProjectId = ucloud.String(d.config.ProjectId)
addUFileSSLCertReq.SetProjectId(d.config.ProjectId)
}
addUFileSSLCertResp, err := d.sdkClient.AddUFileSSLCert(addUFileSSLCertReq)
d.logger.Debug("sdk request 'us3.AddUFileSSLCert'", slog.Any("request", addUFileSSLCertReq), slog.Any("response", addUFileSSLCertResp))

View File

@ -17,8 +17,9 @@
left: 50%;
width: 50px;
height: 50px;
border-radius: 100%;
background-color: #f97316;
border-radius: 50px;
background: orange;
background: var(--color-primary);
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);