From e8888128060e56dd84f7bb43a64f28930452ae7e Mon Sep 17 00:00:00 2001 From: Seokho Son Date: Tue, 1 Sep 2026 01:45:45 +0900 Subject: [PATCH] Use cb-tumblebug:0.13.2 Signed-off-by: Seokho Son --- .../mc-infra-manager/assets/cloudinfo.yaml | 96 +-- .../mc-infra-manager/assets/diskinfo.yaml | 533 +++++++++++++++ .../assets/extractionpatterns.yaml | 12 + .../mc-infra-manager/assets/rdbmsinfo.yaml | 635 ++++++++++++++++++ .../spider/.cloud-init-aws/cloud-init-ubuntu | 32 - .../spider/.cloud-init-aws/cloud-init-windows | 4 - .../spider/.cloud-init-common/cloud-init | 7 - .../assets/spider/.cloud-init-ibm/cloud-init | 12 - .../assets/spider/.cloud-init-kt/cloud-init | 7 - .../spider/.cloud-init-kt/cloud-init-centos | 9 - .../spider/.cloud-init-kt/cloud-init-ubuntu | 8 - .../spider/.cloud-init-kt/cloud-init-windows | 4 - .../.cloud-init-ktcloud/cloud-init-centos | 9 - .../.cloud-init-ktcloud/cloud-init-rocky | 15 - .../.cloud-init-ktcloud/cloud-init-ubuntu | 8 - .../.cloud-init-ktcloud/cloud-init-windows | 4 - .../assets/spider/.cloud-init-ncp/cloud-init | 8 - .../spider/.cloud-init-ncp/cloud-init-centos | 9 - .../spider/.cloud-init-ncp/cloud-init-windows | 4 - .../spider/.cloud-init-nhn/cloud-init-ubuntu | 11 - .../spider/.cloud-init-nhn/cloud-init-windows | 6 - .../spider/.cloud-init-openstack/cloud-init | 11 - .../spider/.cloud-init-tencent/cloud-init | 8 - .../mc-infra-manager/assets/spider/README.md | 43 -- .../assets/spider/cloudos.yaml | 26 - .../assets/spider/cloudos_meta.yaml | 149 ---- conf/docker/docker-compose.yaml | 6 +- 27 files changed, 1231 insertions(+), 445 deletions(-) create mode 100644 conf/docker/conf/mc-infra-manager/assets/diskinfo.yaml create mode 100644 conf/docker/conf/mc-infra-manager/assets/rdbmsinfo.yaml delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-aws/cloud-init-ubuntu delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-aws/cloud-init-windows delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-common/cloud-init delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ibm/cloud-init delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-centos delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-ubuntu delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-windows delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-centos delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-rocky delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-ubuntu delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-windows delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init-centos delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init-windows delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-nhn/cloud-init-ubuntu delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-nhn/cloud-init-windows delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-openstack/cloud-init delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-tencent/cloud-init delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/README.md delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/cloudos.yaml delete mode 100644 conf/docker/conf/mc-infra-manager/assets/spider/cloudos_meta.yaml diff --git a/conf/docker/conf/mc-infra-manager/assets/cloudinfo.yaml b/conf/docker/conf/mc-infra-manager/assets/cloudinfo.yaml index 367ce7b6..031c6c37 100644 --- a/conf/docker/conf/mc-infra-manager/assets/cloudinfo.yaml +++ b/conf/docker/conf/mc-infra-manager/assets/cloudinfo.yaml @@ -715,16 +715,16 @@ cloud: - mx-central-1a - mx-central-1b - mx-central-1c - me-south-1: - description: Middle East (Bahrain) - location: - display: Middle East (Bahrain) - latitude: 25.0 - longitude: 49.6 - zone: - - me-south-1a - - me-south-1b - - me-south-1c + # me-south-1: + # description: Middle East (Bahrain) + # location: + # display: Middle East (Bahrain) + # latitude: 25.0 + # longitude: 49.6 + # zone: + # - me-south-1a + # - me-south-1b + # - me-south-1c azure: description: Microsoft Azure driver: azure-driver-v1.0.so @@ -1881,33 +1881,33 @@ cloud: longitude: 126.874278 zone: - DX-M1 - KR-CN: - id: KR-CN - description: Cheonan (South Korea) - location: - display: Cheonan (South Korea) - latitude: 36.815 - longitude: 127.1139 - zone: - - DX-Central - KR-CJ: - id: KR-CJ - description: Cheongju (South Korea) - location: - display: Cheongju (South Korea) - latitude: 36.6424 - longitude: 127.489 - zone: - - DX-DCN-CJ - KR-YS: - id: KR-YS - description: Yongsan - Seoul (South Korea) - location: - display: Yongsan - Seoul (South Korea) - latitude: 37.5326 - longitude: 126.9907 - zone: - - DX-YS + # KR-CN: + # id: KR-CN + # description: Cheonan (South Korea) + # location: + # display: Cheonan (South Korea) + # latitude: 36.815 + # longitude: 127.1139 + # zone: + # - DX-Central + # KR-CJ: + # id: KR-CJ + # description: Cheongju (South Korea) + # location: + # display: Cheongju (South Korea) + # latitude: 36.6424 + # longitude: 127.489 + # zone: + # - DX-DCN-CJ + # KR-YS: + # id: KR-YS + # description: Yongsan - Seoul (South Korea) + # location: + # display: Yongsan - Seoul (South Korea) + # latitude: 37.5326 + # longitude: 126.9907 + # zone: + # - DX-YS ncp: description: Naver Cloud Platform (VPC) driver: ncp-driver-v1.0.so @@ -1980,19 +1980,19 @@ cloud: zone: - jp-pub-a - jp-pub-b - KR3: - id: KR3 - description: Gwangju (South Korea) - location: - display: Gwangju (South Korea) - latitude: 35.1595 - longitude: 126.8526 - zone: - - kr3-pub-a - - kr3-pub-b + # KR3: + # id: KR3 + # description: Gwangju (South Korea) + # location: + # display: Gwangju (South Korea) + # latitude: 35.1595 + # longitude: 126.8526 + # zone: + # - kr3-pub-a + # - kr3-pub-b # US1: # id: US1 - # desc: US West (California) + # description: US West (California) # location: # display: California, USA # latitude: 37.7749 diff --git a/conf/docker/conf/mc-infra-manager/assets/diskinfo.yaml b/conf/docker/conf/mc-infra-manager/assets/diskinfo.yaml new file mode 100644 index 00000000..6967b657 --- /dev/null +++ b/conf/docker/conf/mc-infra-manager/assets/diskinfo.yaml @@ -0,0 +1,533 @@ +# Static reference for VM root disks and data disks per Cloud Service Provider (CSP), in CSP-native terms. +# Single source of truth for GET /tumblebug/disk/support and +# GET /tumblebug/ns/{nsId}/resources/spec/{specId}/diskOptions (see resource/diskinfo.go). +# No CB-Spider call is made; live per-zone stock is POST .../reviewSpecImagePair. +# +# Last Updated: 2026-08-29 +# Sources: official CSP documentation (links per CSP), cross-checked by provisioning every root-capable +# type as a VM root disk and creating every data-capable type as a data disk through CB-Tumblebug +# +# Schema +# disk: +# : lowercase, as in cloudinfo.yaml +# description, links, note +# rootDiskSelectable: whether rootDiskType/rootDiskSize can be chosen at VM creation +# dataDiskSelectable: whether diskType can be chosen at data disk creation +# defaultRootDiskType: what "default" (or empty) resolves to; "" = decided by the CSP/image (explain in note) +# defaultDataDiskType: what "default" (or empty) resolves to +# diskTypeOrder: display order +# diskTypes: +# : CSP-native identifier; the value to pass as rootDiskType / diskType +# name, description, note +# cbSpiderName: (only if different) identifier CB-Spider expects +# rootDisk, dataDisk: usable as VM root disk / data disk +# rootDiskSizeGB: {min, max, step, allowed} (allowed = discrete list) +# dataDiskSizeGB: {min, max, step, allowed} +# byOS: root size override per OS family, e.g. windows: {allowed: [100, 150]} +# availability: scope by regions / zones / specPatterns (case-insensitive globs on the +# CSP spec name); each axis is "only: [...]" or "except: [...]"; omitted = everywhere. +# specPatterns govern root disks and attachment; a data disk can be created regardless + +disk: + aws: + description: Amazon EBS volumes + links: + docs: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html + api: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html + rootDiskSelectable: true + dataDiskSelectable: true + defaultRootDiskType: "" + defaultDataDiskType: standard + note: >- + "default" root disk type means the image's own default (gp2 for the current Ubuntu AMIs, at the + image size). "default" data disk type resolves to "standard" (magnetic) — specify gp3 explicitly + for new workloads. Provisioned IOPS/throughput are not configurable via CB-Tumblebug. + diskTypeOrder: [gp3, gp2, io2, io1, st1, sc1, standard] + diskTypes: + gp3: + name: General Purpose SSD (gp3) + description: 3000 IOPS / 125 MiB/s baseline; best price-performance for most workloads + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 1, max: 65536} + dataDiskSizeGB: {min: 1, max: 65536} + gp2: + name: General Purpose SSD (gp2) + description: Burstable SSD; previous generation of gp3 + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 1, max: 16384} + dataDiskSizeGB: {min: 1, max: 16384} + io2: + name: Provisioned IOPS SSD (io2 Block Express) + description: Highest performance and durability + rootDisk: false + dataDisk: false + note: Requires a provisioned IOPS value, which CB-Tumblebug does not pass (AWS rejects the request). Verified 2026-08-29. + io1: + name: Provisioned IOPS SSD (io1) + description: Previous-generation provisioned IOPS SSD + rootDisk: false + dataDisk: false + note: Requires a provisioned IOPS value, which CB-Tumblebug does not pass (AWS rejects the request). Verified 2026-08-29. + st1: + name: Throughput Optimized HDD (st1) + description: Low-cost HDD for throughput-intensive, frequently accessed data + rootDisk: false + dataDisk: true + dataDiskSizeGB: {min: 125, max: 16384} + note: Cannot be used as a boot volume. + sc1: + name: Cold HDD (sc1) + description: Lowest-cost HDD for infrequently accessed data + rootDisk: false + dataDisk: true + dataDiskSizeGB: {min: 125, max: 16384} + note: Cannot be used as a boot volume. + standard: + name: Magnetic (standard) + description: Previous-generation magnetic volume + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 1, max: 1024} + dataDiskSizeGB: {min: 1, max: 1024} + + azure: + description: Azure managed disks + links: + docs: https://learn.microsoft.com/en-us/azure/virtual-machines/disks-types + limits: https://learn.microsoft.com/en-us/azure/virtual-machines/disks-scalability-targets + rootDiskSelectable: true + dataDiskSelectable: true + defaultRootDiskType: Premium_LRS + defaultDataDiskType: Premium_LRS + note: >- + Identifiers are Azure storageAccountType values. OS disk max is 4095 GB for every type; sizes are + billed by the next SKU tier (P1..P80 / E1..E80 / S4..S80). A data disk created with size + "default" is 1024 GB. + diskTypeOrder: [Premium_LRS, StandardSSD_LRS, Standard_LRS, PremiumV2_LRS, UltraSSD_LRS] + diskTypes: + Premium_LRS: + name: Premium SSD + description: Production-grade SSD with SLA-backed performance + cbSpiderName: PremiumSSD + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 30, max: 4095} + dataDiskSizeGB: {min: 4, max: 32767} + note: Root disk min is the image's OS disk size (typically 30 GB). + StandardSSD_LRS: + name: Standard SSD + description: Cost-effective SSD for web servers, dev/test, light workloads + cbSpiderName: StandardSSD + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 30, max: 4095} + dataDiskSizeGB: {min: 4, max: 32767} + Standard_LRS: + name: Standard HDD + description: HDD for backup and non-critical, infrequent access + cbSpiderName: StandardHDD + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 30, max: 4095} + dataDiskSizeGB: {min: 32, max: 32767} + note: Standard HDD as an OS disk is being retired on 2028-09-08 (converted to Standard SSD); avoid for new VMs. + PremiumV2_LRS: + name: Premium SSD v2 + description: Linear per-GiB SSD with independently provisioned IOPS/throughput + rootDisk: false + dataDisk: true + dataDiskSizeGB: {min: 1, max: 65536} + note: Data disk only (cannot be an OS disk). Zonal at Azure. Verified 2026-08-30. + UltraSSD_LRS: + name: Ultra Disk + description: Highest-performance data disk with per-IOPS/MBps billing + rootDisk: false + dataDisk: true + dataDiskSizeGB: {min: 4, max: 65536} + note: Data disk only (cannot be an OS disk); needs an Ultra-capable VM to attach. Verified 2026-08-30. + + gcp: + description: Google Compute Engine Persistent Disk / Hyperdisk + links: + docs: https://docs.cloud.google.com/compute/docs/disks/persistent-disks + hyperdisk: https://docs.cloud.google.com/compute/docs/disks/hyperdisks + rootDiskSelectable: true + dataDiskSelectable: true + defaultRootDiskType: "" + defaultDataDiskType: pd-standard + note: >- + "default" root disk type means GCP's default for the machine series (pd-standard, or + pd-balanced/hyperdisk-balanced on newer series). Machine series decide which disk types are + attachable (e.g. C3/C4/N4/X4 need Hyperdisk), so check with a spec: GET .../spec/{specId}/diskOptions. + diskTypeOrder: [pd-balanced, pd-ssd, pd-standard, pd-extreme, hyperdisk-balanced, hyperdisk-extreme, hyperdisk-throughput, hyperdisk-ml] + diskTypes: + pd-balanced: + name: Balanced Persistent Disk + description: SSD-backed, balanced price/performance; recommended boot disk + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 10, max: 65536} + dataDiskSizeGB: {min: 10, max: 65536} + availability: + specPatterns: {except: ["c4-*", "c4d-*", "n4-*", "x4-*", "c3-metal-*", "h3-*", "a3-*", "a4-*"]} + note: Not attachable to machine series that require Hyperdisk (C4, C4D, N4, X4, H3, A3, A4, C3 metal). + pd-ssd: + name: SSD Persistent Disk + description: Higher IOPS SSD + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 10, max: 65536} + dataDiskSizeGB: {min: 10, max: 65536} + availability: + specPatterns: {except: ["c3-*", "c3d-*", "c4-*", "c4d-*", "c4a-*", "g4-*", "h3-*", "h4d-*", "n4-*", "n4a-*", "n4d-*", "x4-*", "a3-*", "a4-*"]} + note: Not supported on C3, C3D, C4A, G4, H4D, N4A, N4D and Hyperdisk-only series (works on E2, verified 2026-08-29). + pd-standard: + name: Standard Persistent Disk (HDD) + description: Low-cost HDD-backed disk + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 10, max: 65536} + dataDiskSizeGB: {min: 10, max: 65536} + availability: + specPatterns: {except: ["c4-*", "c4d-*", "n4-*", "x4-*", "c3-metal-*", "h3-*", "a3-*", "a4-*"]} + pd-extreme: + name: Extreme Persistent Disk + description: Highest-performance PD with provisioned IOPS + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 500, max: 65536} + dataDiskSizeGB: {min: 500, max: 65536} + availability: + specPatterns: {except: ["c3-*", "c3d-*", "c4-*", "c4d-*", "c4a-*", "g4-*", "h3-*", "h4d-*", "n4-*", "n4a-*", "n4d-*", "x4-*", "a3-*", "a4-*"]} + note: Works as a root disk even on E2 (verified 2026-08-29); Google recommends Hyperdisk instead. Provisioned IOPS is not configurable via CB-Tumblebug. + hyperdisk-balanced: + name: Hyperdisk Balanced + description: Default disk for newer machine series; provisioned IOPS/throughput + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 4, max: 65536} + dataDiskSizeGB: {min: 4, max: 65536} + note: Root disk on n4-standard-2 and data disk verified 2026-08-30. Not usable on E2. + availability: + specPatterns: {only: ["c3-*", "c3d-*", "c4-*", "c4d-*", "c4a-*", "n4-*", "n4a-*", "n4d-*", "x4-*", "m3-*", "m4-*", "h3-*", "h4d-*", "z3-*", "a3-*", "a4-*", "g4-*"]} + hyperdisk-extreme: + name: Hyperdisk Extreme + description: Highest IOPS data disk + rootDisk: false + dataDisk: true + note: Data disk only. Verified 2026-08-30. + dataDiskSizeGB: {min: 64, max: 65536} + availability: + specPatterns: {only: ["c3-*", "c3d-*", "c4-*", "n4-*", "x4-*", "m3-*", "m4-*", "z3-*", "a3-*"]} + hyperdisk-throughput: + name: Hyperdisk Throughput + description: High-throughput data disk for scale-out analytics + rootDisk: false + dataDisk: true + note: Data disk only. Verified 2026-08-30. + dataDiskSizeGB: {min: 2048, max: 32768} + availability: + specPatterns: {only: ["c3-*", "c3d-*", "c4-*", "c4a-*", "n4-*", "m3-*", "h3-*", "z3-*", "a3-*"]} + hyperdisk-ml: + name: Hyperdisk ML + description: Read-only shareable disk for ML model serving + rootDisk: false + dataDisk: true + note: Data disk only. Verified 2026-08-30. + dataDiskSizeGB: {min: 4, max: 65536} + availability: + specPatterns: {only: ["a3-*", "a4-*", "g2-*", "g4-*", "c3-*", "n4-*"]} + + alibaba: + description: Alibaba Cloud ECS Elastic Block Storage + links: + docs: https://www.alibabacloud.com/help/en/ecs/user-guide/elastic-block-storage-devices + api: https://www.alibabacloud.com/help/en/ecs/developer-reference/api-ecs-2014-05-26-createdisk + rootDiskSelectable: true + dataDiskSelectable: true + defaultRootDiskType: cloud_essd + defaultDataDiskType: cloud_essd + note: >- + System (root) disks are limited to 2048 GB for every category. Category availability differs + per zone (cloud/cloud_ssd/cloud_efficiency are being phased out in some regions); use + POST .../reviewSpecImagePair with rootDiskType for live zone availability. ESSD performance + level (PL0..PL3) is not selectable via CB-Tumblebug; PL1 applies. + diskTypeOrder: [cloud_essd, cloud_auto, cloud_essd_entry, cloud_efficiency, cloud_ssd, cloud] + diskTypes: + cloud_essd: + name: Enhanced SSD (ESSD) + description: Current-generation SSD (PL1 when created via CB-Tumblebug) + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 20, max: 2048} + dataDiskSizeGB: {min: 20, max: 65536} + cloud_auto: + name: ESSD AutoPL + description: ESSD with auto-scaling performance + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 1, max: 2048} + dataDiskSizeGB: {min: 1, max: 65536} + note: Root disk verified in ap-northeast-2 and ap-southeast-1; data disk verified 2026-08-30. + cloud_essd_entry: + name: ESSD Entry + description: Entry-level ESSD for economy (u/e) instance families + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 20, max: 2048} + dataDiskSizeGB: {min: 10, max: 32768} + note: Data disk verified 2026-08-30. Root disk on ecs.e-c1m1.large worked in ap-northeast-2 but not in ap-southeast-1 (2026-08-29) — zone-dependent. + availability: + specPatterns: {only: ["ecs.u1-*", "ecs.e-*"]} + cloud_efficiency: + name: Ultra Disk + description: Previous-generation disk; being phased out in some regions + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 20, max: 2048} + dataDiskSizeGB: {min: 20, max: 32768} + availability: + note: Zone/instance-type dependent — rejected as root disk for ecs.e-* in ap-northeast-2/ap-southeast-1; data disk OK in ap-southeast-1 but NotSupported in ap-northeast-2 (2026-08-29). Verify with reviewSpecImagePair. + cloud_ssd: + name: Standard SSD + description: Previous-generation SSD; being phased out in some regions + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 20, max: 2048} + dataDiskSizeGB: {min: 20, max: 32768} + availability: + note: Zone/instance-type dependent — rejected as root disk for ecs.e-* in ap-northeast-2/ap-southeast-1; data disk OK in ap-southeast-1 but NotSupported in ap-northeast-2 (2026-08-29). Verify with reviewSpecImagePair. + cloud: + name: Basic Disk + description: Legacy basic disk; being phased out in some regions + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 20, max: 500} + dataDiskSizeGB: {min: 5, max: 2000} + availability: + note: Not available in ap-northeast-2 or ap-southeast-1 for either root or data disks (2026-08-29); expect it only in old zones. + + tencent: + description: Tencent Cloud Block Storage (CBS) + links: + docs: https://www.tencentcloud.com/document/product/362/31636 + api: https://www.tencentcloud.com/document/product/213/15753 + rootDiskSelectable: true + dataDiskSelectable: true + defaultRootDiskType: CLOUD_PREMIUM + defaultDataDiskType: CLOUD_PREMIUM + note: >- + Tencent does not document a per-type system disk maximum (minimum 50 GB). Data disk type + availability varies by zone. CLOUD_BASIC is no longer a purchasable CBS product. + diskTypeOrder: [CLOUD_PREMIUM, CLOUD_SSD, CLOUD_HSSD, CLOUD_BSSD, CLOUD_TSSD] + diskTypes: + CLOUD_PREMIUM: + name: Premium Cloud Storage + description: Balanced hybrid storage; default for most instances + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 50} + dataDiskSizeGB: {min: 10, max: 32000, step: 10} + CLOUD_SSD: + name: SSD Cloud Storage + description: High-IOPS SSD + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 50} + dataDiskSizeGB: {min: 20, max: 32000, step: 10} + CLOUD_HSSD: + name: Enhanced SSD + description: NVMe-based SSD for latency-sensitive workloads + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 50} + dataDiskSizeGB: {min: 20, max: 32000, step: 10} + availability: + specPatterns: {only: ["S5.*", "M5.*", "SA2.*", "S6.*", "M6.*", "SA3.*", "C6.*", "S7.*", "SA5.*"]} + note: S5/M5/SA2 and newer instance families only (root on SA2.MEDIUM2 verified 2026-08-29). + CLOUD_BSSD: + name: Balanced SSD + description: Cost-effective SSD + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 50} + dataDiskSizeGB: {min: 20, max: 32000, step: 10} + note: Root disk verified in ap-seoul/ap-singapore (2026-08-29); data disk verified 2026-08-30. + CLOUD_TSSD: + name: Tremendous SSD + description: Highest-performance SSD bundled with specific instance types + rootDisk: false + dataDisk: false + note: Cannot be a system disk and cannot be created standalone ("TSSD Disk can not create alone", 2026-08-29); only bundled with specific instance types. + + ibm: + description: IBM Cloud VPC Block Storage + links: + docs: https://cloud.ibm.com/docs/vpc?topic=vpc-block-storage-profiles + rootDiskSelectable: true + dataDiskSelectable: true + defaultRootDiskType: general-purpose + defaultDataDiskType: general-purpose + note: >- + Boot volume size must be at least the image's minimum (most stock images 100 GB); boot + volumes over 250 GB cannot be captured as custom images. The "custom" profile needs an IOPS + value that CB-Tumblebug does not pass. + diskTypeOrder: [general-purpose, 5iops-tier, 10iops-tier, sdp] + diskTypes: + general-purpose: + name: General Purpose (3 IOPS/GB) + description: Default tiered profile + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 10, max: 250} + dataDiskSizeGB: {min: 10, max: 16000} + 5iops-tier: + name: 5 IOPS/GB tier + description: Higher-IOPS tiered profile + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 10, max: 250} + dataDiskSizeGB: {min: 10, max: 9600} + 10iops-tier: + name: 10 IOPS/GB tier + description: Highest tiered profile + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 10, max: 250} + dataDiskSizeGB: {min: 10, max: 4800} + sdp: + name: Defined Performance (sdp, gen 2) + description: Second-generation profile with independently tunable IOPS/bandwidth + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 10, max: 250} + dataDiskSizeGB: {min: 10, max: 32000} + note: Sizes under 10 GB are raised to 50 GB by CB-Spider. + availability: + regions: {only: [us-south, us-east, ca-tor, br-sao, eu-de, eu-gb, eu-es, jp-tok, jp-osa, au-syd]} + note: Allowlisted per account and region — worked in jp-tok but "volume profile not found" in us-south for the test account (2026-08-29). + + openstack: + description: OpenStack Cinder block storage + links: + docs: https://docs.openstack.org/cinder/latest/admin/volume-types.html + rootDiskSelectable: false + dataDiskSelectable: false + defaultDataDiskType: default + note: >- + Root disk type/size are not customizable (flavor/image decide; min = image min_disk). + Volume types are deployment-defined; data disks use the deployment's default type. + Max size is bounded by the project quota (Cinder default 1000 GB). + diskTypeOrder: [default] + diskTypes: + default: + name: Deployment default volume type + description: The OpenStack deployment's default Cinder volume type + rootDisk: false + dataDisk: true + dataDiskSizeGB: {min: 1, max: 1000} + note: Max depends on the project quota. + + ncp: + description: Naver Cloud Platform (VPC, KVM g3) Block Storage + links: + docs: https://guide.ncloud-docs.com/docs/en/server-storage-add-vpc + api: https://api.ncloud-docs.com/docs/compute-vserver-storage-createblockstorageinstance.md + rootDiskSelectable: true + dataDiskSelectable: true + defaultRootDiskType: CB1 + defaultDataDiskType: FB1 + note: >- + Identifiers are NCP KVM (g3) blockStorageVolumeTypeCode values. Root disks support CB1 only. + Sizes are entered in 10 GB units. Root disk min is the image size (10 GB for the current + Ubuntu 22.04 g3 image). Note CB-Spider labels CB1 as "SSD" and FB1 as "HDD" in its responses. + diskTypeOrder: [CB1, FB1] + diskTypes: + CB1: + name: Common Block (CB1) + description: IOPS scales with size (100–16000) + cbSpiderName: HDD + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 10, max: 2000, step: 10} + dataDiskSizeGB: {min: 10, max: 16380, step: 10} + FB1: + name: Fixed Block (FB1) + description: Fixed 500 IOPS block storage + cbSpiderName: SSD + rootDisk: false + dataDisk: true + dataDiskSizeGB: {min: 100, max: 16380, step: 10} + + nhn: + description: NHN Cloud Block Storage + links: + docs: https://docs.nhncloud.com/en/Storage/Block%20Storage/en/public-api/ + policy: https://docs.nhncloud.com/en/nhncloud/en/resource-policy/ + rootDiskSelectable: true + dataDiskSelectable: true + defaultRootDiskType: General HDD + defaultDataDiskType: General HDD + note: >- + Identifiers are NHN volume_type names. u2 flavors have a fixed root disk size and support + General HDD only. + diskTypeOrder: [General SSD, General HDD] + diskTypes: + General SSD: + name: General SSD + description: SSD-backed volume + cbSpiderName: General_SSD + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 20, max: 2000} + dataDiskSizeGB: {min: 10, max: 2048} + byOS: + windows: {min: 50, max: 2000} + availability: + specPatterns: {except: ["u2.*"]} + note: u2 flavors support General HDD only. + General HDD: + name: General HDD + description: HDD-backed volume + cbSpiderName: General_HDD + rootDisk: true + dataDisk: true + rootDiskSizeGB: {min: 20, max: 2000} + dataDiskSizeGB: {min: 10, max: 2048} + byOS: + windows: {min: 50, max: 2000} + + kt: + description: KT Cloud (D1 platform) volumes + links: + docs: https://manual.cloud.kt.com/kt/compute-server-volume-d1 + rootDiskSelectable: true + dataDiskSelectable: true + defaultRootDiskType: HDD + defaultDataDiskType: HDD + note: >- + Root disk size is a discrete choice, not a range (HDD/SSD 50 and 100 GB verified for Linux; + 150 GB rejected for Linux, 2026-08-29). Up to 13 volumes per server. KT reports volume types + as e.g. "HDD-2000iops". + diskTypeOrder: [HDD, SSD] + diskTypes: + HDD: + name: HDD + description: Standard HDD volume + rootDisk: true + dataDisk: true + rootDiskSizeGB: {allowed: [50, 100]} + dataDiskSizeGB: {min: 10, max: 2000, step: 10} + byOS: + windows: {allowed: [100, 150]} + SSD: + name: SSD + description: SSD volume + rootDisk: true + dataDisk: true + rootDiskSizeGB: {allowed: [50, 100]} + dataDiskSizeGB: {min: 10, max: 2000, step: 10} + byOS: + windows: {allowed: [100, 150]} diff --git a/conf/docker/conf/mc-infra-manager/assets/extractionpatterns.yaml b/conf/docker/conf/mc-infra-manager/assets/extractionpatterns.yaml index b8db7647..5dac5d48 100644 --- a/conf/docker/conf/mc-infra-manager/assets/extractionpatterns.yaml +++ b/conf/docker/conf/mc-infra-manager/assets/extractionpatterns.yaml @@ -35,6 +35,18 @@ extractionPatterns: - "*ubuntu-pro*" # Ubuntu Pro (paid support) - "*-pro-*" # Pro variants with dashes - "*:pro-*" # Azure format pro images + # The three above all assume a hyphenated image name. The text these rules are + # matched against is OSDistribution, and GCP puts prose there - "Canonical, + # Ubuntu, 22.04 LTS Pro Server, amd64 jammy pro server image built on ..." - so + # the hyphen forms never fire and a licensed image was classified as a clean + # base image. Space-separated forms cover it. + - "*lts pro*" # "22.04 LTS Pro Server", "22.04 LTS Pro FIPS" (GCP) + - "*minimal pro*" # "22.04 LTS Minimal Pro" (GCP) + - "* pro server*" # "... amd64 jammy pro server image ..." (GCP) + # Accelerator images that are not GPU images: a TPU image carries an + # accelerator runtime and is not a clean base install, but the GPU detector + # looks for nvidia/gpu/cuda and never matches it. + - "*tpu version*" # "22.04 LTS TPU version(s): v5e/v5p/v6e" (GCP) - "*marketplace*" # Development/Testing - "*daily*" diff --git a/conf/docker/conf/mc-infra-manager/assets/rdbmsinfo.yaml b/conf/docker/conf/mc-infra-manager/assets/rdbmsinfo.yaml new file mode 100644 index 00000000..8a28ede2 --- /dev/null +++ b/conf/docker/conf/mc-infra-manager/assets/rdbmsinfo.yaml @@ -0,0 +1,635 @@ +# Configuration for RDBMS (Relational Database Management System) of Cloud Service Providers (CSPs) +# This file defines storage types, DBMS requirements, and database requirements for each CSP + +# Last Updated: 2026-08-27 +# Source: CB-Spider storage-type-test, CB-Spider v0.13.1 RDBMS/MariaDB test suites +# and wiki RDBMS Management Guide. Field naming (dbInstanceSpec, adminUserName/adminUserPassword) +# reflects Tumblebug's DBInstanceSpec model and Spider's DBSpec contract. CB-Spider v0.13.1 +# introduced NHNAutoOpenDBSecurityGroup (exposed in Tumblebug as nhnDBSGToAllowAllInbound), +# clarified SG requirements (AWS: required, Tencent: optional, other 7 CSPs: ignored), and +# clarified Azure Subnet requirement under VPC-private mode (publicAccess=false). +# dbmsRequirements..referenceEngineVersion values come from CB-Spider's own +# rdbms-mysql-test and rdbms-mariadb-test READMEs, +# which each document the exact (engine, version, spec, storage) combination CB-Spider's team +# has confirmed reaches Available per CSP. +# Reference: https://github.com/cloud-barista/cb-spider/tree/master/test/rdbms-mysql-test/storage-type-test +# https://github.com/cloud-barista/cb-spider/blob/master/test/rdbms-mysql-test/README.md +# https://github.com/cloud-barista/cb-spider/blob/master/test/rdbms-mariadb-test/README.md +# https://github.com/cloud-barista/cb-spider/wiki/RDBMS%E2%80%90Management%E2%80%90Guide(KR) + +# The file is in YAML format and contains the following fields. This whole file backs +# GET /tumblebug/rdbms/support (see resource/rdbms.go) — a static, CSP-wide reference +# matrix served with no CB-Spider call, as opposed to GET /tumblebug/rdbms/capability, +# which is a live, per-connection query. +# dbms: Top level key +# : Name of the CSP (lowercase) +# description: Description of the CSP RDBMS service +# links: Reference URLs, keyed by label (a CSP can have more than one): +# docs: official product documentation +# docsMariadb: MariaDB-specific documentation, only when the CSP publishes a separate +# page from "docs" (e.g. NHN has distinct sites for RDS for MySQL vs RDS for MariaDB) +# console: CSP console access, per the CB-Spider wiki's RDBMS Management Guide §1.2 +# "Target Service and Console per CSP" — a login URL plus in-console menu path where +# the CSP has no fixed deep link (e.g. Azure, NCP, NHN, OpenStack) +# supportedDBEngines: DB engines empirically verified for this CSP (per CB-Spider's +# rdbms-mysql-test / rdbms-mariadb-test suites). Not listing an engine here does not +# necessarily mean CB-Spider rejects it — it means it hasn't been verified yet (e.g. +# postgresql has no dedicated CB-Spider test suite as of v0.12.44, so it is omitted +# for every CSP below rather than assumed to work). +# dbOperationMethod: cspNativeApi|sqlFallback - the fixed method CB-Spider uses for this +# CSP's internal Database CRUD API (POST/GET/DELETE .../databases): "cspNativeApi" is a +# CSP-native database management API; "sqlFallback" is a direct SQL connection to the +# instance using the admin login. One or the other per CSP, not a runtime fallback. +# supportsTag: true|false - whether this CSP supports CB-Spider's generic RDBMS tag API +# (POST/GET/DELETE /spider/tag with ResourceType=rdbms). This is a static reference +# value; the live, per-connection flag is RDBMSMetaInfo.SupportsTag (resource/rdbms.go). +# storageTypeSelectable: true|false - whether this CSP lets a caller choose a storage +# type at all (per CB-Spider's storage-type-test). false covers both "storage type +# is not user-configurable" (e.g. azure/ibm/ncp auto-assign it) and "only one type +# exists" CSPs. This is a static reference value; the live, per-connection flag is +# RDBMSMetaInfo.SupportsStorageTypeSelection (see resource/rdbms.go). +# storageTypes: Storage type configurations (map structure for O(1) lookup) +# : Storage type identifier (as returned by CSP) +# name: Display name +# description: User-friendly description +# recommendationLevel: legacy|standard|recommended|premium +# requiresIops: true|false (whether 'iops' parameter is required) +# minStorageSize: Minimum storage size in GB +# maxStorageSize: Maximum storage size in GB (optional) +# note: Additional notes or constraints +# dbmsRequirements: DBMS engine-specific requirements (e.g., MySQL, MariaDB) +# .referenceEngineVersion / referenceDBInstanceSpec: the exact engine version / dbInstanceSpec +# CB-Spider's own test suite verifies as Available for this CSP/engine — preferred by +# applyRDBMSCreateDefaults over guessing from the live SupportedVersions/dbspec lists, +# since a live-reported value can still be rejected by the real CreateRDBMS API for +# this specific region/zone/version (e.g. Alibaba/Tencent). +# databaseRequirements: Database-level requirements (naming rules, reserved names, etc.) +# adminUserNameRequirement: CSP account-service-level constraint on +# RDBMSCreateRequest.adminUserName (the RDBMS instance's admin login), enforced by +# resource/rdbms.go's validateAdminCredentials (checked client-side on both +# /rdbms/validate and /rdbms, before any CB-Spider call). Only add entries confirmed by +# an actual CSP rejection — CSPs rarely publish a complete reserved-word list, so don't +# guess beyond what's been observed. +# fixedValue: this CSP accepts only this exact value (e.g. Tencent: "root") +# reservedValues: values this CSP rejects (case-insensitive exact match) +# note: what was observed and when +# adminUserPasswordRequirement: CSP account-service-level constraint on +# RDBMSCreateRequest.adminUserPassword, enforced the same way. +# minLength / maxLength: character count bounds +# requiresSpecialChar / forbidsSpecialChar: true|false +# note: what was observed and when + +dbms: + aws: + description: Amazon Web Services RDS (Relational Database Service) + links: + docs: https://docs.aws.amazon.com/rds/ + console: https://console.aws.amazon.com/rds/ (Databases menu) + supportedDBEngines: [mysql, mariadb] + dbOperationMethod: sqlFallback + supportsTag: true + storageTypeSelectable: true + storageTypes: + gp2: + name: General Purpose SSD (gp2) + description: Legacy general-purpose SSD storage. Consider gp3 for better cost/performance. + recommendationLevel: legacy + requiresIops: false + minStorageSize: 20 + maxStorageSize: 65536 + note: "Verified: 2026-08-03 (Spider storage-type-test)" + + gp3: + name: General Purpose SSD (gp3) + description: Latest generation general-purpose SSD with 3,000 baseline IOPS and 125 MiB/s throughput. Recommended for most workloads. + recommendationLevel: recommended + requiresIops: false + minStorageSize: 20 + maxStorageSize: 65536 + note: "Verified: 2026-08-03 (Spider storage-type-test)" + + io1: + name: Provisioned IOPS SSD (io1) + description: High-performance SSD for I/O-intensive workloads. Requires 'iops' parameter (e.g., '3000'). Minimum 100 GB storage. + recommendationLevel: premium + requiresIops: true + minStorageSize: 100 + maxStorageSize: 65536 + iopsRange: + min: 1000 + max: 64000 + note: "Verified: 2026-08-03 (Spider storage-type-test with iops=3000)" + + io2: + name: Provisioned IOPS SSD (io2) + description: Next-generation high-performance SSD with higher durability (99.999%). Requires 'iops' parameter. Minimum 100 GB storage. + recommendationLevel: premium + requiresIops: true + minStorageSize: 100 + maxStorageSize: 65536 + iopsRange: + min: 1000 + max: 256000 + note: "Verified: 2026-08-03 (Spider storage-type-test with iops=3000)" + + dbmsRequirements: + mysql: + minStorageSize: 20 + maxStorageSize: 65536 + defaultPort: 3306 + referenceEngineVersion: "8.0" + referenceDBInstanceSpec: db.t3.medium + note: "Storage size requirements apply to all MySQL versions on AWS RDS. Reference values + per CB-Spider's rdbms-mysql-test README (verified Available, 2026-08-03)." + mariadb: + defaultPort: 3306 + referenceEngineVersion: "10.6" + referenceDBInstanceSpec: db.t3.medium + note: "Reference values per CB-Spider's rdbms-mariadb-test README (verified Available, + 2026-08-18, 100GB)." + + databaseRequirements: + maxDatabaseNameLength: 64 + reservedDatabaseNames: + - mysql + - information_schema + - performance_schema + - sys + - rdsadmin + note: "Database names are case-insensitive on MySQL. Reserved names cannot be used." + + azure: + description: Azure Database for MySQL Flexible Server + links: + docs: https://learn.microsoft.com/azure/mysql/flexible-server/ + console: https://portal.azure.com (search "Azure Database for MySQL flexible servers") + supportedDBEngines: [mysql] + dbOperationMethod: cspNativeApi + supportsTag: true + note: "Storage type selection not supported. Storage SKU is read-only and automatically set by Azure based on compute tier (Premium SSD for General Purpose/Memory Optimized tiers, locally redundant storage for Burstable tier). dbOperationMethod is cspNativeApi (armmysqlfs.DatabasesClient). Azure uses SubnetNames only in VPC-private mode (PublicAccess=false); when PublicAccess=true, subnet is not used." + storageTypeSelectable: false + storageTypes: + auto: + name: Automatic (Azure-managed) + description: Storage SKU is automatically determined by Azure based on compute tier. User cannot specify storage type. + recommendationLevel: standard + note: "Verified: 2026-08-03 (Spider storage-type-test SKIP). storageSku is read-only in Azure MySQL Flexible Server API." + + dbmsRequirements: + mysql: + minStorageSize: 20 + maxStorageSize: 16384 + defaultPort: 3306 + referenceEngineVersion: "8.0.21" + referenceDBInstanceSpec: Standard_B1ms + note: "Storage is managed automatically by Azure based on compute tier selection. + Reference values per CB-Spider's rdbms-mysql-test README (verified Available, + 2026-08-03)." + + databaseRequirements: + note: "Database naming follows standard MySQL conventions" + + adminUserNameRequirement: + reservedValues: + - admin + note: "Confirmed via live rejection (2026-08-14): 'admin' is rejected as administratorLogin + with InvalidParameterValue. Azure does not publish a complete reserved-word list for + MySQL Flexible Server, so only empirically-confirmed values are listed here." + + gcp: + description: Google Cloud Platform Cloud SQL + links: + docs: https://cloud.google.com/sql/docs + console: https://console.cloud.google.com/sql/instances + supportedDBEngines: [mysql] + dbOperationMethod: cspNativeApi + supportsTag: true + storageTypeSelectable: true + storageTypes: + PD_SSD: + name: Persistent Disk SSD + description: Standard SSD storage. Automatically selected for N2 machine series (db-perf-optimized-N-*) and Shared/Dedicated core instances. + recommendationLevel: standard + requiresIops: false + minStorageSize: 10 + maxStorageSize: 65536 + note: "Verified: 2026-08-03 (Spider storage-type-test). Machine series determines storage type; not directly selectable." + + PD_HDD: + name: Persistent Disk HDD + description: Cost-effective HDD storage for less I/O-intensive workloads. Available on Shared/Dedicated core instances. + recommendationLevel: standard + requiresIops: false + minStorageSize: 10 + maxStorageSize: 65536 + note: "Verified: 2026-08-03 (Spider storage-type-test)" + + HYPERDISK_BALANCED: + name: Hyperdisk Balanced + description: High-performance next-generation storage. Minimum 20 GB. Only available on C4A (db-c4a-highmem-*) and N4 (db-custom-N4-*) machine series. + recommendationLevel: premium + requiresIops: false + minStorageSize: 20 + maxStorageSize: 65536 + compatibleMachineSeries: + - C4A + - N4 + note: "Verified: 2026-08-03 (Spider storage-type-test). Automatically selected when using C4A/N4 instances." + + dbmsRequirements: + mysql: + minStorageSize: 10 + maxStorageSize: 65536 + defaultPort: 3306 + referenceEngineVersion: "8.0" + referenceDBInstanceSpec: db-custom-2-8192 + note: "Storage type is determined by machine series selection (N2, C4A, N4, etc.), not + directly by user input. Reference values per CB-Spider's rdbms-mysql-test README + (verified Available with PD_SSD, 2026-08-03)." + + databaseRequirements: + maxDatabaseNameLength: 64 + reservedDatabaseNames: + - mysql + - information_schema + - performance_schema + - sys + note: "Database names follow standard MySQL naming conventions" + + alibaba: + description: Alibaba Cloud ApsaraDB RDS + links: + docs: https://www.alibabacloud.com/help/en/rds/ + console: https://rdsnext.console.aliyun.com/ (region-specific path) + supportedDBEngines: [mysql, mariadb] + dbOperationMethod: cspNativeApi + supportsTag: true + storageTypeSelectable: true + storageTypes: + cloud_auto: + name: Auto-selected Storage Type + description: Alibaba Cloud automatically selects the optimal storage type based on region and instance specification. Recommended for simplicity. + recommendationLevel: recommended + requiresIops: false + minStorageSize: 20 + maxStorageSize: 32768 + note: "Verified: 2026-08-03 (Spider storage-type-test returned 'general_essd'). CSP determines actual type at provisioning time." + + cloud_essd: + name: Enhanced SSD (ESSD PL1) + description: Standard enhanced SSD with good balance of performance and cost. Performance Level 1. + recommendationLevel: standard + requiresIops: false + minStorageSize: 20 + maxStorageSize: 32768 + note: "Verified: 2026-08-03 (Spider storage-type-test)" + + cloud_essd2: + name: Enhanced SSD (ESSD PL2) + description: High-performance enhanced SSD. Performance Level 2. Minimum 500 GB storage. Not compatible with mysql.n4.* instance specifications. + recommendationLevel: premium + requiresIops: false + minStorageSize: 500 + maxStorageSize: 32768 + incompatibleSpecs: + - "mysql.n4.*" + note: "Verified: 2026-08-03 (Spider storage-type-test with mysql.n2.small.2c spec). Requires mysql.n2.* or higher spec series." + + cloud_essd3: + name: Enhanced SSD (ESSD PL3) + description: Ultra-high-performance enhanced SSD. Performance Level 3. Minimum 1,500 GB storage. Not compatible with mysql.n4.* instance specifications. + recommendationLevel: premium + requiresIops: false + minStorageSize: 1500 + maxStorageSize: 32768 + incompatibleSpecs: + - "mysql.n4.*" + note: "Verified: 2026-08-03 (Spider storage-type-test with mysql.n2.small.2c spec). Requires mysql.n2.* or higher spec series." + + local_ssd: + name: Premium Local SSD + description: Local SSD storage with high performance. Only compatible with rds.mysql.* instance specification series. Data loss risk on instance failure. + recommendationLevel: premium + requiresIops: false + minStorageSize: 20 + maxStorageSize: 2000 + compatibleSpecs: + - "rds.mysql.*" + note: "Verified: 2026-08-03 (Spider storage-type-test with rds.mysql.t1.small). Not compatible with mysql.n4.* series (InvalidInstanceLevel.DiskType error)." + + dbmsRequirements: + mysql: + minStorageSize: 20 + maxStorageSize: 32768 + defaultPort: 3306 + referenceEngineVersion: "8.0" + referenceDBInstanceSpec: mysql.n4.large.1 + note: "Storage type compatibility depends on instance specification series (mysql.n4.*, + mysql.n2.*, rds.mysql.*). Reference values per CB-Spider's rdbms-mysql-test README + (verified Available, 2026-08-03) — an older version (e.g. 5.5) or a live-picked + spec can fail (InvalidDBInstanceClass.NotFound) since Alibaba restricts which + instance classes are valid per engine version/region." + mariadb: + defaultPort: 3306 + referenceEngineVersion: "10.6" + referenceDBInstanceSpec: mariadb.n2.medium.2c + note: "Reference values per CB-Spider's rdbms-mariadb-test README (verified Available, + 2026-08-18, 20GB)." + + databaseRequirements: + maxDatabaseNameLength: 64 + reservedDatabaseNames: + - mysql + - information_schema + - performance_schema + - sys + note: "Database names follow standard MySQL naming conventions" + + adminUserNameRequirement: + reservedValues: + - admin + note: "Confirmed via live rejection (2026-08-18): 'admin' is rejected with + InvalidAccountName.Forbid ('Specified account name is a keyword in RDS')." + + tencent: + description: Tencent Cloud TencentDB for MySQL + links: + docs: https://www.tencentcloud.com/document/product/236 + console: https://console.tencentcloud.com/cdb + supportedDBEngines: [mysql] + dbOperationMethod: cspNativeApi + supportsTag: true + note: "SecurityGroup is optional (shares the VM's security group if provided). Other CSPs except AWS ignore securityGroupIds." + storageTypeSelectable: true + storageTypes: + local_ssd: + name: Local SSD + description: High-performance local SSD storage. Minimum 50 GB. + recommendationLevel: premium + requiresIops: false + minStorageSize: 50 + note: "Verified: 2026-08-03 (Spider storage-type-test)" + + CLOUD_HSSD: + name: Cloud Enhanced SSD + description: Cloud-based enhanced SSD with high performance. Minimum 50 GB. + recommendationLevel: standard + requiresIops: false + minStorageSize: 50 + note: "Storage type option available in TencentDB metainfo API" + + CLOUD_SSD: + name: Cloud SSD + description: Standard cloud SSD storage. Minimum 50 GB. + recommendationLevel: standard + requiresIops: false + minStorageSize: 50 + note: "Storage type option available in TencentDB metainfo API" + + CLOUD_PREMIUM: + name: Cloud Premium + description: Premium cloud storage with good balance. Minimum 50 GB. + recommendationLevel: standard + requiresIops: false + minStorageSize: 50 + note: "Storage type option available in TencentDB metainfo API" + + dbmsRequirements: + mysql: + minStorageSize: 50 + defaultPort: 3306 + referenceEngineVersion: "8.0" + referenceDBInstanceSpec: "8000" + note: "DBSpec is specified in MB (e.g., 8000 = 8 GB memory). Concurrent order rejection may + occur (OperationDenied.OtherOderInProcess); driver auto-retries. Reference values per + CB-Spider's rdbms-mysql-test README (verified Available, 2026-08-03) — a live-picked + smaller spec (e.g. memory=1000/cpu=1) can be rejected as invalid despite appearing in + the driver's own listed-valid-specs response." + + databaseRequirements: + note: "Database naming follows standard MySQL conventions" + + adminUserNameRequirement: + fixedValue: root + note: "Confirmed via live rejection (2026-08-14): Tencent Cloud Database does not support + a custom admin login name — the admin user is always root. Set adminUserName to root or + leave it empty." + + ibm: + description: IBM Cloud Databases for MySQL + links: + docs: https://cloud.ibm.com/docs/databases-for-mysql + console: https://cloud.ibm.com/databases-overview/resources + supportedDBEngines: [mysql] + dbOperationMethod: sqlFallback + supportsTag: true + note: "Storage type selection not supported. IBM Cloud Databases manages storage automatically." + storageTypeSelectable: false + storageTypes: + auto: + name: Automatic (IBM-managed) + description: Storage is managed automatically by IBM Cloud Databases. User cannot specify storage type. + recommendationLevel: standard + note: "Verified: 2026-08-03 (Spider storage-type-test SKIP). IBM Cloud Databases does not provide storage type selection." + + dbmsRequirements: + mysql: + defaultPort: 3306 + referenceEngineVersion: "8.4" + referenceDBInstanceSpec: multitenant + deprecatedVersions: [] + endOfLifeVersions: + - "8.0" # EOL: July 29, 2026. Provisioning disabled by IBM Cloud ("mysql version 8.0 is no longer available"). + - "5.7" # EOL: April 26, 2024. Service discontinued by IBM Cloud. + note: "Storage is managed automatically by IBM Cloud. MySQL v5.7 (EOL 2024-04-26) and v8.0 (EOL 2026-07-29) reached official End of Life and are rejected by IBM Cloud for new deployments; v8.4 is the active supported version." + + databaseRequirements: + note: "Database naming follows standard MySQL conventions" + + adminUserNameRequirement: + fixedValue: admin + note: "Confirmed in CB-Spider driver source (2026-08-18): IbmRDBMSHandler rejects any + MasterUserName other than 'admin' ('IBM Cloud Databases does not support custom + MasterUserName: the admin user is always \"admin\"')." + + adminUserPasswordRequirement: + minLength: 15 + maxLength: 72 + forbidsSpecialChar: true + note: "Confirmed via live rejection (2026-08-14): the admin login password validation + failed for an 11-character password ('must be between 15 and 72 characters long'). + Special-character rejection (e.g. '!', '@') per the CB-Spider wiki's RDBMS Management + Guide." + + ncp: + description: Naver Cloud Platform Cloud DB for MySQL + links: + docs: https://www.ncloud.com/product/database/cloudDbMysql + console: https://console.ncloud.com (login, then Services -> Database -> Cloud DB for MySQL) + supportedDBEngines: [mysql] + dbOperationMethod: cspNativeApi + supportsTag: false + note: "Storage type and storage size configuration not supported. NCP G3 generation automatically applies SSD storage, starts at 10GB, and auto-scales by 10GB increments up to 6000GB." + storageTypeSelectable: false + storageTypes: + ssd: + name: SSD (automatic) + description: "NCP G3 automatically applies SSD storage (starts at 10GB and auto-scales by 10GB increments up to 6000GB). Storage size and type are not user-configurable." + recommendationLevel: standard + note: "Verified: 2026-08-03 (Spider storage-type-test SKIP). NCP G3 applies SSD automatically; storage type cannot be specified." + + dbmsRequirements: + mysql: + defaultPort: 3306 + referenceEngineVersion: "8.0.36" + referenceDBInstanceSpec: SVR.VDBAS.AMD.STAND.C002.M008.NET.SSD.B050.G003 + note: "G3 generation uses SSD by default and starts at 10GB auto-scaling storage; no user configuration available. + Reference values per CB-Spider's rdbms-mysql-test README (verified Available, + 2026-08-03)." + + databaseRequirements: + note: "Database naming follows standard MySQL conventions. Direct SQL connection from external machines is not supported by default because NCP Cloud DB provides only private VPC endpoints (*.vpc-cdb.ntruss.com). Direct SQL access requires an internal VPC VM or manual public domain request via NCP console." + + adminUserNameRequirement: + reservedValues: + - root + - admin + - radmin + - agent + - api_admin + - ha_admin + - ragent + - repl_admin + - "mysql.session" + - "mysql.sys" + note: "Confirmed via live rejection (2026-08-21): NCP rejects system account names + (root, admin, radmin, agent, api_admin, ha_admin, ragent, repl_admin, mysql.session, mysql.sys)." + + adminUserPasswordRequirement: + requiresSpecialChar: true + note: "Per the CB-Spider wiki's RDBMS Management Guide: NCP requires at least one special + character in the admin login password (opposite of IBM, which forbids them)." + + nhn: + description: NHN Cloud RDS for MySQL + links: + # Old link (…/RDS/ko/overview/) was broken — redirects to an nhncloud.com error page. + # Verified 2026-08-18: NHN publishes separate docs sites per engine, not one combined page. + docs: https://docs.nhncloud.com/ko/Database/RDS%20for%20MySQL/ko/overview/ + docsMariadb: https://docs.nhncloud.com/ko/Database/RDS%20for%20MariaDB/ko/overview/ + console: https://console.nhncloud.com/ (login, select a Project, then Database -> RDS for MySQL/MariaDB) + supportedDBEngines: [mysql, mariadb] + dbOperationMethod: cspNativeApi + supportsTag: false + storageTypeSelectable: true + storageTypes: + General_HDD: + name: General HDD + description: Cost-effective HDD storage for less demanding workloads. Minimum 20 GB. + recommendationLevel: standard + requiresIops: false + minStorageSize: 20 + note: "Verified: 2026-08-03 (Spider storage-type-test, elapsed 10m7s)" + + General_SSD: + name: General SSD + description: Standard SSD storage for better performance. Recommended for most workloads. Minimum 20 GB. + recommendationLevel: recommended + requiresIops: false + minStorageSize: 20 + note: "Verified: 2026-08-03 (Spider storage-type-test, elapsed 11m7s)" + + dbmsRequirements: + mysql: + minStorageSize: 20 + defaultPort: 3306 + referenceEngineVersion: "MYSQL_V8408" + referenceDBInstanceSpec: m2.c2m4 + note: "Storage type options are queried dynamically from NHN Cloud RDS API. + Reference values per CB-Spider's rdbms-mysql-test README (verified Available with PublicAccess, + 2026-08-25)." + mariadb: + minStorageSize: 20 + defaultPort: 3306 + referenceEngineVersion: "MARIADB_V101118" + referenceDBInstanceSpec: m2.c2m4 + note: "Reference values per CB-Spider's rdbms-mariadb-test README (verified Available, + 2026-08-18, 20GB)." + + securityGroupRequirements: + note: "NHN Cloud uses a dedicated DB Security Group distinct from VPC Security Groups. SecurityGroupNames is ignored by Spider. In production, configure inbound rules in NHN Cloud Console (Database > RDS for MySQL > DB 보안 그룹). For testing, set nhnDBSGToAllowAllInbound=true (NHNAutoOpenDBSecurityGroup=true) with publicAccess=true to auto-create and attach a 0.0.0.0/0 open DB Security Group." + + endpointStructure: + fqdnPattern: "{instance-uuid}.external.{region}.{engine}.rds.nhncloudservice.com" + note: "NHN Cloud RDS assigns a single public FQDN endpoint when PublicAccess is enabled. Access control to this endpoint (from both external networks and VPC internal VMs) is governed by NHN Cloud's dedicated DB Security Group (DB 보안 그룹)." + + databaseRequirements: + note: "Database naming follows standard MySQL conventions. Direct client access (port 3306) requires inbound permit rules configured in NHN Cloud Console's dedicated DB Security Group, or enabling nhnDBSGToAllowAllInbound (for testing)." + + adminUserNameRequirement: + reservedValues: + - admin + - root + - rds_admin + - rds_mha + - rds_repl + - sqlgw + - etladm + - alertman + - prom + - mysql.session + - mysql.sys + - mysql.infoschema + + openstack: + description: OpenStack Trove + links: + docs: https://docs.openstack.org/trove/latest/ + console: "Horizon: self-hosted, no fixed URL - Project -> Database -> Instances menu" + supportedDBEngines: [mysql, mariadb] + dbOperationMethod: cspNativeApi + supportsTag: false + note: "An earlier v0.12.44 test run requested MariaDB 10.6 and failed ('Datastore version + 10.6 cannot be found'). CB-Spider's rdbms-mariadb-test README clarifies the correct + reference version for this Trove environment is 10.4, not 10.6 — confirmed Available + in a 2026-08-18 run (m1.small/20GB, 3m58s). The datastore was never actually missing; + 10.6 was simply the wrong version to request." + storageTypeSelectable: true + storageTypes: + __DEFAULT__: + name: Default Storage + description: Default storage type provided by OpenStack deployment. Actual backend depends on deployment configuration. + recommendationLevel: standard + requiresIops: false + minStorageSize: 1 + note: "Verified: 2026-08-03 (Spider storage-type-test). OpenStack Trove does not expose storage type in instance info after creation." + + RBD: + name: Ceph RBD + description: Ceph RADOS Block Device storage (if available in deployment). + recommendationLevel: standard + requiresIops: false + minStorageSize: 1 + note: "Verified: 2026-08-03 (Spider storage-type-test). Availability depends on OpenStack deployment. Storage type not exposed post-creation." + + dbmsRequirements: + mysql: + minStorageSize: 1 + defaultPort: 3306 + referenceEngineVersion: "5.7.29" + referenceDBInstanceSpec: m1.small + note: "Storage type selection depends on OpenStack deployment configuration. + Reference values per CB-Spider's rdbms-mysql-test README (verified Available, + 2026-08-03)." + mariadb: + minStorageSize: 1 + defaultPort: 3306 + referenceEngineVersion: "10.4" + referenceDBInstanceSpec: m1.small + note: "Reference values per CB-Spider's rdbms-mariadb-test README (verified Available, + 2026-08-18, 20GB) — not version 10.6, which this Trove deployment's datastore does + not have registered." + + databaseRequirements: + note: "Database naming follows standard MySQL conventions" + diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-aws/cloud-init-ubuntu b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-aws/cloud-init-ubuntu deleted file mode 100644 index 00770cd4..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-aws/cloud-init-ubuntu +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -set -euo pipefail - -USER="cb-user" -HOME_DIR="/home/${USER}" -SSH_DIR="${HOME_DIR}/.ssh" -AUTH_KEYS="${SSH_DIR}/authorized_keys" -IMDS="http://169.254.169.254" - -# 1) Create cb-user -id -u "$USER" &>/dev/null || useradd -m -s /bin/bash -G sudo "$USER" - -# 2) Create .ssh directory and set permissions -install -d -m 700 -o "$USER" -g "$USER" "$SSH_DIR" - -# 3) Retrieve IMDSv2 token -TOKEN="$(curl -sS -X PUT "${IMDS}/latest/api/token" \ - -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")" - -# 4) Fetch public key (when a Key Pair is attached to the instance) -# Use -f so it fails immediately on error -curl -sSf -H "X-aws-ec2-metadata-token: ${TOKEN}" \ - "${IMDS}/latest/meta-data/public-keys/0/openssh-key" > "$AUTH_KEYS" - -# 5) Set permissions and ownership -chmod 600 "$AUTH_KEYS" -chown -R "$USER:$USER" "$HOME_DIR" - -# 6) Allow passwordless sudo (sudoers.d recommended) -echo "${USER} ALL=(ALL:ALL) NOPASSWD: ALL" > "/etc/sudoers.d/${USER}" -chmod 440 "/etc/sudoers.d/${USER}" - diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-aws/cloud-init-windows b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-aws/cloud-init-windows deleted file mode 100644 index 88559915..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-aws/cloud-init-windows +++ /dev/null @@ -1,4 +0,0 @@ - -net user "administrator" "*PASSWORD*" - -true diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-common/cloud-init b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-common/cloud-init deleted file mode 100644 index 7ba483f6..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-common/cloud-init +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -#### add Cloud-Barista user -useradd -s /bin/bash cb-user -rm -G sudo; -mkdir /home/cb-user/.ssh; -curl -s `cloud-init query subplatform | sed 's/metadata (//g' | sed 's/)//g'`/latest/meta-data/public-keys/0/openssh-key > /home/cb-user/.ssh/authorized_keys; -chown -R cb-user:cb-user /home/cb-user; -echo "cb-user ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers; diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ibm/cloud-init b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ibm/cloud-init deleted file mode 100644 index 38aea8b1..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ibm/cloud-init +++ /dev/null @@ -1,12 +0,0 @@ -#cloud-config -users: - - default - - name: {{username}} - groups: sudo - shell: /bin/bash - sudo: ['ALL=(ALL) NOPASSWD:ALL'] - -runcmd: - - cp -r /root/.ssh /home/{{username}} - - chown -R {{username}}:{{username}} /home/{{username}}/.ssh - - /bin/bash -c 'str=`cat /home/{{username}}/.ssh/authorized_keys`; delimiter=ssh-rsa; s=$str$delimiter; splitStr=(); while [[ $s ]]; do splitStr+=( "${s%%"$delimiter"*}" ); s=${s#*"$delimiter"}; done; echo $delimiter${splitStr[1]} > /home/{{username}}/.ssh/authorized_keys;' diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init deleted file mode 100644 index b1d0eb1a..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -#### add Cloud-Barista user -useradd -s /bin/bash {{username}} -rm -G sudo; -chown -R {{username}}:{{username}} /home/{{username}}; -echo "{{username}} ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers; -cp -r /root/.ssh /home/{{username}}; -chown -R {{username}}:{{username}} /home/{{username}}/.ssh; \ No newline at end of file diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-centos b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-centos deleted file mode 100644 index f9c9a9be..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-centos +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -#### add Cloud-Barista user -adduser {{username}} -usermod -aG wheel -chown -R {{username}}:{{username}} /home/{{username}}; -echo "{{username}} ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers; -mkdir /home/{{username}}/.ssh; -echo "{{public_key}}"> /home/{{username}}/.ssh/authorized_keys; -chown -R {{username}}:{{username}} /home/{{username}}/.ssh/authorized_keys; diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-ubuntu b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-ubuntu deleted file mode 100644 index 9be62da7..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-ubuntu +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -#### add Cloud-Barista user -useradd -s /bin/bash {{username}} -rm -G sudo; -chown -R {{username}}:{{username}} /home/{{username}}; -echo "{{username}} ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers; -mkdir /home/{{username}}/.ssh; -echo "{{public_key}}"> /home/{{username}}/.ssh/authorized_keys; -chown -R {{username}}:{{username}} /home/{{username}}/.ssh/authorized_keys; diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-windows b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-windows deleted file mode 100644 index a58069c7..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-kt/cloud-init-windows +++ /dev/null @@ -1,4 +0,0 @@ - -net user "Administrator" "{{PASSWORD}}" - -true diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-centos b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-centos deleted file mode 100644 index f9c9a9be..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-centos +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -#### add Cloud-Barista user -adduser {{username}} -usermod -aG wheel -chown -R {{username}}:{{username}} /home/{{username}}; -echo "{{username}} ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers; -mkdir /home/{{username}}/.ssh; -echo "{{public_key}}"> /home/{{username}}/.ssh/authorized_keys; -chown -R {{username}}:{{username}} /home/{{username}}/.ssh/authorized_keys; diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-rocky b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-rocky deleted file mode 100644 index 72146788..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-rocky +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -#### add Cloud-Barista user -set -e - -useradd -m -s /bin/bash -G wheel "{{username}}" - -echo "{{username}} ALL=(ALL) NOPASSWD: ALL" > "/etc/sudoers.d/{{username}}" -chmod 0440 "/etc/sudoers.d/{{username}}" - -install -d -m 0700 -o "{{username}}" -g "{{username}}" "/home/{{username}}/.ssh" -echo "{{public_key}}" > "/home/{{username}}/.ssh/authorized_keys" -chown "{{username}}:{{username}}" "/home/{{username}}/.ssh/authorized_keys" -chmod 0600 "/home/{{username}}/.ssh/authorized_keys" - -chown -R "{{username}}:{{username}}" "/home/{{username}}" diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-ubuntu b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-ubuntu deleted file mode 100644 index 9be62da7..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-ubuntu +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -#### add Cloud-Barista user -useradd -s /bin/bash {{username}} -rm -G sudo; -chown -R {{username}}:{{username}} /home/{{username}}; -echo "{{username}} ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers; -mkdir /home/{{username}}/.ssh; -echo "{{public_key}}"> /home/{{username}}/.ssh/authorized_keys; -chown -R {{username}}:{{username}} /home/{{username}}/.ssh/authorized_keys; diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-windows b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-windows deleted file mode 100644 index a58069c7..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ktcloud/cloud-init-windows +++ /dev/null @@ -1,4 +0,0 @@ - -net user "Administrator" "{{PASSWORD}}" - -true diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init deleted file mode 100644 index 9be62da7..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -#### add Cloud-Barista user -useradd -s /bin/bash {{username}} -rm -G sudo; -chown -R {{username}}:{{username}} /home/{{username}}; -echo "{{username}} ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers; -mkdir /home/{{username}}/.ssh; -echo "{{public_key}}"> /home/{{username}}/.ssh/authorized_keys; -chown -R {{username}}:{{username}} /home/{{username}}/.ssh/authorized_keys; diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init-centos b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init-centos deleted file mode 100644 index f9c9a9be..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init-centos +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -#### add Cloud-Barista user -adduser {{username}} -usermod -aG wheel -chown -R {{username}}:{{username}} /home/{{username}}; -echo "{{username}} ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers; -mkdir /home/{{username}}/.ssh; -echo "{{public_key}}"> /home/{{username}}/.ssh/authorized_keys; -chown -R {{username}}:{{username}} /home/{{username}}/.ssh/authorized_keys; diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init-windows b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init-windows deleted file mode 100644 index b5cfb956..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-ncp/cloud-init-windows +++ /dev/null @@ -1,4 +0,0 @@ -Dim shell -Set shell= WScript.CreateObject ("WScript.shell") -shell.Exec "net user Administrator {{PASSWORD}}" -Set shell= Nothing \ No newline at end of file diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-nhn/cloud-init-ubuntu b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-nhn/cloud-init-ubuntu deleted file mode 100644 index 90114c8a..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-nhn/cloud-init-ubuntu +++ /dev/null @@ -1,11 +0,0 @@ -#cloud-config -users: - - name: {{username}} - ssh-authorized-keys: - - {{public_key}} - sudo: ['ALL=(ALL) NOPASSWD:ALL'] - groups: sudo - shell: /bin/bash -runcmd: - - sed -i -e '$aAllowUsers {{username}}' /etc/ssh/sshd_config - - restart ssh diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-nhn/cloud-init-windows b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-nhn/cloud-init-windows deleted file mode 100644 index f9f1d4c3..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-nhn/cloud-init-windows +++ /dev/null @@ -1,6 +0,0 @@ - -#ps1_sysnative -New-LocalUser "{{username}}" -Password (ConvertTo-SecureString "{{PASSWORD}}" -AsPlainText -Force) -Add-LocalGroupMember -Group "Administrators" -Member "{{username}}" - -true diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-openstack/cloud-init b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-openstack/cloud-init deleted file mode 100644 index 90114c8a..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-openstack/cloud-init +++ /dev/null @@ -1,11 +0,0 @@ -#cloud-config -users: - - name: {{username}} - ssh-authorized-keys: - - {{public_key}} - sudo: ['ALL=(ALL) NOPASSWD:ALL'] - groups: sudo - shell: /bin/bash -runcmd: - - sed -i -e '$aAllowUsers {{username}}' /etc/ssh/sshd_config - - restart ssh diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-tencent/cloud-init b/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-tencent/cloud-init deleted file mode 100644 index d312bf1a..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/.cloud-init-tencent/cloud-init +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -#### add Cloud-Barista user -useradd -s /bin/bash cb-user -rm -G sudo; -mkdir /home/cb-user/.ssh; -cp -r /root/.ssh/ /home/cb-user/; -cp -r /home/ubuntu/.ssh/ /home/cb-user/; -chown -R cb-user:cb-user /home/cb-user; -echo "cb-user ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers; \ No newline at end of file diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/README.md b/conf/docker/conf/mc-infra-manager/assets/spider/README.md deleted file mode 100644 index 7c6e3d29..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# CB-Spider Cloud Driver Libs - -This directory contains configuration files originally from -[cb-spider/cloud-driver-libs](https://github.com/cloud-barista/cb-spider/tree/master/cloud-driver-libs), -managed locally within CB-Tumblebug. - -## Why not in the container image? - -Starting from CB-Spider 0.12.8, the Docker image no longer includes `cloud-driver-libs/` -(static mode optimization). However, these files are still required at runtime for: - -- **VM provisioning** — cloud-init scripts (`.cloud-init-*`) are injected during VM creation -- **Root disk configuration** — `cloudos_meta.yaml` provides CSP-specific disk type/size metadata -- **CSP registry** — `cloudos.yaml` lists supported cloud providers - -Since CB-Tumblebug administrators may need to customize some of these files -(e.g., cloud-init scripts for specific deployment environments or CSP-specific settings), -they are maintained here rather than embedded in the container image. - -This directory is mounted into the CB-Spider container via `docker-compose.yaml`: - -```yaml -volumes: - - ./assets/spider/:/root/go/src/github.com/cloud-barista/cb-spider/cloud-driver-libs/ -``` - -## Updating - -When upgrading the CB-Spider version in `docker-compose.yaml`, update this directory -by copying from the corresponding version of cb-spider: - -```bash -# Example: sync with cb-spider source -cp -r /cloud-driver-libs/* assets/spider/ -``` - -## Directory Structure - -| Path | Description | -|------|-------------| -| `cloudos_meta.yaml` | CSP metadata (credentials, disk types, region defaults) | -| `cloudos.yaml` | List of supported cloud providers | -| `.cloud-init-*/` | Per-CSP cloud-init scripts for VM initialization | diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/cloudos.yaml b/conf/docker/conf/mc-infra-manager/assets/spider/cloudos.yaml deleted file mode 100644 index bcc3f043..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/cloudos.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# Cloud Driver Manager of CB-Spider. -# The CB-Spider is a sub-Framework of the Cloud-Barista Multi-Cloud Project. -# The CB-Spider Mission is to connect all the clouds with a single interface. -# -# * Cloud-Barista: https://github.com/cloud-barista -# -# by CB-Spider Team, 2021.11. -# by CB-Spider Team, 2020.11. -# by CB-Spider Team, 2020.03. - -### List of support CloudOS. -cloudos: - - AWS - - AZURE - - GCP - - ALIBABA - - TENCENT - - IBM - - OPENSTACK - - NCP - - NHN - - KT - - KTCLASSIC -#--- Emulation - - MOCK -# - CLOUDTWIN diff --git a/conf/docker/conf/mc-infra-manager/assets/spider/cloudos_meta.yaml b/conf/docker/conf/mc-infra-manager/assets/spider/cloudos_meta.yaml deleted file mode 100644 index c2cd3318..00000000 --- a/conf/docker/conf/mc-infra-manager/assets/spider/cloudos_meta.yaml +++ /dev/null @@ -1,149 +0,0 @@ -# The CB-Spider Mission is to connect all the clouds with a single interface. -# -# * Cloud-Barista: https://github.com/cloud-barista -# -# by CB-Spider Team, 2021.10. - -### Meta info of CloudOS - -AWS: - region: Region / Zone - credential: ClientId / ClientSecret - credentialcsp: aws_access_key_id / aws_secret_access_key - # rootdisktype: standard / io1 / io2 / gp2 / sc1 / st1 / gp3 - # issues: https://github.com/cloud-barista/cb-spider/pull/523#issuecomment-965363272 - rootdisktype: standard / gp2 / gp3 - disktype: standard / gp2 / gp3 / io1 / io2 / st1 / sc1 - disksize: standard|1|1024|GB / gp2|1|16384|GB / gp3|1|16384|GB / io1|4|16384|GB / io2|4|16384|GB / st1|125|16384|GB / sc1|125|16384|GB - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - idmaxlength: 255 / 256 / 255 / 255 / 255 / 256 / 32 / 127 / 100 - defaultregiontoquery: ap-northeast-2 / ap-northeast-2a - -AZURE: - region: Region / Zone - credential: ClientId / ClientSecret / TenantId / SubscriptionId - credentialcsp: clientId / clientSecret / tenantId / subscriptionId - # type issues: https://github.com/cloud-barista/cb-spider/pull/529#issue-1051678985 - rootdisktype: PremiumSSD / StandardSSD / StandardHDD - disktype: PremiumSSD / StandardSSD / StandardHDD - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - idmaxlength: 64 / 80 / 64 / 80 / 64 / 80 / 80 / 80 / 63 - defaultregiontoquery: koreacentral / 1 - -GCP: - region: Region / Zone - credential: PrivateKey / ProjectID / ClientEmail - credentialcsp: private_key / project_id / client_email - rootdisktype: pd-standard / pd-balanced / pd-ssd / pd-extreme - disktype: pd-standard / pd-balanced / pd-ssd / pd-extreme - disksize: pd-standard|10|65536|GB / pd-balanced|10|65536|GB / pd-ssd|10|65536|GB / pd-extreme|500|65536|GB - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - #idmaxlength: 63 / 63 / 63 / 0 / 63 - idmaxlength: 63 / 63 / 57 / 0 / 63 / 63 / 63 / 63 / 40 - -ALIBABA: - region: Region / Zone - credential: ClientId / ClientSecret - credentialcsp: AccessKeyId / AccessKeySecret - rootdisktype: cloud_essd / cloud_efficiency / cloud / cloud_ssd - #rootdisktype: cloud_efficiency / cloud / cloud_ssd - rootdisksize: cloud_essd|20|32768|GB / cloud_efficiency|20|32768|GB / cloud|5|2000|GB / cloud_ssd|20|32768|GB - #rootdisksize: cloud_efficiency|20|32768|GB / cloud|5|2000|GB / cloud_ssd|20|32768|GB - disktype: cloud / cloud_efficiency / cloud_ssd / cloud_essd - disksize: cloud|5|2000|GB / cloud_efficiency|20|32768|GB / cloud_ssd|20|32768|GB / cloud_essd_PL0|40|32768|GB / cloud_essd_PL1|20|32768|GB / cloud_essd_PL2|461|32768|GB / cloud_essd_PL3|1261|32768|GB - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - idmaxlength: 128 / 128 / 128 / 128 / 128 / 128 / 80 / 128 / 63 - defaultregiontoquery: ap-northeast-2 / ap-northeast-2a - -TENCENT: - region: Region / Zone - credential: ClientId / ClientSecret - credentialcsp: SecretId / SecretKey - #rootdisktype: CLOUD_PREMIUM / LOCAL_BASIC / LOCAL_SSD / CLOUD_BASIC / CLOUD_SSD - rootdisktype: CLOUD_PREMIUM / CLOUD_SSD - rootdisksize: CLOUD_PREMIUM|50|16000|GB / CLOUD_SSD|50|16000|GB - disktype: CLOUD_PREMIUM / CLOUD_SSD / CLOUD_HSSD / CLOUD_BASIC / CLOUD_TSSD - disksize: CLOUD_PREMIUM|10|32000|GB / CLOUD_SSD|20|32000|GB / CLOUD_HSSD|20|32000|GB / CLOUD_BASIC|10|32000|GB / CLOUD_TSSD|10|32000|GB - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - idmaxlength: 60 / 60 / 60 / 25 / 88 / 60 / 60 / 60 / 50 - defaultregiontoquery: ap-seoul / ap-seoul-1 - -IBM: - region: Region / Zone - credential: ApiKey - credentialcsp: ApiKey - rootdisktype: general-purpose / sdp - rootdisksize: general-purpose|100|250|GB / sdp|100|250|GB - disktype: general-purpose / 5iops-tier / 10iops-tier / sdp - disksize: general-purpose|10|16000|GB / 5iops-tier|10|9600|GB / 10iops-tier|10|4800|GB / sdp|1|32000|GB - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - idmaxlength: 63 / 63 / 63 / 63 / 63 / 63 / 63 / 63 / 32 / 63 - defaultregiontoquery: us-south / us-south-1 - -OPENSTACK: - region: Region / Zone - credential: IdentityEndpoint / Username / Password / DomainName / ProjectID - credentialcsp: IdentityEndpoint / Username / Password / DomainName / ProjectID - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - idmaxlength: 255 / 255 / 255 / 255 / 255 / 255 / 255 / 255 / 0 - -NCP: - region: Region / Zone - credential: ClientId / ClientSecret - credentialcsp: ncloud_access_key / ncloud_secret_key - rootdisktype: HDD - rootdisksize: HDD|10|2000|GB - disktype: SSD / HDD - disksize: SSD|100|16380|GB / HDD|100|16380|GB - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - idmaxlength: 30 / 30 / 30 / 30 / 30 / 30 / 30 / 30 / 20 / 20 - -NHN: - region: Region / Zone - credential: IdentityEndpoint / Username / Password / DomainName / TenantId - credentialcsp: IdentityEndpoint / Username / Password / DomainName / TenantId - rootdisktype: General_HDD / General_SSD - rootdisksize: General_HDD|20|1000|GB / General_SSD|20|1000|GB - disktype: General_HDD / General_SSD - disksize: General_HDD|10|2000|GB / General_SSD|10|2000|GB - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - idmaxlength: 32 / 32 / 255 / 32 / 90 / 255 / 80 / 255 / 32 - -KTCLASSIC: - region: Region / Zone - credential: ClientId / ClientSecret - credentialcsp: API_Key / Secret_Key - rootdisktype: HDD / SSD - rootdisksize: HDD|20|50|GB / SSD|20|50|GB - disktype: HDD / SSD-Provisioned - disksize: HDD|10|500|GB / SSD-Provisioned|100|800|GB - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster - idmaxlength: 30 / 30 / 30 / 100 / 63 / 50 / 30 / 32 / 0 - -KT: - region: Region / Zone - credential: IdentityEndpoint / Username / Password / DomainName / ProjectID - credentialcsp: IdentityEndpoint / Username / Password / DomainName / ProjectID - rootdisktype: HDD / SSD - rootdisksize: HDD|50|100|GB / SSD|50|100|GB - disktype: HDD / SSD - disksize: HDD|10|2000|GB / SSD|10|2000|GB - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - idmaxlength: 30 / 48 / 30 / 100 / 63 / 50 / 30 / 50 / 0 / 20 - -#--- Emulation - -MOCK: - region: Region - credential: MockName - credentialcsp: MockName - # idmaxlength: VPC / Subnet / SecurityGroup / KeyPair / VM / Disk / NLB / MyImage / Cluster / FileSystem - idmaxlength: 255 / 255 / 255 / 255 / 255 / 255 / 255 / 255 / 255 - rootdisktype: SSD /HDD / MEM - disktype: SSD / HDD / MEM - disksize: SSD|1|16384|GB / HDD|1|16384|GB / MEM|10|512|GB - -CLOUDTWIN: - region: Region - credential: IdentityEndpoint / DomainName / MockName - credentialcsp: IdentityEndpoint / DomainName / MockName \ No newline at end of file diff --git a/conf/docker/docker-compose.yaml b/conf/docker/docker-compose.yaml index afd49514..e7f77764 100644 --- a/conf/docker/docker-compose.yaml +++ b/conf/docker/docker-compose.yaml @@ -23,7 +23,7 @@ services: ##### MC-INFRA-CONNECTOR ######################################################################################################################### mc-infra-connector: - image: cloudbaristaorg/cb-spider:0.12.42 + image: cloudbaristaorg/cb-spider:0.13.2 pull_policy: missing container_name: mc-infra-connector restart: unless-stopped @@ -83,7 +83,7 @@ services: ##### MC-INFRA-MANAGER ######################################################################################################################### mc-infra-manager: - image: cloudbaristaorg/cb-tumblebug:0.12.30 + image: cloudbaristaorg/cb-tumblebug:0.13.2 container_name: mc-infra-manager restart: unless-stopped pull_policy: missing @@ -254,7 +254,7 @@ services: # CB-MapUI is a Web-based test client (disable it for production use) cb-mapui: - image: cloudbaristaorg/cb-mapui:0.12.56 + image: cloudbaristaorg/cb-mapui:0.13.6 container_name: cb-mapui networks: - mc-infra-manager-network