I am trying to spin up a private dataproc cluster(1m, 2w) in GCP via terraform. It should also require optional components like docker, anaconda and jupyter. Below are my concerns,
- I am trying to add image_version and optional_components under software_config as below, Is that doable?
software_config {
image_version = "1.4.21-debian9"
override_properties = {
"dataproc:dataproc.allow.zero.workers" = "true"
}
optional_components = [ "DOCKER", "ANACONDA", "JUPYTER" ]
}
- If the above not doable, Is using initialize_actions are my only option, like below?
initialization_action {
script = "gs://dataproc-initialization-actions/conda/install-conda-env.sh"
timeout_sec = 500
}
- How do I assign permissions/keys to the nodes that are being spun up thru terraform. so users can access the nodes with it once provisioned. I tried to use as below,
gce_cluster_config {
tags = ["env", "test"]
network = "${google_compute_network.dp-network.name}"
internal_ip_only = true
service_account = "name@name.iam.gserviceaccount.com"
}
Appreciate your inputs,
Thank you!
Update: I can spin up a cluster without optional-components specified in the software_config. But If i do, then it is failing with a bug and asked me to report it to bug.
gce_cluster_config {
network = "${google_compute_network.dataproc-network.name}"
internal_ip_only = true
tags = ["env", "staging"]
zone = "${var.zone}"
service_account = "${var.service_account}"
service_account_scopes= [
"https://www.googleapis.com/auth/monitoring",
"useraccounts-ro",
"storage-rw",
"logging-write",
]
}
# We can define multiple initialization_action blocks
initialization_action {
script = "gs://dataproc-initialization-actions/stackdriver/stackdriver.sh"
timeout_sec = 500
}
initialization_action {
script = "gs://dataproc-initialization-actions/jupyter/jupyter.sh"
timeout_sec = 500
}