diff --git a/eci.go b/eci.go index ce55749..48e9346 100644 --- a/eci.go +++ b/eci.go @@ -185,6 +185,13 @@ func (p *ECIProvider) CreatePod(ctx context.Context, pod *v1.Pod) error { request := eci.CreateCreateContainerGroupRequest() request.RestartPolicy = string(pod.Spec.RestartPolicy) + // 解析ECS规格注解 + if pod.Annotations != nil { + if specs, exists := pod.Annotations["k8s.aliyun.com/eci-use-specs"]; exists { + request.InstanceType = specs + } + } + // 添加抢占式实例策略配置 request.SpotStrategy = "SpotAsPriceGo" // 设置抢占式实例策略为按价格竞价 //request.SpotDuration = 0 // 设置抢占式实例持续时间为0(非定时抢占) diff --git a/eci/create_container_group.go b/eci/create_container_group.go index 2f0d6cb..5c9d31f 100644 --- a/eci/create_container_group.go +++ b/eci/create_container_group.go @@ -92,6 +92,7 @@ type CreateContainerGroupRequest struct { AutoCreateEip requests.Boolean `position:"Query" name:"AutoCreateEip"` ZoneId string `position:"Query" name:"ZoneId"` SpotStrategy string `position:"Query" name:"SpotStrategy"` + InstanceType string `position:"Query" name:"InstanceType"` // SpotDuration requests.Integer `position:"Query" name:"SpotDuration"` }