Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 61 additions & 61 deletions conf/docker/.env.setup
Original file line number Diff line number Diff line change
Expand Up @@ -176,81 +176,81 @@ MC_APPLICATION_MANAGER_PROXY_PORT=18084
MC_APPLICATION_MANAGER_PUBLIC_HOST=https://${MC_IAM_MANAGER_PUBLIC_DOMAIN}:${MC_APPLICATION_MANAGER_PROXY_PORT}

# MC-COST-OPTIMIZER
CO_COST_DB_NAME=cost
CO_SLACK_DB_NAME=slack_test
CO_MAIL_DB_NAME=mailing

CO_MYSQL_ROOT_PASSWORD=0000
CO_MYSQL_USER=mcmpcostopti
CO_MYSQL_PASSWORD=0000
CO_OPENBAO_ENABLED=true
CO_OPENBAO_ADDRESS=http://mc-infra-manager-openbao:${MC_INFRA_MANAGER_OPENBAO_PORT}
CO_OPENBAO_TOKEN=${MC_INFRA_MANAGER_OPENBAO_VAULT_TOKEN}

CO_COST_DB_URL_NEW=jdbc:mysql://mc-cost-optimizer-db:3306/${CO_COST_DB_NAME}?autoReconnect=true&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true
CO_COST_DB_URL=jdbc:mariadb://mc-cost-optimizer-db:3306/${CO_COST_DB_NAME}?autoReconnect=true&allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
CO_SLACK_DB_URL=jdbc:mariadb://mc-cost-optimizer-db:3306/${CO_SLACK_DB_NAME}?autoReconnect=true&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
CO_MAIL_DB_URL=jdbc:mariadb://mc-cost-optimizer-db:3306/${CO_MAIL_DB_NAME}?autoReconnect=true&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8

CO_COST_ASSET_COLLECTOR_URL=http://mc-cost-optimizer-asset-collector:8091
CO_COST_COLLECTOR_URL=http://mc-cost-optimizer-cost-collector:8081
CO_COST_PROCESSOR_URL=http://mc-cost-optimizer-cost-processor:8082

CO_COST_GCP_COLLECTOR_URL=http://mc-cost-optimizer-cost-gcp-collector:8095
CO_GCP_PROJECT_ID=gcp-projectid
CO_GCP_CLIENT_EMAIL=gcp-clientemail
CO_GCP_PRIVATE_KEY_ID=gcp-privatekeyid
CO_GCP_PRIVATE_KEY=gcp-privatekey
CO_GCP_BQ_DATASET=gcp-datasetname
CO_GCP_BQ_TABLE=gcp-bigguerytable
CO_GCP_BATCH_CRON_SCHEDULE=0 0 8 * * ?
MC_COST_OPTIMIZER_COST_DB_NAME=cost
MC_COST_OPTIMIZER_SLACK_DB_NAME=slack_test
MC_COST_OPTIMIZER_MAIL_DB_NAME=mailing

MC_COST_OPTIMIZER_MYSQL_ROOT_PASSWORD=0000
MC_COST_OPTIMIZER_MYSQL_USER=mcmpcostopti
MC_COST_OPTIMIZER_MYSQL_PASSWORD=0000
MC_COST_OPTIMIZER_OPENBAO_ENABLED=true
MC_COST_OPTIMIZER_OPENBAO_ADDRESS=http://mc-infra-manager-openbao:${MC_INFRA_MANAGER_OPENBAO_PORT}
MC_COST_OPTIMIZER_OPENBAO_TOKEN=${MC_INFRA_MANAGER_OPENBAO_VAULT_TOKEN}

MC_COST_OPTIMIZER_COST_DB_URL_NEW=jdbc:mysql://mc-cost-optimizer-db:3306/${MC_COST_OPTIMIZER_COST_DB_NAME}?autoReconnect=true&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true
MC_COST_OPTIMIZER_COST_DB_URL=jdbc:mariadb://mc-cost-optimizer-db:3306/${MC_COST_OPTIMIZER_COST_DB_NAME}?autoReconnect=true&allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
MC_COST_OPTIMIZER_SLACK_DB_URL=jdbc:mariadb://mc-cost-optimizer-db:3306/${MC_COST_OPTIMIZER_SLACK_DB_NAME}?autoReconnect=true&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8
MC_COST_OPTIMIZER_MAIL_DB_URL=jdbc:mariadb://mc-cost-optimizer-db:3306/${MC_COST_OPTIMIZER_MAIL_DB_NAME}?autoReconnect=true&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8

MC_COST_OPTIMIZER_COST_ASSET_COLLECTOR_URL=http://mc-cost-optimizer-asset-collector:8091
MC_COST_OPTIMIZER_COST_COLLECTOR_URL=http://mc-cost-optimizer-cost-collector:8081
MC_COST_OPTIMIZER_COST_PROCESSOR_URL=http://mc-cost-optimizer-cost-processor:8082

MC_COST_OPTIMIZER_COST_GCP_COLLECTOR_URL=http://mc-cost-optimizer-cost-gcp-collector:8095
MC_COST_OPTIMIZER_GCP_PROJECT_ID=gcp-projectid
MC_COST_OPTIMIZER_GCP_CLIENT_EMAIL=gcp-clientemail
MC_COST_OPTIMIZER_GCP_PRIVATE_KEY_ID=gcp-privatekeyid
MC_COST_OPTIMIZER_GCP_PRIVATE_KEY=gcp-privatekey
MC_COST_OPTIMIZER_GCP_BQ_DATASET=gcp-datasetname
MC_COST_OPTIMIZER_GCP_BQ_TABLE=gcp-bigguerytable
MC_COST_OPTIMIZER_GCP_BATCH_CRON_SCHEDULE=0 0 8 * * ?

## Cost Collector
CO_COST_COLLECT_UNUSED_CRON_SCHEDULE=0 30 0,6 * * ?
CO_COST_COLLECT_CUR_CRON_SCHEDULE=0 0 0,6 * * ?
CO_AWS_CUR_EXPORT_NAME=mcmp-costopti
CO_AWS_CUR_EXPORT_PATH_PREFIX=mcmp-costopti
CO_AWS_ACCESS_KEY_ID=aws-accesskey
CO_AWS_SECRET_ACCESS_KEY=aws-secretaccesskey
MC_COST_OPTIMIZER_COST_COLLECT_UNUSED_CRON_SCHEDULE=0 30 0,6 * * ?
MC_COST_OPTIMIZER_COST_COLLECT_CUR_CRON_SCHEDULE=0 0 0,6 * * ?
MC_COST_OPTIMIZER_AWS_CUR_EXPORT_NAME=mcmp-costopti
MC_COST_OPTIMIZER_AWS_CUR_EXPORT_PATH_PREFIX=mcmp-costopti
MC_COST_OPTIMIZER_AWS_ACCESS_KEY_ID=aws-accesskey
MC_COST_OPTIMIZER_AWS_SECRET_ACCESS_KEY=aws-secretaccesskey

## Cost Processor
CO_COST_PROCESS_UNUSED_CRON_SCHEDULE=0 45 * * * ?
CO_COST_PROCESS_ABNORMAL_CRON_SCHEDULE=0 0 1,7 * * ?
CO_COST_SELECTOR_URL=http://mc-cost-optimizer-cost-selector:8083
CO_ALARM_URL=http://mc-cost-optimizer-alarm-service:9000
MC_COST_OPTIMIZER_COST_PROCESS_UNUSED_CRON_SCHEDULE=0 45 * * * ?
MC_COST_OPTIMIZER_COST_PROCESS_ABNORMAL_CRON_SCHEDULE=0 0 1,7 * * ?
MC_COST_OPTIMIZER_COST_SELECTOR_URL=http://mc-cost-optimizer-cost-selector:8083
MC_COST_OPTIMIZER_ALARM_URL=http://mc-cost-optimizer-alarm-service:9000

## Asset Controller
CO_API_URL=http://mc-cost-optimizer-be:9090
CO_ASSET_MONITORING_SERVER=http://mc-observability-manager:18080
CO_ASSET_COLLECT_BATCH_CRON_SCHEDULE=0 10 * * * ?
MC_COST_OPTIMIZER_API_URL=http://mc-cost-optimizer-be:9090
MC_COST_OPTIMIZER_ASSET_MONITORING_SERVER=http://mc-observability-manager:18080
MC_COST_OPTIMIZER_ASSET_COLLECT_BATCH_CRON_SCHEDULE=0 10 * * * ?

## Cost-Azure-Collector
CO_COST_AZURE_COLLECTOR_URL=http://mc-cost-optimizer-cost-azure-collector:8093
CO_AZURE_TENANT_ID=azure-tenantid
CO_AZURE_CLIENT_ID=azure-clientid
CO_AZURE_CLIENT_SECRET=azure-clientsecret
CO_AZURE_SUBSCRIPTION_ID=azure-subscriptionid
CO_AZURE_SERVICE_BATCH_CRON_SCHEDULE=0 0 0 * * ?
CO_AZURE_VM_BATCH_CRON_SCHEDULE=0 10 0 * * ?
CO_AZURE_VM_RIGHTSIZER_SCHEDULE=0 20 0 * * ?
MC_COST_OPTIMIZER_COST_AZURE_COLLECTOR_URL=http://mc-cost-optimizer-cost-azure-collector:8093
MC_COST_OPTIMIZER_AZURE_TENANT_ID=azure-tenantid
MC_COST_OPTIMIZER_AZURE_CLIENT_ID=azure-clientid
MC_COST_OPTIMIZER_AZURE_CLIENT_SECRET=azure-clientsecret
MC_COST_OPTIMIZER_AZURE_SUBSCRIPTION_ID=azure-subscriptionid
MC_COST_OPTIMIZER_AZURE_SERVICE_BATCH_CRON_SCHEDULE=0 0 0 * * ?
MC_COST_OPTIMIZER_AZURE_VM_BATCH_CRON_SCHEDULE=0 10 0 * * ?
MC_COST_OPTIMIZER_AZURE_VM_RIGHTSIZER_SCHEDULE=0 20 0 * * ?

## Cost-NCP-Collector
CO_COST_NCP_COLLECTOR_URL=http://mc-cost-optimizer-cost-ncp-collector:8094
CO_NCP_IAM_ACCESS_KEY=ncp-iamaccesskey
CO_NCP_IAM_SECRET_KEY=ncp-iamsecretkey
CO_NCP_SERVICE_BATCH_CRON_SCHEDULE=0 0 0 * * ?
CO_NCP_VM_BATCH_CRON_SCHEDULE=0 10 0 * * ?
CO_NCP_VM_RIGHTSIZER_SCHEDULE=0 20 0 * * ?
MC_COST_OPTIMIZER_COST_NCP_COLLECTOR_URL=http://mc-cost-optimizer-cost-ncp-collector:8094
MC_COST_OPTIMIZER_NCP_IAM_ACCESS_KEY=ncp-iamaccesskey
MC_COST_OPTIMIZER_NCP_IAM_SECRET_KEY=ncp-iamsecretkey
MC_COST_OPTIMIZER_NCP_SERVICE_BATCH_CRON_SCHEDULE=0 0 0 * * ?
MC_COST_OPTIMIZER_NCP_VM_BATCH_CRON_SCHEDULE=0 10 0 * * ?
MC_COST_OPTIMIZER_NCP_VM_RIGHTSIZER_SCHEDULE=0 20 0 * * ?

## Cost-ML-Scorer (rightsizing score API, reads cost.asset_compute_metric)
CO_ML_SCORER_URL=http://mc-cost-optimizer-ml-scorer:8096
CO_ML_SCORER_WINDOW_DAYS=30
CO_LLM_KEY_MASTER=
MC_COST_OPTIMIZER_ML_SCORER_URL=http://mc-cost-optimizer-ml-scorer:8096
MC_COST_OPTIMIZER_ML_SCORER_WINDOW_DAYS=30
MC_COST_OPTIMIZER_LLM_KEY_MASTER=

#Tumblebug
CO_TBB_URL=http://mc-infra-manager:1323/tumblebug
CO_TBB_USERNAME=default
CO_TBB_PW=default
MC_COST_OPTIMIZER_TBB_URL=http://mc-infra-manager:1323/tumblebug
MC_COST_OPTIMIZER_TBB_USERNAME=default
MC_COST_OPTIMIZER_TBB_PW=default

# MC-APPLICATION-MANAGER
MC_APPLICATION_MANAGER_POSTGRES_DB=appmgr
Expand Down
12 changes: 12 additions & 0 deletions conf/docker/conf/mc-cost-optimizer/init/01_init_cost_db_ddl.sql
Original file line number Diff line number Diff line change
Expand Up @@ -430,3 +430,15 @@ CREATE TABLE IF NOT EXISTS `provider_keys` (
PRIMARY KEY (`id`),
UNIQUE KEY `uq_ns_provider` (`ns_id`, `provider`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci COMMENT='LLM 프로바이더 API 키 (AES-256-GCM 암호화 저장)';

-- cost.recommendation_history definition (LLM 추천 이력 - source DDL엔 있으나 deploy 복사본에서 누락되어 추가)
CREATE TABLE IF NOT EXISTS `recommendation_history` (
`id` bigint NOT NULL AUTO_INCREMENT,
`ns_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`instance_id` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
`recommendation` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci DEFAULT NULL,
`response_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_ns` (`ns_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
Loading