Hi Rich,
Thanks for getting in touch! I’ve been talking with my teammates about this one a bit. We are hesitant to add another option/switch to channels if we can avoid it at this point. We don’t want things to get more complicated without a really compelling reason, and then UX, behind it.
Reproduction
I’ve been trying to reproduce what you’ve described, but I can’t seem to make it happen.
For example, when I use the latest version of octo.exe
, when I use this command line with --tenant=* it does what I expect, and finds all the tenants who are ready for the release, then queues deployments of that release only for those tenants.
Octo.exe deploy-release --project=Alternize --deployTo="MT Test" --version=1.0.0 --server=http://localhost:8065 --user=admin --pass=password --tenant=*
Octopus Deploy Command Line Tool, version 1.0.0
Handshaking with Octopus server: http://localhost:8065
Handshake successful. Octopus version: 0.0.0-local; API version: 3.0.0
Authenticated as: admin <null>
Finding project: Alternize
Finding release 1.0.0
Found 10 Tenants who can deploy Alternize 1.0.0 to MT Test
Deploying Alternize "1.0.0" to: MT Test for Pedro Webb (Guided Failure: Not Enabled)
Deploying Alternize "1.0.0" to: MT Test for Hunter Banks (Guided Failure: Not Enabled)
Deploying Alternize "1.0.0" to: MT Test for Clifton Ramirez (Guided Failure: Not Enabled)
Deploying Alternize "1.0.0" to: MT Test for Edward Marshall (Guided Failure: Not Enabled)
Deploying Alternize "1.0.0" to: MT Test for Ray Harrison (Guided Failure: Not Enabled)
Deploying Alternize "1.0.0" to: MT Test for Sylvia Porter (Guided Failure: Not Enabled)
Deploying Alternize "1.0.0" to: MT Test for Lester Henderson (Guided Failure: Not Enabled)
Deploying Alternize "1.0.0" to: MT Test for Edith Montgomery (Guided Failure: Not Enabled)
Deploying Alternize "1.0.0" to: MT Test for Brandon Bradley (Guided Failure: Not Enabled)
Deploying Alternize "1.0.0" to: MT Test for Claudia Craig (Guided Failure: Not Enabled)
To perform an un-tenanted deployment I need to omit the --tenant=
option altogether. I believe octo.exe
is already working the way you expected?
Could you send me through some logs which show how TeamCity is calling octo.exe and the resulting deployments that are queued?
Consider moving your project to Tenanted Only
To remove a lot of this kind of complexity and confusion I commonly recommend moving away from having “hybrid” projects, where Multi-tenant deployments: Allow deployments with or without a tenant
, instead moving towards Multi-tenant deployments: Require a tenant for all deployments
.
The upside is all of your deployments are consistent: variables come from the same place, your deployments will all run the same, and you don’t have confusion about why un-tenanted deployments are allowed in certain scenarios.
All you have to do is create a single tenant to replace your current un-tenanted deployments, then connect that tenant to all the environments where you would previously perform un-tenanted deployments.
Is there a reason why you decided to use un-tenanted deployments? Or is there a reason why creating a single tenant to replace the un-tenanted deployments is not practical for your scenario?
Un-tenanted deployments were designed to provide an upgrade path, and at some point you’d disable un-tenanted deployments. We are finding quite a few customers are persisting with un-tenanted deployments and are trying to understand why.
Hope that helps!
Mike