Component uses all matrix input keys to generate job name - expected only job_name_prefix
I am currently managing three environments where I am deploying infrastructure using the stages of [validate, plan, apply]. During the plan and apply stages, jobs for all three environments execute in parallel, and I am passing variables to each job. However, I have encountered an issue where all variable values are being interpreted as a job name. I attempted to override this with the -job_name_prefix option, but unfortunately, it did not resolve the problem.
This is my template:
include:
- component: gitlab.com/components/opentofu/validate-plan-apply@2.10.2
inputs:
opentofu_version: 1.9.1
stages: [validate, plan, apply]
.decrypt_script: &decrypt_script
- apk add --no-cache python3 py3-pip
- python3 -m venv /tmp/venv
- source /tmp/venv/bin/activate
- pip3 install aws-encryption-sdk-cli
- git config --global url."https://oauth2:$GITLAB_ACCESS_TOKEN@gitlab.com/".insteadOf https://gitlab.com
- |
aws-encryption-cli --decrypt \
--input $GITLAB_TOFU_ROOT_DIR/output/terraform.tfvars.encrypted \
--wrapping-keys key=$KMS_KEY_ARN \
--metadata-output $GITLAB_TOFU_ROOT_DIR/metadata \
--output $GITLAB_TOFU_ROOT_DIR/terraform.tfvars
plan:
stage: plan
before_script:
- *decrypt_script
parallel:
matrix:
- job_name_prefix: "stage-compute-env"
root_dir: "environments/stage-compute"
state_name: "stage_compute_statefile"
KMS_KEY_ARN: "${KMS_KEY_ARN_STAGE}"
- job_name_prefix: "qa-compute-env"
root_dir: "environments/qa-compute"
state_name: "qa_compute_statefile"
KMS_KEY_ARN: "${KMS_KEY_ARN_QA}"
- job_name_prefix: "prod-compute-env"
root_dir: "environments/prod-compute"
state_name: "prod_compute_statefile"
KMS_KEY_ARN: "${KMS_KEY_ARN_PROD}"
environment:
name: terraform-shared-services
apply:
stage: apply
before_script:
- *decrypt_script
parallel:
matrix:
- job_name_prefix: "stage-compute-env"
root_dir: "environments/stage-compute"
state_name: "stage_compute_statefile"
KMS_KEY_ARN: "${KMS_KEY_ARN_STAGE}"
- job_name_prefix: "qa-compute-env"
root_dir: "environments/qa-compute"
state_name: "qa_compute_statefile"
KMS_KEY_ARN: "${KMS_KEY_ARN_QA}"
- job_name_prefix: "prod-compute-env"
root_dir: "environments/prod-compute"
state_name: "prod_compute_statefile"
KMS_KEY_ARN: "${KMS_KEY_ARN_PROD}"
environment:
name: terraform-shared-services
Below is the JOB NAME it looks like.

I just want the JOB_NAME to be "<env_name>-compute-env".
Could someone please assist me in fixing the CI configuration mentioned above? I would also appreciate any feedback on optimizing this configuration.
Thank you!
Edited by Yogesh Bangar