-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Community Note
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request. Searching for pre-existing feature requests helps us consolidate datapoints for identical requirements into a single place, thank you!
- Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.
- If you are interested in working on this issue or have submitted a pull request, please leave a comment.
Overview of the Issue
When running an atlantis plan
in a Pull Request, the webhook is well trigger, the step well run but the output is not posted within Pull Request comment. Instead I get a 404 error in the logs.
Reproduction Steps
We do use a GitHub Enterprise Server and Atlantis installed with Helm in an Azure Kubernetes Service cluster using a GitHub App for connection between the services. We add Custom Workflow configuration in the `repos.yaml| file to handle Terragrunt following the documentation. Everything looks ok except the plan output which is not included in the Pull Request comment.
I have made several tests with other based repositories, GitHub App, Atlantis version, basic configuration with Terraform instead etc.. My results concluded that the issue is only related to Terragrunt and output plan in comments.
Note that in the above screenshot atlantis can create comments with the API for all the other result types.
Logs
Here you can find the logs I get from the Atlantis pod.
Logs
"vcs/instrumented_client.go:116","msg":"Unable to create comment for command plan, error: POST https://<GITHUB_SERVER>/api/v3/repos/l<OWNER>/<REPO_NAME>/issues/61/comments: 404 []","json":{"repo":"liebherr/min_landing_zone_platform","pull":"61"},"stacktrace":"github.com/runatlantis/atlantis/server/events/vcs.(*InstrumentedClient).CreateComment\n\tgithub.com/runatlantis/atlantis/server/events/vcs/instrumented_client.go:116\ngithub.com/runatlantis/atlantis/server/events/vcs.(*ClientProxy).CreateComment\n\tgithub.com/runatlantis/atlantis/server/events/vcs/proxy.go:65\ngithub.com/runatlantis/atlantis/server/events.(*PullUpdater).updatePull\n\tgithub.com/runatlantis/atlantis/server/events/pull_updater.go:51\ngithub.com/runatlantis/atlantis/server/events.(*PlanCommandRunner).run\n\tgithub.com/runatlantis/atlantis/server/events/plan_command_runner.go:264\ngithub.com/runatlantis/atlantis/server/events.(*PlanCommandRunner).Run\n\tgithub.com/runatlantis/atlantis/server/events/plan_command_runner.go:299\ngithub.com/runatlantis/atlantis/server/events.(*DefaultCommandRunner).RunCommentCommand\n\tgithub.com/runatlantis/atlantis/server/events/command_runner.go:401"}
"events/pull_updater.go:52","msg":"unable to comment: POST https://<GITHUB_SERVER>/api/v3/repos/l<OWNER>/<REPO_NAME>/issues/61/comments: 404 []","json":{"repo":"liebherr/min_landing_zone_platform","pull":"61"},"stacktrace":"github.com/runatlantis/atlantis/server/events.(*PullUpdater).updatePull\n\tgithub.com/runatlantis/atlantis/server/events/pull_updater.go:52\ngithub.com/runatlantis/atlantis/server/events.(*PlanCommandRunner).run\n\tgithub.com/runatlantis/atlantis/server/events/plan_command_runner.go:264\ngithub.com/runatlantis/atlantis/server/events.(*PlanCommandRunner).Run\n\tgithub.com/runatlantis/atlantis/server/events/plan_command_runner.go:299\ngithub.com/runatlantis/atlantis/server/events.(*DefaultCommandRunner).RunCommentCommand\n\tgithub.com/runatlantis/atlantis/server/events/command_runner.go:401"}
Environment details
If not already included, please provide the following:
- Atlantis version: 0.36.0
- Deployment method: Helm in Azure Kubernetes Service
- Other tested Atlantis version: 0.35.1 and 0.34.0
Atlantis server-side config file:
repoConfig: |
repos:
- id: <repo_id>
branch: /.*/
allowed_overrides: [workflow]
allow_custom_workflows: true
pre_workflow_hooks:
- run: terragrunt-atlantis-config generate --output atlantis.yaml --workflow terragrunt --autoplan --automerge --parallel --create-workspace
workflows:
terragrunt:
plan:
steps:
- env:
name: ARM_OIDC_TOKEN_FILE_PATH
command: 'echo $AZURE_FEDERATED_TOKEN_FILE'
- env:
name: ARM_CLIENT_ID
command: 'echo $AZURE_CLIENT_ID'
- run:
# Allow for targeted plans/applies as not supported for Terraform wrappers by default
command: terragrunt plan -input=false $(printf '%s' $COMMENT_ARGS | sed 's/,/ /g' | tr -d '\\') -no-color -out $PLANFILE
output: hide
- run: |
terragrunt show $PLANFILE
apply:
steps:
- env:
name: ARM_OIDC_TOKEN_FILE_PATH
command: 'echo $AZURE_FEDERATED_TOKEN_FILE'
- env:
name: ARM_CLIENT_ID
command: 'echo $AZURE_CLIENT_ID'
- run: terragrunt apply -input=false $PLANFILE
Repo atlantis.yaml
file:
atlantis.yaml file is generated on the fly with terragrunt-atlantis-config
Any other information you can provide about the environment/deployment (efs/nfs, aws/gcp, k8s/fargate, etc)