Search code examples
circlecicicd

CircleCI 2.1 : Unknown variable(s) error for variables declared in parameters


I have the below defined under my job. But when I run thru the web UI, I get Unknown variable(s) for all the variables defined under the parameter. What is wrong here?

terraform_import_resources:
    docker:
      - image: myecrrepo/ansibleterraformpython3:tf0.12.18-1
    parameters:
      aws_ssoadmin_permission_set:
        type: string
        default: "AWSAdministratorAccess"
      aws_ssoadmin_permission_set_params:
        type: string
        default: "arn:aws:sso:::permissionSet/xxxxxx,arn:aws:sso:::instance/ssoins-xxxx"
      aws_ssoadmin_account_assignment:
        type: string
        default: "AWSAdministratorAccess"
      aws_ssoadmin_account_assignment_params:
        type: string
        default: "xxxxxx"
    steps:
      - checkout
      - attach_workspace:
          at: ~/
      - add_ssh_keys: *add_ssh_keys_infra_modules
      - run: *infra_modules_checkout
      - run:
          name: Run Terraform import
          command: |
            . ~/.env
            ansible --version
            terraform --version
            TAG_NAMES=`git log -1 --pretty=%B | perl -nle 'print $1 if /\((.*)\)/'`
            echo $TAG_NAMES 
            terraform import aws_ssoadmin_permission_set.<< pipeline.parameters.aws_ssoadmin_permission_set>> << pipeline.parameters.aws_ssoadmin_permission_set_params >>
            terraform import aws_ssoadmin_account_assignment.<< pipeline.parameters.aws_ssoadmin_account_assignment >> << pipeline.parameters.aws_ssoadmin_account_assignment_params >>

Solution

  • So, I found that for a parameter in a job/command it should be used as:

    << parameters.aws_ssoadmin_permission_set >>
    

    instead of

    << pipeline.parameters.aws_ssoadmin_permission_set >>
    

    Doc for reference: https://circleci.com/docs/reusing-config/#parameter-syntax