Giter Club home page Giter Club logo

decapod-issues's Introduction

ZenHub logo

decapod-issues: place holder for epic, issues, etc.

This repository is dedicated for all the issues and discussions regarding tacoplay & decapod development.

All the issues that requires code development on the following repos will be placed in this "decapod-issues" repository.

  • openinfradev/decapod-flow
  • openinfradev/decapod-base-yaml
  • openinfradev/decapod-site
  • openinfradev/decapod-docs
  • openinfradev/decapod-bootstrap
  • openinfradev/kustomize-helm-transformer
  • openinfradev/tacoplay
  • openinfradev/helm-charts

Relationships among all the repositories are

 decapod, tacoplay development 
 ├── decapod project 
 │   ├── decapod-flow
 │   ├── decapod-base-yaml
 │   ├── decapod-site
 │   ├── decapodt-bootstrap
 │   ├── decapod-docs
 │   └── kustomize-helm-transformer
 ├── tacoplay 
 │   └── tacoplay 
 └── shared  
     └── helm-charts 

decapod-issues's People

Contributors

bluejaya avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

decapod-issues's Issues

[Dev] Keycloak 상용 구성/설정 설계 (not include PostgreSQL)

Describe the Story

- [ ] A clear and concise description of what this story is.
2023년 On-demand 고객대상 TKS Beta 서비스를 위한 Keycloak 구성을 설계한다.
Keycloak 안전성 보안성 Check 후, 상용 서비스 적용 가능한 설정을 확인한다.

  • 상용서비스를 위한 형상, 설정등에 대한 설계
  • Keycloak 설치방법에 대한 Research & 방안 확정 포함.
  • Keycloak은 최신 버전 기준
  • Ingress (tls termination) - keycloak 간 plain text (현재) => mtls 지원 방안에 대해 확인필요
    • service mesh를 보안 백앤드 시스템으로 쓰는 것도 생각해볼 수 있고
    • keycloak내에도 secure store concept도 있는듯 함

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.
TDE documentation
리뷰 후 리뷰결과 반영

Additional information (Optional)

[Epic] tks service - decapod기반 설치

Description

tks service (preview version)을 decapod를 통해서 구성한다

Initiative / goal

TACO Kubernetes Service Preview Launching

Acceptance criteria and must have scope

Stakeholders

TKS Operator

[Bug] tks cli매뉴얼에 contract_id, csp_id 해결

Describe the bug
tks 솔루션에서 contract_id, csp_id가 단독으로 생성/사용되면서 사용자가 contract_id, csp_id가 무엇인지 알 이유가 없다.
현재 매뉴얼에는 contract_id, csp_id 값을 사용자가 config에 설정하도록 되어있지만, 사용자가 contract_id, csp_id 값이 무엇인지 알 필요가 없이 tks-cluster-lcm상에서 처리가 가능하게 개선이 되었을 때 이를 매뉴얼에 반영한다.

Screenshots or logs (optional)
https://psychic-memory-10267fe9.pages.github.io/releasenotes/tks-cli-manual/configuration/#contract-id-csp-id
image.png

[Dev] Oauth2 Proxy 도입을 위한 선행 연구

Describe the Story

- [ ] A clear and concise description of what this story is.
중요 SW들이 OIDC connect 기능을 제공하면서, OIDC proxy 기술의 로드맵이 불분명하다.
Keycloak proxy를 사용 중 이지만, Oauth2 Proxy가 더 Promise하다고 여겨져 Feasibility Test를 실시한다.

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.
TDE 문서
리뷰

Additional information (Optional)

[Dev] User Cluster를 삭제하는 워크플로우 개발

Describe the Story

- [ ] A clear and concise description of what this story is.

클러스터 삭제 workflow template 개발 (주관님 코멘트 내용 병합)
(App 삭제 워크플로우 (LMA/Service-mesh)는 LCM에서 별도 호출하니 제외)

  • argocd cluster APP auto-sync disable
  • Cross-plane 에서 생성한 자원 삭제 워크플로우 (ELB, route53 데이터 ... )
  • ... 추가...로 k8s 자원 삭제 (혹은 다른 워크플로우에서 미진한 부분 검증 후 해당 워크플루우 수정)
  • cluster-api 'cluster' CR 제거: 연관 자원들은 CAPI 컨트롤러가 제거함
  • argocd cluster APP 삭제
  • tks-info에 cluster 상태 업데이트
  • Git repo 삭제 워크 플로우 ( contract 는 남겨두고 cluster 만? )
  • AWS VPC 삭제

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story

산출물: Argo Workflow template

Additional information (Optional)

서비스 삭제 : https://github.com/openinfradev/tks-issues/issues/97
GIt repo 삭제: https://github.com/openinfradev/tks-issues/issues/166

[Dev] [tks-api] 이메일 전송 컨텐츠 수정

Describe the Story

- [ ] A clear and concise description of what this story is.

기존 텍스트 기반 이메일 컨텐츠 -> HTML을 통한 개선된 이메일 컨텐츠 전송.

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

(Grafana Labs) Loki 검증

내용
Admin Cluster 등의 환경에 lightweight한 로깅 시스템 구축을 위해 Loki 를 검증한다

  • 효용성: 운영자가 grafana dashboard 에서 어떤 작업들을 할수 있는가? 대시보드 구성은 수월한가?
  • 배포형상: collector는 그대로 fluentbit 사용 가능한가?? 그럴 경우 설정 방법은???
  • 안정성 및 확장성 등

산출물

  • Wiki page 정리

[Dev] tks user cluster App 설치 후 과정 수행

Describe the Story

- [ ] A clear and concise description of what this story is.

2021-08-18 추가
2021-10-13 수정

~~ 1. DNS record 설정  e.g kiali-{clusterid}.taco-cat.xyz <--TODO: App 설치 Workflow에 추가
2. kubectl config use-context usercluster
3. kubectl get svc -n ingress-nginx  --> user cluste의 ELB 주소 알아냄 (원래는 cluster info에서 얻어냄)
4. kubectl config use-context tks-admin
5. vi dns-record.yaml  (taco app domain name 과 ELB 주소설정)
6. kubectl apply f dns-record.yaml  -> --crossplane terraform operator으로 dns record 추가 ~~
7. Keycloak realm/client의 callback url 추가 e.g https://kiali- {clusterid}
8. taco-cat.xyz/*  <-- TODO: App 설치 Workflow에 추가
9. Keycloak gatekeeper설치 (for SSO), 필요정보 get from TKS-info  <-- TODO: App 설치 Workflow에 추가
10. Ingress 생성  w/TLS  <-- TODO: App 설치 Workflow에 추가

AWS에 Cluster API 로 K8S 생성 시, Service를 바라 보는 Controller가 자동으로 만들어진다. 이 Controller는 Service의 "type : loadbalancer" 인 경우, 이 Service를 위핸 ELB를 생성하고 Routing 설정을 자동으로 해 줍니다.

따라서 
Ingress Controller는 Service type=LB로 설치합니다.
설치후, 생성된 LB의 Ednpoint를 가져와서 Route53에 record 생성한다.

아래 DNS --> LB endpoint로
 
 K8S API Server                 ${Contract id}-${clustername}.taco-cat.xyz  ---> 이번에는 그냥 만들어진 AWS가 준 DNS 쓰고, 인증서는 자동으로 만든 것 쓴다. 

  • Service Mesh Portal        ${Contract id}-${clustername}-servicemesh.taco-cat.xyz
  • Kiali                                    ${Contract id}-${clustername}-kiali.taco-cat.xyz
  • Jaeger                               ${Contract id}-${clustername}-jaeger.taco-cat.xyz
  • Thanos                              ${Contract id}-${clustername}-thanos.taco-cat.xyz
  • Sidecar                              ${Contract id}-${clustername}-thanos-sidecar.taco-cat.xyz
  • grafana                              ${Contract id}-${clustername}-grafana.taco-cat.xyz
  • kibana                                ${Contract id}-${clustername}-kibana.taco-cat.xyz

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Dev] prometheus target 정상화 (feat. dashboard 확인)

Describe the Story

  • aws 위에 구축된 tks 사용자 클러스터의 모니터링 대시보드 중 몇몇에 데이터가 올라오지 않는 상황이 발생되고 있음
  • 원인을 파악하고 전체적으로 수집데이터 및 이를 조회하는 파이프라인을 전반적으로 체크하고 필요한 개발을 추가한다.
  • 설정되어 있는 전체 데이터를 대상으로 수집부터 조회까지를 확인한다. (service monitor기준)

범위 외

  • 개별 메트릭에 대한 검증은 포함하지 않는다.

아래 티켓을 진행하면서 내용을 부분(etcd) 에서 모니터링 전체로 확장하여 진행하는 것임


예전 내역
ETCD 관련 대시보드 정상화
etcd 대시보드 안나오는 현상이 발생하고 있음
etcd export -> prometheus -> grafana의 흐름에 따른 문제 파악 및 해결
구체적으로 다음 내역을 포함: 수집기 설정 및 동작확인, 매트릭 수집확인, grafana의 dashboard의 동작확인 (2개의 대시보드가 포함되어 있음, 종합/etcd 전용)

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Dev] TKS Contract 정보로 부터 클러스터용 Keycloak 준비

Describe the Story

- [ ] A clear and concise description of what this story is.

계약정보 (Contract)로 부터 클러스터용 keycloak 설정

  1. Contract 정보로 부터 Keycloak realm 생성 (realm 이름 생성룰) realm = contract-id
  2. 생성된 Realm에 유저생성: admin user, PW 생성 로직 필요 admin pw = tacoword
  3. 생성된 Realm에 Keycloak Client 생성 (call back url은 나중에 생성)

만들어저야 하는 keycloak client 목록

  • Kiali
  • Jaeger
  • Grafana
  • Kibana
  • Prometheus
  • Service Mesh Portal
  • harbor

참고. callback url은 추후 정해지므로 임으로 정의하고 추후 수정한다.

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Dev] Argo CD application cleanup workflow templates을 통해 app group을 삭제 할 수 있다.

Describe the Story

- [ ] A clear and concise description of what this story is.

  1. Argo CD로 배포한 application을 프로젝트 (app group) 단위로 일괄 삭제할수 있는 cleanup workflow template을 작성한다.
  2. TKS-Info 업데이트

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

산출물

  • workflow template 소스
  • tacoplay 또는 설치스크립트에 반영
  • 매뉴얼

Additional information (Optional)

[Dev] calico 관련 대시보드 정상화

Describe the Story

- [ ] A clear and concise description of what this story is.
calico 대시보드 안나오는 현상 -> 뭔가 세팅해야 나오는데 known issue 인듯?
tacoplay를 통해 설정했던 내용을 확인하고 데이터가 수집될 수 있도록 설정
grafana 대시보드까지의 흐름 점검

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Dev] TKS-Management 내 Contract Git 저장소에 user cluster 용 site 내용 생성

Describe the Story

- [ ] A clear and concise description of what this story is.

LCM 에 저장된 User 클러스터 정보 및 아이디를 기반으로 아래의 cluster-id 디렉토리 생성 및 site 내용 생성, manifests 저장소에 렌더링 되어 최종 yaml 생성까지 진행되어야함

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Epic] user cluster management (preview)

Description

user cluster를 생성, 변경, 삭제하기 위한 decapod 개발

Initiative / goal

TKS preview 출시시에 decapod 체계를 통해서 user cluster를 관리가능토록 한다

Acceptance criteria and must have scope

Stakeholders

TKS operator, user

Timeline

[Dev] ceph-csi 추가하기

Describe the Story

tacoplay를 통해 ceph를 사용하기위해 사용했었던 ceph-provisioner가 deprecated됨
이에따라 ceph-csi를 통한 지원이 고려되야 하는 상황

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Bug] 생성실패한 클러스터 삭제 시 에러

Describe the bug
aws 리소스 리밋으로 tks 유저 클러스터 생성이 실패한 경우, 이 클러스터를 삭제할 때 제대로 삭제가 되지 않는다.

To Reproduce
Steps to reproduce the behavior:
Elastic IP가 모두 소진될 때 까지 클러스터를 만든다.

Screenshots or logs (optional)
클러스터 생성 시 에러가 발생한 capa-system log

E0325 00:15:17.407305       1 awscluster_controller.go:218] controller/awscluster "msg"="failed to reconcile network" "error"="failed to create one or more IP addresses for NAT gateways: failed to allocate Elastic IP: AddressLimitExceeded: The maximum number of addresses has been reached.\n\tstatus code: 400, request id: c7c7adb8-49b5-41ab-bfdc-6c94f87201bc" "cluster"="4554a48b-3c94-4106-b5bc-d93f22fafd7b" "name"="4554a48b-3c94-4106-b5bc-d93f22fafd7b" "namespace"="4554a48b-3c94-4106-b5bc-d93f22fafd7b" "reconciler group"="infrastructure.cluster.x-k8s.io" "reconciler kind"="AWSCluster"
E0325 00:15:17.493217       1 controller.go:317] controller/awscluster "msg"="Reconciler error" "error"="failed to create one or more IP addresses for NAT gateways: failed to allocate Elastic IP: AddressLimitExceeded: The maximum number of addresses has been reached.\n\tstatus code: 400, request id: c7c7adb8-49b5-41ab-bfdc-6c94f87201bc" "name"="4554a48b-3c94-4106-b5bc-d93f22fafd7b" "namespace"="4554a48b-3c94-4106-b5bc-d93f22fafd7b" "reconciler group"="infrastructure.cluster.x-k8s.io" "reconciler kind"="AWSCluster"
I0325 00:15:17.499204       1 awscluster_controller.go:201] controller/awscluster "msg"="Reconciling AWSCluster" "cluster"="4554a48b-3c94-4106-b5bc-d93f22fafd7b" "name"="4554a48b-3c94-4106-b5bc-d93f22fafd7b" "namespace"="4554a48b-3c94-4106-b5bc-d93f22fafd7b" "reconciler group"="infrastructure.cluster.x-k8s.io" "reconciler kind"="AWSCluster"

클러스터 삭제 시 workflow 에러
image.png

image.png
Server Information (please complete the following information):

Additional context
Add any other context about the problem here.

[Dev] argocd 에 신규 Target 클러스터를 등록하는 방안 구현

Describe the Story

- [ ] A clear and concise description of what this story is.

  • argocd 로컬 클러스터는 'in-cluster'라는 이름으로 등록
  • decapod의 site 이름이 argocd cluster 이름과 동일해야함

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)


secret으로 cluster 를 정의할 수 있기 때문에 신규 클러스터에 대한 secret을 생성한다.

ex)

 {{apiVersion: v1kind: Secretmetadata:name: mycluster-secretlabels:argocd.argoproj.io/secret-type: clustertype: OpaquestringData:name: mycluster.comserver: https://mycluster.comconfig: |{"bearerToken": "","tlsClientConfig": {"insecure": false,"caData": ""}}}}

[Dev] User Cluster를 삭제하는 워크플로우 개발

Describe the Story

- [ ] A clear and concise description of what this story is.

User Cluster를 삭제하는 Argo Workflow template을 개발

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story

산출물: Argo Workflow template

Additional information (Optional)

[Dev] TLS Secret Sync Infra 개발

Describe the Story

- [ ] A clear and concise description of what this story is.

TKS-user Cluster SSL 도메인 인증서 배포를 위한 인프라 설치 및 설정

  1. Git Hub에 Sealed Secret 올릴 Repo 설치
  2. Sealed Secret 암호화할 공개키 쌍 확보호 TLS인증서 만듬 (100년짜리)
  3. SSL Domain 인증서 확보
  4. SSL Domain 인증서 Secret 생성 w/ +{color:#172b4d}[annotation : kubed.appscode.com/sync|http://kubed.appscode.com/sync]: "sync=taco-tls"{color}+
  5. kubeseal로 2번에서 만든 인증서로 Sealed Secret생성. {{kubeseal --}}{{format}}{{=yaml --cert=sealed-secret-tls.ca < secret.yaml > sealed-secret.yaml}}
  6. sealed-secret.yaml을 github repo에 올림
  7. TKS-user Cluster CSI/CNI 설치 후 SSO 기본설정 후, Sealed Secrets Control를 2번 공개키로 설치
  8. TKS-user Cluster에 Sealed Secret Controller 설치 후, kubed 설치
  9. 6번 올린 Sealed Secrets를 kube-system ns에 설치

위 설치는 Ingress controller 설치전 완료 하고, domain 인증서를 사용할 NS는 생성 시,

sync=taco-tls label을 붙임

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Bug] 설정 - 클라우드 계정 삭제 오류

Describe the bug
A clear and concise description of what the bug is.
클라우드 계정 삭제 불가

  1. 정상적인 값 넣지 않고 삭제 시
  • 클라우드 계정도 상태관리함으로, 일단 삭제 시도 후, 삭제 Fail로 떠야 함
  • 하지만 상태가 "생성에러" 로 바꿈.. 그후, 특별한 값 넣지 않아도 바로 삭제됨
  • 적당한 상태 필요 함
  1. 정상적인 값 넣고 삭제 시
  • 하지만 상태가 "생성에러" 로 바꿈.. 그후, 특별한 값 넣지 않아도 바로 삭제됨 --> 이건 버그인 듯 함

AWS Access key, key id pair를 관리하지 않음으로, 두 경우를 구별하는 것은 불가 함. 따라서 삭제 시도 후, Fail시 어떻게 처리 할지 고민 필요

To Reproduce
Steps to reproduce the behavior:

Screenshots or logs (optional)
If applicable, add screenshots to help explain your problem.

Server Information (please complete the following information):

Additional context
Add any other context about the problem here.

[Epic] decapod pipeline 설치/관리

Description

decapod pipeline 을 안정적으로 설치 및 운영이 가능하다 (target: tks preview)

Initiative / goal

decapod pipeline (argo wf, argo cd) 를 ha형상으로 설치할 수 있고, 모니터링 가능하다

Acceptance criteria and must have scope

Stakeholders

tks-operator

Timeline

[Dev] Github webhook과 Argo CD를 연동하여 이벤트 기반의 동작이 가능토록 한다

Describe the Story

- [ ] A clear and concise description of what this story is.

Github Webhook과 ArgoCD를 연동하여 push / commit 등의 이벤트가 발생하면 argoCD에서 deploy를 할 수 있도록 한다.
현재 (21.08.19) auto-sync 옵션만으로도 딜레이가 그리 크진 않으므로, 나중에 딜레이를 줄여야 하는 요구사항이 생기면 고려하면 됨.

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Bug] 5월 Beta TKS Cloud Service 검색 기능 대문자(영문) 검색 오류

Describe the bug
A clear and concise description of what the bug is.

UI Component중 검색창에 대문자를 입력하면, 검색이 않됨

To Reproduce
Steps to reproduce the behavior:
이름, 혹은 설명에 대문자가 들어가 있는 Item 생성 (e.g 설명에 QA Test)

검색에서 "qa" or "test"로 검색 시, 해당 Item 검색됨
검색에서 "QA" or "Test"로 검색 시, 검색 않됨

Screenshots or logs (optional)
If applicable, add screenshots to help explain your problem.

Server Information (please complete the following information):

Additional context
Add any other context about the problem here.

[Dev] Kubernetes user cluster App 설치 후 과정을 수행한다

Describe the Story

- [ ] A clear and concise description of what this story is.

2021-08-18 추가

  1. DNS record 설정  e.g kiali-{clusterid}.taco-cat.xyz <--TODO: App 설치 Workflow에 추가
  2. kubectl config use-context usercluster
  3. kubectl get svc -n ingress-nginx  --> user cluste의 ELB 주소 알아냄 (원래는 cluster info에서 얻어냄)
  4. kubectl config use-context tks-admin
  5. vi dns-record.yaml  (taco app domain name 과 ELB 주소설정)
  6. kubectl apply f dns-record.yaml  --> crossplane terraform operator으로 dns record 추가
  7. Keycloak realm/client의 callback url 추가 e.g [https://kiali-|https://kiali-/] {clusterid}.taco-cat.xyz/*  <-- TODO: App 설치 Workflow에 추가
  8. Keycloak gatekeeper설치 (for SSO), 필요정보 get from TKS-info  <-- TODO: App 설치 Workflow에 추가
  9. Ingress 생성  w/TLS  <-- TODO: App 설치 Workflow에 추가

AWS에 Cluster API 로 K8S 생성 시, Service를 바라 보는 Controller가 자동으로 만들어진다. 이 Controller는 Service의 "type : loadbalancer" 인 경우, 이 Service를 위핸 ELB를 생성하고 Routing 설정을 자동으로 해 줍니다.
따라서, Ingress Controller는 Service type=LB로 설치합니다.
설치후, 생성된 LB의 Ednpoint를 가져와서 Route53에 record 생성한다.

아래 DNS --> LB endpoint로
 
 K8S API Server                 ${Contract id}-${clustername}.taco-cat.xyz  ---> 이번에는 그냥 만들어진 AWS가 준 DNS 쓰고, 인증서는 자동으로 만든 것 쓴다. 

  • Service Mesh Portal        ${Contract id}-${clustername}-servicemesh.taco-cat.xyz
  • Kiali                                    ${Contract id}-${clustername}-kiali.taco-cat.xyz
  • Jaeger                               ${Contract id}-${clustername}-jaeger.taco-cat.xyz
  • Thanos                              ${Contract id}-${clustername}-thanos.taco-cat.xyz
  • Sidecar                              ${Contract id}-${clustername}-thanos-sidecar.taco-cat.xyz
  • grafana                              ${Contract id}-${clustername}-grafana.taco-cat.xyz
  • kibana                                ${Contract id}-${clustername}-kibana.taco-cat.xyz

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Dev] Service Mesh 워크플로우 변경 (tks preview출시향)

Describe the Story

- [ ] A clear and concise description of what this story is.

User Cluster 의 접속 가능한 config 저장 (어떻게?)

namespace 추가: istio-operator, istio-system

namespace label 세팅 (name=istio-system, taco-tls=enable)

  1. kubectl create ns istio-system
  2. kubectl label ns istio-system name=istio-system
  3. kubectl label ns istio-system taco-tls=enable
  4. kubectl get secret eck-elasticsearch-es-http-certs-public -n lma -o yaml | grep -v '^\s*namespace:\s' | kubectl apply -n istio-system -f - 

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

산출물: workflow template

Additional information (Optional)

[Bug] 설정 - 사용자 생성 과 사용자 수정 시 사용자 이름 길이 제한이 서로 상이함

Describe the bug
A clear and concise description of what the bug is.
사용자 생성 시 이름이 30자인데, 수정시 20자로 나타난다 , 하지만 막상 수정할때 30자 들어감
Screen Shot 2023-05-25 at 3.32.22 PM.png

하지만 수정시는 30/20? 으로 나옴
Screen Shot 2023-05-25 at 3.32.56 PM.png

To Reproduce
Steps to reproduce the behavior:

Screenshots or logs (optional)
If applicable, add screenshots to help explain your problem.

Server Information (please complete the following information):

Additional context
Add any other context about the problem here.

[Bug] 5월 Beta TKS Cloud Service에서 잘못된 정보를 입력한 클라우드 설정 생성 문제

Describe the bug
A clear and concise description of what the bug is.
잘못된 정보를 가지고 클라우드 계정 생성 시도 시,

  1. 에러메시지가 영어로 Debug 처럼 나옴
  2. "마지막 저장 이후 수정된 내용은 저장되지 않습니다. 계속하시겠습니까?" --> 확인 누르면
    생성이 안되야 될 텐데, 잘 못된 정보로 저장이됨.
    이경우 오타등을 인식 못 하면 지울 수도 없음

To Reproduce
Steps to reproduce the behavior:

Screenshots or logs (optional)
If applicable, add screenshots to help explain your problem.

Server Information (please complete the following information):

Additional context
Add any other context about the problem here.

[Bug] 유저클러스터 삭제 시 argo workflow 실패

Describe the bug
유저클러스터 삭제 시 워크플로우에서 cluster CR을 삭제한 뒤에 ArgoCD App에서 cluster prefix로 시작하는 앱을 지우는데, 이때 유저클러스터에 설치했던 autoscaler, metrics-server의 대한 App이 남아있어서 이를 지우지 못해(클러스터가 이미 삭제되었으니) 유저클러스터 삭제 워크플로우가 정상 동작하지 않습니다.

To Reproduce

$ tks cluster create test
# 클러스터 생성 완료 후 삭제 
$ tks cluster delete <cluster id>

Screenshots or logs (optional)
스크린샷 2022-03-24 오후 4.04.05.png

Additional context
클러스터 삭제 워크플로우에서 cluster CR을 삭제하기 전에 metrics-server, autoscaler를 먼저 삭제하는 부분 추가필요

[Bug] 이름/조직 명이 길어질때 표기 방안

Describe the bug
A clear and concise description of what the bug is.
이름과 조직이 길어 지면, 표기할때 좀 보기 좋지 않습니다. ...으로 변경해야 할까요?

Screen Shot 2023-05-25 at 3.33.09 PM.png

그리고, 칸을 줄이면 동그라미가 찌그러 집니다. (이건 문제가 아닐 수도 있어 보입니다.)

Screen Shot 2023-05-25 at 3.33.23 PM.png

To Reproduce
Steps to reproduce the behavior:

Screenshots or logs (optional)
If applicable, add screenshots to help explain your problem.

Server Information (please complete the following information):

Additional context
Add any other context about the problem here.

[Epic] TACOPLAY로 Containerd + K8s 1.21.x까지 설치 가능

Description

TACOPLAY로 Containerd를 사용하여 Kubernetes Version 1.21.x까지 설치가 가능토록 하며,
기존 1.17에서 업그레이드가 가능토록 한다.
특히, On-Site 설치를 위해 Airgap (Offline) 설치가 가능토록 한다.

Initiative / goal

  • Containerd + Kubernetes 1.22.x 설치 가능
  • 버전별 업그레이드 가능 (1.17 - 1.21) > 업그레이드는 향 후 필요시 Epic으로 추가
  • 인터넷이 안되는 Airgap 환경에서 설치 가능

Acceptance criteria and must have scope

  • Containerd + Kubernetes 1.22.x 설치 가능
  • 버전별 업그레이드 가능 (1.17 - 1.21) > 업그레이드는 향 후 필요시 Epic으로 추가
  • 인터넷이 안되는 Airgap 환경에서 설치 가능

Stakeholders

설치 엔지니어

Timeline

10월말까지 준비가 완료되어 11월에 사용 가능해야 함

[Dev] grafana 대시보드 로딩방식 개선

Describe the Story

  • lma-addon이라는 helm챠트에서 grafana의 dashboard들을 로드함
  • helm chart의 template기능이 돌아가면서 grafana dashboard 내부의 지시자들과 충돌하는 일들이 발생
  • 최초 적용했던 dashboard의 경우는 에러가 없는 형태로 변경된 json을 사용하여 추가
  • 간헐적으로 대시보드가 추가되면서 앞의 내용이 잊혀져 여러가지 번거러움이 발생
  • 앞으로 돌아가 helm의 template 기능이 필요하지 않다면 이를 거치지 않도록 수정하는 것이 필요

Acceptance criteria (Validation Scenario)

  • lma-addon 챠트의 지시 부분에 grafana dashboard json 파일을 추가하면 추가적인 수정작업없이 taco-lma에 대시보드가 추가된다.
  • 필요한 경우 기존과 같은 helm template을 통과하여 동작하는 것도 가능하다.

Additional information (Optional)

  • addon에서 하는 것은 grafana와 약속된 configmap을 만드는 것.
  • '_'로 시작하는 파일은 template 되지 않는 것을 활용하면 된다.

[Dev] TKS User 클러스터 ingress 컨트롤러용 ELB 생성

Describe the Story

- [ ] A clear and concise description of what this story is.

Terraform (terraform operator + terraform cloud) 으로 생성 테스트 수행 후 완성도, 사용성 평가
==> terraform 사용법에 대한 문서화까지
위 결과를 바탕으로 사용 불가 시 crossplane 도입

필요정보:

  • VPC ID
  • public subnet ids
  • ec2 ids
  • ingress controller가 사용할 node port for listener 등록

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

tks client에 버전을 표시하는 명령어를 추가한다.

Is your feature request related to a problem? Please describe.
현재 tks client 실행 시 어떤 버전인지 확인 불가

Describe the solution you'd like
tks client가 어떤 버전인지 알 수 있도록 --version 명령어를 추가한다.

Additional context
릴리즈마다 해당 버전이 cli에서 표시될 수 있는 방법 모색

*추가목적: TKS CLI 인수인계와 연계

[Dev] LMA 워크플로우 개선

Describe the Story

- [ ] A clear and concise description of what this story is.

누락되어 있는 아래 작업을들 워크플로우에 포함: 참고 (tacoplay/roles/taco-apps/lma/pre-install)

  • elastisearch 관련 시스템 설정 변경 (재상님 작업, done)
  • Namespace 생성 (lma) 및 레이블 설정 (name=lma)
  • etcd client secret 생성: master 노드에서 수행 필요 -> 노드에서 직접 가져오는 방법 외에 다른 방법(외부에서 얻는)이 있다면 더 좋을 수 있음 (재상님 작업, done)
  • 노드 레이블 추가: taco-lma=enabled

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

산출물: 위 작업이 포함되어 정상 동작하는 워크플로우

Additional information (Optional)

[Dev] 어플리케이션별 인증 삭제

Describe the Story

- [ ] A clear and concise description of what this story is.

keycloak 인증후 바로 접근가능하도록 (SSO를 위해 deploy시 http, no login)

  • grafana 인증삭제
  • kibana 인증삭제

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story

Additional information (Optional)

[Dev] 주기적 자원정리 프로세스

Describe the Story

테스트등에 의해 이력이 남지 않는 자원들이 지속적으로 발생하고 있다.
다음과 같은 방법을 통해 정리해야 한다.

  1. 첫째는 만든사람이 잘 정리하는 것
  2. 둘째는 주기적으로 이력이 관리되지 않는 자원들을 정리하는 것

이에따라 주기적인 job을 실행하는 뭔가를 만들어 줘야 한다.

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Dev] etcd exporter 구성이 가능하다

Describe the Story

- [ ] A clear and concise description of what this story is.

etcd exporter에서 master의 ip를 기반으로 Service, EP, ServiceMonitor 를 구축한다.
(etcd는 prometheus 로 data export해주고 있음)
Q. lma-addon에 job으로 구성??

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Dev] Argo Workflow/Argo CD의 메트릭을 수집할 수 있다

TDE의 TACODEV-774에서 이전해왔습니다. 현재 PR이 된 상태이기 때문에, QA/Review단계부터 시작합니다

Describe the Story

- [ ] A clear and concise description of what this story is.

Argo worflow/CD도 prometheus metric으로 수집할 수 있다. Argo worklfow/CD의 metric을 조사하고, Argo CD 의 주요 metric 수집한다.

argo cd/workflow exporter 존재함, 서비스 모니터 생성해서 prometheus로 데이터 저장 확인 (lma-addons)

grafana dashboard 까지 추가, 확인 (grafana labs에 있는 대시보드 활용)

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

산출물

  • Argo Workflow/CD의 주요 metric 조사 문서화
  • prometheus와 연동
  • grafana dashboard 

테스트방법

  1. 7월 12일 버전의 tacoplay 및 decapod2를 통해 lma 구축

    • tacoplay 구성을 위해 필요한 사항 수정 필수
    • site-value를 잘 구성해서 lma가 설치되도록 하는 것은 필수 (윗 댓글도 참조)
    • 추가적으로 현재 버전에 fed-master가 빠져있지 않으므로 lma-addons에 다음과 같이 override해서 grafana와 thanos를 연결해줘야함
      grafanaDashboard.sidecar.datasources.prometheusAddress: "thanos-query:9090"
  2. prometheus 를 통해 target이 잘 올라왔음을 확인

    • http://YOUR_CLUSTER_MASTER1_IP:30008/targets 에서 1개가 up된 것 확인
    • lma/argocd-application/0 (1/1 up), lma/argocd-server/0 (1/1 up)
  3. grafana에서 대시보드가 잘 올라왔고 데이터가 보여짐을 확인

    • http://YOUR_CLUSTER_MASTER1_IP:30009/d/LCAgc9rWz/argocd?orgId=1 또는 환경에따라 url은 다를 수 있음 (argocd 대시보드)

Additional information (Optional)

[Epic] Airgap환경에서 (오프라인) Decapod V2 설치

Description

Airgap환경에서 (오프라인) Decapod V2 설치

Initiative / goal

Airgap환경에서 (오프라인) Decapod V2 설치

Acceptance criteria and must have scope

Airgap환경에서 (오프라인) Decapod V2 설치

Stakeholders

설치 엔지니어

Timeline

10월말까지 완료, 11월 사용 가능

[Dev] Node status관련 이상파악 및 해소

Describe the Story

- [ ] A clear and concise description of what this story is.
'node staus' 대시보드에서 일부 패널 no data 상태

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

Additional information (Optional)

[Dev] cluster api workflow template 생성

Describe the Story

- [ ] A clear and concise description of what this story is.

기존 내용

  • cluster-api-aws 차트를 이용하여 aws에 cluster를 생성한다. (TACODEV-908)
    • subnet binding 값을 가져와서 +machine pool에 넣어준다+ (TACODEV-911연관)
    • machine pool manifest 를 치환? 
    • decapod-base에서 argo-cd 의 argo-cd values 최상단 값 override 형식이 있어서.. 이걸 사용? [Parameter Overrides - Argo CD - Declarative GitOps CD for Kubernetes (argoproj.github.io)|https://argoproj.github.io/argo-cd/user-guide/parameters/]
    • 혹은, 이 부분은 helm chart + argo cd?  (chart value를 직접 업데이트)
    • workflow에서 helm template명령으로 manifest를 만들어 manifest repository에 넣어주는 방식? 
  • cluster api provisioning이 끝나면 plugin도 설치한다.
  • tks-cluster-lcm 서비스에 installation status를 갱신해야한다. (별도 workflow template으로 만들어서 활용)
  • label 지정, node의 경우 (cluster-lcm에서?)
    • 3대를 전용 노드로 사용
    • 용도
      • LMA 노드
      • Ingress 컨트롤러 노드
      • Service-mesh 노드
    • taco-lma=enabled
    • taco-servicemesh=enabled
    • taco-ingress-gateway=enabled
    • taco-egress-gateway=enabled
    • taco-ingress-controller=enabled
  • Ingress Controller 설치 (service type : node port)
    • [https://github.com/kubernetes/ingress-nginx/tree/main/charts/ingress-nginx]

08-18일 추가

  • k8s cluster를 cluster api를 통해 만들고
    • 이것 끝났음을 어떻게 확인해서 넣어주나? 
    • job으로 만들어 cluster의 provisioning 상태를 지속적으로 확인? 보다는 아래와 연결하는 것도?
  • cni, csi (플러그인) 을 배포하고
    • 하나의 wf에서 helm 배포 클러스터를 여러개로 나눌 수 있나?
  • 임의의 3개 워크노드를 지정하여 라벨링 해주고
    • 이건 해주도록 하는 job?
    • 그냥 wf에서도 할수 있을거 같고
  • ingress-controller 설치

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

산출물

  • Workflow Template
  • Workflow Template 문서화

Additional information (Optional)

[Dev] Keycloak을 TKS에 설치할 수 있다

Describe the Story

- [ ] A clear and concise description of what this story is.

TKS 서비스에서 사용자 인증을 위한 도구로 사용할 Keycloak 설치 아키텍처 및 방안 확정

  • default configuration 정하기
  • helm chart & workflow template (정식형상에 맞춘)
  • 한규호님과 논의하면서 진행

Acceptance criteria (Validation Scenario)

- [ ] This is something that can be verified to show that this story is satisfied.
- [ ] This should have information for QA to validate this story.

산출물

  • 설치 방법: Helm Chart와 Value
  • 설정 가이드 및 초기설정에 대한 설명 등..
  • 향후 도입 필요 사항

완료조건

  • 정상 설치 및 사용 가능

Additional information (Optional)

[Dev] cluster-autoscaler를 사용한 워커 노드 자동 확장 지원

Describe the Story

  • cluster-autoscaler를 사용하여 워커 노드 자동 확장을 지원
  • cluster-autoscaler를 사용자 클러스터에 설치하도록 한다

Acceptance criteria (Validation Scenario)

  • 가용 자원 미달로 Pending POD 발생 시 노드 확장 수행
  • 가용 자원 여유 등 기준 충족 시 노드 축소 수행

Additional information (Optional)

[Dev] TKS 서비스 (어드민) 설치를 위한 workflow template

Describe the Story

  • TKS 최신 버전 설치를 위한 프로세스
    • 도커 이미지 자동 생성
    • Helm chart 작성 (review 중)
    • 워크플로어 개발
    • base-yaml
    • site-yaml 작성

Acceptance criteria (Validation Scenario)

  • This is something that can be verified to show that this story is satisfied.
  • This should have information for QA to validate this story
  • 산출물 리스트
    • workflow template
    • github action
    • base-yaml
    • site-yaml

Additional information (Optional)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.