in alibabacloudstack/resource_apsarastack_edas_k8s_application.go [19:300]
func resourceAlibabacloudStackEdasK8sApplication() *schema.Resource {
resource := &schema.Resource{
Timeouts: &schema.ResourceTimeout{
Create: schema.DefaultTimeout(30 * time.Minute),
Delete: schema.DefaultTimeout(30 * time.Minute),
},
Schema: map[string]*schema.Schema{
"application_name": {
Type: schema.TypeString,
Required: true,
},
"cluster_id": {
Type: schema.TypeString,
ForceNew: true,
Required: true,
},
"replicas": {
Type: schema.TypeInt,
Optional: true,
Default: 1,
},
"image_url": {
Type: schema.TypeString,
Optional: true,
//ConflictsWith: []string{"package_url"},
},
"package_type": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ValidateFunc: validation.StringInSlice([]string{"FatJar", "War", "Image"}, false),
Default: "Image",
},
"application_description": {
Type: schema.TypeString,
Optional: true,
},
"application_descriotion": {
Type: schema.TypeString,
Optional: true,
Deprecated: "Field 'application_descriotion' is deprecated and will be removed in a future release. Please use new field 'application_description' instead.",
},
"limit_mem": {
Type: schema.TypeInt,
Optional: true,
},
"requests_mem": {
Type: schema.TypeInt,
Optional: true,
},
"command": {
Type: schema.TypeString,
Optional: true,
},
"command_args": {
Type: schema.TypeList,
Elem: &schema.Schema{Type: schema.TypeString},
Optional: true,
},
"internet_slb_id": {
Optional: true,
Type: schema.TypeString,
},
"internet_slb_protocol": {
Optional: true,
Type: schema.TypeString,
ValidateFunc: validation.StringInSlice([]string{"TCP", "HTTP", "HTTPS"}, false),
},
"internet_slb_port": {
Type: schema.TypeInt,
Optional: true,
},
"internet_target_port": {
Type: schema.TypeInt,
Optional: true,
},
"intranet_slb_id": {
Optional: true,
Type: schema.TypeString,
},
"intranet_slb_protocol": {
Optional: true,
Type: schema.TypeString,
ValidateFunc: validation.StringInSlice([]string{"TCP", "HTTP", "HTTPS"}, false),
},
"intranet_slb_port": {
Type: schema.TypeInt,
Optional: true,
},
"intranet_target_port": {
Type: schema.TypeInt,
Optional: true,
},
"envs": {
Type: schema.TypeMap,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Optional: true,
},
"pre_stop": {
Type: schema.TypeString,
Optional: true,
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
e := EdasService{}
return e.PreStopEqual(old, new)
},
},
"post_start": {
Type: schema.TypeString,
Optional: true,
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
e := EdasService{}
return e.PostStartEqual(old, new)
},
},
"liveness": {
Type: schema.TypeString,
Optional: true,
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
e := EdasService{}
return e.LivenessEqual(old, new)
},
},
"readiness": {
Type: schema.TypeString,
Optional: true,
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
e := EdasService{}
return e.ReadinessEqual(old, new)
},
},
"nas_id": {
Type: schema.TypeString,
Optional: true,
},
"mount_descs": {
Type: schema.TypeString,
Optional: true,
},
"namespace": {
Type: schema.TypeString,
Optional: true,
},
"logical_region_id": {
Type: schema.TypeString,
Optional: true,
},
"package_url": {
Type: schema.TypeString,
Optional: true,
//ConflictsWith: []string{"image_url"},
},
"package_version": {
Type: schema.TypeString,
Optional: true,
Computed: true,
//Default: strconv.FormatInt(time.Now().Unix(), 10),
},
"jdk": {
Type: schema.TypeString,
Optional: true,
},
"web_container": {
Type: schema.TypeString,
Optional: true,
},
"edas_container_version": {
Type: schema.TypeString,
Optional: true,
},
"requests_m_cpu": {
Type: schema.TypeInt,
Optional: true,
},
"limit_m_cpu": {
Type: schema.TypeInt,
Optional: true,
},
"cr_ee_repo_id": {
Type: schema.TypeString,
Optional: true,
},
"update_type": {
Type: schema.TypeString,
Optional: true,
ValidateFunc: validation.StringInSlice([]string{"BatchUpdate", "GrayBatchUpdate"}, false),
},
"update_batch": {
Type: schema.TypeInt,
Optional: true,
},
"update_release_type": {
Type: schema.TypeString,
Optional: true,
ValidateFunc: validation.StringInSlice([]string{"auto", "manual"}, false),
},
"update_batch_wait_time": {
Type: schema.TypeInt,
Optional: true,
},
"update_gray": {
Type: schema.TypeInt,
Optional: true,
},
"config_mount_descs": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
},
"type": {
Type: schema.TypeString,
Required: true,
ValidateFunc: validation.StringInSlice([]string{"ConfigMap", "Secret"}, false),
},
"mount_path": {
Type: schema.TypeString,
Required: true,
},
},
},
},
"local_volume": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"type": {
Type: schema.TypeString,
Required: true,
// ValidateFunc: validation.StringInSlice([]string{"file", "filepath"}, false),
},
"node_path": {
Type: schema.TypeString,
Required: true,
},
"mount_path": {
Type: schema.TypeString,
Required: true,
},
},
},
},
"pvc_mount_descs": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"pvc_name": {
Type: schema.TypeString,
Required: true,
// ValidateFunc: validation.StringInSlice([]string{"file", "filepath"}, false),
},
"mount_paths": {
Type: schema.TypeList,
Required: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"mount_path": {
Type: schema.TypeString,
Required: true,
},
"read_only": {
Type: schema.TypeBool,
Optional: true,
Default: false,
},
},
},
},
},
},
},
},
}
setResourceFunc(resource, resourceAlibabacloudStackEdasK8sApplicationCreate, resourceAlibabacloudStackEdasK8sApplicationRead, resourceAlibabacloudStackEdasK8sApplicationUpdate, resourceAlibabacloudStackEdasK8sApplicationDelete)
return resource
}