Support calamari image volumes for Kubernetes script pods#1227
Merged
Conversation
Jtango18
approved these changes
Jun 3, 2026
Contributor
Jtango18
left a comment
There was a problem hiding this comment.
This looks pretty straight forward. Were there additional changes requried for Calamari to make this work?
Contributor
Author
Only the creation of the docker images, which is in main |
flin-8
reviewed
Jun 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background
We are implementing the ability for the Kubernetes agent to load and execute Calamari via a Kubernetes image volume.
This k8s feature loads an image as a read-only volume directly into the pod.
To do this, Octopus Server needs to send the calamari name (e.g.
CalamariorCalamari.AzureAppServiceetc) and the version so that the correct container can be acquired.Results
Adds a new property to
StartKubernetesScriptCommandV1,CalamariImageConfiguration, which defines theNameandVersionof the Calamari image to be loaded.This feature requires Kubernetes 1.35 or newer (as that is when the
ImageVolumefeature gate was enabled by default).It also needs to be explicitly enabled by default, via a helm chart value
scriptPods.calamariImageVolume.enabled. The PR for the helm chart is OctopusDeploy/helm-charts#610This is an example of what happens when you try and use the feature on a cluster with a version < 1.35

Related to MD-2016
How to review this PR
Verify/validate this is backwards compatible
Quality ✔️
Pre-requisites
👨💻 Written by a human without AI