Documentation
¶
Index ¶
- type Cluster
- func (r *Cluster) AdditionalInfo() pulumi.StringOutput
- func (r *Cluster) Applications() pulumi.ArrayOutput
- func (r *Cluster) AutoscalingRole() pulumi.StringOutput
- func (r *Cluster) BootstrapActions() pulumi.ArrayOutput
- func (r *Cluster) ClusterState() pulumi.StringOutput
- func (r *Cluster) Configurations() pulumi.StringOutput
- func (r *Cluster) ConfigurationsJson() pulumi.StringOutput
- func (r *Cluster) CoreInstanceCount() pulumi.IntOutput
- func (r *Cluster) CoreInstanceGroup() pulumi.Output
- func (r *Cluster) CoreInstanceType() pulumi.StringOutput
- func (r *Cluster) CustomAmiId() pulumi.StringOutput
- func (r *Cluster) EbsRootVolumeSize() pulumi.IntOutput
- func (r *Cluster) Ec2Attributes() pulumi.Output
- func (r *Cluster) ID() pulumi.IDOutput
- func (r *Cluster) InstanceGroups() pulumi.ArrayOutput
- func (r *Cluster) KeepJobFlowAliveWhenNoSteps() pulumi.BoolOutput
- func (r *Cluster) KerberosAttributes() pulumi.Output
- func (r *Cluster) LogUri() pulumi.StringOutput
- func (r *Cluster) MasterInstanceGroup() pulumi.Output
- func (r *Cluster) MasterInstanceType() pulumi.StringOutput
- func (r *Cluster) MasterPublicDns() pulumi.StringOutput
- func (r *Cluster) Name() pulumi.StringOutput
- func (r *Cluster) ReleaseLabel() pulumi.StringOutput
- func (r *Cluster) ScaleDownBehavior() pulumi.StringOutput
- func (r *Cluster) SecurityConfiguration() pulumi.StringOutput
- func (r *Cluster) ServiceRole() pulumi.StringOutput
- func (r *Cluster) Steps() pulumi.ArrayOutput
- func (r *Cluster) Tags() pulumi.MapOutput
- func (r *Cluster) TerminationProtection() pulumi.BoolOutput
- func (r *Cluster) URN() pulumi.URNOutput
- func (r *Cluster) VisibleToAllUsers() pulumi.BoolOutput
- type ClusterArgs
- type ClusterState
- type InstanceGroup
- func (r *InstanceGroup) AutoscalingPolicy() pulumi.StringOutput
- func (r *InstanceGroup) BidPrice() pulumi.StringOutput
- func (r *InstanceGroup) ClusterId() pulumi.StringOutput
- func (r *InstanceGroup) ConfigurationsJson() pulumi.StringOutput
- func (r *InstanceGroup) EbsConfigs() pulumi.ArrayOutput
- func (r *InstanceGroup) EbsOptimized() pulumi.BoolOutput
- func (r *InstanceGroup) ID() pulumi.IDOutput
- func (r *InstanceGroup) InstanceCount() pulumi.IntOutput
- func (r *InstanceGroup) InstanceType() pulumi.StringOutput
- func (r *InstanceGroup) Name() pulumi.StringOutput
- func (r *InstanceGroup) RunningInstanceCount() pulumi.IntOutput
- func (r *InstanceGroup) Status() pulumi.StringOutput
- func (r *InstanceGroup) URN() pulumi.URNOutput
- type InstanceGroupArgs
- type InstanceGroupState
- type SecurityConfiguration
- func (r *SecurityConfiguration) Configuration() pulumi.StringOutput
- func (r *SecurityConfiguration) CreationDate() pulumi.StringOutput
- func (r *SecurityConfiguration) ID() pulumi.IDOutput
- func (r *SecurityConfiguration) Name() pulumi.StringOutput
- func (r *SecurityConfiguration) NamePrefix() pulumi.StringOutput
- func (r *SecurityConfiguration) URN() pulumi.URNOutput
- type SecurityConfigurationArgs
- type SecurityConfigurationState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cluster ¶
type Cluster struct {
// contains filtered or unexported fields
}
Provides an Elastic MapReduce Cluster, a web service that makes it easy to process large amounts of data efficiently. See [Amazon Elastic MapReduce Documentation](https://aws.amazon.com/documentation/elastic-mapreduce/) for more information.
To configure [Instance Groups](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for [task nodes](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-task), see the [`emr.InstanceGroup` resource](https://www.terraform.io/docs/providers/aws/r/emr_instance_group.html).
> Support for [Instance Fleets](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-fleets) will be made available in an upcoming release.
## coreInstanceGroup Configuration Block
Supported arguments for the `coreInstanceGroup` configuration block:
* `instanceType` - (Required) EC2 instance type for all instances in the instance group. * `autoscalingPolicy` - (Optional) String containing the [EMR Auto Scaling Policy](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html) JSON. * `bidPrice` - (Optional) Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances. * `ebsConfig` - (Optional) Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below. * `instanceCount` - (Optional) Target number of instances for the instance group. Must be at least 1. Defaults to 1. * `name` - (Optional) Friendly name given to the instance group.
## ec2Attributes
Attributes for the Amazon EC2 instances running the job flow ¶
* `keyName` - (Optional) Amazon EC2 key pair that can be used to ssh to the master node as the user called `hadoop` * `subnetId` - (Optional) VPC subnet id where you want the job flow to launch. Cannot specify the `cc1.4xlarge` instance type for nodes of a job flow launched in a Amazon VPC * `additionalMasterSecurityGroups` - (Optional) String containing a comma separated list of additional Amazon EC2 security group IDs for the master node * `additionalSlaveSecurityGroups` - (Optional) String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string * `emrManagedMasterSecurityGroup` - (Optional) Identifier of the Amazon EC2 EMR-Managed security group for the master node * `emrManagedSlaveSecurityGroup` - (Optional) Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes * `serviceAccessSecurityGroup` - (Optional) Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet * `instanceProfile` - (Required) Instance Profile for EC2 instances of the cluster assume this role
> **NOTE on EMR-Managed security groups:** These security groups will have any missing inbound or outbound access rules added and maintained by AWS, to ensure proper communication between instances in a cluster. The EMR service will maintain these rules for groups provided in `emrManagedMasterSecurityGroup` and `emrManagedSlaveSecurityGroup`; attempts to remove the required rules may succeed, only for the EMR service to re-add them in a matter of minutes. This may cause this provider to fail to destroy an environment that contains an EMR cluster, because the EMR service does not revoke rules added on deletion, leaving a cyclic dependency between the security groups that prevents their deletion. To avoid this, use the `revokeRulesOnDelete` optional attribute for any Security Group used in `emrManagedMasterSecurityGroup` and `emrManagedSlaveSecurityGroup`. See [Amazon EMR-Managed Security Groups](http://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html) for more information about the EMR-managed security group rules.
## kerberosAttributes
Attributes for Kerberos configuration ¶
* `adDomainJoinPassword` - (Optional) The Active Directory password for `adDomainJoinUser`. This provider cannot perform drift detection of this configuration. * `adDomainJoinUser` - (Optional) Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration. * `crossRealmTrustPrincipalPassword` - (Optional) Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration. * `kdcAdminPassword` - (Required) The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration. * `realm` - (Required) The name of the Kerberos realm to which all nodes in a cluster belong. For example, `EC2.INTERNAL`
## instanceGroup
Attributes for each task instance group in the cluster ¶
* `instanceRole` - (Required) The role of the instance group in the cluster. Valid values are: `MASTER`, `CORE`, and `TASK`. * `instanceType` - (Required) The EC2 instance type for all instances in the instance group * `instanceCount` - (Optional) Target number of instances for the instance group * `name` - (Optional) Friendly name given to the instance group * `bidPrice` - (Optional) If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances. * `ebsConfig` - (Optional) A list of attributes for the EBS volumes attached to each instance in the instance group. Each `ebsConfig` defined will result in additional EBS volumes being attached to _each_ instance in the instance group. Defined below * `autoscalingPolicy` - (Optional) The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)
## masterInstanceGroup Configuration Block
Supported nested arguments for the `masterInstanceGroup` configuration block:
* `instanceType` - (Required) EC2 instance type for all instances in the instance group. * `bidPrice` - (Optional) Bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances. * `ebsConfig` - (Optional) Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below. * `instanceCount` - (Optional) Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have [map public IP on launch](https://www.terraform.io/docs/providers/aws/r/subnet.html#map_public_ip_on_launch) enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource. * `name` - (Optional) Friendly name given to the instance group.
## ebsConfig
Attributes for the EBS volumes attached to each EC2 instance in the `instanceGroup`
* `size` - (Required) The volume size, in gibibytes (GiB). * `type` - (Required) The volume type. Valid options are `gp2`, `io1`, `standard` and `st1`. See [EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html). * `iops` - (Optional) The number of I/O operations per second (IOPS) that the volume supports * `volumesPerInstance` - (Optional) The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1)
## bootstrapAction
* `name` - (Required) Name of the bootstrap action * `path` - (Required) Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system * `args` - (Optional) List of command line arguments to pass to the bootstrap action script
## step
Attributes for step configuration ¶
* `actionOnFailure` - (Required) The action to take if the step fails. Valid values: `TERMINATE_JOB_FLOW`, `TERMINATE_CLUSTER`, `CANCEL_AND_WAIT`, and `CONTINUE` * `hadoopJarStep` - (Required) The JAR file used for the step. Defined below. * `name` - (Required) The name of the step.
### hadoopJarStep
Attributes for Hadoop job step configuration ¶
* `args` - (Optional) List of command line arguments passed to the JAR file's main function when executed. * `jar` - (Required) Path to a JAR file run during the step. * `mainClass` - (Optional) Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file. * `properties` - (Optional) Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.
> This content is derived from https://github.com/terraform-providers/terraform-provider-aws/blob/master/website/docs/r/emr_cluster.html.markdown.
func GetCluster ¶
func GetCluster(ctx *pulumi.Context, name string, id pulumi.ID, state *ClusterState, opts ...pulumi.ResourceOpt) (*Cluster, error)
GetCluster gets an existing Cluster resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewCluster ¶
func NewCluster(ctx *pulumi.Context, name string, args *ClusterArgs, opts ...pulumi.ResourceOpt) (*Cluster, error)
NewCluster registers a new resource with the given unique name, arguments, and options.
func (*Cluster) AdditionalInfo ¶
func (r *Cluster) AdditionalInfo() pulumi.StringOutput
A JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore this provider cannot detect drift from the actual EMR cluster if its value is changed outside this provider.
func (*Cluster) Applications ¶
func (r *Cluster) Applications() pulumi.ArrayOutput
A list of applications for the cluster. Valid values are: `Flink`, `Hadoop`, `Hive`, `Mahout`, `Pig`, `Spark`, and `JupyterHub` (as of EMR 5.14.0). Case insensitive
func (*Cluster) AutoscalingRole ¶
func (r *Cluster) AutoscalingRole() pulumi.StringOutput
An IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
func (*Cluster) BootstrapActions ¶
func (r *Cluster) BootstrapActions() pulumi.ArrayOutput
List of bootstrap actions that will be run before Hadoop is started on the cluster nodes. Defined below
func (*Cluster) ClusterState ¶
func (r *Cluster) ClusterState() pulumi.StringOutput
func (*Cluster) Configurations ¶
func (r *Cluster) Configurations() pulumi.StringOutput
List of configurations supplied for the EMR cluster you are creating
func (*Cluster) ConfigurationsJson ¶ added in v0.15.1
func (r *Cluster) ConfigurationsJson() pulumi.StringOutput
A JSON string for supplying list of configurations for the EMR cluster.
func (*Cluster) CoreInstanceCount ¶
Use the `coreInstanceGroup` configuration block `instanceCount` argument instead. Number of Amazon EC2 instances used to execute the job flow. EMR will use one node as the cluster's master node and use the remainder of the nodes (`coreInstanceCount`-1) as core nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set. Default `1`
func (*Cluster) CoreInstanceGroup ¶ added in v0.18.4
Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [core node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-core). Cannot be specified if `coreInstanceCount` argument, `coreInstanceType` argument, or `instanceGroup` configuration blocks are set. Detailed below.
func (*Cluster) CoreInstanceType ¶
func (r *Cluster) CoreInstanceType() pulumi.StringOutput
Use the `coreInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the slave nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set.
func (*Cluster) CustomAmiId ¶
func (r *Cluster) CustomAmiId() pulumi.StringOutput
A custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
func (*Cluster) EbsRootVolumeSize ¶
Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
func (*Cluster) Ec2Attributes ¶
Attributes for the EC2 instances running the job flow. Defined below
func (*Cluster) InstanceGroups ¶
func (r *Cluster) InstanceGroups() pulumi.ArrayOutput
Use the `masterInstanceGroup` configuration block, `coreInstanceGroup` configuration block and [`emr.InstanceGroup` resource(s)](https://www.terraform.io/docs/providers/aws/r/emr_instance_group.html) instead. A list of `instanceGroup` objects for each instance group in the cluster. Exactly one of `masterInstanceType` and `instanceGroup` must be specified. If `instanceGroup` is set, then it must contain a configuration block for at least the `MASTER` instance group type (as well as any additional instance groups). Cannot be specified if `masterInstanceGroup` or `coreInstanceGroup` configuration blocks are set. Defined below
func (*Cluster) KeepJobFlowAliveWhenNoSteps ¶
func (r *Cluster) KeepJobFlowAliveWhenNoSteps() pulumi.BoolOutput
Switch on/off run cluster with no steps or when all steps are complete (default is on)
func (*Cluster) KerberosAttributes ¶
Kerberos configuration for the cluster. Defined below
func (*Cluster) LogUri ¶
func (r *Cluster) LogUri() pulumi.StringOutput
S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created
func (*Cluster) MasterInstanceGroup ¶ added in v0.18.4
Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [master node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-master). Cannot be specified if `masterInstanceType` argument or `instanceGroup` configuration blocks are set. Detailed below.
func (*Cluster) MasterInstanceType ¶
func (r *Cluster) MasterInstanceType() pulumi.StringOutput
Use the `masterInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the master node. Cannot be specified if `masterInstanceGroup` or `instanceGroup` configuration blocks are set.
func (*Cluster) MasterPublicDns ¶
func (r *Cluster) MasterPublicDns() pulumi.StringOutput
The public DNS name of the master EC2 instance. * `core_instance_group.0.id` - Core node type Instance Group ID, if using Instance Group for this node type.
func (*Cluster) ReleaseLabel ¶
func (r *Cluster) ReleaseLabel() pulumi.StringOutput
The release label for the Amazon EMR release
func (*Cluster) ScaleDownBehavior ¶
func (r *Cluster) ScaleDownBehavior() pulumi.StringOutput
The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an `instance group` is resized.
func (*Cluster) SecurityConfiguration ¶
func (r *Cluster) SecurityConfiguration() pulumi.StringOutput
The security configuration name to attach to the EMR cluster. Only valid for EMR clusters with `releaseLabel` 4.8.0 or greater
func (*Cluster) ServiceRole ¶
func (r *Cluster) ServiceRole() pulumi.StringOutput
IAM role that will be assumed by the Amazon EMR service to access AWS resources
func (*Cluster) Steps ¶
func (r *Cluster) Steps() pulumi.ArrayOutput
List of steps to run when creating the cluster. Defined below. It is highly recommended to utilize the [lifecycle configuration block](https://www.terraform.io/docs/configuration/resources.html) with `ignoreChanges` if other steps are being managed outside of this provider. This argument is processed in [attribute-as-blocks mode](https://www.terraform.io/docs/configuration/attr-as-blocks.html).
func (*Cluster) TerminationProtection ¶
func (r *Cluster) TerminationProtection() pulumi.BoolOutput
Switch on/off termination protection (default is `false`, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to `false`.
func (*Cluster) VisibleToAllUsers ¶
func (r *Cluster) VisibleToAllUsers() pulumi.BoolOutput
Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default `true`
type ClusterArgs ¶
type ClusterArgs struct { // A JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore this provider cannot detect drift from the actual EMR cluster if its value is changed outside this provider. AdditionalInfo interface{} // A list of applications for the cluster. Valid values are: `Flink`, `Hadoop`, `Hive`, `Mahout`, `Pig`, `Spark`, and `JupyterHub` (as of EMR 5.14.0). Case insensitive Applications interface{} // An IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group. AutoscalingRole interface{} // List of bootstrap actions that will be run before Hadoop is started on the cluster nodes. Defined below BootstrapActions interface{} // List of configurations supplied for the EMR cluster you are creating Configurations interface{} // A JSON string for supplying list of configurations for the EMR cluster. ConfigurationsJson interface{} // Use the `coreInstanceGroup` configuration block `instanceCount` argument instead. Number of Amazon EC2 instances used to execute the job flow. EMR will use one node as the cluster's master node and use the remainder of the nodes (`coreInstanceCount`-1) as core nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set. Default `1` CoreInstanceCount interface{} // Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [core node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-core). Cannot be specified if `coreInstanceCount` argument, `coreInstanceType` argument, or `instanceGroup` configuration blocks are set. Detailed below. CoreInstanceGroup interface{} // Use the `coreInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the slave nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set. CoreInstanceType interface{} // A custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later. CustomAmiId interface{} // Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later. EbsRootVolumeSize interface{} // Attributes for the EC2 instances running the job flow. Defined below Ec2Attributes interface{} // Use the `masterInstanceGroup` configuration block, `coreInstanceGroup` configuration block and [`emr.InstanceGroup` resource(s)](https://www.terraform.io/docs/providers/aws/r/emr_instance_group.html) instead. A list of `instanceGroup` objects for each instance group in the cluster. Exactly one of `masterInstanceType` and `instanceGroup` must be specified. If `instanceGroup` is set, then it must contain a configuration block for at least the `MASTER` instance group type (as well as any additional instance groups). Cannot be specified if `masterInstanceGroup` or `coreInstanceGroup` configuration blocks are set. Defined below InstanceGroups interface{} // Switch on/off run cluster with no steps or when all steps are complete (default is on) KeepJobFlowAliveWhenNoSteps interface{} // Kerberos configuration for the cluster. Defined below KerberosAttributes interface{} // S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created LogUri interface{} // Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [master node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-master). Cannot be specified if `masterInstanceType` argument or `instanceGroup` configuration blocks are set. Detailed below. MasterInstanceGroup interface{} // Use the `masterInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the master node. Cannot be specified if `masterInstanceGroup` or `instanceGroup` configuration blocks are set. MasterInstanceType interface{} // The name of the job flow Name interface{} // The release label for the Amazon EMR release ReleaseLabel interface{} // The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an `instance group` is resized. ScaleDownBehavior interface{} // The security configuration name to attach to the EMR cluster. Only valid for EMR clusters with `releaseLabel` 4.8.0 or greater SecurityConfiguration interface{} // IAM role that will be assumed by the Amazon EMR service to access AWS resources ServiceRole interface{} // List of steps to run when creating the cluster. Defined below. It is highly recommended to utilize the [lifecycle configuration block](https://www.terraform.io/docs/configuration/resources.html) with `ignoreChanges` if other steps are being managed outside of this provider. This argument is processed in [attribute-as-blocks mode](https://www.terraform.io/docs/configuration/attr-as-blocks.html). Steps interface{} // list of tags to apply to the EMR Cluster Tags interface{} // Switch on/off termination protection (default is `false`, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to `false`. TerminationProtection interface{} // Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default `true` VisibleToAllUsers interface{} }
The set of arguments for constructing a Cluster resource.
type ClusterState ¶
type ClusterState struct { // A JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore this provider cannot detect drift from the actual EMR cluster if its value is changed outside this provider. AdditionalInfo interface{} // A list of applications for the cluster. Valid values are: `Flink`, `Hadoop`, `Hive`, `Mahout`, `Pig`, `Spark`, and `JupyterHub` (as of EMR 5.14.0). Case insensitive Applications interface{} // An IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group. AutoscalingRole interface{} // List of bootstrap actions that will be run before Hadoop is started on the cluster nodes. Defined below BootstrapActions interface{} ClusterState interface{} // List of configurations supplied for the EMR cluster you are creating Configurations interface{} // A JSON string for supplying list of configurations for the EMR cluster. ConfigurationsJson interface{} // Use the `coreInstanceGroup` configuration block `instanceCount` argument instead. Number of Amazon EC2 instances used to execute the job flow. EMR will use one node as the cluster's master node and use the remainder of the nodes (`coreInstanceCount`-1) as core nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set. Default `1` CoreInstanceCount interface{} // Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [core node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-core). Cannot be specified if `coreInstanceCount` argument, `coreInstanceType` argument, or `instanceGroup` configuration blocks are set. Detailed below. CoreInstanceGroup interface{} // Use the `coreInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the slave nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set. CoreInstanceType interface{} // A custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later. CustomAmiId interface{} // Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later. EbsRootVolumeSize interface{} // Attributes for the EC2 instances running the job flow. Defined below Ec2Attributes interface{} // Use the `masterInstanceGroup` configuration block, `coreInstanceGroup` configuration block and [`emr.InstanceGroup` resource(s)](https://www.terraform.io/docs/providers/aws/r/emr_instance_group.html) instead. A list of `instanceGroup` objects for each instance group in the cluster. Exactly one of `masterInstanceType` and `instanceGroup` must be specified. If `instanceGroup` is set, then it must contain a configuration block for at least the `MASTER` instance group type (as well as any additional instance groups). Cannot be specified if `masterInstanceGroup` or `coreInstanceGroup` configuration blocks are set. Defined below InstanceGroups interface{} // Switch on/off run cluster with no steps or when all steps are complete (default is on) KeepJobFlowAliveWhenNoSteps interface{} // Kerberos configuration for the cluster. Defined below KerberosAttributes interface{} // S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created LogUri interface{} // Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [master node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-master). Cannot be specified if `masterInstanceType` argument or `instanceGroup` configuration blocks are set. Detailed below. MasterInstanceGroup interface{} // Use the `masterInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the master node. Cannot be specified if `masterInstanceGroup` or `instanceGroup` configuration blocks are set. MasterInstanceType interface{} // The public DNS name of the master EC2 instance. // * `core_instance_group.0.id` - Core node type Instance Group ID, if using Instance Group for this node type. MasterPublicDns interface{} // The name of the job flow Name interface{} // The release label for the Amazon EMR release ReleaseLabel interface{} // The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an `instance group` is resized. ScaleDownBehavior interface{} // The security configuration name to attach to the EMR cluster. Only valid for EMR clusters with `releaseLabel` 4.8.0 or greater SecurityConfiguration interface{} // IAM role that will be assumed by the Amazon EMR service to access AWS resources ServiceRole interface{} // List of steps to run when creating the cluster. Defined below. It is highly recommended to utilize the [lifecycle configuration block](https://www.terraform.io/docs/configuration/resources.html) with `ignoreChanges` if other steps are being managed outside of this provider. This argument is processed in [attribute-as-blocks mode](https://www.terraform.io/docs/configuration/attr-as-blocks.html). Steps interface{} // list of tags to apply to the EMR Cluster Tags interface{} // Switch on/off termination protection (default is `false`, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to `false`. TerminationProtection interface{} // Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default `true` VisibleToAllUsers interface{} }
Input properties used for looking up and filtering Cluster resources.
type InstanceGroup ¶
type InstanceGroup struct {
// contains filtered or unexported fields
}
Provides an Elastic MapReduce Cluster Instance Group configuration. See [Amazon Elastic MapReduce Documentation](https://aws.amazon.com/documentation/emr/) for more information.
> **NOTE:** At this time, Instance Groups cannot be destroyed through the API nor web interface. Instance Groups are destroyed when the EMR Cluster is destroyed. this provider will resize any Instance Group to zero when destroying the resource.
> This content is derived from https://github.com/terraform-providers/terraform-provider-aws/blob/master/website/docs/r/emr_instance_group.html.markdown.
func GetInstanceGroup ¶
func GetInstanceGroup(ctx *pulumi.Context, name string, id pulumi.ID, state *InstanceGroupState, opts ...pulumi.ResourceOpt) (*InstanceGroup, error)
GetInstanceGroup gets an existing InstanceGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewInstanceGroup ¶
func NewInstanceGroup(ctx *pulumi.Context, name string, args *InstanceGroupArgs, opts ...pulumi.ResourceOpt) (*InstanceGroup, error)
NewInstanceGroup registers a new resource with the given unique name, arguments, and options.
func (*InstanceGroup) AutoscalingPolicy ¶ added in v0.18.4
func (r *InstanceGroup) AutoscalingPolicy() pulumi.StringOutput
The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)
func (*InstanceGroup) BidPrice ¶ added in v0.18.4
func (r *InstanceGroup) BidPrice() pulumi.StringOutput
If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
func (*InstanceGroup) ClusterId ¶
func (r *InstanceGroup) ClusterId() pulumi.StringOutput
ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
func (*InstanceGroup) ConfigurationsJson ¶ added in v1.6.0
func (r *InstanceGroup) ConfigurationsJson() pulumi.StringOutput
A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.
func (*InstanceGroup) EbsConfigs ¶
func (r *InstanceGroup) EbsConfigs() pulumi.ArrayOutput
One or more `ebsConfig` blocks as defined below. Changing this forces a new resource to be created.
func (*InstanceGroup) EbsOptimized ¶
func (r *InstanceGroup) EbsOptimized() pulumi.BoolOutput
Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
func (*InstanceGroup) ID ¶
func (r *InstanceGroup) ID() pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*InstanceGroup) InstanceCount ¶
func (r *InstanceGroup) InstanceCount() pulumi.IntOutput
target number of instances for the instance group. defaults to 0.
func (*InstanceGroup) InstanceType ¶
func (r *InstanceGroup) InstanceType() pulumi.StringOutput
The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
func (*InstanceGroup) Name ¶
func (r *InstanceGroup) Name() pulumi.StringOutput
Human friendly name given to the instance group. Changing this forces a new resource to be created.
func (*InstanceGroup) RunningInstanceCount ¶
func (r *InstanceGroup) RunningInstanceCount() pulumi.IntOutput
func (*InstanceGroup) Status ¶
func (r *InstanceGroup) Status() pulumi.StringOutput
func (*InstanceGroup) URN ¶
func (r *InstanceGroup) URN() pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type InstanceGroupArgs ¶
type InstanceGroupArgs struct { // The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html) AutoscalingPolicy interface{} // If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances. BidPrice interface{} // ID of the EMR Cluster to attach to. Changing this forces a new resource to be created. ClusterId interface{} // A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later. ConfigurationsJson interface{} // One or more `ebsConfig` blocks as defined below. Changing this forces a new resource to be created. EbsConfigs interface{} // Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created. EbsOptimized interface{} // target number of instances for the instance group. defaults to 0. InstanceCount interface{} // The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created. InstanceType interface{} // Human friendly name given to the instance group. Changing this forces a new resource to be created. Name interface{} }
The set of arguments for constructing a InstanceGroup resource.
type InstanceGroupState ¶
type InstanceGroupState struct { // The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html) AutoscalingPolicy interface{} // If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances. BidPrice interface{} // ID of the EMR Cluster to attach to. Changing this forces a new resource to be created. ClusterId interface{} // A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later. ConfigurationsJson interface{} // One or more `ebsConfig` blocks as defined below. Changing this forces a new resource to be created. EbsConfigs interface{} // Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created. EbsOptimized interface{} // target number of instances for the instance group. defaults to 0. InstanceCount interface{} // The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created. InstanceType interface{} // Human friendly name given to the instance group. Changing this forces a new resource to be created. Name interface{} RunningInstanceCount interface{} Status interface{} }
Input properties used for looking up and filtering InstanceGroup resources.
type SecurityConfiguration ¶
type SecurityConfiguration struct {
// contains filtered or unexported fields
}
Provides a resource to manage AWS EMR Security Configurations
> This content is derived from https://github.com/terraform-providers/terraform-provider-aws/blob/master/website/docs/r/emr_security_configuration.html.markdown.
func GetSecurityConfiguration ¶
func GetSecurityConfiguration(ctx *pulumi.Context, name string, id pulumi.ID, state *SecurityConfigurationState, opts ...pulumi.ResourceOpt) (*SecurityConfiguration, error)
GetSecurityConfiguration gets an existing SecurityConfiguration resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewSecurityConfiguration ¶
func NewSecurityConfiguration(ctx *pulumi.Context, name string, args *SecurityConfigurationArgs, opts ...pulumi.ResourceOpt) (*SecurityConfiguration, error)
NewSecurityConfiguration registers a new resource with the given unique name, arguments, and options.
func (*SecurityConfiguration) Configuration ¶
func (r *SecurityConfiguration) Configuration() pulumi.StringOutput
A JSON formatted Security Configuration
func (*SecurityConfiguration) CreationDate ¶
func (r *SecurityConfiguration) CreationDate() pulumi.StringOutput
Date the Security Configuration was created
func (*SecurityConfiguration) ID ¶
func (r *SecurityConfiguration) ID() pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*SecurityConfiguration) Name ¶
func (r *SecurityConfiguration) Name() pulumi.StringOutput
The name of the EMR Security Configuration. By default generated by this provider.
func (*SecurityConfiguration) NamePrefix ¶
func (r *SecurityConfiguration) NamePrefix() pulumi.StringOutput
Creates a unique name beginning with the specified prefix. Conflicts with `name`.
func (*SecurityConfiguration) URN ¶
func (r *SecurityConfiguration) URN() pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type SecurityConfigurationArgs ¶
type SecurityConfigurationArgs struct { // A JSON formatted Security Configuration Configuration interface{} // The name of the EMR Security Configuration. By default generated by this provider. Name interface{} // Creates a unique name beginning with the specified // prefix. Conflicts with `name`. NamePrefix interface{} }
The set of arguments for constructing a SecurityConfiguration resource.
type SecurityConfigurationState ¶
type SecurityConfigurationState struct { // A JSON formatted Security Configuration Configuration interface{} // Date the Security Configuration was created CreationDate interface{} // The name of the EMR Security Configuration. By default generated by this provider. Name interface{} // Creates a unique name beginning with the specified // prefix. Conflicts with `name`. NamePrefix interface{} }
Input properties used for looking up and filtering SecurityConfiguration resources.