Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No terraform plans have been published for this pipeline run. The terraform cli task must run plan with publishPlanResults: string (where string represents the plan name) to view plans. #9

Closed
FernandoMiguel opened this issue Apr 16, 2021 · 18 comments
Labels
bug Something isn't working sev2 bug that renders one or few features unusable to a subset of users and has no workaround terraform-cli-task issues related to the cli task terraform-plan-view issues related to the plan view

Comments

@FernandoMiguel
Copy link

Describe the bug
no plan view

To Reproduce
Steps to reproduce the behavior:

          - task: TerraformCLI@0
            displayName: "terraform plan"
            inputs:
              command: plan
              environmentServiceName: "${{ parameters.AZURERMCONNECTION }}"
              commandOptions: "\
                -compact-warnings \
                -detailed-exitcode \
                -parallelism=300 \
                -out=terraform.tfplan.zip \
                "
              workingDirectory: self
              publishPlanResults: "plan"
              runAzLogin: false
            env:
              AZDO_PERSONAL_ACCESS_TOKEN: $(System.AccessToken)
2021-04-16T16:49:59.4663199Z ##[section]Starting: terraform plan
2021-04-16T16:49:59.4673141Z ==============================================================================
2021-04-16T16:49:59.4673451Z Task         : Terraform CLI
2021-04-16T16:49:59.4673714Z Description  : Execute terraform cli commands
2021-04-16T16:49:59.4673941Z Version      : 0.6.20
2021-04-16T16:49:59.4674168Z Author       : Charles Zipp
2021-04-16T16:49:59.4674376Z Help         : 
2021-04-16T16:49:59.4674640Z ==============================================================================
2021-04-16T16:49:59.9063555Z [command]/opt/hostedtoolcache/terraform/0.15.0/x64/terraform version
2021-04-16T16:49:59.9660409Z Terraform v0.15.0
2021-04-16T16:49:59.9661319Z on linux_amd64
2021-04-16T16:49:59.9662158Z + provider registry.terraform.io/microsoft/azuredevops v0.1.3
2021-04-16T16:49:59.9731234Z 
2021-04-16T16:49:59.9889385Z [command]/opt/hostedtoolcache/terraform/0.15.0/x64/terraform plan -compact-warnings -detailed-exitcode -parallelism=300 -out=terraform.tfplan.zip
XXXX
2021-04-16T16:50:03.3411889Z 
2021-04-16T16:50:03.3413711Z Terraform used the selected providers to generate the following execution
2021-04-16T16:50:03.3414473Z plan. Resource actions are indicated with the following symbols:
2021-04-16T16:50:03.3416239Z   �[32m+�[0m create
2021-04-16T16:50:03.3417169Z �[0m
2021-04-16T16:50:03.3418681Z Terraform will perform the following actions:
2021-04-16T16:50:03.3419993Z 
2021-04-16T16:50:03.3457849Z 
2021-04-16T16:50:03.3458695Z �[0m�[1mPlan:�[0m 2 to add, 0 to change, 0 to destroy.
2021-04-16T16:50:03.3605550Z ─────────────────────────────────────────────────────────────────────────────�[0m
2021-04-16T16:50:03.3605779Z 
2021-04-16T16:50:03.3606073Z Saved the plan to: terraform.tfplan.zip
2021-04-16T16:50:03.3606246Z 
2021-04-16T16:50:03.3606602Z To perform exactly these actions, run the following command to apply:
2021-04-16T16:50:03.3607085Z     terraform apply "terraform.tfplan.zip"
2021-04-16T16:50:03.6492016Z 
2021-04-16T16:50:03.6560649Z ##[section]Finishing: terraform plan

Expected behavior
to see plan view

Screenshots
image

Agent Configuration

  • Hosted
2021-04-16T16:49:39.2191447Z ##[section]Starting: Initialize job
2021-04-16T16:49:39.2192957Z Agent name: 'Hosted Agent'
2021-04-16T16:49:39.2193353Z Agent machine name: 'fv-az131-6'
2021-04-16T16:49:39.2193626Z Current agent version: '2.184.2'
2021-04-16T16:49:39.2235508Z ##[group]Operating System
2021-04-16T16:49:39.2235790Z Ubuntu
2021-04-16T16:49:39.2235948Z 20.04.2
2021-04-16T16:49:39.2236113Z LTS
2021-04-16T16:49:39.2236268Z ##[endgroup]
2021-04-16T16:49:39.2236468Z ##[group]Virtual Environment
2021-04-16T16:49:39.2236685Z Environment: ubuntu-20.04
2021-04-16T16:49:39.2236897Z Version: 20210412.1
2021-04-16T16:49:39.2237218Z Included Software: https://github.com/actions/virtual-environments/blob/ubuntu20/20210412.1/images/linux/Ubuntu2004-README.md
2021-04-16T16:49:39.2237661Z Image Release: https://github.com/actions/virtual-environments/releases/tag/ubuntu20%2F20210412.1
2021-04-16T16:49:39.2237935Z ##[endgroup]
2021-04-16T16:49:39.2238950Z Current image version: '20210412.1'
2021-04-16T16:49:39.2241416Z Agent running as: 'vsts'
2021-04-16T16:49:39.2301748Z Prepare build directory.
2021-04-16T16:49:39.2568132Z Set build variables.
2021-04-16T16:49:39.2602894Z Download all required tasks.
2021-04-16T16:49:39.2724819Z Downloading task: TerraformInstaller (0.6.20)
2021-04-16T16:49:41.3034668Z Downloading task: AzureCLI (2.1.0)
2021-04-16T16:49:41.5047811Z Downloading task: TerraformCLI (0.6.20)
2021-04-16T16:49:42.2830794Z Downloading task: PublishPipelineArtifact (1.2.3)
2021-04-16T16:49:42.3487071Z Checking job knob settings.
2021-04-16T16:49:42.3501975Z    Knob: AgentToolsDirectory = /opt/hostedtoolcache Source: ${AGENT_TOOLSDIRECTORY} 
2021-04-16T16:49:42.3504501Z    Knob: AgentPerflog = /home/vsts/perflog Source: ${VSTS_AGENT_PERFLOG} 
2021-04-16T16:49:42.3506442Z    Knob: TaskRestrictionsEnforcementMode = WarningOnly Source: $(agent.taskRestrictionsEnforcementMode) 
2021-04-16T16:49:42.3507198Z    Knob: EnableTaskRestrictionsTelemetry = true Source: $(agent.enableTaskRestrictionsTelemetry) 
2021-04-16T16:49:42.3507885Z Finished checking job knob settings.
2021-04-16T16:49:42.3915954Z Start tracking orphan processes.
2021-04-16T16:49:42.4123777Z ##[section]Finishing: Initialize job

Additional context
Add any other context about the problem here.

@charleszipp
Copy link
Collaborator

@FernandoMiguel is this perhaps the same issue from charleszipp/azure-pipelines-tasks-terraform-old#255, charleszipp/azure-pipelines-tasks-terraform-old#275? is your azure devops org under a visualstudio.com address or self-hosted?

Also can you capture the browser console to see if there are any errors when loading the tab?

@FernandoMiguel
Copy link
Author

it's under https://dev.azure.com/
let me try some logs

@FernandoMiguel
Copy link
Author

[Error] The source list for Content Security Policy directive 'script-src' contains an invalid source: ''strict-dynamic''. It will be ignored.
[Error] Unrecognized Content-Security-Policy directive 'worker-src'.

[Log] Running for project e359c49a-b89b-484a-b86a-56d8e7eca419 and build 343 (index.js, line 2)
[Error] Failed to load resource: the server responded with a status of 404 () (plan, line 0)
[Error] Unhandled Promise Rejection: Error: Failed to download plain plan: TFS.WebApi.Exception: 404: 
	generatorResume (index.js:2:671337)
	l (index.js:2:645656)
	promiseReactionJob

@FernandoMiguel
Copy link
Author

here's the plan payload

Summary
URL: https://dev.azure.com/MYORG/ID/_apis/build/builds/343/XXX/attachments/terraform-plan-results/plan
Status: 404
Source: Network
Address: 2620:1ec:21::20.443
Initiator: 
Fetch.js:118


Request
:method: GET
:scheme: https
:authority: dev.azure.com
:path: /MYORG/ID/_apis/build/builds/343/XXX/XXXX/attachments/terraform-plan-results/plan
Content-Type: undefined
Accept: application/octet-stream;api-version=5.2-preview.2;excludeUrls=true;enumsAsNumbers=true;msDateFormat=true;noArrayWrap=true
Authorization: Bearer ey
Accept-Encoding: gzip, deflate, br
Accept-Language: en-gb
Host: dev.azure.com
Origin: https://charleszipp.gallerycdn.vsassets.io
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.2 Safari/605.1.15
Connection: keep-alive
Referer: https://charleszipp.gallerycdn.vsassets.io/extensions/charleszipp/azure-pipelines-tasks-terraform/0.6.20/1618523010842/views/terraform-plan/.dist/index.html
x-vss-reauthenticationaction: Suppress
x-tfs-fedauthredirect: Suppress

Response
:status: 404
Access-Control-Allow-Methods: OPTIONS,GET,POST,PATCH,PUT,DELETE
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: authorization
Content-Length: 0
Date: Fri, 16 Apr 2021 20:09:23 GMT
Expires: -1
Access-Control-Expose-Headers: ActivityId,X-TFS-Session,X-MS-ContinuationToken,X-VSS-GlobalMessage,ETag, Request-Context
X-Frame-Options: SAMEORIGIN
Access-Control-Max-Age: 3600
X-Content-Type-Options: nosniff
x-tfs-session: XXXX
p3p: CP="CAO DSP COR ADMa DEV CONo TELo CUR PSA PSD TAI IVDo OUR SAMi BUS DEM NAV STA UNI COM INT PHY ONL FIN PUR LOC CNT"
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-vss-e2eid: XXXX
activityid: XXXX
x-tfs-processid: XXX
request-context: appId=cid-v1:XXX
x-vss-userdata: XXX.com
x-msedge-ref: Ref A: XXX Ref B: LON04EDGE0720 Ref C: 2021-04-16T20:09:23Z

@Zebusch
Copy link

Zebusch commented Apr 20, 2021

Just stumbled upon this myself. I also get 404 of the published plan. The strange thing is that it seems to work when I trigger the pipeline manually. Cannot say right now if it is because of the fact that, when I trigger manually, I get:

No changes. Infrastructure is up-to-date.

So, it could either be the trigger that is causing it, or the "contents" of the plan.

@charleszipp charleszipp transferred this issue from another repository May 11, 2021
@charleszipp charleszipp added the bug Something isn't working label May 11, 2021
@charleszipp charleszipp added sev2 bug that renders one or few features unusable to a subset of users and has no workaround terraform-cli-task issues related to the cli task terraform-plan-view issues related to the plan view labels May 13, 2021
@modwyer42
Copy link

Came across this issue recently too. It appears to relate to changes brought in with Terraform release 0.15.4, most likely relating to the new feature Noting changes made outside of Terraform.
Through various tests, have identified that:

  • This issue does occur with Terraform v1.0.0 and v0.15.4, but not with TF v0.14.11 or v0.15.3
  • Does not occur when a plan contains changes to apply
  • Does occur when there are no changes to apply, regardless of whether the plan has detected changes made outside of Terraform or not

From a quick scan of the source, I'd say the problem relates to the following:

const planHasNoChangesRe = /^No changes. Infrastructure is up-to-date./

As Hashicorp appear to have changes the wording for when there are no changes from:
No changes. Infrastructure is up-to-date.
to:
No changes. Your infrastructure matches the configuration.

@lolejar
Copy link

lolejar commented Aug 11, 2021

I observed the same but I thought there is something other at fault. Each time I skip the stage apply because no changes has been detected the attachment gets into terraform-plan-results but the link actually doesn't work as the attachment is not uploaded. The plan can't be fetched on view and because of javascript as soon as plan can't be fetched everything on view fails and no plans are displayed. If it makes sense.

@robbert-nlo
Copy link

Experiencing this issue too.

@charleszipp : Any idea when this can be fixed? Judging from the input of @modwyer42 above, it would seem only this particular regex needs to be updated to account for the new output text?

@rodchenkov
Copy link

Hi, and first of all thanks for great tool, but I have same issue.

@chase-miller
Copy link

I'm also running into this

@Dragonsong3k
Copy link

Hands down the best TF plugin. This is the only part not working. Would be great if someone could fix it.

@jmyers82
Copy link

jmyers82 commented Aug 23, 2022

@jason-johnson any idea on when this might get fixed? Thanks for taking this project over... seems to be the best on the market so far.

UPDATE: this is working, it only shows a plan when there are changes to be made. When it is a no change then nothing shows. I wish it would show regardless of change or not. Just so we could have a consistent pattern for business to review changes and go to a single location.

Or at least when there is a "no change" plan to say that vs the "error" we get saying there was no published plan.

@jason-johnson
Copy link
Owner

I need to get my environment set up properly so I can test these things. Then, if it's as easy as it sounds then it should be fairly quick. So it could be within a month or less.

@yoogie27
Copy link

There is a problem with the publish code.

Imagine I have 3 stages in my pipeline which deploys to 3 different sites.
If the first plan has no changes, but the other 2 have, there won't be a plan published at all. It will just contain the message that the plan does not contain data.

When I provoke a change to the first run, then there will be a plan and a drop box to switch to the other plans.

@jason-johnson
Copy link
Owner

jason-johnson commented Apr 14, 2023

@yoogie27 can you confirm that you use a different string in publishPanResult: for each stage?

@yoogie27
Copy link

@yoogie27 can you confirm that you use a different string in publishPanResult: for each stage?

Yes, I can confirm I was using a different string.

@jason-johnson
Copy link
Owner

jason-johnson commented Apr 14, 2023

Ok. We’ll try to reproduce that case as well. I think that’s a different case than this thread describes though, no?

@jason-johnson
Copy link
Owner

I believe this was fixed by #294. Please re-open if there is any new information here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working sev2 bug that renders one or few features unusable to a subset of users and has no workaround terraform-cli-task issues related to the cli task terraform-plan-view issues related to the plan view
Projects
Status: Done
Development

No branches or pull requests