Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
IT admins and developers are responsible for setting up and configuring workload orchestration. This includes configuring the resources, authoring solutions, and managing deployments.
This article describes the steps to configure application specific resources such as workload orchestration resources, author solutions, and manage deployments. It also provides information about application and solution versioning, different ways to author configurations, and different solution authoring scenarios.
Tip
You can follow the instructions in this article and run through each command, or if you prefer, you can run the onboarding scripts for a one-click setup.
Prerequisites
Before you begin, you need to have the prerequisites and ensure you followed the steps listed in Prepare the environment for workload orchestration.
Important
Standard Azure resources, such as Arc-enabled Kubernetes clusters and custom location, and workload orchestration resources, such as context, targets, and solutions, should be created in the same Azure region.
Set up the resources of workload orchestration
Workload orchestration is implemented as a resource provider in Azure and exposes multiple resource types that stitch the whole experience together. The IT admin is responsible for setting up the resources that are needed to run workload orchestration. The resources are created in the Azure portal and are used to manage the deployment of applications across the Arc-enabled Kubernetes cluster.
Some of the resources that need to be set up by the IT admin are:
- Hierarchies: Name-description pairs that define the levels of hierarchical structure resonating with the customer’s resource topology. For example, a manufacturing customer can have two levels, Factory and Line.
- Capabilities: Name-description pairs that describe what a resource is capable of doing.
- Targets: The actual resources. They're typically a Kubernetes cluster or custom location within Kubernetes cluster where you can deploy applications. These resources need to be tagged with 'Capability Lists' for application deployment purposes.
Important
Workload orchestration resources should be created in EastUS and EastUS2 Azure regions.
The following steps show how to configure the resources of workload orchestration.
Define workload orchestration variables. The following variables are used in the example. You can change the values as per your requirements.
# No space is allowed between comma-separated values for lists # Enter resource group rg="<resource-group-name>" # Enter name of Configuration Manager instance instanceName="redmondInstance" # Enter name of hierarchy list hierarchyName="hierarchyList1" # Enter name of capability list capListName="tagList1" # Enter parent level name level1="factory" # Enter child level name level2="line" # The parent will be the site here parentName="$siteName" # Enter child name childName="Line01" # Enter description of Line01 childDesc="This line is used for soap and conditioner production" # Enter name of site siteName="Site01" # Enter id of the site siteId="/subscriptions/$subId/resourceGroups/$rg/providers/Microsoft.Edge/sites/$sitename" # Enter capabilities for child target capChildList="[soap,shampoo,conditioner]"
Note
All resource names—including targets, solution templates, configuration schemas, and instance names—must follow the naming pattern given by the regular expression
^(?!v-)(?!.*-v-)a-zA-Z0-9?(\.a-zA-Z0-9?)*$
. This means:- Must start and end with an alphanumeric character.
- Can contain hyphens, but not at the start or end of any segment.
- Can contain dots to separate segments, but not consecutive dots or empty segments.
- Can't have any special characters other than hyphen and dot.
- Can't start with v-.
- Can't contain -v- anywhere.
Create workload orchestration context with hierarchies. Edit the
--hierarchies
and--capabilities
parameters as per your requirements. The following example creates a context with two hierarchies:factory
andline
, and three capabilities:soap
,shampoo
, andconditioner
.az workload-orchestration context create --subscription "$subId" --resource-group "$rg" --location "$l" --name "$instanceName" \ --hierarchies '[{"name":"factory","description":"belongs to Factory and hence lines within the factory"},{"name":"line","description":"belongs to specific line"}]' \ --capabilities '[{"name":"soap","description":"For soap production"},{"name":"shampoo","description":"For shampoo production"},{"name":"conditioner","description":"For conditioner production"}]'
You can also use an already existing context by running the
context update
command with the--context-id
parameter while passing the desired list of capabilities and hierarchies into it. You can add more capabilities, but removing and deleting isn't supported.az workload-orchestration context update --context-id "/subscriptions/$subId/resourceGroups/$rg/providers/private.edge/context/$contextName" --hierarchies "<hierarchies-list" --capabilities "<capabilities-list>"
Note
The context name must be between 3 and 61 characters in length and follow the naming pattern defined by the regular expression
^a-zA-Z0-9?(\.a-zA-Z0-9?)*$
. This means:- Must start and end with an alphanumeric character.
- Can contain hyphens, but not at the start or end of any segment.
- Can contain dots to separate segments, but not consecutive dots or empty segments.
- Can't have any special characters other than hyphen and dot.
Create a site reference to link the workload orchestration instance to
Site
for parent hierarchical level operations.az workload-orchestration context site-reference create --subscription "$subId" --resource-group "$rg" --context-name "$instanceName" --name "$siteReference" --site-id "$siteId"
Create a JSON file named
targetspecs.json
by referring to the sample file here.Look up the custom location details.
CustomLocationName=$(az resource list --resource-type Microsoft.ExtendedLocation/customLocations --resource-group "$rg" --name "$clusterName-Location" --query [].id --output tsv)
Create a target reference. The attribute
--solution-scope
is set tonew
to create a new target. The--target-specification
attribute specifies that the Helm charts are being used for the K8s deployment. The--extended-location
attribute is used to specify the custom location of the AKS cluster.az workload-orchestration target create --resource-group "$rg" --location "$l" --name "$childName" --display-name "$childName" --hierarchy-level "$level2" --capabilities "$capChildList" --description "$childDesc" --solution-scope "new" --target-specification '@targetspecs.json' --extended-location '@custom-location.json' --context-id "/subscriptions/$subId/resourceGroups/$rg/providers/private.edge/contexts/$contextName"
Contact support
For feedback, submit your comments through the WOFeedback form.
To report issues, use the WOReportIssues form.
Next steps
Once you have set up the infrastructure and the workload orchestration resources, you can start authoring solutions and managing deployments. To get started, see the Quickstart: Create a basic solution to learn how to create a basic solution, configure it, and deploy it to a target.