Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 8 additions & 0 deletions src/workload-orchestration/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
Release History
===============

2.0.0
++++++
* Added required context-id parameter to target create command
* Fixed target update command to preserve contextId property during PUT operations
* Enhanced package description with comprehensive workload orchestration summary
* Improved README documentation with detailed feature descriptions and use cases
* Better formatting and structure in package metadata

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

## What is Workload Orchestration?

Workload orchestration for Azure Arc is a comprehensive, cloud-native, cross-platform service engine that simplifies the deployment, management, and update of application workloads across edge environments. It addresses typical application lifecycle management problems for customers who need application deployments across multiple fleets with site-specific configurations and natively supports Kubernetes workloads.

## What Problems Does Workload Orchestration Solve?

Workload orchestration addresses several key challenges faced by organizations managing applications at the edge:

- **Distributed Configuration Authoring**: Managing configuration files for multiple applications often requires input from different stakeholders across various edge locations, making collaboration and consistency difficult.
- **Edge Contextualization**: Edge environments typically include diverse devices and complex topologies, each requiring tailored configurations to meet site-specific needs.
- **Configuration Validation**: Ensuring that configuration parameters are correct before deployment is critical to prevent misconfigurations and avoid costly downtime or productivity loss.
- **Version Management**: Maintaining multiple versions of application code and configuration files can complicate auditing and tracking changes across deployments.
- **Lack of Visibility**: Without a unified view of applications and deployment status, identifying failures and optimizing operations becomes a manual, resource-intensive process.
- **Role-Based Access Control (RBAC)**: Enforcing role-based access ensures that only authorized users can manage and operate within their designated scope, improving security and governance.
- **Logging and Traceability**: Comprehensive logging and error tracing are essential for effective debugging, remediation, and compliance.

## Key Features

- **Template Framework and Schema Inheritance**: Define solution configurations and schemas once, then reuse or extend them for multiple deployments. Central IT teams can create a single source of truth for app configurations, which sites can inherit and customize as needed.
- **Dependent Application Management**: Deploy and manage interdependent applications using orchestrated workflows. Supports configuring and deploying apps with dependencies through the CLI or workload orchestration portal.
- **Custom and External Validation Rules**: Administrators can define pre-deployment validation rules to check parameter inputs and settings, preventing misconfigurations. External validation lets you verify templates through services like Azure Functions or webhooks.
- **Integrated Monitoring and Unified Control**: Monitor deployments and workload health from a centralized dashboard. Pause, retry, or roll back deployments as needed, with full logging and compliance visibility.
- **No-Code Authoring Experience with RBAC**: The workload orchestration portal offers a no-code UI for defining and updating application settings, secured with role-based access control and audit logging.
- **CLI and Automation Support**: IT admins and DevOps engineers can use the CLI for scripted deployments, automation, and CI/CD integration, enabling bulk management of application lifecycles across sites.
- **Fast Onboarding and Setup**: Guided workflows help you quickly configure your organizational hierarchy, user roles, and access policies.

## How It Works

Workload orchestration uses both cloud and edge components to deliver a unified management experience. The cloud-based control plane leverages a dedicated Azure resource provider, allowing you to centrally define deployment templates. These templates are then consumed by workload orchestration agents running at edge locations, which automatically adapt and apply the necessary customizations for each site.

All workload orchestration resources are managed through Azure Resource Manager, enabling fine-grained Role-Based Access Control (RBAC) and consistent governance. You can interact with workload orchestration using the CLI and Azure portal, while non-code onsite staff benefit from a user-friendly interface for authoring, monitoring, and deploying solutions with site-specific configurations.

---

## Getting Started

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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@ def _build_arguments_schema(cls, *args, **kwargs):
options=["--context-id"],
arg_group="Properties",
help="ArmId of Context",
required=True,
)
_args_schema.description = AAZStrArg(
options=["--description"],
arg_group="Properties",
help="Description of target",
required=True,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revert?

)
_args_schema.display_name = AAZStrArg(
options=["--display-name"],
Expand All @@ -95,6 +95,7 @@ def _build_arguments_schema(cls, *args, **kwargs):
fmt=AAZStrArgFormat(
pattern="^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
),

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: extra line

)
_args_schema.state = AAZStrArg(
options=["--state"],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ def _build_arguments_schema(cls, *args, **kwargs):
help="target spec",
)


capabilities = cls._args_schema.capabilities
capabilities.Element = AAZStrArg(
nullable=True,
Expand Down Expand Up @@ -466,6 +467,10 @@ def _build_schema_target_read(cls, _schema):
serialized_name="hierarchyLevel",
flags={"required": True},
)
properties.context_id = AAZStrType(
serialized_name="contextId",
flags={"required": True},
)
properties.provisioning_state = AAZStrType(
serialized_name="provisioningState",
flags={"read_only": True},
Expand Down
11 changes: 8 additions & 3 deletions src/workload-orchestration/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@


# HISTORY.rst entry.
VERSION = '1.0.0'
VERSION = '2.0.0'

# The full list of classifiers is available at
# https://pypi.python.org/pypi?%3Aaction=list_classifiers
CLASSIFIERS = [
'Development Status :: 4 - Beta',
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
'Programming Language :: Python',
Expand All @@ -33,11 +33,16 @@
with open('HISTORY.rst', 'r', encoding='utf-8') as f:
HISTORY = f.read()

SUMMARY = """
Workload orchestration for Azure Arc is a comprehensive, cloud-native, cross-platform service engine that simplifies the deployment, management, and update of application workloads across edge environments. Workload orchestration addresses typical application lifecycle management problems for customers who need to have application deployments across multiple fleets with site-specific configurations. It natively supports kubernetes workloads.

"""

setup(
name='workload-orchestration',
version=VERSION,
description='Microsoft Azure Command-Line Tools WorkloadOperations Extension.',
long_description=README + '\n\n' + HISTORY,
long_description=SUMMARY,
license='MIT',
author='Microsoft Corporation',
author_email='[email protected]',
Expand Down
Loading