mirror of
https://github.com/certimate-go/certimate.git
synced 2026-09-24 23:10:13 +08:00
Merge branch 'main' into next
This commit is contained in:
@@ -147,6 +147,7 @@ func createSSLDeployerProvider(options *deployerProviderOptions) (core.SSLDeploy
|
||||
ApiVersion: access.ApiVersion,
|
||||
ApiKey: access.ApiKey,
|
||||
AllowInsecureConnections: access.AllowInsecureConnections,
|
||||
NodeName: xmaps.GetString(options.ProviderServiceConfig, "nodeName"),
|
||||
ResourceType: p1PanelSite.ResourceType(xmaps.GetOrDefaultString(options.ProviderServiceConfig, "resourceType", string(p1PanelSite.RESOURCE_TYPE_WEBSITE))),
|
||||
WebsiteId: xmaps.GetInt64(options.ProviderServiceConfig, "websiteId"),
|
||||
CertificateId: xmaps.GetInt64(options.ProviderServiceConfig, "certificateId"),
|
||||
|
||||
@@ -24,6 +24,9 @@ type SSLDeployerProviderConfig struct {
|
||||
ApiKey string `json:"apiKey"`
|
||||
// 是否允许不安全的连接。
|
||||
AllowInsecureConnections bool `json:"allowInsecureConnections,omitempty"`
|
||||
// 子节点名称。
|
||||
// 选填。
|
||||
NodeName string `json:"nodeName,omitempty"`
|
||||
// 部署资源类型。
|
||||
ResourceType ResourceType `json:"resourceType"`
|
||||
// 网站 ID。
|
||||
@@ -48,7 +51,7 @@ func NewSSLDeployerProvider(config *SSLDeployerProviderConfig) (*SSLDeployerProv
|
||||
return nil, errors.New("the configuration of the ssl deployer provider is nil")
|
||||
}
|
||||
|
||||
client, err := createSDKClient(config.ServerUrl, config.ApiVersion, config.ApiKey, config.AllowInsecureConnections)
|
||||
client, err := createSDKClient(config.ServerUrl, config.ApiVersion, config.ApiKey, config.AllowInsecureConnections, config.NodeName)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not create sdk client: %w", err)
|
||||
}
|
||||
@@ -244,7 +247,7 @@ const (
|
||||
sdkVersionV2 = "v2"
|
||||
)
|
||||
|
||||
func createSDKClient(serverUrl, apiVersion, apiKey string, skipTlsVerify bool) (any, error) {
|
||||
func createSDKClient(serverUrl, apiVersion, apiKey string, skipTlsVerify bool, nodeName string) (any, error) {
|
||||
if apiVersion == sdkVersionV1 {
|
||||
client, err := onepanelsdk.NewClient(serverUrl, apiKey)
|
||||
if err != nil {
|
||||
@@ -257,9 +260,19 @@ func createSDKClient(serverUrl, apiVersion, apiKey string, skipTlsVerify bool) (
|
||||
|
||||
return client, nil
|
||||
} else if apiVersion == sdkVersionV2 {
|
||||
client, err := onepanelsdkv2.NewClient(serverUrl, apiKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
var client *onepanelsdkv2.Client
|
||||
if nodeName == "" {
|
||||
temp, err := onepanelsdkv2.NewClient(serverUrl, apiKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
client = temp
|
||||
} else {
|
||||
temp, err := onepanelsdkv2.NewClientWithNode(serverUrl, apiKey, nodeName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
client = temp
|
||||
}
|
||||
|
||||
if skipTlsVerify {
|
||||
|
||||
@@ -47,6 +47,20 @@ func NewClient(serverUrl, apiKey string) (*Client, error) {
|
||||
return &Client{client}, nil
|
||||
}
|
||||
|
||||
func NewClientWithNode(serverUrl, apiKey, node string) (*Client, error) {
|
||||
client, err := NewClient(serverUrl, apiKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if node == "" {
|
||||
node = "local"
|
||||
}
|
||||
client.client.SetHeader("CurrentNode", node)
|
||||
|
||||
return client, nil
|
||||
}
|
||||
|
||||
func (c *Client) SetTimeout(timeout time.Duration) *Client {
|
||||
c.client.SetTimeout(timeout)
|
||||
return c
|
||||
|
||||
@@ -6,6 +6,7 @@ import { z } from "zod";
|
||||
import Show from "@/components/Show";
|
||||
|
||||
type DeployNodeConfigForm1PanelSiteConfigFieldValues = Nullish<{
|
||||
nodeName?: string;
|
||||
resourceType: string;
|
||||
websiteId?: string | number;
|
||||
certificateId?: string | number;
|
||||
@@ -38,6 +39,7 @@ const DeployNodeConfigForm1PanelSiteConfig = ({
|
||||
const { t } = useTranslation();
|
||||
|
||||
const formSchema = z.object({
|
||||
nodeName: z.string().nullish(),
|
||||
resourceType: z.literal([RESOURCE_TYPE_WEBSITE, RESOURCE_TYPE_CERTIFICATE], t("workflow_node.deploy.form.1panel_site_resource_type.placeholder")),
|
||||
websiteId: z
|
||||
.union([z.string(), z.number().int()])
|
||||
@@ -71,6 +73,15 @@ const DeployNodeConfigForm1PanelSiteConfig = ({
|
||||
name={formName}
|
||||
onValuesChange={handleFormChange}
|
||||
>
|
||||
<Form.Item
|
||||
name="nodeName"
|
||||
label={t("workflow_node.deploy.form.1panel_site_node_name.label")}
|
||||
rules={[formRule]}
|
||||
tooltip={<span dangerouslySetInnerHTML={{ __html: t("workflow_node.deploy.form.1panel_site_node_name.tooltip") }}></span>}
|
||||
>
|
||||
<Input allowClear placeholder={t("workflow_node.deploy.form.1panel_site_node_name.placeholder")} />
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item name="resourceType" label={t("workflow_node.deploy.form.1panel_site_resource_type.label")} rules={[formRule]}>
|
||||
<Select placeholder={t("workflow_node.deploy.form.1panel_site_resource_type.placeholder")}>
|
||||
<Select.Option key={RESOURCE_TYPE_WEBSITE} value={RESOURCE_TYPE_WEBSITE}>
|
||||
|
||||
@@ -126,6 +126,10 @@
|
||||
"workflow_node.deploy.form.certificate.tooltip": "The certificate to be deployed comes from the previous nodes of application or upload.",
|
||||
"workflow_node.deploy.form.params_config.label": "Parameter settings",
|
||||
"workflow_node.deploy.form.1panel_console_auto_restart.label": "Auto restart 1Panel after deployment",
|
||||
"workflow_node.deploy.form.1panel_site_node_name.label": "1Panel node name (Optional)",
|
||||
"workflow_node.deploy.form.1panel_site_node_name.placeholder": "Please enter 1Panel node name",
|
||||
"workflow_node.deploy.form.1panel_site_node_name.tooltip": "You can find it on 1Panel dashboard. Only used for 1Panel v2+.",
|
||||
"workflow_node.deploy.form.aliyun_alb_region.label": "Alibaba Cloud ALB region",
|
||||
"workflow_node.deploy.form.1panel_site_resource_type.label": "Resource type",
|
||||
"workflow_node.deploy.form.1panel_site_resource_type.placeholder": "Please select resource type",
|
||||
"workflow_node.deploy.form.1panel_site_resource_type.option.website.label": "Website",
|
||||
@@ -136,7 +140,6 @@
|
||||
"workflow_node.deploy.form.1panel_site_certificate_id.label": "1Panel certificate ID",
|
||||
"workflow_node.deploy.form.1panel_site_certificate_id.placeholder": "Please enter 1Panel certificate ID",
|
||||
"workflow_node.deploy.form.1panel_site_certificate_id.tooltip": "You can find it on 1Panel dashboard.",
|
||||
"workflow_node.deploy.form.aliyun_alb_region.label": "Alibaba Cloud ALB region",
|
||||
"workflow_node.deploy.form.aliyun_alb_region.placeholder": "Please enter Alibaba Cloud ALB region (e.g. cn-hangzhou)",
|
||||
"workflow_node.deploy.form.aliyun_alb_region.tooltip": "For more information, see <a href=\"https://www.alibabacloud.com/help/en/slb/application-load-balancer/product-overview/supported-regions-and-zones\" target=\"_blank\">https://www.alibabacloud.com/help/en/slb/application-load-balancer/product-overview/supported-regions-and-zones</a>",
|
||||
"workflow_node.deploy.form.aliyun_alb_resource_type.label": "Resource type",
|
||||
|
||||
@@ -125,6 +125,9 @@
|
||||
"workflow_node.deploy.form.certificate.tooltip": "待部署证书来自之前的申请或上传节点。如果选项为空请先确保前序节点配置正确。",
|
||||
"workflow_node.deploy.form.params_config.label": "参数设置",
|
||||
"workflow_node.deploy.form.1panel_console_auto_restart.label": "部署后自动重启 1Panel 服务",
|
||||
"workflow_node.deploy.form.1panel_site_node_name.label": "1Panel 子节点名称(可选)",
|
||||
"workflow_node.deploy.form.1panel_site_node_name.placeholder": "请输入 1Panel 子节点名称",
|
||||
"workflow_node.deploy.form.1panel_site_node_name.tooltip": "请登录 1Panel 面板查看。仅 1Panel v2+ 需要。<br><br>不填写时,将替换主控节点证书;否则,将替换被控节点证书。",
|
||||
"workflow_node.deploy.form.1panel_site_resource_type.label": "证书部署方式",
|
||||
"workflow_node.deploy.form.1panel_site_resource_type.placeholder": "请选择证书部署方式",
|
||||
"workflow_node.deploy.form.1panel_site_resource_type.option.website.label": "替换指定网站的证书",
|
||||
|
||||
Reference in New Issue
Block a user