higgs/terraform/modules/higgsjob/main.tf (175 lines of code) (raw):

resource "kubernetes_job" "higgsjob" { count = length(var.input_files) metadata { name = "${var.name}-${format("%04d", count.index + 1)}" namespace = "${var.namespace}" } spec { template { metadata {} spec { termination_grace_period_seconds = 300 restart_policy = "Never" share_process_namespace = true init_container { name = "prepull" image = "${var.higgs-worker-image}" command = [ "/bin/bash", "-c", "/getfile.sh ${var.input_files[count.index]}" ] #env { #name = "TRACE" #value = "1" #} resources { requests = { cpu = "0.9" memory = "6Gi" } limits = { cpu = "0.9" memory = "6Gi" } } volume_mount { mount_path = "/getfile.sh" sub_path = "getfile.sh" name = "getfile" } volume_mount { mount_path = "/inputs" name = "inputs" } } container { name = "cmsrun" image = "${var.higgs-cms-image}" command = [ "bash", "-c", "/runjob.sh" ] #env { #name = "TRACE" #value = "1" #} env { name = "CMS_LUMINOSITY_DATA" value = "${length(var.luminosity_data) != 0 ? var.luminosity_data[count.index] : "null"}" } env { name = "CMS_JSON" value = "${var.CMS_JSON}" } env { name = "CMS_INPUT_FILES" value = "${var.input_files[count.index]}" } env { name = "CMS_OUTPUT_FILE" value = "${var.CMS_OUTPUT_FILE}" } env { name = "CMS_OUTPUT_JSON_FILE" value = "${var.CMS_OUTPUT_JSON_FILE}" } env { name = "CMS_S3_BASEDIR" value = "${var.CMS_S3_BASEDIR}" } env { name = "CMS_OUTPUT_S3PATH" value = "${var.dataset}-${format("%04d", count.index + 1)}.json" } env { name = "CMS_CONFIG" value = "${var.CMS_CONFIG}" } env { name = "CMS_DATASET_NAME" value = "${var.dataset}" } env { name = "MC_MULTIPART_THREADS" value = "${var.MC_MULTIPART_THREADS}" } env { name = "S3_ACCESS" value = "${var.S3_ACCESS}" } env { name = "S3_SECRET" value = "${var.S3_SECRET}" } env { name = "S3_HOST" value = "${var.S3_HOST}" } env { name = "GCS_ACCESS" value = "${var.GCS_ACCESS}" } env { name = "GCS_SECRET" value = "${var.GCS_SECRET}" } env { name = "GCS_HOST" value = "${var.GCS_HOST}" } env { name = "GCS_PROJECT_ID" value = "${var.GCS_PROJECT_ID}" } env { name = "DOWNLOAD_MAX_KB" value = "${var.DOWNLOAD_MAX_KB}" } env { name = "UPLOAD_MAX_KB" value = "${var.UPLOAD_MAX_KB}" } env { name = "REDIS_HOST" value = "${var.REDIS_HOST}" } env { name = "DPATH" value = "${var.DPATH}" } resources { requests = { cpu = "0.9" memory = "6Gi" } limits = { cpu = "0.9" memory = "6Gi" } } volume_mount { mount_path = "/runjob.sh" sub_path = "runjob.sh" name = "runjob" } volume_mount { mount_path = "/inputs" name = "inputs" } } volume { name = "runjob" config_map { name = "runjob" default_mode = "0755" } } volume { name = "getfile" config_map { name = "getfile" default_mode = "0755" } } volume { name = "inputs" empty_dir { medium = "Memory" } } } } backoff_limit = 5 completions = 1 parallelism = 1 } timeouts { create = "10m" } }