Creating a Component
Function
This API is used to create a component.
URI
POST /v1/{project_id}/cae/applications/{application_id}/components
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID. See Obtaining a Project ID. |
application_id |
Yes |
String |
Application ID. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
User token.
Maximum characters: 16,384 |
X-Enterprise-Project-ID |
No |
String |
Enterprise project ID.
For more information about enterprise projects and how to obtain enterprise project IDs, see Enterprise Management User Guide. |
X-Environment-ID |
Yes |
String |
Environment ID.
|
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
api_version |
Yes |
String |
API version. Fixed value: v1. Enumerated value:
|
kind |
Yes |
String |
API type. Fixed value: Component. Enumerated value:
|
metadata |
No |
metadata object |
Request data. |
spec |
No |
spec object |
Component specifications. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
name |
Yes |
String |
Component name. |
annotations |
Yes |
Map<String,String> |
Additional parameter for creating a component. Only version is supported. This parameter is mandatory. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
runtime |
Yes |
String |
Language or runtime. Enumerated values:
|
replica |
Yes |
Integer |
Number of instances. |
build |
No |
Build object |
Build information. |
source |
Yes |
Source object |
Source information. |
resource_limit |
Yes |
ResourceLimit object |
Instance specifications. |
image_url |
No |
String |
Image address. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
archive |
Yes |
Archive object |
Place where build products are archived for management. |
parameters |
Yes |
map<string, object> |
Additional parameters. Options:
|
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
artifact_namespace |
No |
String |
SWR organization for product management. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
code |
No |
Repo object |
Source code repository information. |
type |
Yes |
String |
Source type. Enumerated values:
|
sub_type |
No |
String |
Source subtype.
Enumerated values:
|
url |
Yes |
String |
URL.
|
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
api_version |
String |
API version. Fixed value: v1. Enumerated value:
|
kind |
String |
API type. Fixed value: Component. Enumerated value:
|
metadata |
MetadataResponse object |
Response data. |
spec |
CreateComponentSpec object |
Component specifications. |
Parameter |
Type |
Description |
---|---|---|
id |
String |
Component ID. |
name |
String |
Component name. |
annotations |
Map<String,String> |
Additional attributes of the component. Options:
|
created_at |
String |
Creation time. |
updated_at |
String |
Update time. |
Parameter |
Type |
Description |
---|---|---|
runtime |
String |
Language or runtime. Enumerated values:
|
env_id |
String |
Environment ID. |
replica |
Integer |
Number of instances. |
source |
Source object |
Source information. |
build |
Build object |
Build information. |
resource_limit |
ResourceLimit object |
Instance specifications. |
available_replica |
Integer |
Number of available instances. |
status |
String |
Component status. |
Parameter |
Type |
Description |
---|---|---|
code |
Repo object |
Source code repository information. |
type |
String |
Source type. Enumerated values:
|
sub_type |
String |
Source subtype.
Enumerated values:
|
url |
String |
URL.
|
Parameter |
Type |
Description |
---|---|---|
auth_name |
String |
Authorization name. |
branch |
String |
Branch. |
namespace |
String |
Namespace, which must be Base64-encoded. |
Parameter |
Type |
Description |
---|---|---|
archive |
Archive object |
Place where build products are archived for management. |
parameters |
map<string, object> |
Additional parameters. Options:
|
Example Request
- Create a component based on a source code repository: Set the component name to test-code, version to 1.0.0, and runtime to Java8, and select source code repository GitLab.
POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components { "api_version" : "v1", "kind" : "Component", "metadata" : { "name" : "test-code", "annotations" : { "version" : "1.0.0" } }, "spec" : { "runtime" : "Java8", "build" : { "archive" : { "artifact_namespace" : "xxx" }, "parameters" : { "base_image" : "openjdk:8u181-jdk-alpine", "dockerfile_path" : "./Dockerfile" } }, "source" : { "type" : "code", "sub_type" : "GitLab", "url" : "https://xxx:8090/xxx/cae-frontend.git", "code" : { "branch" : "master", "auth_name" : "gitlab-xxx", "namespace" : "em1n" } }, "resource_limit" : { "cpu_limit" : "500m", "memory_limit" : "1Gi" }, "replica" : 1 } }
- Create a component based on an image: Set the component name to test-image, version to 1.0.0, and runtime to Docker, and select image nginx.
POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components { "api_version" : "v1", "kind" : "Component", "metadata" : { "name" : "test-image", "annotations" : { "version" : "1.0.0" } }, "spec" : { "runtime" : "Docker", "source" : { "type" : "image", "url" : "nginx:stable-alpine-perl" }, "resource_limit" : { "cpu_limit" : "500m", "memory_limit" : "1Gi" }, "replica" : 1 } }
- Create a component based on a software package: Set the component name to test-jar, version to 1.0.0, and runtime to Java8, and select software package forecast-1.0.0.jar.
POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components { "api_version" : "v1", "kind" : "Component", "metadata" : { "name" : "test-jar", "annotations" : { "version" : "1.0.0" } }, "spec" : { "runtime" : "Java8", "build" : { "archive" : { "artifact_namespace" : "xxx" }, "parameters" : { "base_image" : "openjdk:8u181-jdk-alpine", "dockerfile_content" : "FROM java:8 \\nADD forecast-1.0.0.jar \\nEXPOSE 8080 \\nENTRYPOINT [\"java\",\"-jar\",\"forecast-1.0.0.jar\"]" } }, "source" : { "type" : "softwarePackage", "sub_type" : "BinObs", "url" : "https://xxx.obs.region.xxx.huawei.com/xxx/forecast-1.0.0.jar" }, "resource_limit" : { "cpu_limit" : "500m", "memory_limit" : "1Gi" }, "replica" : 1 } }
Example Response
Status code: 200
The request is successful.
{ "api_version": "v1", "kind": "Component", "metadata": { "id": "cac09548-047f-46c4-abbd-a6a652305565", "name": "test-code", "annotations": { "log_group_id": "5b13213a-84f8-4b72-8ca5-530e15cc1402", "log_stream_id": "6ddf6c71-4767-46db-98a2-fe5fb301b366", "version": "1.0.0" }, "created_at": "2023-02-13T02:38:22.689607114Z", "updated_at": "2023-02-13T02:38:22.689607114Z" }, "spec": { "runtime": "Java8", "env_id": "9819b3f5-dd08-44ff-ba88-eb38e435594c", "replica": 1, "source": { "type": "code", "sub_type": "GitLab", "url": "http://xxx@cpe.gitlab.com:8090/xxx/cae-backend.git", "code": { "branch": "master", "auth_name": "gitlab-xxx", "namespace": "em1n" } }, "build": { "archive": { "artifact_namespace": "xxx" }, "parameters": { "base_image": "openjdk:8u181-jdk-alpine" "dockerfile_path": "./Dockerfile" } }, "resource_limit": { "cpu_limit": "500m", "memory_limit": "1Gi" }, "available_replica": 0, "status": "created" } }
Status Code
Status Code |
Description |
---|---|
200 |
The request is successful. |
Error Code
For details, see Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot