Tag Management Guide(KR) - cloud-barista/cb-spider GitHub Wiki
- CB-Spiderλ μ°λλ ν΄λΌμ°λμ κ΄λ¦¬ μμλ€μ Tag κΈ°λ₯μ μ 곡νλ€.
- μ¬μ©μλ Tagλ₯Ό μ¬μ©νμ¬ μμλ€μ κ·Έλ£Ήννκ³ μλ³ν μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ λκ·λͺ¨ μμμ κ΄λ¦¬ μλν, λΉμ© κ΄λ¦¬ λ± λ€μν λͺ©μ μ νμ©ν μ μλ€.
- νλμ Tagλ λ¬Έμμ΄ Keyμ λ¬Έμμ΄ Value μμΌλ‘ ꡬμ±λλ©°, Key κ°μ νμμ΄λ Valueλ μ΅μ μΌλ‘ μλ΅ κ°λ₯νλ€.
- μ¬μ©μλ λ€μκ³Ό κ°μ΄ λ κ°μ§ λ°©λ²μΌλ‘ μμμ Tagλ₯Ό μΆκ°ν μ μλ€.
-
μμ μμ± μ Tag μ€μ : μμ μμ± μμ² μ
TagListλ₯Ό μ€μ νμ¬ μ¬λ¬ κ°μ Tag μΆκ° κ°λ₯ - κΈ°μ‘΄ μμμ Tag κ΄λ¦¬ API μ¬μ©: Tag κ΄λ¦¬ REST APIλ₯Ό ν΅ν Tag μΆκ°/μ‘°ν/μμ κ°λ₯
-
μμ μμ± μ Tag μ€μ : μμ μμ± μμ² μ
- Tag κ΄λ¦¬ APIλ
AddTag,ListTag,GetTag,RemoveTag4κ°μ APIλ₯Ό μ 곡νλ€. - μ§μ λμ μμ νμ : VPC, SUBNET, SG, KEY(keypair), VM, NLB, DISK, MYIMAGE, CLUSTER
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CB-Spider Tag Management β
β β
β ConnectionName (CSP + Region) β
β β β
β βββ AddTag(ResourceType, ResourceName, Tag) β
β β βββ Tag(Key, Value) μΆκ° β
β β β
β βββ ListTag(ResourceType, ResourceName) β
β β βββ ν΄λΉ μμμ μ 체 Tag λͺ©λ‘ μ‘°ν β
β β β
β βββ GetTag(ResourceType, ResourceName, Key) β
β β βββ νΉμ Tag μ 보 μ‘°ν (Key κΈ°λ°) β
β β β
β βββ RemoveTag(ResourceType, ResourceName, Key) β
β βββ νΉμ Tag μμ (Key κΈ°λ°) β
β β
β μ§μ μμ νμ
β
β VPC, SUBNET, SG, KEY(keypair), VM, NLB, β
β DISK, MYIMAGE, CLUSTER β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
CSPλ³ μμλ³ Tag μ 곡 νν©μ λ€μκ³Ό κ°λ€.
Provider VPC Subnet SecurityGroup VM KeyPair VM Disk MyImage NLB Cluster AWS O O O O O O O O O Azure O - O O O O O O O GCP - - - - O O - - O Alibaba β³ β³ O O O O O O - Tencent O O O O O O O O O IBM O O O O O O O O O OpenStack O O O - O - - O - KT Classic - - - - O O O - - β» β³: μμ μμ± μμλ§ Tagging μ 곡 β» - : CSPκ° Taggingμ μ 곡νμ§ μλ μμ β» NHN, NCP, KT VPC: Taggingμ μ 곡νμ§ μμ - Tag API νΈμΆμ λ€μ μ€λ₯ λ©μμ§ λ°ν: "nhn-config does not support TagHandler"β» Tag λ―Έμ§μ μμμ λν API νΈμΆμ λμ (1) μμ μμ± μμ² μ Tag μ€μ μμ²: μμμ μμ±λκ³ , Tagλ μΆκ°λμ§ μμ(Log μΆλ ₯ μμ) (2) κΈ°μ‘΄ μμμ Tag μΆκ° μμ²: λ€μ κ³΅ν΅ νμμ μλ¬ λ©μμ§ λ°ν(Error Log μΆλ ₯) β’ format: "[TAG_NOT_SUPPORTED] Tagging is not supported for the resource: {CSP}-{RESOURCE}" β’ example: "[TAG_NOT_SUPPORTED] Tagging is not supported for the resource: GCP-keypair"
- λμ CSP Connectionμ΄ μ μμ μΌλ‘ λ±λ‘λμ΄ μμ΄μΌ νλ€.
- Tagλ₯Ό μΆκ°/μ‘°νν λμ μμ(VPC, VM λ±)μ΄ μ΄λ―Έ μμ±λμ΄ μμ΄μΌ νλ€.
- μ¬μ©μλ λ€μκ³Ό κ°μ CB-Spider REST APIλ₯Ό μ΄μ©νμ¬ Tag μ 보λ₯Ό JSON κ·κ²©μΌλ‘ μ 곡λ°λλ€.
# Tag μΆκ°
POST /spider/tag - Add Tag
# Tag λͺ©λ‘ μ‘°ν
GET /spider/tag - List Tags
# νΉμ Tag μ‘°ν
GET /spider/tag/{Key} - Get Tag
# Tag μμ
DELETE /spider/tag/{Key} - Remove Tag
AddTag (POST /spider/tag)
| νλΌλ―Έν° | μ€λͺ | μμ |
|---|---|---|
| ConnectionName | λμ Connection μ΄λ¦ | aws-seoul-config |
| ReqInfo.ResourceType | μμ νμ |
VPC, VM, SG λ± |
| ReqInfo.ResourceName | μμ μ΄λ¦ |
vpc-01, my-vm
|
| ReqInfo.Tag | μΆκ°ν Tag (Key, Value μ) | {"Key": "env", "Value": "prod"} |
ListTag (GET /spider/tag)
| νλΌλ―Έν° | μ€λͺ | μμ |
|---|---|---|
| ConnectionName | λμ Connection μ΄λ¦ | aws-seoul-config |
| ResourceType | μμ νμ |
VPC, VM λ± |
| ResourceName | μμ μ΄λ¦ | vpc-01 |
GetTag (GET /spider/tag/{Key})
| νλΌλ―Έν° | μ€λͺ | μμ |
|---|---|---|
| ConnectionName | λμ Connection μ΄λ¦ | aws-seoul-config |
| ResourceType | μμ νμ |
VPC, VM λ± |
| ResourceName | μμ μ΄λ¦ | vpc-01 |
| Key | μ‘°νν Tagμ Key | env |
RemoveTag (DELETE /spider/tag/{Key})
| νλΌλ―Έν° | μ€λͺ | μμ |
|---|---|---|
| ConnectionName | λμ Connection μ΄λ¦ | aws-seoul-config |
| ReqInfo.ResourceType | μμ νμ |
VPC, VM λ± |
| ReqInfo.ResourceName | μμ μ΄λ¦ | vpc-01 |
| Key | μμ ν Tagμ Key | env |
| μμ νμ | κ° | μ€λͺ |
|---|---|---|
| VPC | VPC |
Virtual Private Cloud |
| Subnet | SUBNET |
Subnet |
| Security Group | SG |
Security Group |
| KeyPair | KEY |
VM SSH KeyPair |
| VM | VM |
Virtual Machine |
| NLB | NLB |
Network Load Balancer |
| Disk | DISK |
Disk (Volume) |
| MyImage | MYIMAGE |
VM Snapshot Image |
| Cluster | CLUSTER |
Kubernetes Cluster |
Tag μ 보 (KeyValue)
| νλ | μ€λͺ | μμ |
|---|---|---|
| Key | Tag ν€ κ° |
env, team, project
|
| Value | Tag κ° |
production, backend, spider
|
ListTag μλ΅ νμ
| νλ | μ€λͺ |
|---|---|
| tag | Tag λͺ©λ‘ (KeyValue λ°°μ΄) |
| resourceType | μμ νμ μ μ¬λμ΄ μ½μ μ μλ μ΄λ¦ |
curl -u "$SPIDER_USERNAME:$SPIDER_PASSWORD" -sX POST 'http://localhost:1024/spider/tag' \
-H 'Content-Type: application/json' \
-d '{
"ConnectionName": "aws-seoul-config",
"ReqInfo": {
"ResourceType": "VPC",
"ResourceName": "vpc-01",
"Tag": {
"Key": "env",
"Value": "production"
}
}
}' | jqμλ΅ μμ:
{
"Key": "env",
"Value": "production"
}curl -u "$SPIDER_USERNAME:$SPIDER_PASSWORD" -sX GET \
'http://localhost:1024/spider/tag?ConnectionName=aws-seoul-config&ResourceType=VPC&ResourceName=vpc-01' | jqμλ΅ μμ:
{
"tag": [
{
"Key": "env",
"Value": "production"
},
{
"Key": "team",
"Value": "backend"
},
{
"Key": "Name",
"Value": "vpc-01"
}
],
"resourceType": "VPC"
}curl -u "$SPIDER_USERNAME:$SPIDER_PASSWORD" -sX GET \
'http://localhost:1024/spider/tag/env?ConnectionName=aws-seoul-config&ResourceType=VPC&ResourceName=vpc-01' | jqμλ΅ μμ:
{
"Key": "env",
"Value": "production"
}curl -u "$SPIDER_USERNAME:$SPIDER_PASSWORD" -sX DELETE 'http://localhost:1024/spider/tag/env' \
-H 'Content-Type: application/json' \
-d '{
"ConnectionName": "aws-seoul-config",
"ReqInfo": {
"ResourceType": "VPC",
"ResourceName": "vpc-01"
}
}' | jqμλ΅ μμ:
{
"Result": "true"
}μμ μμ± APIμ μμ² Bodyμ TagListλ₯Ό ν¬ν¨νμ¬ μμ± μμ μ Tagλ₯Ό μΆκ°ν μ μλ€.
curl -u "$SPIDER_USERNAME:$SPIDER_PASSWORD" -sX POST 'http://localhost:1024/spider/vpc' \
-H 'Content-Type: application/json' \
-d '{
"ConnectionName": "aws-seoul-config",
"ReqInfo": {
"Name": "vpc-01",
"IPv4_CIDR": "10.0.0.0/16",
"SubnetInfoList": [
{
"Name": "subnet-01",
"IPv4_CIDR": "10.0.1.0/24"
}
],
"TagList": [
{"Key": "env", "Value": "production"},
{"Key": "team", "Value": "backend"}
]
}
}' | jq- CSPλ§λ€ Tagλ₯Ό μ§μνλ μμμ μ’ λ₯κ° λ€λ₯΄λ€ (2μ CSPλ³ Tag μ 곡 νν© μ°Έμ‘°).
- μΌλΆ CSP(Alibaba)λ νΉμ μμμ λν΄ μμ μμ± μμλ§ Tag μ€μ μ΄ κ°λ₯νλ©°, μμ± ν Tag κ΄λ¦¬ APIλ₯Ό ν΅ν μΆκ°λ λΆκ°νλ€ (β³ νμ).
-
NHN, NCP, KT VPCλ Taggingμ μ 곡νμ§ μμΌλ©°, Tag API νΈμΆ μ λ€μ μ€λ₯ λ©μμ§λ₯Ό λ°ννλ€.
"<csp>-config does not support TagHandler"
- Tag λ―Έμ§μ μμμ λν API νΈμΆ μ λμ:
- μμ μμ± μμ² μ Tag μ€μ μμ²: μμμ μ μ μμ±λκ³ , Tagλ μΆκ°λμ§ μμ (Log μΆλ ₯ μμ)
-
κΈ°μ‘΄ μμμ Tag μΆκ° μμ²: λ€μ κ³΅ν΅ νμμ μλ¬ λ©μμ§ λ°ν (Error Log μΆλ ₯)
- format:
[TAG_NOT_SUPPORTED] Tagging is not supported for the resource: {CSP}-{RESOURCE} - example:
[TAG_NOT_SUPPORTED] Tagging is not supported for the resource: GCP-keypair
- format:
- λμΌ μμμ λμΌ μ΄λ¦μ Keyλ μ€λ³΅ μΆκ°ν μ μλ€.
- μ΄λ―Έ μ‘΄μ¬νλ Keyλ‘
AddTagλ₯Ό νΈμΆνλ©΄ μλ¬κ° λ°νλλ€.
- μμ μμ± μ
TagListμ ν¬ν¨λ Tag μ€ μΌλΆκ° μ€ν¨ν κ²½μ°:- μμ±λ μμμ μ μ§λλ€.
- μμ± μ±κ³΅ν Tagλ€μ λ°ν μ 보μ
TagListμ μ€μ λμ΄ λ°νλλ€. - μμ± μ€λ₯ Tagλ€μ λ€μ μλ¬ λ©μμ§ νμμΌλ‘ λ°νλλ€.
"TaggingError: {Key01, Value01}, {Key05, Value05}: CSP μλ¬ λ©μμ§"
-
GetTagμRemoveTagAPIμμ Key κ°μ μ νν μΌμΉν΄μΌ νλ€ (λΆλΆ μΌμΉ λΆκ°).
| HTTP Status | μ€λͺ |
|---|---|
| 200 OK | μμ² μ±κ³΅ |
| 400 Bad Request | μλͺ»λ μμ² (νμ νλΌλ―Έν° λλ½, μλͺ»λ μμ νμ λ±) |
| 404 Not Found | λμ μμμ μ°Ύμ μ μμ |
| 500 Internal Server Error | μλ² λ΄λΆ μ€λ₯ λλ CSP API μ€λ₯ |