Skip to content

Enable multi architecture compatibility between Tentacle and Script pods#1141

Merged
octonautcal merged 17 commits intomainfrom
calluy/sc-100205/enable-multi-architecture-compatibility
Mar 16, 2026
Merged

Enable multi architecture compatibility between Tentacle and Script pods#1141
octonautcal merged 17 commits intomainfrom
calluy/sc-100205/enable-multi-architecture-compatibility

Conversation

@octonautcal
Copy link
Copy Markdown
Contributor

@octonautcal octonautcal commented Sep 11, 2025

Are you a customer of Octopus Deploy? Please contact our support team so we can triage your PR, so that we can make sure it's handled appropriately.

Background

The boostrapRunner executable is a Go binary that is built as part of the Tentacle image, and copied over to the script pod at runtime. It is used to wrap the script execution so the pod streams logs in a format that Tentacle can parse. It is not built as part of the worker-tools image because customers are free to specify their own worker-tools image, and we need to ensure the logs are in the correct format.

Problem

The current bootstrapRunner exe is tightly coupled with the architecture of the Tentacle container. The limitation exists because we only build the bootstrapRunner exe for the arch that the tentacle image is built on.

RUN go build -ldflags "-s -w" -o "bin/bootstrapRunner"

This becomes a problem when the Tentacle and script pods are running on different platform architectures - i.e. when the script pod is spun up on a different node. In such a scenario the script pod would receive a bootstrapRunner exe that it cannot execute.

Results

Testing strategy

  1. Set up a multi arch node AKS here

  2. Create a worker on https://team-md-argocd-in-octopus.testoctopus.app/app#/Spaces-263/infrastructure/workers/Workers-81/settings.

  3. Test that it normally fails due to incorrect arch

Screenshot 2026-03-05 at 2 27 51 pm Screenshot 2026-03-05 at 2 41 47 pm
  1. Deployed a multiarch image(containing our fixes) to an Azure Container Registry linked it to the Team MD sandbox cluster.

  2. Set updated image to be updated in the helm release

  3. Test that it now correctly works regardless of architecture

Screenshot 2026-03-06 at 4 23 47 pm

How to review this PR

Quality ✔️

Pre-requisites

  • I have read How we use GitHub Issues for help deciding when and where it's appropriate to make an issue.
  • I have considered informing or consulting the right people, according to the ownership map.
  • I have considered appropriate testing for my change.

@octonautcal octonautcal marked this pull request as ready for review March 6, 2026 06:02
@octonautcal octonautcal requested a review from a team as a code owner March 6, 2026 06:02
Copy link
Copy Markdown
Contributor

@rain-on rain-on left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Copy Markdown
Contributor

@APErebus APErebus left a comment

Choose a reason for hiding this comment

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

Non-blocking minor things

@octonautcal octonautcal merged commit 5a6137b into main Mar 16, 2026
51 checks passed
@octonautcal octonautcal deleted the calluy/sc-100205/enable-multi-architecture-compatibility branch March 16, 2026 05:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants