Home / Platform management / Catalog / Application Listing / Violet Tool User Guide

Violet Tool User Guide

Using the violet tool, you can package Operators, Charts, and cluster plugins, and then upload the corresponding artifacts to the platform’s app store through the packaged files.

Tool Usage Process

  1. Download the violet tool and install it in the deployment execution environment (this step is required only once).

  2. Execute the violet create command to initialize the application (ensure that the necessary artifacts such as images related to the application are prepared in advance).

  3. Execute the violet package command to package the application.

  4. Execute the violet push command to unzip and upload the application to the platform’s app store with one click.

Download and Install the Tool

The violet tool supports use on Linux, MacOS, and Windows operating systems, with both x86 and ARM architectures. Platform administrators can download the violet tool from the Platform Management -> Catalog -> Application Listing page.

After downloading the binary file according to your current system environment, proceed with the installation:

For Windows system, rename the downloaded file to violet.exe. Then, navigate to the directory where violet.exe is located and run the tool through the PowerShell command line.

Notes

When you wish to publish your application to the image repository used by the deployment platform (Global Cluster) for management, depending on the type of application you intend to publish, simply follow the instructions in one of the following sections: Packaging and Publishing Operators, Packaging and Publishing Charts, or Packaging and Publishing Cluster Plugins.

If you want to publish your application to an image repository used by business applications (not the one used by the deployment platform) for management, please read List the application to non-platform repository first, and then proceed with the appropriate sections below to complete the application publishing process.

Packaging and Listing Operators

Packaging

Description

The artifacts required for exporting an Operator consist of:

Example: A custom operator named opensearch-operator with an OCI path in the harbor repository: harbor.demo.io/middleware/opensearchproject/opensearch-operator-bundle:v3.14.2

The container images used by this operator are:

During packaging, the operator bundle image and container images need to be exported together and packaged into a single file for easy transmission.

Steps

Taking opensearch-operator as an example, the packaging steps are as follows:

Note:

  1. Initialization

Initialize a specific Operator to be packaged using the violet create command.

Parameters Explanation:

  1. Packaging

Package a specific Operator using the violet package command. The packaging command will package the Operator bundle image, all related container images, and the manifest.yaml file into a .tgz file.

Parameters Explanation:

Listing

Description

Preparations before listing:

Steps

Use the violet push command to automatically unpack the .tgz package, upload all artifacts and images to the platform’s global registry image repository, and list the operator in the operatorhub.

Note:

Scenario for listing to the platform’s default image repository (recommended):

Scenario for custom image repository address:

Parameter Explanations:

imagePullSecret Creation Reference Example:

After successfully executing the violet push command, go to the platform’s Platform Management -> Catalog -> Operators -> OperatorHub page to check if the operator is displayed in the interface.

Packaging and Listing Charts

Packaging

Description

Helm charts require the following artifacts to be exported:

Example: For a chart named chartmuseum to be packaged, its OCI path stored in the harbor repository is: harbor.demo.io/3rdparty/chart-chartmuseum:v3.16.1.

The container image used by this chart is: harbor.demo.io/3rdparty/chartmuseum:v3.16.0.

During packaging, the OCI Chart and container image must be exported together and packaged into a single file for easy transmission.

Operation

Taking the chartmuseum chart as an example, the packaging steps are as follows:

Note:

  1. Initialization

Initialize a chart to be packaged using the violet create command.

Parameter Explanation:

  1. Packaging

Package a chart using the violet package command. The packaging command will package the OCI chart artifact, all related container images, and the manifest.yaml file into a .tgz file.

Parameter Explanation:

Publish

Description

Preparations before publishing:

Using the violet push command, the tgz package will be automatically decompressed, and all artifacts and images will be uploaded to the platform’s global registry image repository, with automatic synchronization to the target template repository (currently only supports public-charts).

Tips:

Scenario for publishing to the platform’s default image repository (recommended):

Scenario for custom image repository address:

Parameter Description:

Reference example for creating imagePullSecret:

After the violet push command is executed successfully, go to the platform’s Platform Management -> Catalog -> Chart Repositories and check the details page of the public-charts repository to verify whether the chart is displayed in the interface.

Packaging and Deploying Cluster Plugins

Packaging

Description

A cluster plugin is a specific Helm chart that, compared to a regular chart, includes a ModulePlugin resource recognized by the platform as a cluster plugin. The artifacts that need to be exported include:

Example: For a plugin named cloudedge, the OCI path stored in the harbor repository is: harbor.demo.io/acp/chart-cloudedge:v3.16.2

The container images used by this plugin are:

The content of the ModulePlugin describing this plugin is referenced as:

When packaging, the plugin OCI Chart, container images, and ModulePlugin resource need to be exported together and packaged into a single file for easy transmission.

Tips

Operation

Taking the cloudedge plugin as an example, the packaging steps are as follows:

Note:

  1. Initialization

Initialize a plugin to be packaged using the violet create command.

Parameters Explanation:

  1. Packaging

Package a plugin using the violet package command. The packaging command will package the OCI chart artifact, all related container images, manifest.yaml file, and moduleplugin.yaml into a tgz file.

Parameters Explanation:

Publishing

Instructions

Preparations before publishing:

Operation

The violet push command automatically extracts the tgz package, uploads all artifacts and images to the platform’s global registry image repository, and automatically creates the ModulePlugin resources carried in the tgz package.

Tips:

Scenario for publishing to the platform’s default image repository (recommended):

Scenario for custom image repository address:

Parameter Explanations:

Reference example for creating imagePullSecret:

After the violet push command executes successfully, enter the platform’s Platform Management -> Catalog -> Cluster Plugins page to verify whether the plugin is displayed on the interface.

Auxiliary Operations

Preview Application Package

After obtaining an application package, before preparing it for listing, the platform administrator may want to confirm whether there are any issues with the content in the package. They can use the violet show command to view the application package and choose to list it on the platform after confirming that everything is in order.