Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add yaml config feature to handle different available values for each cloud #1188

Merged
merged 3 commits into from
Oct 4, 2022

Conversation

seokho-son
Copy link
Member

@seokho-son seokho-son commented Oct 3, 2022

  • 개발 과정 중에 CSP에 따라서 다른 값을 지정해야 하는 경우가 발생하고 있음. (예를 들어, NLB를 생성하기 위해서는 CSP별로 특정 다른 값을 입력해야 하는 상태). 이는 다양한 CSP에 대한 디버깅 및 개발에 어려움을 줌.
  • CSP 별로 별도의 값을 미리 정의하여, 자동으로 지정할 수 있도록 conf 파일로 설정하고자 함.
  • 이를 통해, CSP 구분하지 않고 테스트 코드나 값의 수정없이, 테스트가 진행될 수 있도록 처리 필요.

yaml config 파일의 로드 및 갱신은
https://github.com/spf13/viper (MIT 라이선스) 를 활용하였으며, 이는 cobra 등에서 많이 활용되는 오픈소스이므로, 신뢰할 수 있음.

main에서 로드된 yaml 파일의 정보는
cb-tumblebug/src/core/common pkg에서 전역 변수에 바인딩하여, 전역에서 사용할 수 있도록 되어 있음.

NLB 코드에 적용 필요.

@seokho-son seokho-son requested a review from jihoon-seo as a code owner October 3, 2022 19:05
Comment on lines +300 to +315
// // TODO: update this part to assign availble values for each CSP (current code does not work)
fmt.Println("NLB available values (AWS): ", common.RuntimeConf.Cloud.Aws)
fmt.Println("NLB available values (Azure): ", common.RuntimeConf.Cloud.Azure)
// if cloud-type == aws {
// tempReq.ReqInfo.HealthChecker.Interval = common.RuntimeConf.Cloud.Aws.Nlb.Interval
// tempReq.ReqInfo.HealthChecker.Timeout = common.RuntimeConf.Cloud.Aws.Nlb.Timeout
// tempReq.ReqInfo.HealthChecker.Threshold = common.RuntimeConf.Cloud.Aws.Nlb.Threshold
// } else if cloud-type == azure {
// tempReq.ReqInfo.HealthChecker.Interval = common.RuntimeConf.Cloud.Azure.Nlb.Interval
// tempReq.ReqInfo.HealthChecker.Timeout = common.RuntimeConf.Cloud.Azure.Nlb.Timeout
// tempReq.ReqInfo.HealthChecker.Threshold = common.RuntimeConf.Cloud.Azure.Nlb.Threshold
// } else {
// tempReq.ReqInfo.HealthChecker.Interval = common.RuntimeConf.Cloud.Common.Nlb.Interval
// tempReq.ReqInfo.HealthChecker.Timeout = common.RuntimeConf.Cloud.Common.Nlb.Timeout
// tempReq.ReqInfo.HealthChecker.Threshold = common.RuntimeConf.Cloud.Common.Nlb.Threshold
// }
Copy link
Member

@jihoon-seo jihoon-seo Oct 4, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 코드가 작동해야 할 것 같은데 왜 안되는걸까요.. ㅎㅎ 🤔

[예상 로직]

  1. 사용자가 "Create NLB" REST API 호출 시에 interval, timeout, threshold 전부/일부를 명시했다면
    → 해당 값을 사용
  2. 사용자가 "Create NLB" REST API 호출 시에 명시하지 않은 interval, timeout, threshold 에 대해서는
    YAML에 있는 (기본)값을 사용

이렇게 하면 좋을까요? 😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants