Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
2f7cbc5
Upstream Merge
May 20, 2025
c0a79fb
Merge from workload-orchestration : Added Example in Description (#34)
May 20, 2025
b96a0a8
Merge from workload-orchestration : Fixed Example
May 20, 2025
c807d43
Fixed Example for SolutionTemplateVersion
May 20, 2025
c4c37f0
Made Changes for command-change CI fix'
May 21, 2025
8c6377e
Reset Version 1.0.0b1
May 21, 2025
250fa6e
Added Bulk and Diagnostics Back (#35)
atharvau May 22, 2025
1175aa9
Added Bulk Solution Example (#36)
atharvau May 22, 2025
ef52fed
Fixed Solution Template Linter Issue
May 22, 2025
71fe3e9
Added Integration Tests Framework for WorkloadOrchestration #37
atharvau May 28, 2025
34fc5e4
Added ServiceName (#38)
atharvau May 29, 2025
92925f3
Added Full Target Solution Tests (#39)
atharvau May 29, 2025
0f5953c
Merge branch 'main' into main-upstream-workload-orchestration
atharvau May 29, 2025
bec5e02
Added E2E workflow Tests (#40)
atharvau May 30, 2025
3f598b0
Added Readme (#41)
atharvau Jun 2, 2025
38b897e
Bulk Deployemnent LRO changes (#42)
atharvau Jun 4, 2025
28f3a22
Added Changes For Backward Compitablity (#43)
atharvau Jun 11, 2025
f75fa21
Made changes (#44)
atharvau Jun 19, 2025
62ba922
Target Operations API refractoring (#47)
atharvau Jun 20, 2025
6723076
Stable API 2025-06-01 (#48)
atharvau Jun 20, 2025
f461e2b
Change in ID in Targets (#50)
atharvau Jun 20, 2025
eef291f
Remove Id and Name from Target Review (#51)
atharvau Jun 20, 2025
a3cbb74
final bulk (#52)
atharvau Jun 22, 2025
0c2c3bb
Changes in ARG
Jun 23, 2025
c338fef
Added Linter Exception
Jun 23, 2025
9675a3a
Merge branch 'main' into main-upstream-workload-orchestration
atharvau Jun 23, 2025
66fae64
Added ITTests (#53)
atharvau Jun 23, 2025
7fa54c5
Standardize CLI (#54)
atharvau Jun 25, 2025
ff6d6ab
Linter FIxes and Remove Preview
Jun 25, 2025
5012f9c
Removed Resolved from CLI
Jun 25, 2025
2515eb9
change in version
Jun 25, 2025
b910fa1
made changes (#55)
atharvau Jun 25, 2025
34fea7a
Fixed history
Jun 25, 2025
0491bdd
Made Changes
Jul 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion src/service_name.json
Original file line number Diff line number Diff line change
Expand Up @@ -958,5 +958,10 @@
"Command": "az data-transfer",
"AzureServiceName": "Azure Data Transfer",
"URL": ""
}
},
{
"Command": "az workload-orchestration",
"AzureServiceName": "Workload Orchestration Manager",
"URL": "https://learn.microsoft.com/en-us/azure/azure-arc/workload-orchestration"
}
]
8 changes: 8 additions & 0 deletions src/workload-orchestration/HISTORY.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.. :changelog:

Release History
===============

1.0.0
++++++
* Initial release.
163 changes: 163 additions & 0 deletions src/workload-orchestration/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# Workload Orchestration

This guide will help you get started with Workload Orchestration for authoring, deploying, and monitoring application configurations using the converged object model.

Key features of the public preview release include end-to-end flows for application dependencies, along with an enhanced UI experience offering additional capabilities like Compare, Copy, Delete, Uninstall, and more.

---

## User Personas

- **IT Persona**
- *IT Admin*: Responsible for initial setup via CLI.
- *IT Developer/DevOps*: Manages applications and configurations using CLI.
- **OT Persona**
- No-code users, using the portal for day-to-day activities.

| Profile | How to use Workload Orchestration |
|-----------------|-----------------------------------|
| IT Admin/DevOps | Use CLI as described below |
| OT personas | Use [the portal](https://int.test.digitaloperations.configmanager.azure.com/#/browse/overview) |

---

## Workload Orchestration CLI Steps

### 1. Install Extension & Login

```sh
az extension add --source <path-to-extension-file-workload-orchestration.whl>
az login
```

---

### 2. Create/Update Context

```sh
az workload-orchestration context create \
--subscription <subscription-id> \
--resource-group <resource-group> \
--location <location> \
--name <context-name> \
--capabilities "@context-capabilities.json" \
--hierarchies [0].name=country [0].description=Country [1].name=region [1].description=Region [2].name=factory [2].description=Factory [3].name=line [3].description=Line
```

---

### 3. Create Site Reference

```sh
az workload-orchestration context.site-reference create \
--subscription <subscription-id> \
--resource-group <resource-group> \
--context-name <context-name> \
--name <site-reference-name> \
--site-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Edge/sites/<site-name>"
```

---

### 4. Create Target

```sh
az workload-orchestration target create \
--resource-group <resource-group> \
--location <location> \
--name <target-name> \
--display-name <display-name> \
--hierarchy-level line \
--capabilities <capability> \
--description "<description>" \
--solution-scope "new" \
--target-specification '@targetspecs.json' \
--extended-location '@custom-location.json'
```

---

### 5. Create Schema

```sh
az workload-orchestration schema create \
--resource-group <resource-group> \
--version "1.0.0" \
--schema-name <schema-name> \
--schema-file ./shared-schema.yaml \
--location <location>
```

Or, if version is in the file, omit `--version`.

---

### 6. Create Solution Template and Version

```sh
az workload-orchestration solution-template create \
--solution-template-name <solution-template-name> \
-g <resource-group> \
-l <location> \
--capabilities <capability> \
--description "<description>" \
--configuration-template-file ./hotmelt-config-template.yaml \
--specification "@specs.json" \
--version "1.0.0"
```

```sh
az workload-orchestration solution-template-version create \
--template-name <solution-template-name> \
--version 1.0.0 \
--file solution-template-version.yaml
```

---

### 7. Set Configuration Values

```sh
az workload-orchestration configuration set \
-g <resource-group> \
--solution-template-name <solution-template-name> \
--target-name <target-name>
```

---

### 8. Resolve and Review

```sh
az workload-orchestration target review \
--solution-template-name <solution-template-name> \
--solution-template-version 1.0.0 \
--resource-group <resource-group> \
--target-name <target-name>
```
*Review the output for `reviewId` and new solution version.*

---

### 9. Publish and Install

**Publish:**
```sh
az workload-orchestration target publish \
--solution-name <solution-template-name> \
--solution-version <new-version> \
--review-id <review-id> \
--resource-group <resource-group> \
--target-name <target-name>
```

**Install:**
```sh
az workload-orchestration target install \
--solution-name <solution-template-name> \
--solution-version <new-version> \
--resource-group <resource-group> \
--target-name <target-name>
```

---
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

from azure.cli.core import AzCommandsLoader
from azext_workload_orchestration._help import helps # pylint: disable=unused-import


class WorkloadOperationsCommandsLoader(AzCommandsLoader):

def __init__(self, cli_ctx=None):
from azure.cli.core.commands import CliCommandType
custom_command_type = CliCommandType(
operations_tmpl='azext_workload_orchestration.custom#{}')
super().__init__(cli_ctx=cli_ctx,
custom_command_type=custom_command_type)

def load_command_table(self, args):
from azext_workload_orchestration.commands import load_command_table
from azure.cli.core.aaz import load_aaz_command_table
try:
from . import aaz
except ImportError:
aaz = None
if aaz:
load_aaz_command_table(
loader=self,
aaz_pkg_name=aaz.__name__,
args=args
)
load_command_table(self, args)
return self.command_table

def load_arguments(self, command):
from azext_workload_orchestration._params import load_arguments
load_arguments(self, command)


COMMAND_LOADER_CLS = WorkloadOperationsCommandsLoader
11 changes: 11 additions & 0 deletions src/workload-orchestration/azext_workload_orchestration/_help.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: disable=line-too-long
# pylint: disable=too-many-lines

from knack.help_files import helps # pylint: disable=unused-import
13 changes: 13 additions & 0 deletions src/workload-orchestration/azext_workload_orchestration/_params.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: disable=too-many-lines
# pylint: disable=too-many-statements


def load_arguments(self, _): # pylint: disable=unused-argument
pass
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: skip-file
# flake8: noqa

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: skip-file
# flake8: noqa

from azure.cli.core.aaz import *


@register_command_group(
"workload-orchestration",
)
class __CMDGroup(AAZCommandGroup):
"""Manage workload orchestration resources
"""
pass


__all__ = ["__CMDGroup"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: skip-file
# flake8: noqa

from .__cmd_group import *
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: skip-file
# flake8: noqa

from azure.cli.core.aaz import *


@register_command_group(
"workload-orchestration artifcat",
)
class __CMDGroup(AAZCommandGroup):
"""workload-orchestration configuration helps to manage configurations
"""
pass


__all__ = ["__CMDGroup"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: skip-file
# flake8: noqa

from .__cmd_group import *
from ._generate import *
from ._simple_generate import *
Loading
Loading