in alicloud/resource_alicloud_eci_container_group.go [14:884]
func resourceAlicloudEciContainerGroup() *schema.Resource {
return &schema.Resource{
Create: resourceAlicloudEciContainerGroupCreate,
Read: resourceAlicloudEciContainerGroupRead,
Update: resourceAlicloudEciContainerGroupUpdate,
Delete: resourceAlicloudEciContainerGroupDelete,
Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough,
},
Timeouts: &schema.ResourceTimeout{
Create: schema.DefaultTimeout(20 * time.Minute),
Update: schema.DefaultTimeout(20 * time.Minute),
Delete: schema.DefaultTimeout(5 * time.Minute),
},
Schema: map[string]*schema.Schema{
"container_group_name": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
},
"vswitch_id": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
if old != "" && new != "" && old != new {
return strings.Contains(new, old)
}
return false
},
},
"security_group_id": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
},
"instance_type": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Computed: true,
},
"zone_id": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Computed: true,
},
"cpu": {
Type: schema.TypeFloat,
Optional: true,
Computed: true,
ForceNew: true,
},
"memory": {
Type: schema.TypeFloat,
Optional: true,
Computed: true,
ForceNew: true,
},
"ram_role_name": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"resource_group_id": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"restart_policy": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ValidateFunc: StringInSlice([]string{"Always", "Never", "OnFailure"}, false),
},
"auto_match_image_cache": {
Type: schema.TypeBool,
Optional: true,
Computed: true,
},
"plain_http_registry": {
Type: schema.TypeString,
Optional: true,
},
"insecure_registry": {
Type: schema.TypeString,
Optional: true,
},
"auto_create_eip": {
Type: schema.TypeBool,
Optional: true,
},
"eip_bandwidth": {
Type: schema.TypeInt,
Optional: true,
},
"eip_instance_id": {
Type: schema.TypeString,
Optional: true,
},
"tags": tagsSchema(),
"containers": {
Type: schema.TypeList,
Required: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
ForceNew: true,
Required: true,
},
"image": {
Type: schema.TypeString,
Required: true,
},
"cpu": {
Type: schema.TypeFloat,
Optional: true,
Default: 0,
},
"gpu": {
Type: schema.TypeInt,
Optional: true,
ForceNew: true,
Default: 0,
},
"memory": {
Type: schema.TypeFloat,
Optional: true,
Default: 0,
},
"image_pull_policy": {
Type: schema.TypeString,
Optional: true,
Default: "IfNotPresent",
ValidateFunc: StringInSlice([]string{"Always", "IfNotPresent", "Never"}, false),
},
"working_dir": {
Type: schema.TypeString,
Optional: true,
},
"commands": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"args": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"ports": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"port": {
Type: schema.TypeInt,
Optional: true,
},
"protocol": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"environment_vars": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"key": {
Type: schema.TypeString,
Optional: true,
},
"value": {
Type: schema.TypeString,
Optional: true,
},
"field_ref": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"field_path": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
},
},
},
"volume_mounts": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"mount_path": {
Type: schema.TypeString,
Optional: true,
},
"name": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"read_only": {
Type: schema.TypeBool,
Optional: true,
Default: false,
},
},
},
},
"liveness_probe": {
Type: schema.TypeList,
Optional: true,
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"initial_delay_seconds": {
Type: schema.TypeInt,
Optional: true,
},
"period_seconds": {
Type: schema.TypeInt,
Optional: true,
},
"timeout_seconds": {
Type: schema.TypeInt,
Optional: true,
},
"success_threshold": {
Type: schema.TypeInt,
ForceNew: true,
Optional: true,
},
"failure_threshold": {
Type: schema.TypeInt,
Optional: true,
},
"exec": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"commands": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
},
},
},
"tcp_socket": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"port": {
Type: schema.TypeInt,
Optional: true,
},
},
},
},
"http_get": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"scheme": {
Type: schema.TypeString,
Optional: true,
},
"port": {
Type: schema.TypeInt,
Optional: true,
},
"path": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
},
},
},
"readiness_probe": {
Type: schema.TypeList,
Optional: true,
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"initial_delay_seconds": {
Type: schema.TypeInt,
Optional: true,
},
"period_seconds": {
Type: schema.TypeInt,
Optional: true,
},
"timeout_seconds": {
Type: schema.TypeInt,
Optional: true,
},
"success_threshold": {
Type: schema.TypeInt,
ForceNew: true,
Optional: true,
},
"failure_threshold": {
Type: schema.TypeInt,
Optional: true,
},
"exec": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"commands": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
},
},
},
"tcp_socket": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"port": {
Type: schema.TypeInt,
Optional: true,
},
},
},
},
"http_get": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"scheme": {
Type: schema.TypeString,
Optional: true,
},
"port": {
Type: schema.TypeInt,
Optional: true,
},
"path": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
},
},
},
"ready": {
Type: schema.TypeBool,
Computed: true,
},
"restart_count": {
Type: schema.TypeInt,
Computed: true,
},
"security_context": {
Type: schema.TypeList,
Optional: true,
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"capability": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"add": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
},
},
},
"run_as_user": {
Type: schema.TypeInt,
Optional: true,
},
"privileged": {
Type: schema.TypeBool,
Optional: true,
ForceNew: true,
},
},
},
},
"lifecycle_pre_stop_handler_exec": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
},
},
},
"init_containers": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"cpu": {
Type: schema.TypeFloat,
Optional: true,
Default: 0,
},
"gpu": {
Type: schema.TypeInt,
Optional: true,
ForceNew: true,
Default: 0,
},
"memory": {
Type: schema.TypeFloat,
Optional: true,
Default: 0,
},
"image": {
Type: schema.TypeString,
Optional: true,
},
"image_pull_policy": {
Type: schema.TypeString,
Optional: true,
Default: "IfNotPresent",
ValidateFunc: StringInSlice([]string{"Always", "IfNotPresent", "Never"}, false),
},
"working_dir": {
Type: schema.TypeString,
Optional: true,
},
"commands": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"args": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"ports": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"port": {
Type: schema.TypeInt,
Optional: true,
},
"protocol": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"environment_vars": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"key": {
Type: schema.TypeString,
Optional: true,
},
"value": {
Type: schema.TypeString,
Optional: true,
},
"field_ref": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"field_path": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
},
},
},
"volume_mounts": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"mount_path": {
Type: schema.TypeString,
Optional: true,
},
"name": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"read_only": {
Type: schema.TypeBool,
Optional: true,
Default: false,
},
},
},
},
"ready": {
Type: schema.TypeBool,
Computed: true,
},
"restart_count": {
Type: schema.TypeInt,
Computed: true,
},
"security_context": {
Type: schema.TypeList,
Optional: true,
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"capability": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"add": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
},
},
},
"run_as_user": {
Type: schema.TypeInt,
Optional: true,
},
},
},
},
},
},
},
"dns_policy": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Computed: true,
},
"dns_config": {
Type: schema.TypeSet,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name_servers": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"searches": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"options": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Optional: true,
},
"value": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
},
},
},
"eci_security_context": {
Type: schema.TypeSet,
Removed: "Field 'eci_security_context' has been removed from provider version ?",
Optional: true,
ForceNew: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"sysctls": {
Type: schema.TypeList,
Optional: true,
ForceNew: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"value": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
},
},
},
},
},
},
"security_context": {
Type: schema.TypeSet,
Optional: true,
ForceNew: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"sysctl": {
Type: schema.TypeList,
Optional: true,
ForceNew: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"value": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
},
},
},
},
},
},
"host_aliases": {
Type: schema.TypeList,
Optional: true,
ForceNew: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"ip": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"hostnames": {
Type: schema.TypeList,
Optional: true,
ForceNew: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
},
},
},
"volumes": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
ForceNew: true,
Optional: true,
},
"type": {
Type: schema.TypeString,
Optional: true,
},
"disk_volume_disk_id": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"disk_volume_fs_type": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"flex_volume_driver": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"flex_volume_fs_type": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"flex_volume_options": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
return old != "" && new != ""
},
},
"nfs_volume_path": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"nfs_volume_server": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"nfs_volume_read_only": {
Type: schema.TypeBool,
Optional: true,
Default: false,
ForceNew: true,
},
"config_file_volume_config_file_to_paths": {
Type: schema.TypeList,
Optional: true,
ForceNew: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"content": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"path": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
},
},
},
},
},
},
"image_registry_credential": {
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"user_name": {
Type: schema.TypeString,
Required: true,
},
"password": {
Type: schema.TypeString,
Required: true,
},
"server": {
Type: schema.TypeString,
Required: true,
},
},
},
},
"acr_registry_info": {
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"instance_name": {
Type: schema.TypeString,
Optional: true,
},
"instance_id": {
Type: schema.TypeString,
Optional: true,
},
"region_id": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"domains": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
},
},
},
"internet_ip": {
Type: schema.TypeString,
Computed: true,
},
"intranet_ip": {
Type: schema.TypeString,
Computed: true,
},
"status": {
Type: schema.TypeString,
Computed: true,
},
"termination_grace_period_seconds": {
Type: schema.TypeInt,
Optional: true,
},
"spot_price_limit": {
Type: schema.TypeFloat,
ForceNew: true,
Optional: true,
Computed: true,
},
"spot_strategy": {
Type: schema.TypeString,
ForceNew: true,
Optional: true,
Computed: true,
ValidateFunc: StringInSlice([]string{"NoSpot", "SpotAsPriceGo", "SpotWithPriceLimit"}, false),
}},
}
}