diff --git a/src/workload-orchestration/HISTORY.rst b/src/workload-orchestration/HISTORY.rst index 8d148b37488..db9513b4891 100644 --- a/src/workload-orchestration/HISTORY.rst +++ b/src/workload-orchestration/HISTORY.rst @@ -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. \ No newline at end of file diff --git a/src/workload-orchestration/README.md b/src/workload-orchestration/README.md index ceec4c53192..7ea785faf35 100644 --- a/src/workload-orchestration/README.md +++ b/src/workload-orchestration/README.md @@ -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. diff --git a/src/workload-orchestration/azext_workload_orchestration/aaz/latest/workload_orchestration/target/_create.py b/src/workload-orchestration/azext_workload_orchestration/aaz/latest/workload_orchestration/target/_create.py index c71f84e0021..aa1dd32ad04 100644 --- a/src/workload-orchestration/azext_workload_orchestration/aaz/latest/workload_orchestration/target/_create.py +++ b/src/workload-orchestration/azext_workload_orchestration/aaz/latest/workload_orchestration/target/_create.py @@ -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, ) _args_schema.display_name = AAZStrArg( options=["--display-name"], @@ -95,6 +95,7 @@ def _build_arguments_schema(cls, *args, **kwargs): fmt=AAZStrArgFormat( pattern="^[a-z0-9]([-a-z0-9]*[a-z0-9])?$", ), + ) _args_schema.state = AAZStrArg( options=["--state"], diff --git a/src/workload-orchestration/azext_workload_orchestration/aaz/latest/workload_orchestration/target/_update.py b/src/workload-orchestration/azext_workload_orchestration/aaz/latest/workload_orchestration/target/_update.py index 8c9ccd068eb..49ed130ae45 100644 --- a/src/workload-orchestration/azext_workload_orchestration/aaz/latest/workload_orchestration/target/_update.py +++ b/src/workload-orchestration/azext_workload_orchestration/aaz/latest/workload_orchestration/target/_update.py @@ -103,6 +103,7 @@ def _build_arguments_schema(cls, *args, **kwargs): help="target spec", ) + capabilities = cls._args_schema.capabilities capabilities.Element = AAZStrArg( nullable=True, @@ -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}, diff --git a/src/workload-orchestration/setup.py b/src/workload-orchestration/setup.py index 956ee01556d..d5609c61baa 100644 --- a/src/workload-orchestration/setup.py +++ b/src/workload-orchestration/setup.py @@ -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', @@ -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='azpycli@microsoft.com',