oci_datascience_model_deployment

This resource provides the Model Deployment resource in Oracle Cloud Infrastructure Data Science service. Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/data-science/latest/ModelDeployment

Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/datascience

Creates a new model deployment.

Example Usage

resource "oci_datascience_model_deployment" "test_model_deployment" {
	#Required
	compartment_id = var.compartment_id
	model_deployment_configuration_details {
		#Required
		deployment_type = var.model_deployment_model_deployment_configuration_details_deployment_type
		#Optional
		environment_configuration_details {
			#Required
			environment_configuration_type = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_environment_configuration_type

			#Optional
			cmd = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_cmd
			custom_http_endpoints {

				#Optional
				endpoint_uri_suffix = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_custom_http_endpoints_endpoint_uri_suffix
				http_methods = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_custom_http_endpoints_http_methods
			}
			default_environment_variables = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_default_environment_variables
			entrypoint = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_entrypoint
			environment_variables = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_environment_variables
			health_check_port = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_health_check_port
			image = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_image
			image_digest = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_image_digest
			predict_api_specification = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_predict_api_specification
			image_signature_id = oci_datascience_image_signature.test_image_signature.id
			server_port = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_server_port
		}
		infrastructure_configuration_details {
		model_configuration_details {
			#Required
			instance_configuration {
				#Required
				instance_shape_name = oci_core_shape.test_shape.name

				#Optional
				model_deployment_instance_shape_config_details {

					#Optional
					cpu_baseline = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_instance_configuration_model_deployment_instance_shape_config_details_cpu_baseline
					memory_in_gbs = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_instance_configuration_model_deployment_instance_shape_config_details_memory_in_gbs
					ocpus = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_instance_configuration_model_deployment_instance_shape_config_details_ocpus
				}
				network_access_type = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_instance_configuration_network_access_type
				private_endpoint_id = oci_dataflow_private_endpoint.test_private_endpoint.id
				subnet_id = oci_core_subnet.test_subnet.id
			}

			#Optional
			bandwidth_mbps = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_bandwidth_mbps
			maximum_bandwidth_mbps = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_maximum_bandwidth_mbps
			scaling_policy {
				#Required
				policy_type = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_policy_type

				#Optional
				auto_scaling_policies {
					#Required
					auto_scaling_policy_type = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_auto_scaling_policy_type
					initial_instance_count = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_initial_instance_count
					maximum_instance_count = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_maximum_instance_count
					minimum_instance_count = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_minimum_instance_count
					rules {
						#Required
						metric_expression_rule_type = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_metric_expression_rule_type
						scale_in_configuration {

							#Optional
							instance_count_adjustment = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_in_configuration_instance_count_adjustment
							pending_duration = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_in_configuration_pending_duration
							query = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_in_configuration_query
							scaling_configuration_type = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_in_configuration_scaling_configuration_type
							threshold = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_in_configuration_threshold
						}
						scale_out_configuration {

							#Optional
							instance_count_adjustment = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_out_configuration_instance_count_adjustment
							pending_duration = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_out_configuration_pending_duration
							query = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_out_configuration_query
							scaling_configuration_type = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_out_configuration_scaling_configuration_type
							threshold = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_out_configuration_threshold
						}

						#Optional
						metric_type = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_metric_type
					}
				}
				cool_down_in_seconds = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_cool_down_in_seconds
				instance_count = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_instance_count
				is_enabled = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_is_enabled
			}
		}
		model_configuration_details {

			#Optional
			bandwidth_mbps = var.model_deployment_model_deployment_configuration_details_model_configuration_details_bandwidth_mbps
			instance_configuration {

				#Optional
				instance_shape_name = oci_core_shape.test_shape.name
				model_deployment_instance_shape_config_details {

					#Optional
					cpu_baseline = var.model_deployment_model_deployment_configuration_details_model_configuration_details_instance_configuration_model_deployment_instance_shape_config_details_cpu_baseline
					memory_in_gbs = var.model_deployment_model_deployment_configuration_details_model_configuration_details_instance_configuration_model_deployment_instance_shape_config_details_memory_in_gbs
					ocpus = var.model_deployment_model_deployment_configuration_details_model_configuration_details_instance_configuration_model_deployment_instance_shape_config_details_ocpus
				}
				network_access_type = var.model_deployment_model_deployment_configuration_details_model_configuration_details_instance_configuration_network_access_type
				private_endpoint_id = oci_dataflow_private_endpoint.test_private_endpoint.id
				subnet_id = oci_core_subnet.test_subnet.id
			}
			model_id = oci_datascience_model.test_model.id

			#Optional
			bandwidth_mbps = var.model_deployment_model_deployment_configuration_details_model_configuration_details_bandwidth_mbps
			maximum_bandwidth_mbps = var.model_deployment_model_deployment_configuration_details_model_configuration_details_maximum_bandwidth_mbps
			scaling_policy {
				#Required
				policy_type = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_policy_type

				#Optional
				auto_scaling_policies {
					#Required
					auto_scaling_policy_type = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_auto_scaling_policy_type
					initial_instance_count = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_initial_instance_count
					maximum_instance_count = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_maximum_instance_count
					minimum_instance_count = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_minimum_instance_count
					rules {
						#Required
						metric_expression_rule_type = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_metric_expression_rule_type
						scale_in_configuration {

							#Optional
							instance_count_adjustment = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_in_configuration_instance_count_adjustment
							pending_duration = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_in_configuration_pending_duration
							query = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_in_configuration_query
							scaling_configuration_type = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_in_configuration_scaling_configuration_type
							threshold = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_in_configuration_threshold
						}
						scale_out_configuration {

							#Optional
							instance_count_adjustment = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_out_configuration_instance_count_adjustment
							pending_duration = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_out_configuration_pending_duration
							query = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_out_configuration_query
							scaling_configuration_type = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_out_configuration_scaling_configuration_type
							threshold = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_out_configuration_threshold
						}

						#Optional
						metric_type = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_auto_scaling_policies_rules_metric_type
					}
				}
				cool_down_in_seconds = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_cool_down_in_seconds
				instance_count = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_instance_count
				is_enabled = var.model_deployment_model_deployment_configuration_details_model_configuration_details_scaling_policy_is_enabled
			}
		}

		#Optional
		environment_configuration_details {
			#Required
			environment_configuration_type = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_environment_configuration_type

			#Optional
			cmd = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_cmd
			entrypoint = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_entrypoint
			environment_variables = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_environment_variables
			health_check_port = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_health_check_port
			image = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_image
			image_digest = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_image_digest
			server_port = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_server_port
		}
	}
	project_id = oci_datascience_project.test_project.id

	#Optional
	category_log_details {

		#Optional
		access {
			#Required
			log_group_id = oci_logging_log_group.test_log_group.id
			log_id = oci_logging_log.test_log.id
		}
		predict {
			#Required
			log_group_id = oci_logging_log_group.test_log_group.id
			log_id = oci_logging_log.test_log.id
		}
	}
	defined_tags = {"Operations.CostCenter"= "42"}
	description = var.model_deployment_description
	display_name = var.model_deployment_display_name
	freeform_tags = {"Department"= "Finance"}
	opc_parent_rpt_url = var.model_deployment_opc_parent_rpt_url
}

Example terraform config for deployment_type = "SINGLE_MODEL_FLEX" with infrastructure_type = "MANAGED_COMPUTE_CLUSTER" and autoscaling:

resource "oci_datascience_model_deployment" "test_single_model_flex_model_deployment" {
	#Required
	compartment_id = var.compartment_id
	model_deployment_configuration_details {
		#Required
		deployment_type = "SINGLE_MODEL_FLEX"

		#Optional
		environment_configuration_details {
			#Required
			environment_configuration_type = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_environment_configuration_type

			#Optional
			cmd = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_cmd
			default_environment_variables = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_default_environment_variables
			entrypoint = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_entrypoint
			environment_variables = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_environment_variables
			health_check_port = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_health_check_port
			image = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_image
			image_digest = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_image_digest
			image_signature_id = oci_datascience_image_signature.test_image_signature.id
			server_port = var.model_deployment_model_deployment_configuration_details_environment_configuration_details_server_port
		}
		infrastructure_configuration_details {
			#Required
			compute_target_id = oci_datascience_compute_target.test_compute_target.id
			infrastructure_type = "MANAGED_COMPUTE_CLUSTER"

			#Optional
			model_deployment_resource_configuration {
				#Required
				resource_request_configuration {
					#Required
					memory_in_gbs = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_model_deployment_resource_configuration_resource_request_configuration_memory_in_gbs
					ocpus = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_model_deployment_resource_configuration_resource_request_configuration_ocpus

					#Optional
					gpus = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_model_deployment_resource_configuration_resource_request_configuration_gpus
				}

				#Optional
				resource_limit_configuration {
					#Required
					memory_in_gbs = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_model_deployment_resource_configuration_resource_limit_configuration_memory_in_gbs
					ocpus = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_model_deployment_resource_configuration_resource_limit_configuration_ocpus
				}
			}
			scaling_policy {
				#Required
				policy_type = "AUTOSCALING"

				#Optional
				auto_scaling_policies {
					#Required
					auto_scaling_policy_type = "THRESHOLD"
					initial_instance_count = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_initial_instance_count
					maximum_instance_count = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_maximum_instance_count
					minimum_instance_count = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_minimum_instance_count
					rules {
						#Required
						metric_expression_rule_type = "TARGET_PREDEFINED_EXPRESSION"
						metric_type = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_metric_type
						scale_configuration {
							#Required
							target_scaling_configuration_type = "THRESHOLD"
							threshold = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_configuration_threshold
						}
					}
					rules {
						#Required
						metric_expression_rule_type = "TARGET_CUSTOM_EXPRESSION"
						scale_configuration {
							#Required
							query = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_configuration_query
							target_scaling_configuration_type = "QUERY"
							threshold = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_configuration_threshold

							#Optional
							metric_namespace = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_rules_scale_configuration_metric_namespace
						}
					}
					scale_in_policy {
						#Optional
						cool_down_in_seconds = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_scale_in_policy_cool_down_in_seconds
						instance_count_adjustment = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_scale_in_policy_instance_count_adjustment
						pending_duration = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_scale_in_policy_pending_duration
					}
					scale_out_policy {
						#Optional
						cool_down_in_seconds = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_scale_out_policy_cool_down_in_seconds
						instance_count_adjustment = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_scale_out_policy_instance_count_adjustment
						pending_duration = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_auto_scaling_policies_scale_out_policy_pending_duration
					}
				}
				is_enabled = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_is_enabled
			}
		}
		model_configuration_details {
			#Required
			model_id = oci_datascience_model.test_model.id
		}
	}
	#Required
	project_id = oci_datascience_project.test_project.id

	#Optional
	category_log_details {

		#Optional
		access {
			#Required
			log_group_id = oci_logging_log_group.test_log_group.id
			log_id = oci_logging_log.test_log.id
		}
		predict {
			#Required
			log_group_id = oci_logging_log_group.test_log_group.id
			log_id = oci_logging_log.test_log.id
		}
	}
	defined_tags = {"Operations.CostCenter"= "42"}
	description = var.model_deployment_description
	display_name = var.model_deployment_display_name
	freeform_tags = {"Department"= "Finance"}
	opc_parent_rpt_url = var.model_deployment_opc_parent_rpt_url
}

Example terraform config for deployment_type = "SINGLE_MODEL_FLEX" with infrastructure_type = "MANAGED_COMPUTE_CLUSTER" and fixed size scaling:

resource "oci_datascience_model_deployment" "test_single_model_flex_fixed_size_model_deployment" {
	#Required
	compartment_id = var.compartment_id
	model_deployment_configuration_details {
		#Required
		deployment_type = "SINGLE_MODEL_FLEX"
		infrastructure_configuration_details {
			#Required
			compute_target_id = oci_datascience_compute_target.test_compute_target.id
			infrastructure_type = "MANAGED_COMPUTE_CLUSTER"
			scaling_policy {
				#Required
				instance_count = var.model_deployment_model_deployment_configuration_details_infrastructure_configuration_details_scaling_policy_instance_count
				policy_type = "FIXED_SIZE"
			}
		}
		model_configuration_details {
			#Required
			model_id = oci_datascience_model.test_model.id
		}
	}
	#Required
	project_id = oci_datascience_project.test_project.id
}

Argument Reference

The following arguments are supported:

** IMPORTANT ** Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values

Attributes Reference

The following attributes are exported:

SINGLE_MODEL_FLEX Exported Attributes

The following attributes are exported for deployment_type = SINGLE_MODEL_FLEX.

Timeouts

The timeouts block allows you to specify timeouts for certain operations: * create - (Defaults to 20 minutes), when creating the Model Deployment * update - (Defaults to 20 minutes), when updating the Model Deployment * delete - (Defaults to 20 minutes), when destroying the Model Deployment

Import

ModelDeployments can be imported using the id, e.g.

$ terraform import oci_datascience_model_deployment.test_model_deployment "id"