You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With the latest qs-cfn-lint-rules (commit: e76e881bde4ed692ac284d0573ea8621d51c1d8a)
This fails:
105_gitlab_distro_mapping:
command: !Sub |
IFS='.' read -r major minor patch <<< '${GitLabVersion}'; if [ ${major} -ge 15 ]; then sed -i 's/\/el\/7/\/amazon\/2/g' /etc/yum.repos.d/gitlab_gitlab*.repo; else sed -i 's/\/amazon\/2/\/el\/7/g' /etc/yum.repos.d/gitlab_gitlab*.repo; fi
With the linting error:
[ERROR ] : ---
[ERROR ] : Linting detected issues in: /mnt/templates/workload/gitlab-gitaly-template.yaml
[ERROR ] : line 246 [1019] [Sub validation of parameters] Parameter major for Fn::Sub not found at Resources/GitalyAutoScalingGroup/Me
tadata/AWS::CloudFormation::Init/02_prereqs/commands/104_gitlab_distro_mappi
ng/command/Fn::Sub
The syntax is valid and documented in many places.
This "Join" version makes it through the linting - but then in CloudFormation the lack of double back slash generates a yaml error when the stack runs:
105_gitlab_distro_mapping:
command:
Fn::Join:
- ""
- - "IFS='.' read -r major minor patch <<< '"
- Ref: "GitLabVersion"
- "'; if [ ${major} -ge 15 ]; then sed -i 's/\/el\/7/\/amazon\/2/g' /etc/yum.repos.d/gitlab_gitlab*.repo; else sed -i 's/\/amazon\/2/\/el\/7/g' /etc/yum.repos.d/gitlab_gitlab*.repo; fi"
To Reproduce
Steps to reproduce the behavior:
Use the Join version of the code exactly
Notice that linting let's it pass
Notice that the cloudformation template gets a malformed yaml error.
Expected behavior
The Sub form should pass cfn-lint / taskcat linting.
Perhaps the lack of escaping \ should be caught as a yaml syntax error.
Screenshots
If applicable, add screenshots to help explain your problem.
**Version (Please make sure you are running the latest version of taskcat)
Taskcat Version (ex: [2018.817.210357])
Note: Python Version (python3 required)
To find versions: Via taskcat: taskcat -V Via pip3: pip3 show taskcat
Note: both version should match
To update taskcat run: for docker : docker pull taskcat/taskcat for pip3: pip3 install --upgrade taskcat
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered:
DarwinJS
changed the title
Linting fails on valid CF
Linting error misleading and linting error that makes it through
Sep 2, 2022
DarwinJS
changed the title
Linting error misleading and linting error that makes it through
Valid YML flagged as non-valid and linting error that makes it through
Sep 2, 2022
Describe the bug
With the latest qs-cfn-lint-rules (commit: e76e881bde4ed692ac284d0573ea8621d51c1d8a)
This fails:
With the linting error:
The syntax is valid and documented in many places.
This "Join" version makes it through the linting - but then in CloudFormation the lack of double back slash generates a yaml error when the stack runs:
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The Sub form should pass cfn-lint / taskcat linting.
Perhaps the lack of escaping
\
should be caught as a yaml syntax error.Screenshots
If applicable, add screenshots to help explain your problem.
**Version (Please make sure you are running the latest version of taskcat)
Note: Python Version (python3 required)
To find versions:
Via taskcat:
taskcat -V
Via pip3:
pip3 show taskcat
Note: both version should match
To update taskcat run:
for docker :
docker pull taskcat/taskcat
for pip3:
pip3 install --upgrade taskcat
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: