tencent cloud

Marketplace

Release Notes
Product Introduction
Overview
Application Dashboard Introduction
Purchase Guide
User Guide
Getting Started
App Store Application Operation Guide
Application Dashboard Operation Guide
Service Provider Guide
Overview of the Listing Process
Marketplace Onboarding Process
Making and Managing Installation Packages
Product Management
Order Management
User Application Instance
FAQs
User-Related Issues
Marketplace Policy
Privacy Policy
Data Processing And Security Agreement
Tencent Cloud Marketplace User Agreement
Tencent Cloud Marketplace Products Cooperation Agreement
Tencent Cloud Marketplace End User License Agreement(Standard Version)
Marketplace Product Cancellation and Refund Rules
Contact Us
Glossary

Producing an Installation Package

PDF
Focus Mode
Font Size
Last updated: 2026-01-30 17:09:51

Terms and Descriptions

Term
Description
Installation Package
The installation package is an automated deployment artifact submitted by partners that meets Marketplace standards, integrating cloud resource orchestration, installation parameters, and output declarations.
Users can automatically complete resource creation, application configuration, and process startup through one-click deployment in the Marketplace, achieving a fully automated installation process.

Creating an Installation Package

Currently, the installation package supports two ways to create. As follows:

Template Creation
Ordinary Creation
Advantage
Simple and quick, create using officially provided fixed templates.
Just input a small amount of template parameters to quickly create an installation package and submit the development edition.
High flexibility, can create complex applications.
Fully customize various types of resources and their parameters.
Shortage
Insufficient flexibility, only supports partial customization of parameters.
A certain level of development basis is required.
You need to install the Node.js environment and the CLI developer tool.
The specific creation steps are as follows:
Template Quick Creation
Ordinary Creation
1. In Installation Package Management, click Create Installation Package, select Created via Template, and fill in the installation package name and some template parameters to complete the creation.

2. After the installation package is created, click Version Management under the operation column of the target application to enter the version management interface of the installation package.

1. In Installation Package Management, click Create Installation Package, fill in the installation package name, and select Ordinary Creation to complete the creation.

2. After the installation package is created, click Version Management under the operation column of the target application to enter the version management interface of the installation package.


Logging in to the Developer Tool (CLI)

1. In the version management interface, click How to Upload Development Edition to bring up the tool installation and login guide.
Note:
Requires Node.js environment. The Marketplace developer tool is built on Node.js. Before installation, ensure Node.js is installed in your development environment. If not installed, please download and install it from the Node.js official website.


2. After installing the developer tool as instructed, use the cloudapp command to view the instructions for using the tool.

3. After the tool is installed, please use the cloudapp login command to log in to the local developer center. You need to use the developer's CAM key to log in.
The SecretId and SecretKey are the corresponding CAM keys in the developer information submitted when registering the application developer entity. The developer and developer name will be displayed after a successful login. If you forget the key information, you can query it in the CAM console.
cloudapp login $SECRET_ID@$SECRET_KEY

Installation Package Initialization (CLI Tool)

Note:
The installation package appears as a file system directory on the developer's local machine. It is generally recommended to use the .cloudapp directory under the project root as the installation package directory.
It is recommended to read the Demo source code of the minimal installation package to understand the composition of the installation package.
Use the cloudapp init command to generate a sample installation package:
# Initialize a local project. You can specify an initial template with -t. For reference, supported templates are listed in the Github template list (default template: CVM instance + public IP address).
cloudapp init hello-world

# Example
# cloudapp init hello-world -t CT_001
Note:
cloudapp init is currently a preview feature, and its usage and parameters may be adjusted in the future. Currently, cloudapp init only downloads template code locally. More template code can be viewed in the GitHub repository on the Marketplace.

Composition of Installation Package

The installation package consists of content delivered by the developer (divided into two modes: CVM deployment and container deployment). See the table below for specific differences:
CVM Deployment
Container Deployment
Note:
If your application uses "Container Deployment", please switch to "Container Deployment" to view the content that needs to be delivered.
Content
Position
Description
Meta-information of Installation Package
.cloudapp/package.yaml
The description file of the meta-information of the installation package.
Contains declarations of information such as installation package ID, application installation parameters, and CAM permission policies.
Resource and variable declaration
.cloudapp/infrastructure/**/*.tf
Resource and variable declaration using Terraform syntax.
Resources are declared in the form of resource blocks; variables are variables that can be used during resource deployment and need to be declared before use.
CVM image (artifact)
Marketplace Artifacts Hosting Center
Marketplace provides CVM image hosting.
Note:
If your application uses CVM deployment, please switch to CVM deployment to view the content that needs to be delivered.
Content
Position
Description
Meta-information of Installation Package
.cloudapp/package.yaml
The description file of the meta-information of the installation package.
Contains declarations of information such as installation package ID, application installation parameters, and TencentCloud API permissions.
Resource and variable declaration
.cloudapp/infrastructure/**.tf
Resource and variable declaration using Terraform syntax.
Resources are declared in the form of resource blocks; variables are variables that can be used during resource deployment and need to be declared before use.
Container image (artifact)
Marketplace TCR repository
Marketplace provides TCR repositories to offer image hosting services for applications that need to host container images.
Service orchestration
.cloudapp/software/charts/**/*.yaml
Service orchestration, adopting Helm Chart orchestration specification.
Orchestrate StatefulSet, Service, Job, Secret, etc. in a container cluster.

Meta-Information of Installation Package

The meta-information of the installation package is declared in package.yaml, including declarations of information such as installation package ID, application installation parameters, and TencentCloud API permissions.
# Installation package ID, corresponding to the app ID in the developer center
id: pkg-8lve2gn1

# Application parameters, defining the parameters that allow customers to set during the installation process, such as associated network, application specifications, payment method, etc.
args:
- name: app_target
label: target network
widget: subnet-select

# Application permission declaration (optional). If you need to call TencentCloud API within the application, declare it here.
role:
policy:
version: "2.0"
statement:
- action:
- cloudapp:VerifyLicense
resource: "*"
effect: allow
Note:
Please provide the correct installation package ID. When pushing the application, the developer tool will authenticate and push based on the installation package ID recorded in package.yaml. If the application is not registered, or the currently logged-in developer is not the corresponding application developer, the push will fail.

Resource and Variable Declaration

Resource Declaration

The resource declarations in the installation package constitute the core content. Marketplace adopts Terraform syntax to declare cloud resources required by the software.
resource "tencentcloud_eks_cluster" "eks" {
availability_zone = var.app_target.subnet.zone
k8s_version = "1.20.6"
vpc_id = var.app_target.vpc.id
subnet_ids = [var.app_target.subnet.id]
service_subnet_id = var.app_target.subnet.id
}
The above is the declaration syntax of a resource block. resource indicates a resource block declaration. "tencentcloud_eks_cluster" indicates the resource type. "eks" is the resource name.
Note:
Installation packages support the declaration of resources, which are broadly categorized into two types:
Tencent Cloud IaaS/SaaS resources, with the resource type prefix being tencentcloud.
Marketplace packaged resources, with the resource prefix being cloudapp.

Variable Declaration

The associated VPC, subnet and other information of the above-declared EKS resources are obtained from variables. In the installation package, all variables used need to be declared before use.
# Declare a variable using the variable keyword. app_target is the "variable name". You can use this variable through var.app_target.
variable "app_target" {
type = object({
region = string
region_id = string
vpc = object({
id = string
cidr_block = string
})
subnet = object({
id = string
zone = string
})
})
}
Similar to a resource block, we use a variable block variable to declare a variable. In the above declaration, app_target is the variable name, which can be referred to as var.app_target in the resource block.
Variables can be used to obtain users' installation parameters and can also be used to obtain the system's installation parameters. For details, see Using Installation Parameters, Variables and Output in the document description.

Image Hosting

CVM Image Hosting
Container Image Hosting
Note:
For creating images, see Operation Guide. After you prepare the CVM image, you need to host the image in the Marketplace Artifact Management Center so that during user installation, the Marketplace automatically shares the corresponding image with users.
1. In the Marketplace developer section, select the application's Artifact Management.



2. Select the CVM image that the current application needs to be hosted in the product management center.






3. Adjust the available regions of the mirror according to the regions where the application allows installation.



Note:
Marketplace provides TCR repositories to offer image hosting services for applications that require container image hosting. During installation, customers pull images from the private network without needing public network access.
1. Use the cloudapp docker command to obtain the repository login command.



2. Use cloudapp docker --url to obtain the repository push address.



3. Use cloudapp docker --auth to obtain the Docker authorization file separately, suitable for CI build scenarios.



4. After logging in to the Docker repository, you can push images to the hosted repository.
Valid period and permissions of the repository invoice
The repository credentials obtained via the cloudapp docker command can only be used by application providers to push container images. These credentials are valid for 2 hours and should not be persisted. It is recommended to obtain the credentials in real time using the cloudapp docker command upon completion of the CI build process.
The installation credentials used by customers during installation are read-only, whereas the credentials obtained via cloudapp docker can manipulate the software images of application developers.

Service Orchestration (Container Deployment)

Declare service orchestration by claiming resources of type cloudapp_helm_app.
resource "cloudapp_helm_app" "helm_charts" {
cluster_id = tencentcloud_eks_cluster.eks.id
chart_src = "../software/chart"
chart_username = var.cloudapp_repo_username
chart_password = var.cloudapp_repo_password

chart_values = {
SUBNET_ID = var.app_target.subnet.id
IMAGE_CREDENTIALS = {
REGISTRY = var.cloudapp_repo_server
USERNAME = var.cloudapp_repo_username
PASSWORD = var.cloudapp_repo_password
}
}
}
Requires specifying the target container cluster for orchestration as well as the location of the Helm Chart source code for orchestration (generally recommended to be placed at .cloudapp/software/chart).
Pass resource information to Helm Chart Values through chart_values. This information will be transmitted to Helm during deployment. Thus, infrastructure can be directly used during orchestration. See the above example. Transmit the subnet ID to the orchestration. When orchestrate the service, specify this subnet ID to generate a private network CLB type. Another common example is to import the connection information of the instantiated DB into the orchestration, so that the workload can refer to it from the environmental variable or generate it into a configmap.
Note:
Passing the resource attributes declared in TF to Helm Chart Values is an important feature. This feature enables direct orchestration of actual deployed hardware resources during software orchestration without secondary configuration.

Advanced

Continue reading the following sections to learn about the implementation of advanced installation package features.

Resource

Go to Github repository to view more sample source code.

Next

After completing the production and uploading of the installation package, you need to push, verify, and list the installation package. For details, see Installation Package Management.


Help and Support

Was this page helpful?

Help us improve! Rate your documentation experience in 5 mins.

Feedback