You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
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
1. Upgrade controller without passing --agent-version and --stream.
Test case 1.1: upgrade to the highest version from the controller store. Upload agents 4.0-beta10, 4.0-beta11, 4.0-beta12, and 4.0-beta13. It should upgrade to 4.0-beta13 because it’s the highest version.
juju bootstrap ps6 ctrl-upgrade1-1 --build-agent
juju switch controller
changeversion/core.go to4.0-beta10
make simplestreams
export JUJU_METADATA_SOURCE=<your own path>
juju sync-agent-binary --agent-version 4.0-beta10
repeat steps 3 to 6 replacing the version
juju upgrade-controller --dry-run -- should show4.0-beta13 as the best version
juju upgrade-controller -- should upgrade to4.0-beta13 because it's the highest version.
the version injuju status andjuju controllers should show4.0-beta13
Test case 1.2: exclude non-patch versions. Upload agents 4.0-beta10, 4.0-beta11, 4.0-beta12, 4.0-beta13, 4.1-beta1, and 5.0-beta1. It should upgrade to 4.0-beta14 because it’s the highest patch version.
juju bootstrap ps6 ctrl-upgrade1-2 --build-agent
juju switch controller
changeversion/core.go to4.0-beta10
make simplestreams
export JUJU_METADATA_SOURCE=<your own path>
juju sync-agent-binary --agent-version 4.0-beta10
repeat steps 3 to 6 replacing the version
juju upgrade-controller --dry-run -- should show4.0-beta13 as the best version
juju upgrade-controller -- should upgrade to4.0-beta13 because it's the highest version. Agents4.1-beta1 and5.0-beta1 are exluded because they're not a patch upgrade from the current agent4.0-beta8.
the version injuju status andjuju controllers should show4.0-beta13
Test case 1.3: upgrade to the highest version from simplestream. It should upgrade to 4.0-beta7 because that is the highest one in theproposed stream.
juju upgrade-controller --dry-run -- should show4.0-beta7 as the best version.
juju ssh 0 thentail -f /var/log/juju/machine-0.log -- we want to see the logs for downloading and extracting4.0-beta7 from simplestreams
in another terminaljuju upgrade-controller -- should say that it started upgrade4.0-beta7
go back to the first terminal where it's inside the controller machine, then check that/var/lib/juju/tools/4.0-beta7-ubuntu-amd64 exists because that's where the agent binary is extracted
the4.0-beta7 binary actually fails to start with... "api-caller" manifold worker returned unexpected error: [*] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refused which is expected. The fix to that is done infeat: upgrader services #21070 but4.0-beta7 doesn't have those changes. As long as the binaries are successfully extracted we treat this test case as a pass.
2. Upgrade controller passing --agent-version
Test case 2.1: upgrades to a version from the controller store. Pass agent-version 4.0-beta9 that we uploaded.
juju bootstrap ps6 ctrl-upgrade2-1 --build-agent
juju switch controller
changeversion/core.go to4.0-beta9
make simplestreams
export JUJU_METADATA_SOURCE=<your own path>
juju sync-agent-binary --agent-version 4.0-beta9
juju upgrade-controller --dry-run -- should show4.0-beta9 as the best version
juju upgrade-controller -- should upgrade to4.0-beta9 because it's the highest version.
the version injuju status andjuju controllers should show4.0-beta9
Test case 2.2: upgrades to a version from simplestream. Pass an agent-version 4.0-beta7 that exists in stream.
juju upgrade-controller --agent-version 4.0-beta7 --dry-run -- should show4.0-beta7 as the best version.
juju ssh 0 thentail -f /var/log/juju/machine-0.log -- we want to see the logs for downloading and extracting4.0-beta7 from simplestreams
in another terminaljuju upgrade-controller --agent-version 4.0-beta7 -- should say that it started upgrade4.0-beta7
go back to the first terminal where it's inside the controller machine, then check that/var/lib/juju/tools/4.0-beta7-ubuntu-amd64 exists because that's where the agent binary is extracted
the4.0-beta7 binary actually fails to start with... "api-caller" manifold worker returned unexpected error: [*] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refused which is expected. The fix to that is done infeat: upgrader services #21070 but4.0-beta7 doesn't have those changes. As long as the binaries are successfully extracted we treat this test case as a pass.
3. Upgrade controller passing --agent-stream
Test case 3.1: upgrades to the highest version from a supplied stream in the controller store. Upload agents 4.0-beta10, 4.0-beta11, 4.0-beta12, and 4.0-beta13. It should upgrade to 4.0-beta13 because it’s the highest version.
It doesn’t matter what stream is passed when we want to upgrade to an agent from controller store. This is because we haven’t modeled the stream for the controller store.
juju bootstrap ps6 ctrl-upgrade3-1 --build-agent
juju switch controller
changeversion/core.go to4.0-beta10
make simplestreams
export JUJU_METADATA_SOURCE=<your own path>
juju sync-agent-binary --agent-version 4.0-beta10
repeat steps 3 to 6 replacing the version
juju upgrade-controller --dry-run --agent-stream released -- should show4.0-beta13 as the best version
juju upgrade-controller --agent-stream released -- should upgrade to4.0-beta13 because it's the highest version.
the version injuju status andjuju controllers should show4.0-beta13
Test case 3.2: upgrade to the highest version from simplestream. It should upgrade to 4.0-beta7 because that is the highest one in theproposed stream.
changeversion/core.go to4.0-beta5
juju bootstrap ps6 ctrl-upgrade3-2 --build-agent
juju switch controller
juju upgrade-controller --dry-run --agent-stream proposed -- should show4.0-beta7 as the best version.
juju ssh 0 thentail -f /var/log/juju/machine-0.log -- we want to see the logs for downloading and extracting4.0-beta7 from simplestreams
in another terminaljuju upgrade-controller --agent-stream proposed -- should say that it started upgrade4.0-beta7
go back to the first terminal where it's inside the controller machine, then check that/var/lib/juju/tools/4.0-beta7-ubuntu-amd64 exists because that's where the agent binary is extracted
the4.0-beta7 binary actually fails to start with... "api-caller" manifold worker returned unexpected error: [*] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refused which is expected. The fix to that is done infeat: upgrader services #21070 but4.0-beta7 doesn't have those changes. As long as the binaries are successfully extracted we treat this test case as a pass.
4. Upgrade controller passing both --agent-version and --stream
Test case 4.1: upgrade to the supplied version and stream from the controller store. Upload agents 4.0-beta10, 4.0-beta11, 4.0-beta12, and 4.0-beta13 to seed the controller store.
It doesn’t matter what stream is passed when we want to upgrade to an agent from controller store. This is because we haven’t modeled the stream for the controller store.
juju bootstrap ps6 ctrl-upgrade3-1 --build-agent
juju switch controller
changeversion/core.go to4.0-beta10
make simplestreams
export JUJU_METADATA_SOURCE=<your own path>
juju sync-agent-binary --agent-version 4.0-beta10
repeat steps 3 to 6 replacing the version
juju upgrade-controller --dry-run --agent-version 4.0-beta11 --agent-stream released -- should show4.0-beta11 as the best version
juju upgrade-controller --agent-version 4.0-beta11 --agent-stream released -- should upgrade to4.0-beta11
the version injuju status andjuju controllers should show4.0-beta11
Test case 4.2: upgrade to to the supplied –agent-stream and –agent-version
changeversion/core.go to4.0-beta5
juju bootstrap ps6 ctrl-upgrade4-2 --build-agent
juju switch controller
juju upgrade-controller --dry-run --agent-version 4.0-beta7 --agent-stream proposed -- should show4.0-beta7 as the best version.
juju ssh 0 thentail -f /var/log/juju/machine-0.log -- we want to see the logs for downloading and extracting4.0-beta7 from simplestreams
in another terminaljuju upgrade-controller --agent-version 4.0-beta7 --agent-stream proposed -- should say that it started upgrade4.0-beta7
go back to the first terminal where it's inside the controller machine, then check that/var/lib/juju/tools/4.0-beta7-ubuntu-amd64 exists because that's where the agent binary is extracted
the4.0-beta7 binary actually fails to start with... "api-caller" manifold worker returned unexpected error: [*] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refused which is expected. The fix to that is done infeat: upgrader services #21070 but4.0-beta7 doesn't have those changes. As long as the binaries are successfully extracted we treat this test case as a pass.
CAAS
Perfect — here’s yourCAAS QA section rewritten in the same structured style as your IAAS example, but withExpected / Actual explicitly included for each test case. Everything is formatted for GitHub Markdown (readable, consistent, and reviewer-friendly).
QA Steps
CAAS
1. Upgrade controller without passing--agent-version or--agent-stream
Test case 1.1: Multiple agents (<4.0-beta7) uploaded to the controller store, and HTTP simplestreams has4.0-beta7. Should upgrade to4.0-beta7 because it’s the highest version available.
const version="4.0-beta3"
make minikube-operator-update && juju bootstrap minikube alvin3
const version="4.0-beta9"
Check on dqlite that the controller state doesnot contain4.0-beta9.
juju model-config agent-stream=proposed
juju upgrade-controller --dry-run — should show4.0-beta7 as the best version.
juju upgrade-controller — should upgrade to4.0-beta7.
Verify controller version withjuju status andjuju controllers.
Expected: Finds and upgrades to4.0-beta7 from HTTP simplestreams because it’s the highest version. Actual: Finds and upgrades to4.0-beta7 from HTTP simplestreams because it’s the highest version.
Test case 1.2: Upload4.0-beta9 to the controller store. Should upgrade to4.0-beta9 because it’s the highest version available locally.
const version="4.0-beta3"
make minikube-operator-update && juju bootstrap minikube alvin3
const version="4.0-beta9"
Check on dqlite that the controller state doesnot contain4.0-beta9.
Verify controller version withjuju status andjuju controllers.
Expected: Finds and upgrades to4.0-beta9 from the controller store because it’s the highest version. Actual: Finds and upgrades to4.0-beta9 from the controller store because it’s the highest version.
2. Upgrade controller passing--agent-version only
Test case 2.1: HTTP simplestreams has4.0-beta5. Should upgrade to4.0-beta5 explicitly from the stream.
const version="4.0-beta3"
make minikube-operator-update && juju bootstrap minikube alvin3
Check on dqlite that controller state doesnot contain4.0-beta5.
juju model-config agent-stream=proposed
juju upgrade-controller --agent-version=4.0-beta5
Verify controller version withjuju status andjuju controllers.
Expected: Finds and upgrades to4.0-beta5 from HTTP simplestreams. Actual: Finds and upgrades to4.0-beta5 from HTTP simplestreams.
Test case 2.2:4.0-beta9 agent uploaded to the controller store. Passing--agent-version=4.0-beta5 should upgrade to4.0-beta5 specifically.
const version="4.0-beta3"
make minikube-operator-update && juju bootstrap minikube alvin3
const version="4.0-beta9"
Check on dqlite that the controller state doesnot contain4.0-beta9.
Test case 3.1: HTTP simplestreams has4.0-beta7. Should upgrade to4.0-beta7 because it’s the highest version in theproposed stream.
const version="4.0-beta3"
make minikube-operator-update && juju bootstrap minikube alvin3
Check on dqlite that controller state doesnot contain4.0-beta5.
juju model-config agent-stream=proposed
juju upgrade-controller --agent-stream=proposed
Verify controller version withjuju status andjuju controllers.
Expected: Finds and upgrades to4.0-beta7 from HTTP simplestreams because it’s the highest version. Actual: Finds and upgrades to4.0-beta7 from HTTP simplestreams because it’s the highest version. 🛈 StatefulSet image version remains4.0-beta3 — expected due to known issue in4.0-beta7.
Test case 3.2:4.0-beta9 agent uploaded to controller store. Should upgrade to4.0-beta9 because it’s the highest version available.
const version="4.0-beta3"
make minikube-operator-update && juju bootstrap minikube alvin3
Verify controller version withjuju status andjuju controllers.
Expected: Finds and upgrades to4.0-beta9 from the controller store because it’s the highest version. Actual: Finds and upgrades to4.0-beta9 from the controller store because it’s the highest version.
Verify controller version withjuju status andjuju controllers.
Expected: Finds and upgrades to4.0-beta7 from HTTP simplestreams because it’s the highest version. Actual: Finds and upgrades to4.0-beta7 from HTTP simplestreams because it’s the highest version.
Test case 4.2:4.0-beta9 agent uploaded to controller store. Should upgrade to4.0-beta9 as the explicitly supplied version from the released stream.
const version="4.0-beta3"
make minikube-operator-update && juju bootstrap minikube alvin3
Verify controller version withjuju status andjuju controllers.
Expected: Finds and upgrades to4.0-beta9 from the controller store because it’s the highest version. Actual: Finds and upgrades to4.0-beta9 from the controller store because it’s the highest version.
New set of types to the agent binary domain for representing a singularagent binary. Have added tests as well for helpers when working withslices of agent binaries.
matchThis commit introduces a new agent binary helper for matching agentbinaries in a slice that don't match the given target version. This wasintroduced to work a slice down to versions that a caller cares about.
This commit adds to the agent binary domain two new functions forworking with multiple architecture values. The first func allowstransforming a slice of agent binaries to a slice of architectures.The second func helps perform a difference over to architecture slicesto get the values from a which do not appear in b.This work was done to support controller upgrades.
Moving logic from the controller upgrade to the agent binary domainaround simple streams. This is so that all agent binary sources can berepresented as a store.
This commit is about getting some renaming done to represent ourconcepts a little more. I renamed agent store to agent object store.This was done so I can take over the name agent store for interfaces.This will allow use to describe different types of stores underdifferent names.
This commit creates a new set of interfaces in the agent binary domainfor describing what a store of agent binaries looks like. The newstructure defines store for getting, putting and querying agentbinaries.They have been seperated like this because not all stores support allfunctionality.
The agent binary service was double caching downloads and then passingit off to the store which was doing the same. Remove this code anddelegates processing to the store.
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.
Uh oh!
There was an error while loading.Please reload this page.
TODO: Extends on the work done in#21015
Checklist
QA steps
IAAS
1. Upgrade controller without passing --agent-version and --stream.
Test case 1.1: upgrade to the highest version from the controller store. Upload agents 4.0-beta10, 4.0-beta11, 4.0-beta12, and 4.0-beta13. It should upgrade to 4.0-beta13 because it’s the highest version.
juju bootstrap ps6 ctrl-upgrade1-1 --build-agentjuju switch controllerversion/core.goto4.0-beta10make simplestreamsexport JUJU_METADATA_SOURCE=<your own path>juju sync-agent-binary --agent-version 4.0-beta10juju upgrade-controller --dry-run-- should show4.0-beta13as the best versionjuju upgrade-controller-- should upgrade to4.0-beta13because it's the highest version.juju statusandjuju controllersshould show4.0-beta13Test case 1.2: exclude non-patch versions. Upload agents 4.0-beta10, 4.0-beta11, 4.0-beta12, 4.0-beta13, 4.1-beta1, and 5.0-beta1. It should upgrade to 4.0-beta14 because it’s the highest patch version.
juju bootstrap ps6 ctrl-upgrade1-2 --build-agentjuju switch controllerversion/core.goto4.0-beta10make simplestreamsexport JUJU_METADATA_SOURCE=<your own path>juju sync-agent-binary --agent-version 4.0-beta10juju upgrade-controller --dry-run-- should show4.0-beta13as the best versionjuju upgrade-controller-- should upgrade to4.0-beta13because it's the highest version. Agents4.1-beta1and5.0-beta1are exluded because they're not a patch upgrade from the current agent4.0-beta8.juju statusandjuju controllersshould show4.0-beta13Test case 1.3: upgrade to the highest version from simplestream. It should upgrade to 4.0-beta7 because that is the highest one in the
proposedstream.version/core.goto4.0-beta5juju bootstrap ps6 ctrl-upgrade1-3 --build-agent --config agent-stream=proposedjuju switch controllerjuju upgrade-controller --dry-run-- should show4.0-beta7as the best version.juju ssh 0thentail -f /var/log/juju/machine-0.log-- we want to see the logs for downloading and extracting4.0-beta7from simplestreamsjuju upgrade-controller-- should say that it started upgrade4.0-beta7/var/lib/juju/tools/4.0-beta7-ubuntu-amd64exists because that's where the agent binary is extracted4.0-beta7binary actually fails to start with... "api-caller" manifold worker returned unexpected error: [*] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refusedwhich is expected. The fix to that is done infeat: upgrader services #21070 but4.0-beta7doesn't have those changes. As long as the binaries are successfully extracted we treat this test case as a pass.2. Upgrade controller passing --agent-version
Test case 2.1: upgrades to a version from the controller store. Pass agent-version 4.0-beta9 that we uploaded.
juju bootstrap ps6 ctrl-upgrade2-1 --build-agentjuju switch controllerversion/core.goto4.0-beta9make simplestreamsexport JUJU_METADATA_SOURCE=<your own path>juju sync-agent-binary --agent-version 4.0-beta9juju upgrade-controller --dry-run-- should show4.0-beta9as the best versionjuju upgrade-controller-- should upgrade to4.0-beta9because it's the highest version.juju statusandjuju controllersshould show4.0-beta9Test case 2.2: upgrades to a version from simplestream. Pass an agent-version 4.0-beta7 that exists in stream.
version/core.goto4.0-beta5juju bootstrap ps6 ctrl-upgrade2-2 --build-agent --config agent-stream=proposedjuju switch controllerjuju upgrade-controller --agent-version 4.0-beta7 --dry-run-- should show4.0-beta7as the best version.juju ssh 0thentail -f /var/log/juju/machine-0.log-- we want to see the logs for downloading and extracting4.0-beta7from simplestreamsjuju upgrade-controller --agent-version 4.0-beta7-- should say that it started upgrade4.0-beta7/var/lib/juju/tools/4.0-beta7-ubuntu-amd64exists because that's where the agent binary is extracted4.0-beta7binary actually fails to start with... "api-caller" manifold worker returned unexpected error: [*] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refusedwhich is expected. The fix to that is done infeat: upgrader services #21070 but4.0-beta7doesn't have those changes. As long as the binaries are successfully extracted we treat this test case as a pass.3. Upgrade controller passing --agent-stream
Test case 3.1: upgrades to the highest version from a supplied stream in the controller store. Upload agents 4.0-beta10, 4.0-beta11, 4.0-beta12, and 4.0-beta13. It should upgrade to 4.0-beta13 because it’s the highest version.
It doesn’t matter what stream is passed when we want to upgrade to an agent from controller store. This is because we haven’t modeled the stream for the controller store.
juju bootstrap ps6 ctrl-upgrade3-1 --build-agentjuju switch controllerversion/core.goto4.0-beta10make simplestreamsexport JUJU_METADATA_SOURCE=<your own path>juju sync-agent-binary --agent-version 4.0-beta10juju upgrade-controller --dry-run --agent-stream released-- should show4.0-beta13as the best versionjuju upgrade-controller --agent-stream released-- should upgrade to4.0-beta13because it's the highest version.juju statusandjuju controllersshould show4.0-beta13Test case 3.2: upgrade to the highest version from simplestream. It should upgrade to 4.0-beta7 because that is the highest one in the
proposedstream.version/core.goto4.0-beta5juju bootstrap ps6 ctrl-upgrade3-2 --build-agentjuju switch controllerjuju upgrade-controller --dry-run --agent-stream proposed-- should show4.0-beta7as the best version.juju ssh 0thentail -f /var/log/juju/machine-0.log-- we want to see the logs for downloading and extracting4.0-beta7from simplestreamsjuju upgrade-controller --agent-stream proposed-- should say that it started upgrade4.0-beta7/var/lib/juju/tools/4.0-beta7-ubuntu-amd64exists because that's where the agent binary is extracted4.0-beta7binary actually fails to start with... "api-caller" manifold worker returned unexpected error: [*] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refusedwhich is expected. The fix to that is done infeat: upgrader services #21070 but4.0-beta7doesn't have those changes. As long as the binaries are successfully extracted we treat this test case as a pass.4. Upgrade controller passing both --agent-version and --stream
Test case 4.1: upgrade to the supplied version and stream from the controller store. Upload agents 4.0-beta10, 4.0-beta11, 4.0-beta12, and 4.0-beta13 to seed the controller store.
It doesn’t matter what stream is passed when we want to upgrade to an agent from controller store. This is because we haven’t modeled the stream for the controller store.
juju bootstrap ps6 ctrl-upgrade3-1 --build-agentjuju switch controllerversion/core.goto4.0-beta10make simplestreamsexport JUJU_METADATA_SOURCE=<your own path>juju sync-agent-binary --agent-version 4.0-beta10juju upgrade-controller --dry-run --agent-version 4.0-beta11 --agent-stream released-- should show4.0-beta11as the best versionjuju upgrade-controller --agent-version 4.0-beta11 --agent-stream released-- should upgrade to4.0-beta11juju statusandjuju controllersshould show4.0-beta11Test case 4.2: upgrade to to the supplied –agent-stream and –agent-version
version/core.goto4.0-beta5juju bootstrap ps6 ctrl-upgrade4-2 --build-agentjuju switch controllerjuju upgrade-controller --dry-run --agent-version 4.0-beta7 --agent-stream proposed-- should show4.0-beta7as the best version.juju ssh 0thentail -f /var/log/juju/machine-0.log-- we want to see the logs for downloading and extracting4.0-beta7from simplestreamsjuju upgrade-controller --agent-version 4.0-beta7 --agent-stream proposed-- should say that it started upgrade4.0-beta7/var/lib/juju/tools/4.0-beta7-ubuntu-amd64exists because that's where the agent binary is extracted4.0-beta7binary actually fails to start with... "api-caller" manifold worker returned unexpected error: [*] "machine-0" cannot open api: unable to connect to API: dial tcp 127.0.0.1:17070: connect: connection refusedwhich is expected. The fix to that is done infeat: upgrader services #21070 but4.0-beta7doesn't have those changes. As long as the binaries are successfully extracted we treat this test case as a pass.CAAS
Perfect — here’s yourCAAS QA section rewritten in the same structured style as your IAAS example, but withExpected / Actual explicitly included for each test case.
Everything is formatted for GitHub Markdown (readable, consistent, and reviewer-friendly).
QA Steps
CAAS
1. Upgrade controller without passing
--agent-versionor--agent-streamTest case 1.1: Multiple agents (<
4.0-beta7) uploaded to the controller store, and HTTP simplestreams has4.0-beta7.Should upgrade to
4.0-beta7because it’s the highest version available.const version="4.0-beta3"make minikube-operator-update && juju bootstrap minikube alvin3const version="4.0-beta9"4.0-beta9.juju model-config agent-stream=proposedjuju upgrade-controller --dry-run— should show4.0-beta7as the best version.juju upgrade-controller— should upgrade to4.0-beta7.juju statusandjuju controllers.Expected: Finds and upgrades to
4.0-beta7from HTTP simplestreams because it’s the highest version.Actual: Finds and upgrades to
4.0-beta7from HTTP simplestreams because it’s the highest version.Test case 1.2: Upload
4.0-beta9to the controller store.Should upgrade to
4.0-beta9because it’s the highest version available locally.const version="4.0-beta3"make minikube-operator-update && juju bootstrap minikube alvin3const version="4.0-beta9"4.0-beta9.make simplestreamsexport JUJU_METADATA_SOURCE="/home/alvin.chee@canonical.com/Desktop/repos/juju/_build/simplestreams"juju sync-agent-binary --agent-version=4.0-beta9unset JUJU_METADATA_SOURCEjuju upgrade-controller --debugjuju statusandjuju controllers.Expected: Finds and upgrades to
4.0-beta9from the controller store because it’s the highest version.Actual: Finds and upgrades to
4.0-beta9from the controller store because it’s the highest version.2. Upgrade controller passing
--agent-versiononlyTest case 2.1: HTTP simplestreams has
4.0-beta5.Should upgrade to
4.0-beta5explicitly from the stream.const version="4.0-beta3"make minikube-operator-update && juju bootstrap minikube alvin34.0-beta5.juju model-config agent-stream=proposedjuju upgrade-controller --agent-version=4.0-beta5juju statusandjuju controllers.Expected: Finds and upgrades to
4.0-beta5from HTTP simplestreams.Actual: Finds and upgrades to
4.0-beta5from HTTP simplestreams.Test case 2.2:
4.0-beta9agent uploaded to the controller store.Passing
--agent-version=4.0-beta5should upgrade to4.0-beta5specifically.const version="4.0-beta3"make minikube-operator-update && juju bootstrap minikube alvin3const version="4.0-beta9"4.0-beta9.make simplestreamsexport JUJU_METADATA_SOURCE="/home/alvin.chee@canonical.com/Desktop/repos/juju/_build/simplestreams"juju sync-agent-binary --agent-version=4.0-beta9unset JUJU_METADATA_SOURCEjuju upgrade-controller --agent-version=4.0-beta5juju statusandjuju controllers.Expected: Upgrades to
4.0-beta5(explicitly specified version).Actual: Upgrades to
4.0-beta5(explicitly specified version).3. Upgrade controller passing
--agent-streamonlyTest case 3.1: HTTP simplestreams has
4.0-beta7.Should upgrade to
4.0-beta7because it’s the highest version in theproposedstream.const version="4.0-beta3"make minikube-operator-update && juju bootstrap minikube alvin34.0-beta5.juju model-config agent-stream=proposedjuju upgrade-controller --agent-stream=proposedjuju statusandjuju controllers.Expected: Finds and upgrades to
4.0-beta7from HTTP simplestreams because it’s the highest version.Actual: Finds and upgrades to
4.0-beta7from HTTP simplestreams because it’s the highest version.🛈 StatefulSet image version remains
4.0-beta3— expected due to known issue in4.0-beta7.Test case 3.2:
4.0-beta9agent uploaded to controller store.Should upgrade to
4.0-beta9because it’s the highest version available.const version="4.0-beta3"make minikube-operator-update && juju bootstrap minikube alvin3const version="4.0-beta9"juju upgrade-controller --agent-stream=released --dry-run— verify controller store doesn’t yet have4.0-beta9.make simplestreamsexport JUJU_METADATA_SOURCE="/home/alvin.chee@canonical.com/Desktop/repos/juju/_build/simplestreams"juju sync-agent-binary --agent-version=4.0-beta9unset JUJU_METADATA_SOURCEjuju upgrade-controller --agent-stream=releasedjuju statusandjuju controllers.Expected: Finds and upgrades to
4.0-beta9from the controller store because it’s the highest version.Actual: Finds and upgrades to
4.0-beta9from the controller store because it’s the highest version.4. Upgrade controller passing both
--agent-versionand--agent-streamTest case 4.1: HTTP simplestreams has
4.0-beta7.Should upgrade to the explicitly supplied version
4.0-beta7from the stream.const version="4.0-beta3"make minikube-operator-update && juju bootstrap minikube alvin34.0-beta5.juju model-config agent-stream=proposedjuju upgrade-controller --agent-stream=proposed --agent-version=4.0-beta7juju statusandjuju controllers.Expected: Finds and upgrades to
4.0-beta7from HTTP simplestreams because it’s the highest version.Actual: Finds and upgrades to
4.0-beta7from HTTP simplestreams because it’s the highest version.Test case 4.2:
4.0-beta9agent uploaded to controller store.Should upgrade to
4.0-beta9as the explicitly supplied version from the released stream.const version="4.0-beta3"make minikube-operator-update && juju bootstrap minikube alvin3const version="4.0-beta9"juju upgrade-controller --agent-stream=released --agent-version=4.0-beta9 --dry-run— verify controller store doesn’t yet have4.0-beta9.make simplestreamsexport JUJU_METADATA_SOURCE="/home/alvin.chee@canonical.com/Desktop/repos/juju/_build/simplestreams"juju sync-agent-binary --agent-stream=released --agent-version=4.0-beta9unset JUJU_METADATA_SOURCEjuju upgrade-controller --agent-stream=released --agent-version=4.0-beta9juju statusandjuju controllers.Expected: Finds and upgrades to
4.0-beta9from the controller store because it’s the highest version.Actual: Finds and upgrades to
4.0-beta9from the controller store because it’s the highest version.Documentation changes
Links
Issue:Fixes#19267.
Jira card:JUJU-