Note: Access must first be granted via Partner Portal User Management.
- Marketplace Offers: https://partner.microsoft.com/en-us/dashboard/marketplace-offers/overview
- Production Listing: https://partner.microsoft.com/en-us/dashboard/commercial-marketplace/offers/3b0884cf-abb0-46cf-a48b-55ee7245e8a9/overview
- Technical Configuration: https://partner.microsoft.com/en-us/dashboard/commercial-marketplace/offers/3b0884cf-abb0-46cf-a48b-55ee7245e8a9/plans/79f87324-ae57-4ec9-a648-5d6cca31b781/technicalconfiguration
- Customer Marketplace Listing: https://azuremarketplace.microsoft.com/en-gb/marketplace/apps/appvialtd.wayfinder?tab=Overview
- Azure CLI
- JQ
One asset is produced and published on the Marketplace:
- An
app.zip
file containing the ARM Template files and the deployment script used to run the Wayfinder installer
The main
branch is the default branch for the repository, confirmed working with the latest public and issued final version of Wayfinder.
The develop
branch points at the latest published development version of Wayfinder, which is not yet ready for release. The Wayfinder binary for these releases is fetched from: https://storage.googleapis.com/wayfinder-dev-releases/latest/wf-cli-linux-amd64
This branch is to be used in Wayfinder end-to-end testing prior to issuing a new tagged release of Wayfinder. If a failure is found in the E2E against this develop branch, a new issue should be created in JIRA. The likelihood is that the template or WF installer flags need updating to support any new changes introduced in the product.
Note: If this repository requires an update, you must run make dev-latest
and publish the resulting app.zip
file to the "E2E" Offer.
A CI pipeline is kicked off when a PR is raised or updated, this will:
- Point at the Wayfinder Version referenced in the
Makefile
- Build an
app.zip
file that would be used to update and publish the Live Azure Marketplace Offer.
The Marketplace Technical Configuration has a strict tagging format, {integer}.{integer}.{integer}
. Both Wayfinder versions and Azure ARM template versions could move independently, and so this repository will be tagged using the format v{major}.{minor}.{patch}-arm.{azure-template-version}
, which keeps in line with how we manage AWS Marketplace versions.
When uploading a new package file to the Azure listing, the version should follow Wayfinder (e.g. 1.5.0
), and any subsequent template updates (after the initial published version) will have a incrementing digit suffixed to the version. This is an unlikely and rare case where the template has encountered a failure after a version has already been published (e.g. Azure have made a breaking change conflicting with the ARM template spec).
Example 1:
- Product Version: v1.6.1
- Repository Version: v1.6.1-arm.1 (the first version)
- Marketplace Listing: 1.6.11
Example 2:
- Product Version: v1.6.1
- Repository Version: v1.6.1-arm.5 (template has been incremented 4 times since v1.6.1 was first published)
- Marketplace Listing: 1.6.15
Tags are produced off the develop
branch, validated and tested in the Azure Marketplace, and then merged into the main
branch. Because tags are associated with a product version, the version must be updated in the Makefile prior to tagging (modify the value for WF_VERSION
).
Notes:
The Azure Marketplace Offer will list a tagged version of the ARM template. This must be updated every time there a new version of the Product or this Repository template is released.
Offer IDs:
- Official Published Listing:
wayfinder
(orwayfinder-preview
for drafted changes) - E2E Offer for Dev Testing:
wayfindertest-preview
Run the below command to accept terms for the relevant Offer:
SUBSCRIPTION_ID="f21fbcee-a453-4e05-9d85-28a8bdb2970f" # Replace with your ID
# Live Offer
az vm image terms accept --publisher appvialtd --offer wayfinder --plan standard --subscription ${SUBSCRIPTION_ID}
# E2E dev-latest Offer
az vm image terms accept --publisher appvialtd --offer wayfindertest-preview --plan standard --subscription ${SUBSCRIPTION_ID}
Deploy Live & Tagged Version:
MRG_NAME="mrg-wayfinder-$(date '+%Y%m%d%H%M%S')"
az managedapp create --subscription <subscription-id> -g <rg-for-managed-app> -n wfmanagedappname -l uksouth --kind Marketplace --plan-version <azure-plan-version> --plan-publisher appvialtd --plan-product wayfinder --plan-name standard -m /subscriptions/<subscription-id>/resourceGroups/${MRG_NAME}
Override the Wayfinder installer version:
MRG_NAME="mrg-wayfinder-$(date '+%Y%m%d%H%M%S')"
az managedapp create --subscription <subscription-id> -g <rg-for-managed-app> -n wfmanagedappname -l uksouth --kind Marketplace --plan-version <azure-plan-version> --plan-publisher appvialtd --plan-product wayfinder --plan-name standard -m /subscriptions/<subscription-id>/resourceGroups/${MRG_NAME} --parameters '{ "releases": { "value": "releases" }, "version": { "value": "v1.6.1" } }'
Deploy unlisted E2E version:
MRG_NAME="mrg-wayfinder-$(date '+%Y%m%d%H%M%S')"
az managedapp create --subscription <subscription-id> -g <rg-for-managed-app> -n wfmanagedappname -l uksouth --kind Marketplace --plan-version 0.0.0 --plan-publisher appvialtd --plan-product wayfindertest-preview --plan-name standard -m /subscriptions/<subscription-id>/resourceGroups/${MRG_NAME}
BRANCH="some-new-release" # The branch or tag of this repository containing the ARM template files to deploy
WF_CHANNEL="releases" # The release channel to use for fetching the WF binary
WF_VERSION="v1.6.1" # The version of WF to deploy
./arm-template/scripts/upgrade.sh -s <subscription-id> -g <rg-for-managed-app> -n wfmanagedappname -b ${BRANCH} -r ${WF_CHANNEL} -v ${WF_VERSION}
az managedapp delete --subscription <subscription-id> -g <rg-for-managed-app> -n wfmanagedappname
- Live Offer:
make dist
- E2E Offer:
make dev-latest
The resulting file is located at: .build/app.zip
- Navigate to Wayfinder Offer - Technical Configuration
- Specify the new version according to the versioning strategy mentioned in this README
- Upload the
app.zip
you created by drag + dropping into thePackage file
section - Press
Save draft
&Review and publish
- Tick everything and press
Publish
on the next screen - Wait until the Offer has moved into
Publisher signoff
(preview creation has succeeded) - [LIVE OFFER ONLY] Press the
Go live
button