Skip to content

Latest commit

 

History

History
70 lines (39 loc) · 4.75 KB

File metadata and controls

70 lines (39 loc) · 4.75 KB
graph LR
    Charm_Build_Orchestrator["Charm Build Orchestrator"]
    Build_Part_Lifecycle_Manager["Build Part Lifecycle Manager"]
    Charm_Packager["Charm Packager"]
    Configuration_Manager["Configuration Manager"]
    Validation_Linter["Validation & Linter"]
    Charm_Build_Orchestrator -- "orchestrates" --> Build_Part_Lifecycle_Manager
    Charm_Build_Orchestrator -- "utilizes" --> Charm_Packager
    Charm_Build_Orchestrator -- "reads from" --> Configuration_Manager
    Charm_Build_Orchestrator -- "invokes" --> Validation_Linter
    Validation_Linter -- "provides feedback to" --> Charm_Build_Orchestrator
    click Charm_Build_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/charmcraft/Charm_Build_Orchestrator.md" "Details"
Loading

CodeBoardingDemoContact

Details

The charmcraft build system is orchestrated by the Charm Build Orchestrator, which directs the entire charm creation workflow. It leverages the Configuration Manager to load and interpret project-specific settings and build parameters. Individual build steps are managed by the Build Part Lifecycle Manager, ensuring proper execution within defined environments. Once build artifacts are ready, the Charm Packager takes over to assemble and archive the final .charm file, performing necessary file system operations. Throughout the process, the Validation & Linter component ensures adherence to charm specifications and best practices, providing critical feedback to the orchestrator. This modular design allows for clear separation of concerns and efficient management of the charm build pipeline.

Charm Build Orchestrator [Expand]

The primary coordinator for the entire charm building process. It manages the sequence of build steps, from preparing the source and resolving dependencies to executing build plugins and initiating the final packaging. It acts as the central control flow for the build pipeline.

Related Classes/Methods:

Build Part Lifecycle Manager

Defines and manages the lifecycle hooks and execution environment for individual charm build parts, including their setup, build, and prime phases. It ensures that each part is processed correctly within its isolated environment.

Related Classes/Methods:

Charm Packager

Responsible for collecting all necessary build artifacts, metadata, and files, then compressing and archiving them into the final .charm distributable format. It ensures the final package adheres to charm specifications and is ready for deployment, utilizing file system operations for artifact collection and archiving.

Related Classes/Methods:

Configuration Manager

Handles the loading, parsing, and provision of configuration settings for the charm build process, typically sourced from charmcraft.yaml and Juju-specific configurations. It ensures that build parameters and project-specific settings are accessible to other components.

Related Classes/Methods:

Validation & Linter

Performs validation and linting checks on the charm project's structure, content, and adherence to best practices and specifications. It identifies and reports potential issues or errors that could affect charm integrity or deployment, providing feedback to the Charm Build Orchestrator.

Related Classes/Methods: