Skip to content

Commit 8a62c75

Browse files
atharvauAtharva Udapure
andauthored
{Workload-orchestration} Initial CLI Extension Release (#8773)
* Upstream Merge * Merge from workload-orchestration : Added Example in Description (#34) * Merge from workload-orchestration : Fixed Example * Fixed Example for SolutionTemplateVersion * Made Changes for command-change CI fix' * Reset Version 1.0.0b1 * Added Bulk and Diagnostics Back (#35) Co-authored-by: Atharva Udapure <[email protected]> * Added Bulk Solution Example (#36) * Added Bulk and Diagnostics Back * Changes --------- Co-authored-by: Atharva Udapure <[email protected]> * Fixed Solution Template Linter Issue * Added Integration Tests Framework for WorkloadOrchestration #37 Co-authored-by: Atharva Udapure <[email protected]> * Added ServiceName (#38) * Added Tests * Made Changes on ServiceName --------- Co-authored-by: Atharva Udapure <[email protected]> * Added Full Target Solution Tests (#39) * Added Tests * Made Changes on ServiceName * Nit Changes * Made Changes for ContextLookup --------- Co-authored-by: Atharva Udapure <[email protected]> * Added E2E workflow Tests (#40) * Added Tests * Made Changes on ServiceName * Nit Changes * Made Changes for ContextLookup * Added complete workflow * Add Licence * Added License --------- Co-authored-by: Atharva Udapure <[email protected]> * Added Readme (#41) Co-authored-by: Atharva Udapure <[email protected]> * Bulk Deployemnent LRO changes (#42) * made changes * Added change * Added Changes in Test * Added CLi Changes * Added Setup --------- Co-authored-by: Atharva Udapure <[email protected]> * Added Changes For Backward Compitablity (#43) * Added Changes For Backward Compitablity * Made changes --------- Co-authored-by: Atharva Udapure <[email protected]> * Made changes (#44) Co-authored-by: Atharva Udapure <[email protected]> * Target Operations API refractoring (#47) * Changes I made * Make changes * Made chnages * Make changes --------- Co-authored-by: Atharva Udapure <[email protected]> * Stable API 2025-06-01 (#48) * Made changes * Made Changes --------- Co-authored-by: Atharva Udapure <[email protected]> * Change in ID in Targets (#50) * Made changes * changes --------- Co-authored-by: Atharva Udapure <[email protected]> * Remove Id and Name from Target Review (#51) Co-authored-by: Atharva Udapure <[email protected]> * final bulk (#52) Co-authored-by: Atharva Udapure <[email protected]> * Changes in ARG * Added Linter Exception * Added ITTests (#53) Co-authored-by: Atharva Udapure <[email protected]> * Standardize CLI (#54) * Made Changes * Made Changes * Made changes * Added Change * Made changes * Made changes * Made changes * Made Changes --------- Co-authored-by: Atharva Udapure <[email protected]> * Linter FIxes and Remove Preview * Removed Resolved from CLI * change in version * made changes (#55) Co-authored-by: Atharva Udapure <[email protected]> * Fixed history --------- Co-authored-by: Atharva Udapure <[email protected]>
1 parent 078579c commit 8a62c75

File tree

181 files changed

+39543
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

181 files changed

+39543
-1
lines changed

src/service_name.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -943,5 +943,10 @@
943943
"Command": "az data-transfer",
944944
"AzureServiceName": "Azure Data Transfer",
945945
"URL": ""
946-
}
946+
},
947+
{
948+
"Command": "az workload-orchestration",
949+
"AzureServiceName": "Workload Orchestration Manager",
950+
"URL": "https://learn.microsoft.com/en-us/azure/azure-arc/workload-orchestration"
951+
}
947952
]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.. :changelog:
2+
3+
Release History
4+
===============
5+
6+
1.0.0
7+
++++++
8+
* Initial release.
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
# Workload Orchestration
2+
3+
This guide will help you get started with Workload Orchestration for authoring, deploying, and monitoring application configurations using the converged object model.
4+
5+
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.
6+
7+
---
8+
9+
## User Personas
10+
11+
- **IT Persona**
12+
- *IT Admin*: Responsible for initial setup via CLI.
13+
- *IT Developer/DevOps*: Manages applications and configurations using CLI.
14+
- **OT Persona**
15+
- No-code users, using the portal for day-to-day activities.
16+
17+
| Profile | How to use Workload Orchestration |
18+
|-----------------|-----------------------------------|
19+
| IT Admin/DevOps | Use CLI as described below |
20+
| OT personas | Use [the portal](https://int.test.digitaloperations.configmanager.azure.com/#/browse/overview) |
21+
22+
---
23+
24+
## Workload Orchestration CLI Steps
25+
26+
### 1. Install Extension & Login
27+
28+
```sh
29+
az extension add --source <path-to-extension-file-workload-orchestration.whl>
30+
az login
31+
```
32+
33+
---
34+
35+
### 2. Create/Update Context
36+
37+
```sh
38+
az workload-orchestration context create \
39+
--subscription <subscription-id> \
40+
--resource-group <resource-group> \
41+
--location <location> \
42+
--name <context-name> \
43+
--capabilities "@context-capabilities.json" \
44+
--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
45+
```
46+
47+
---
48+
49+
### 3. Create Site Reference
50+
51+
```sh
52+
az workload-orchestration context.site-reference create \
53+
--subscription <subscription-id> \
54+
--resource-group <resource-group> \
55+
--context-name <context-name> \
56+
--name <site-reference-name> \
57+
--site-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Edge/sites/<site-name>"
58+
```
59+
60+
---
61+
62+
### 4. Create Target
63+
64+
```sh
65+
az workload-orchestration target create \
66+
--resource-group <resource-group> \
67+
--location <location> \
68+
--name <target-name> \
69+
--display-name <display-name> \
70+
--hierarchy-level line \
71+
--capabilities <capability> \
72+
--description "<description>" \
73+
--solution-scope "new" \
74+
--target-specification '@targetspecs.json' \
75+
--extended-location '@custom-location.json'
76+
```
77+
78+
---
79+
80+
### 5. Create Schema
81+
82+
```sh
83+
az workload-orchestration schema create \
84+
--resource-group <resource-group> \
85+
--version "1.0.0" \
86+
--schema-name <schema-name> \
87+
--schema-file ./shared-schema.yaml \
88+
--location <location>
89+
```
90+
91+
Or, if version is in the file, omit `--version`.
92+
93+
---
94+
95+
### 6. Create Solution Template and Version
96+
97+
```sh
98+
az workload-orchestration solution-template create \
99+
--solution-template-name <solution-template-name> \
100+
-g <resource-group> \
101+
-l <location> \
102+
--capabilities <capability> \
103+
--description "<description>" \
104+
--configuration-template-file ./hotmelt-config-template.yaml \
105+
--specification "@specs.json" \
106+
--version "1.0.0"
107+
```
108+
109+
```sh
110+
az workload-orchestration solution-template-version create \
111+
--template-name <solution-template-name> \
112+
--version 1.0.0 \
113+
--file solution-template-version.yaml
114+
```
115+
116+
---
117+
118+
### 7. Set Configuration Values
119+
120+
```sh
121+
az workload-orchestration configuration set \
122+
-g <resource-group> \
123+
--solution-template-name <solution-template-name> \
124+
--target-name <target-name>
125+
```
126+
127+
---
128+
129+
### 8. Resolve and Review
130+
131+
```sh
132+
az workload-orchestration target review \
133+
--solution-template-name <solution-template-name> \
134+
--solution-template-version 1.0.0 \
135+
--resource-group <resource-group> \
136+
--target-name <target-name>
137+
```
138+
*Review the output for `reviewId` and new solution version.*
139+
140+
---
141+
142+
### 9. Publish and Install
143+
144+
**Publish:**
145+
```sh
146+
az workload-orchestration target publish \
147+
--solution-name <solution-template-name> \
148+
--solution-version <new-version> \
149+
--review-id <review-id> \
150+
--resource-group <resource-group> \
151+
--target-name <target-name>
152+
```
153+
154+
**Install:**
155+
```sh
156+
az workload-orchestration target install \
157+
--solution-name <solution-template-name> \
158+
--solution-version <new-version> \
159+
--resource-group <resource-group> \
160+
--target-name <target-name>
161+
```
162+
163+
---
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# --------------------------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
#
5+
# Code generated by aaz-dev-tools
6+
# --------------------------------------------------------------------------------------------
7+
8+
from azure.cli.core import AzCommandsLoader
9+
from azext_workload_orchestration._help import helps # pylint: disable=unused-import
10+
11+
12+
class WorkloadOperationsCommandsLoader(AzCommandsLoader):
13+
14+
def __init__(self, cli_ctx=None):
15+
from azure.cli.core.commands import CliCommandType
16+
custom_command_type = CliCommandType(
17+
operations_tmpl='azext_workload_orchestration.custom#{}')
18+
super().__init__(cli_ctx=cli_ctx,
19+
custom_command_type=custom_command_type)
20+
21+
def load_command_table(self, args):
22+
from azext_workload_orchestration.commands import load_command_table
23+
from azure.cli.core.aaz import load_aaz_command_table
24+
try:
25+
from . import aaz
26+
except ImportError:
27+
aaz = None
28+
if aaz:
29+
load_aaz_command_table(
30+
loader=self,
31+
aaz_pkg_name=aaz.__name__,
32+
args=args
33+
)
34+
load_command_table(self, args)
35+
return self.command_table
36+
37+
def load_arguments(self, command):
38+
from azext_workload_orchestration._params import load_arguments
39+
load_arguments(self, command)
40+
41+
42+
COMMAND_LOADER_CLS = WorkloadOperationsCommandsLoader
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# --------------------------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
#
5+
# Code generated by aaz-dev-tools
6+
# --------------------------------------------------------------------------------------------
7+
8+
# pylint: disable=line-too-long
9+
# pylint: disable=too-many-lines
10+
11+
from knack.help_files import helps # pylint: disable=unused-import
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# --------------------------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
#
5+
# Code generated by aaz-dev-tools
6+
# --------------------------------------------------------------------------------------------
7+
8+
# pylint: disable=too-many-lines
9+
# pylint: disable=too-many-statements
10+
11+
12+
def load_arguments(self, _): # pylint: disable=unused-argument
13+
pass
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# --------------------------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
#
5+
# Code generated by aaz-dev-tools
6+
# --------------------------------------------------------------------------------------------
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# --------------------------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
#
5+
# Code generated by aaz-dev-tools
6+
# --------------------------------------------------------------------------------------------
7+
8+
# pylint: skip-file
9+
# flake8: noqa
10+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# --------------------------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
#
5+
# Code generated by aaz-dev-tools
6+
# --------------------------------------------------------------------------------------------
7+
8+
# pylint: skip-file
9+
# flake8: noqa
10+
11+
from azure.cli.core.aaz import *
12+
13+
14+
@register_command_group(
15+
"workload-orchestration",
16+
)
17+
class __CMDGroup(AAZCommandGroup):
18+
"""Manage workload orchestration resources
19+
"""
20+
pass
21+
22+
23+
__all__ = ["__CMDGroup"]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# --------------------------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
#
5+
# Code generated by aaz-dev-tools
6+
# --------------------------------------------------------------------------------------------
7+
8+
# pylint: skip-file
9+
# flake8: noqa
10+
11+
from .__cmd_group import *

0 commit comments

Comments
 (0)