This is the multi-page printable view of this section. Click here to print.
Repository
1 - Code Repository
Users can view the list of code repositories, such as GitHub and GitLab, used in the project and add repositories from the project’s code repository menu.
Getting Started with Code Repository
To start a code repository, follow these steps.
- On the Main page, click the Project card. You will be taken to the Project Dashboard page.
- In the left menu, click the Repository > Code Repository menu. You will be taken to the Code Repository page.
Add code repository
To add a code repository, follow these steps.
- On the Code Repository page, click the Add Code Repository button in the upper right. You will be taken to the Add Code Repository page.
- On the Add Code Repository page, enter and configure each item.
- Connection Test Click the button.
- Click the Save button.
Item Explanation Repository type Select the repository to use - Registered tools: Users can select and use the types of SCM Repository tools (
Github,Gitlab, etc.) that are available. - Unregistered tools: You can enter the domain of a tool that is not registered. The unregistered tool entry appears only for App templates that do not include source code (
Environment Only).
New/Existing usage Select Create new repository or Use existing repository - The activation status varies depending on specific conditions. For details, see Table. Conditions for activating new repository creation and existing repository usage.
Repository information Enter repository information - When creating a new repository, the URL is formed from the project group name/project name.
Authentication information Enter authentication credentials. Repository information Enter repository information - You can use a code repository that is not registered as a tool in DevOps Console.
- You must also go through the URL check process.
Table. Code Repository Add Input Items - Registered tools: Users can select and use the types of SCM Repository tools (
Managing code repositories
Code repository list
| Item | Explanation |
|---|---|
| User permission settings | User Permission Settings The popup window opens. |
| Webhook configuration | Webhook Settings The popup window opens. |
| Edit icon | The code repository’s Edit Authentication Information popup window opens. |
| Delete | Delete the code repository. When deleting, you can choose whether to also delete the code repository in SCM. |
Add account to code repository
To add an account to the code repository, follow these steps.
- On the Code Repository page, click the User Permission Settings icon for the repository you want to configure. The User Permission Settings popup window will open.
- User Permission Settings In the popup window, enter the credentials of the account you want to add, then click the Save button to complete adding the account.
Setting up a webhook in the code repository
You can configure a webhook to trigger the pipeline when changes such as commit or push occur on a code repository branch.
To set up a webhook, follow these steps.
- Click the Webhook Settings icon for the code repository you want to configure on the Code Repository page. The Webhook Settings popup opens.
- In the Webhook Settings popup, click the Add button.
- Webhook Settings In the popup window, select the pipeline you want to run, enter the branch name, and click the Save button to complete the webhook configuration.
Change account in code repository
To change the account in the code repository, follow the steps below.
- On the Code Repository page, click the Edit icon of the code repository you want to change. The Edit Authentication Information popup will open.
- Edit authentication information after entering the authentication information in the popup window, click the Save button to complete the account change.
Delete code repository
To delete the code repository, follow these steps.
- Code Repository page, click the X icon of the code repository you want to delete. Delete Code Repository popup opens.
- In the Delete code repository popup, select also delete the repository in SCM and click the Confirm button to complete the code repository deletion.
Also delete the repository in SCM.
- Selection: Both the code repository list and the actual code repository in SCM will be deleted.
- Unselected: It is deleted only from the code repository list, while the code repository in SCM remains.
2 - Artifact Repository
Users can integrate with Nexus to create projects in Nexus and retrieve and utilize the created projects.
Getting Started with Artifact Repository
To start managing the artifact repository, follow these steps.
- On the Main page, click the Project card. You will be taken to the Project Dashboard page.
- Click the Repository > Artifact Repository menu in the left navigation. You will be taken to the Artifact Repository page.
Add artifact repository
To add an artifact repository, follow these steps.
- Click the Add Artifact Repository button at the top right of the Artifact Repository page. You will be taken to the Add Artifact Repository page.
- On the Add Artifact Repository page, enter and configure each item.
- Connection Test Click the button.
- Click the Save button.
Item Explanation Select whether to create a repository Choose whether to create a new repository or use an existing one. Enter basic information Base URL, select repository type and enter repository/authentication information. Table. Input fields for adding an artifact repository
Managing the artifact repository
Artifact storage list
| Item | Explanation |
|---|---|
| Account Change | Modify the artifact repository credentials. |
| Delete | Delete the artifact repository. |
Changing the artifact repository account
To change the account in the artifact repository, follow the steps below.
- On the Artifact Repository page, click the Edit icon of the artifact repository you want to modify. The Edit Authentication Information popup will open.
- Edit authentication information after entering authentication information in the popup window, click the Save button to complete the account change.
Delete Artifact Repository
To delete the artifact repository, follow the steps below.
- On the Artifact Repository page, click the X icon of the repository you want to delete. Artifact Repository Deletion popup opens.
- In the Delete Artifact Repository popup, select also delete the repository in Nexus and click the Confirm button to complete the artifact repository deletion.
Delete the repository in Nexus as well.
- Selection: Both the artifact repository list and the Nexus repository will be deleted.
- Unselected: It is only removed from the artifact repository list, and the repository in Nexus remains.
3 - Image Repository
Users can manage the image repositories used in a project from the project’s image repository menu.
Getting Started with Image Repository
To start managing the image repository, follow these steps.
- Click the Project card on the Main page. You will be taken to the Project Dashboard page.
- Click the Repository > Image Repository menu in the left menu. You will be taken to the Image Repository page.
Add Image Repository
To add an image repository, follow these steps.
App. Add image repository
- On the Image Repository page, click the App. Add Image Repository button in the upper right. You will be taken to the App. Add Image Repository page.
- App. Add Image Repository page, enter and configure each item.
- Connection Test Click the button.
- Click the Save button.
Item Explanation Select repository type Select the image repository type.
To use an image repository not registered in the Devops Console, select the Image Registry type.Choose whether to create a repository Choose whether to create a new repository or use an existing one. - If you selected the
Docker huborImage Registrytype earlier, you can only select Use existing repository.
Registered tool Enter repository information. Unregistered tool Enter repository information - You can register an image repository that is not registered with the DevOps Console tool.
- Click the URL Check button to proceed with the verification process.
- Only Use existing repository can be selected.
Table. App. Add Image Repository Input Fields - If you selected the
Add pull-only image repository
- On the Image Repository page, click the Add Pull-Only Image Repository button in the upper right. You will be taken to the Add Pull-Only Image Repository page.
- Add Pull‑only Image Repository On the page, enter and configure each field.
- Connection Test Click the button.
- Click the Save button.
Manage Image Repository
Image repository list
| Item | Explanation |
|---|---|
| Account Change | The Edit Authentication Information popup window of the image repository opens. |
| Delete | Image Repository Deletion a popup window opens |
Change Image Repository Account
To change the account in the image repository, follow these steps.
- On the Image Repository page, click the Edit icon of the image repository you want to change. The Edit Authentication Information popup window will open.
- Edit authentication information after entering authentication information in the popup window, click the Save button to complete the account change.
Delete Image Repository
To delete the image repository, follow these steps.
- On the Image Repository page, click the X icon of the image repository you want to delete. The Delete Image Repository popup window opens.
- Delete Image Repository in the popup window, select also delete the Repository in IR, then click the Confirm button to complete the image repository deletion.
Delete the Repository in IR as well
- Selection: The image repository list and the actual image repository’s repository will both be deleted.
- Unselected: It is deleted only from the image repository list, while the actual repository in the image registry remains.
4 - Chart Repository
Users can upload and delete Helm-created charts to the chart repository.
Charts uploaded to the chart repository are used in Add Helm Chart and are utilized during helm install or when creating a project.
Getting Started with Chart Repository
To begin managing the chart repository, follow these steps.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- From the left menu, click the Tools & Templates > Chart Repository menu. The Chart Repository screen appears.
Getting Started with Project Chart Repository
- Click the Project card on the Main page. You will be taken to the Project Dashboard page.
- In the left menu, click the Repository > Chart Repository menu. You will be taken to the Chart Repository page.
Upload Chart
Chart.yaml, refer to the Helm official page.Registration information is automatically generated based on the name and version of the uploaded chart’s Chart.yaml file.
To upload a chart to the chart repository, follow these steps.
- Click the Admin icon at the top right of the Main page. Navigate to the Tenant Dashboard page.
- From the left menu, click the Tools & Templates > Chart Repository menu. The Chart Repository screen appears.
- On the Chart Repository page, click the Upload button. The Chart File Upload popup window opens.
- Chart File Upload In the popup window, after entering the content, click the Upload button.
Item Explanation Chart type Please select a chart type. Tenant / Project Group Select the tenant/project group where the chart will be used. Chart file Click the Browse button to upload the chart file. - Only
.tgzfiles generated with thehelm packagecommand can be uploaded.
Table. Chart Upload Input Items - Only
Delete chart
To delete the chart, follow these steps.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- From the left menu, click the Tools & Templates > Chart Repository menu. The Chart Repository screen appears.
- Select the checkbox of the item you want to delete from the Chart Repository list and click the Delete button.
- Click the Confirm button in the confirmation popup.
Delete only a specific version of a chart
To delete only a specific version from the chart, follow these steps.
- Click the Admin icon at the top right of the Main page. You will be taken to the Tenant Dashboard page.
- From the left menu, click the Tools & Templates > Chart Repository menu. The Chart Repository screen appears.
- Chart Repository Click the item you want to delete from the list. You will be taken to the Chart Version List page.
- On the Chart version list page, select the checkbox for the items you want to delete and click the Delete button.
- Click the Confirm button in the confirmation popup.
5 - Helm Chart
Helm chart is a feature that registers charts stored in the chart repository so they can be used in the DevOps Console.
Helm charts can be used through Helm install. Additionally, you can integrate them with the App template via Add supported Helm chart.
Getting Started with Helm Chart
To start managing Helm charts, follow these steps.
- Main page, click the Admin icon at the top right. Admin page opens.
- In the left menu, click the Tools & Templates > Helm Chart menu.
Getting Started with Project Helm Chart
- On the Main page, click the Project card. You will be taken to the Project Dashboard page.
- Click the Repository > Helm Chart menu in the left sidebar. You will be taken to the Helm Chart page.
Add Helm chart
Users can add their own Helm charts.
Before registering a Helm chart, the user must first upload the chart to be used via Upload Chart.
To add a Helm chart, follow these steps.
- Click the Admin icon at the top right of the Main page. The Admin page opens.
- From the left menu, click the Tools & Templates > Helm Chart menu. The Helm Chart page opens.
- Select the Helm chart type from the menu. The Add Helm chart button appears only if you have registration permission based on the selected information.
- Click the Add Helm Chart button. You will be taken to the Helm Chart Registration page.
- Enter Helm chart basic information and click the Start button.
Item Explanation Helm chart type Select the type of Helm chart to add. Tenant/Project Group Select the tenant/project group to add the Helm chart - When selecting a tenant, you can use the registered chart only in projects of the selected tenant.
- When selecting a project group, you can use the registered chart only in projects of the selected project group.
Allow new installation Select whether to allow a new installation via Helm install. Table. Helm Chart Basic Information Settings - After selecting Helm chart repository and Helm chart, click the Validation Check button.
- After entering the remaining information, click the Next button.
repository ItemExplanation ChartMuseumHelm chart repository Select the chart repository as ChartMuseum.Select chart Select the chart you want to register as a Helm chart among the charts registered via 차트 업로드하기. Harbor OCI Helm chart repository Select the chart repository as Harbor OCI.Authentication information Enter the chart repository credentials and click the Connection Test button. Chart selection Select a Helm chart that can be queried with the entered credentials and click the Validation Check button. OCI Helm chart repository Select the chart repository as OCI.Authentication information Enter the chart repository credentials and click the Connection Test button. Chart input Enter the Helm chart that can be queried using the authentication information entered in Authentication Information, and click the Validation Check button.
(ex. oci://chart.url/repo/chartname:version)common icon Select an icon to represent the Helm chart. CI/CD information Select whether to support CI/CD functionality - Indicates whether it is linked with the App template.
- The chart’s Values.yaml file must contain the keys image.repository, image.tag, and imagePullSecrest[0].name.
- Support CI/CDWhen selected, a CI/CD information step is added.
Chart image Select whether to register an image - The chart’s Values.yaml file must contain the key imagePullSecrets[0].name.
- No image If selected, the image secret information step will be omitted.
Table. Chart Repository Configuration Items - After selecting the image repository and entering the authentication information, click the Connection Test button.
- After entering the remaining information, click the Next button.
Item Explanation Image repository information Select an image repository and enter the authentication information. - The image repository requires administrator privileges.
- Grant read access to the image repository for users who want to perform a Helm install using a Helm chart.
- Assign permissions to the image repository using the entered authentication information.
Add used images Add the image path of the selected image repository. - Select an image from the list: choose Organization, Repository, and Tag to add.
- User input: directly enter the image’s docker repository and docker tag to add.
- Multiple entries are allowed.
Use the registrant’s authentication credentials This is an option that can be selected when the image repository chosen in the image registry is a tool that cannot grant permissions (e.g., SCR). - If not checked, when the Helm chart user performs an installation, the Pull permission for the image used by the Helm chart user is added. If the tool cannot grant permissions, no permission granting is performed.
- If not checked, when the Helm chart user performs an installation, the Helm chart registrant’s credentials are used instead of the Helm chart user’s permissions.
- Since the registrant’s credentials may be exposed to the Helm chart user, it should be used only when necessary.
- If the image repository provides only image Pull, it must be selected to avoid issues during use. You must enter an image repository that will be used exclusively for Pull. (When checked, Pull and Push cannot be performed simultaneously on a single image repository.)
- The registrant’s credentials are used in Project > Image Repository > Pull-only images and the Helm release’s ImagePull Secret. These credentials cannot be changed by Helm chart users, and if the registrant’s credentials are changed in the Helm chart, they are updated globally.
Select Docker base image Select the image to be used as the Docker base image - Only select this if you chose Support CI/CD in the previous step, and it will be used as the base image for Docker build.
Table. Image secret information configuration items - App to support. After selecting a template, click the Done button.
Environment Only. The template provides only the build/deployment environment without project sample source code.Modify Helm chart
To modify the Helm chart, follow these steps.
- Main page, click the Admin icon at the top right. Admin page opens.
- Click the Tools & Templates > Helm Chart menu in the left menu.
- Click the Helm chart card you want to edit from the Helm chart list. The Helm chart details page opens.
- Click the Edit button at the bottom right.
- After editing the information, click the Save button to complete the edit.
Add Helm chart version
To add a Helm chart version, the same chart with only a different version must already be registered via Upload Chart.
To add a version to the Helm chart, follow these steps.
- Main page, click the Admin icon at the top right. The Admin page opens.
- In the left menu, click the Tools & Templates > Helm Chart menu.
- Click the Helm chart card you want to edit from the Helm chart list. The Helm chart details page opens.
- Click the Add Version button at the bottom right. The Add Helm Chart Version popup window opens.
- After entering the information, click the Save button to complete adding the version.
Item Explanation Chart version Select the chart version to add - Shows the versions of charts in the chart repository that are not registered as Helm charts.
Table. Additional Helm Chart Version Settings
Delete Helm chart
To delete a Helm chart, follow these steps.
- Main page, click the Admin icon at the top right. The Admin page opens.
- From the left menu, click the Tools & Templates > Helm Chart menu. The Helm Chart page opens.
- Click the Helm chart card you want to delete from the Helm chart list. The Helm chart details page opens.
- Click the Delete button at the bottom right.
- In the confirmation popup, click the Confirm button to complete the deletion.
5.1 - Creating Helm Charts with Form Input Support
Users can create a Helm chart that supports Form input.
Helm 3 or higher.Helm chart that supports Form input
When you use a Helm chart that supports Form input and run helm install, a user UI is provided that allows you to enter each field.
Helm chart file structure and values.schema.json file
Helm chart file structure
To support Form input, an additional values.schema.json file is required in the basic Helm chart file structure.
The relationship between values.schema.json and values.yaml files
values.schema.json
- This file defines a JSON Schema to validate the values entered in the
values.yamlfile. - In the DevOps Console, in addition to the JSON Schema functionality, we added a feature that displays a form on the screen so that users can easily input data.
JSON Schema Basics
The values.schema.json file used in DevOps Console supports the standard format defined by JSON Schema.
For detailed guidance on the standard format, refer to the site below.
The description of the basic attributes is as follows.
| attribute | Description | Data type | Allowed value |
|---|---|---|---|
| $schema |
| string | http://json-schema.org/schema# |
| type | Data type
| string |
|
| |||
| |||
| |||
| |||
| |||
| |||
| title | Label | string | Item label definition |
| description | description | string | Displayed as a tooltip |
| readOnly | read-only status | boolean |
|
| required | List of required input items | array | e.g, "required": ["username", "password"] |
Items defined in the DevOps Console
The following items are defined in the DevOps Console and operate only within the DevOps Console.
| attribute | Description | Data type | Allowed value |
|---|---|---|---|
| form | DevOps Console screen display option
| boolean | default: false |
| render | Change renderer | string |
|
| format | string format reference reference | string |
|
| form_locale | Define for internationalization processing
| object |
|
|
hierarchical processing
To handle hierarchical structures, JSON Schema can define a "type": "object" property value and a properties attribute.
For child properties, define them under the properties item.
Below is an example that defines the service.internalPort property.
"service": {
"type": "object",
"form": true,
"properties": {
"internalPort": {
"type": "number",
"title": "Container Port",
"description": "HTTP port to expose at container level",
"form": true
}
<중략>"service": {
"type": "object",
"form": true,
"properties": {
"internalPort": {
"type": "number",
"title": "Container Port",
"description": "HTTP port to expose at container level",
"form": true
}
<중략>Internationalization handling
For internationalization processing, use the form_locale attribute and define it as follows.
Korean and English are supported.
"db": {
"type": "string",
"title": "DB",
"description": "choose db type",
"oneOf": [
{
"const": "in",
"title": "internal"
},
{
"const": "ex",
"title": "external"
}
],
"form": true,
"form_locale": {
"ko": {
"label": "Database",
"description": "Select the database type"
"internal": "internal"
"external": "external"
},
"en": {
"label": "Database"
}
}
}"db": {
"type": "string",
"title": "DB",
"description": "choose db type",
"oneOf": [
{
"const": "in",
"title": "internal"
},
{
"const": "ex",
"title": "external"
}
],
"form": true,
"form_locale": {
"ko": {
"label": "Database",
"description": "Select the database type"
"internal": "internal"
"external": "external"
},
"en": {
"label": "Database"
}
}
}values.schema.json example
Examples by Form Type
Input
To display the fields defined in the values.schema.json file as a form on the screen, you must set the form field’s value to true.
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"form_field": {
"type": "string", <--- create an input field that receives a string
"form": true <----- displayed on screen when true
},
"hide_field": { <-- not displayed
"type": "string"
}
}
}{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"form_field": {
"type": "string", <--- create an input field that receives a string
"form": true <----- displayed on screen when true
},
"hide_field": { <-- not displayed
"type": "string"
}
}
}Password
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"password_field": {
"type": "string",
"form": true,
"render": "password", <---- displayed as password
"format": "password_confirm" <--- when adding a password confirmation input field
}
}
}{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"password_field": {
"type": "string",
"form": true,
"render": "password", <---- displayed as password
"format": "password_confirm" <--- when adding a password confirmation input field
}
}
}Checkbox
"enabled": {
"title": "enable persistence",
"type": "boolean",
"form": true
}"enabled": {
"title": "enable persistence",
"type": "boolean",
"form": true
}Dropdown
To display a dropdown field on the screen and specify allowed values, you can use the enum and oneOf properties.
enum
Use when the text displayed on the screen matches the stored value.
"postgres": {
"type": "string",
"title": "Postgres",
"description": "choose PostgreSQL type.",
"enum": [
"internal",
"external",
"both"
],
"form": true
}"postgres": {
"type": "string",
"title": "Postgres",
"description": "choose PostgreSQL type.",
"enum": [
"internal",
"external",
"both"
],
"form": true
}oneOf
Use this when the displayed text on the screen and the stored value need to be different.
"Oneof": {
"type": "string",
"title": "DB",
"description": "choose db type",
"oneOf": [
{
"const": "in", <-- value saved to the yaml file when selected
"title": "internal" <-- value displayed in the dropdown form
},
{
"const": "ex",
"title": "external"
}
],
"form": true
}"Oneof": {
"type": "string",
"title": "DB",
"description": "choose db type",
"oneOf": [
{
"const": "in", <-- value saved to the yaml file when selected
"title": "internal" <-- value displayed in the dropdown form
},
{
"const": "ex",
"title": "external"
}
],
"form": true
}Array
"Array": {
"type": "array",
"items": {
"type": "string",
"form": true
},
"form": true
}"Array": {
"type": "array",
"items": {
"type": "string",
"form": true
},
"form": true
}Object Array
"objectArray": {
"type": "array",
"title": "Object Array",
"form": true,
"items": {
"type": "object",
"form": true,
"properties": {
"host": {
"type": "string",
"form": true
},
"path": {
"type": "string",
"form": true
}
}
}
}"objectArray": {
"type": "array",
"title": "Object Array",
"form": true,
"items": {
"type": "object",
"form": true,
"properties": {
"host": {
"type": "string",
"form": true
},
"path": {
"type": "string",
"form": true
}
}
}
}values.schema.json full file creation example
system-nginx
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"form": true,
"properties": {
"service": {
"type": "object",
"form": true,
"properties": {
"type": {
"type": "string",
"title": "Service Type",
"form": true,
"enum": ["ClusterIP", "NodePort", "LoadBalancer", "ExternalName"]
},
"externalPort": {
"type": "number",
"title": "Service Port",
"description": "HTTP port to expose at service level",
"form": true
},
"internalPort": {
"type": "number",
"title": "Container Port",
"description": "HTTP port to expose at container level",
"form": true
}
},
"required": ["type", "externalPort", "internalPort"]
},
"ingress": {
"type": "object",
"form": true,
"properties": {
"enabled": {
"type": "boolean",
"title": "Use Ingress",
"form": true
},
"domain": {
"type": ["string", "null"],
"format": "hostname",
"title": "Ingress Domain",
"description": "Default host for the ingress resource (required when `ingress.enabled=true`)",
"form": true
}
}
},
"networkPolicy": {
"type": "object",
"form": true,
"properties": {
"enabled": {
"type": "boolean",
"title": "Use NetworkPolicy",
"form": true
}
}
}
}
}{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"form": true,
"properties": {
"service": {
"type": "object",
"form": true,
"properties": {
"type": {
"type": "string",
"title": "Service Type",
"form": true,
"enum": ["ClusterIP", "NodePort", "LoadBalancer", "ExternalName"]
},
"externalPort": {
"type": "number",
"title": "Service Port",
"description": "HTTP port to expose at service level",
"form": true
},
"internalPort": {
"type": "number",
"title": "Container Port",
"description": "HTTP port to expose at container level",
"form": true
}
},
"required": ["type", "externalPort", "internalPort"]
},
"ingress": {
"type": "object",
"form": true,
"properties": {
"enabled": {
"type": "boolean",
"title": "Use Ingress",
"form": true
},
"domain": {
"type": ["string", "null"],
"format": "hostname",
"title": "Ingress Domain",
"description": "Default host for the ingress resource (required when `ingress.enabled=true`)",
"form": true
}
}
},
"networkPolicy": {
"type": "object",
"form": true,
"properties": {
"enabled": {
"type": "boolean",
"title": "Use NetworkPolicy",
"form": true
}
}
}
}
}
