Skip to content

Remove temporary dashboard image version override - #21127

Closed
Mitch Denny (mitchdenny) wants to merge 1 commit into
mainfrom
mitchdenny-remove-dashboard-image-override
Closed

Mitch Denny (mitchdenny) wants to merge 1 commit into
mainfrom
mitchdenny-remove-dashboard-image-override

Conversation

@mitchdenny

Copy link
Copy Markdown
Member

Description

Docker Compose and Kubernetes publishers now select the dashboard matching the running publisher's product major/minor version (17.0), instead of the temporary 13.6 pin.

Remove the temporary version property, assembly metadata, and resolver override path. Retain informational-version parsing, assembly-version fallback, and the existing defensive fallback for wholly unparseable versions. Update regression tests and regenerate 28 Docker, Kubernetes, and Yarp snapshots; their only content change is the dashboard tag.

The canonical repository is already mcr.microsoft.com/aspire/nightly/dashboard; the issue's older dotnet/nightly/aspire-dashboard path is obsolete. This PR does not change the repository path or product version.

Generated output

image: "mcr.microsoft.com/aspire/nightly/dashboard:17.0"

Validation

  • ./restore.sh — passed, no warnings or errors.
  • docker pull --platform linux/amd64 mcr.microsoft.com/aspire/nightly/dashboard:17.0 — passed.
  • docker pull --platform linux/arm64 mcr.microsoft.com/aspire/nightly/dashboard:17.0 — passed.
  • MSBUILDTERMINALLOGGER=false dotnet test --project tests/Aspire.Hosting.Docker.Tests/Aspire.Hosting.Docker.Tests.csproj --no-launch-profile -- --filter-class '*.DashboardImageTests' --filter-class '*.DockerComposePublisherTests' --filter-class '*.DockerComposeTests' --filter-not-trait 'quarantined=true' --filter-not-trait 'outerloop=true' — passed: 70 passed, one existing skip.
  • MSBUILDTERMINALLOGGER=false dotnet test --project tests/Aspire.Hosting.Kubernetes.Tests/Aspire.Hosting.Kubernetes.Tests.csproj --no-launch-profile -- --filter-class '*.DashboardImageTests' --filter-class '*.KubernetesPublisherTests' --filter-class 'KubernetesEnvironmentResourceTests' --filter-not-trait 'quarantined=true' --filter-not-trait 'outerloop=true' — passed: 77 passed.
  • MSBUILDTERMINALLOGGER=false dotnet test --project tests/Aspire.Hosting.Yarp.Tests/Aspire.Hosting.Yarp.Tests.csproj --no-launch-profile -- --filter-class '*.YarpConfigGeneratorTests' --filter-not-trait 'quarantined=true' --filter-not-trait 'outerloop=true' — passed: four passed.
  • Focused real deployment checks using a temporary source-referenced AppHost harness and freshly generated artifacts — passed on Linux arm64:
    • Docker Compose: docker compose -p aspire20068-dd08f68e -f <generated-compose>/docker-compose.yaml up -d --wait --wait-timeout 120; checked the running dashboard image and fetched the dashboard login page with curl --fail --location.
    • Kubernetes: kind create cluster --name aspire20068-dd08f68e --wait 180s, then helm install smoke <generated-chart> --namespace dashboard-smoke --create-namespace --wait --timeout 240s; rollout succeeded and an in-cluster HTTP probe completed successfully against the dashboard service.
    • Both deployments used mcr.microsoft.com/aspire/nightly/dashboard:17.0 and were cleaned up afterward. No shared cluster or existing workloads were modified.
  • git diff --check — passed.

The full Hex1b CLI deployment suites were not run; the focused deployment checks exercise this branch's publisher output and the actual published image. Both image architectures were pulled; runtime deployment checks were on arm64.

Fixes #20068

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

Restore product-version-based dashboard tags now that the canonical 17.0 image is published. Update resolver regression coverage and publisher snapshots.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: dd08f68e-0f17-48d1-9b60-f1d06967a7f5
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 21127

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 21127"

@github-actions github-actions Bot added the area-integrations Issues pertaining to Aspire Integrations packages label Oct 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Tests selector

Selects the full PR test matrix + all PR-gated jobs (ALL) — a rule matching 'eng/Versions.props' selects ALL


Selection computed for commit 7170c85.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The narrowly scoped cleanup preserves fallback behavior and is supported by regression coverage and reported successful image-pull and deployment checks.

No open issues 🎉

What changed in this PR

Removes the temporary dashboard image override so Docker Compose and Kubernetes publishers select the running product’s major/minor version, addressing #20068 without changing the repository path or product version.

Changes:

  • Removes the build property, assembly metadata, and resolver override.
  • Updates regression tests while preserving version-parsing and fallback coverage.
  • Updates 28 publishing snapshots from dashboard tag 13.6 to 17.0.
File Description
tests/​Aspire.Hosting.Yarp.Tests/​Snapshots/​YarpConfigGeneratorTests.GenerateEnvVariablesConfigurationDockerCompose.verified.env Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesPublisherTests.PublishAsync_ResourceWithProbes#00.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesPublisherTests.PublishAsync_HandlesSpecialResourceName#02.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesPublisherTests.PublishAsync_HandlesConditionalReferenceExpressionWithParameterCondition#02.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesPublisherTests.PublishAsync_HandlesConditionalReferenceExpression#02.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesPublisherTests.PublishAsync_GeneratesValidHelmChart#02.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesPublisherTests.PublishAsync_CustomWorkloadAndResourceType#02.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesPublisherTests.PublishAsync_ConditionalWithParameterBranch_UsesIfElseSyntax#02.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesPublisherTests.KubernetesWithProjectResources#02.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesPublisherTests.KubernetesMapsPortsForBaitAndSwitchResources#02.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesEnvironmentResourceTests.MultipleKubernetesEnvironmentsSupported/​env2/​templates/​env2-dashboard/​deployment.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​Snapshots/​KubernetesEnvironmentResourceTests.MultipleKubernetesEnvironmentsSupported/​env1/​templates/​env1-dashboard/​deployment.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Kubernetes.Tests/​DashboardImageTests.cs Tests product-version selection and fallbacks.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposeTests.MultipleDockerComposeEnvironmentsSupported/​env2/​docker-compose.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposeTests.MultipleDockerComposeEnvironmentsSupported/​env1/​docker-compose.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposeTests.DockerSwarmUpdateConfigSerializedCorrectly.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposeTests.DockerSwarmDeploymentLabelsSerializedCorrectly.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposeTests.DockerComposeOnlyExposesExternalEndpoints.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposeTests.DashboardWithForwardedHeadersWritesEnvVar.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposePublisherTests.PublishAsync_WithDashboardEnabled_IncludesDashboardService.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposePublisherTests.PublishAsync_WithDashboard_HonorsRequiredOtlpProtocols.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposePublisherTests.PublishAsync_MultipleResourcesWithOtlp_ConfiguresAllForDashboard.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposePublisherTests.PublishAsync_HandlesConditionalReferenceExpressionWithParameterCondition.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposePublisherTests.PublishAsync_HandlesConditionalReferenceExpression.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposePublisherTests.PublishAsync_GeneratesValidDockerComposeFile.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposePublisherTests.PrepareStep_ResolvesArbitraryIValueProviderSource.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposePublisherTests.DockerComposeWithProjectResources.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposePublisherTests.DockerComposeCorrectlyEmitsPortMappings.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​Snapshots/​DockerComposePublisherTests.DockerComposeAppliesServiceCustomizations.verified.yaml Expects dashboard 17.0.
tests/​Aspire.Hosting.Docker.Tests/​DashboardImageTests.cs Verifies running publisher selects 17.0.
src/​Shared/​DashboardImage.cs Removes override handling; preserves version resolution.
src/​Aspire.Hosting.Kubernetes/​Aspire.Hosting.Kubernetes.csproj Removes override assembly metadata.
src/​Aspire.Hosting.Docker/​Aspire.Hosting.Docker.csproj Removes override assembly metadata.
eng/​Versions.props Removes temporary image-tag property.

Review effort: Balanced

@mitchdenny

Copy link
Copy Markdown
Member Author

Jose Perez Rodriguez (@joperezr) David Pine (@IEvangelist) — this removes the temporary dashboard image override now that the 17.0 image is available. Ready for your review.

@JamesNK

Copy link
Copy Markdown
Member

PR already for this here - #21119

@github-actions

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@mitchdenny

Copy link
Copy Markdown
Member Author

Closing in favor of #21119.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-integrations Issues pertaining to Aspire Integrations packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove temporary dashboard image override before 17.0 ships

3 participants