v3.0.0
TKS - Release v3.0.0
TKS는 SK텔레콤에서 개발한 GitOps, Declarative 방식의 Kubernetes 관리 및 다양한 앱현대화 서비스를 제공하는 플랫폼입니다. SKT에서는 TKS 소프트웨어를 기반으로 1) TKS 클라우드서비스 (SaaS)와 2) TKS 엔터프라이즈솔루션 (구축형상품)을 출시하여 제공하고 있습니다.
본 v3.0.0 릴리즈에는 Kustomize, Helm, Argo Workflow등을 활용하여 복잡한 소프트웨어들을 논리적으로 그룹핑하여 단순화시키고 이를 선언적으로 관리하기 위한 기술인 Decapod를 기반으로 하여, 인프라, Kubernetes플랫폼, 그리고 플랫폼 운영 및 앱현대화를 위해 필요한 소프트웨어 세트들 (LMA, MSA)을 일괄 자동 배포/관리하는 "스택" 기능이 추가되었습니다. 또한, 모든 기능들은 API로 제공됩니다.
이번 릴리즈에서 추가된 신규 기능들은 다음과 같습니다.
- AWS의 EKS연동 및 On-prem/Private Cloud 지원을 위한 BYOH (Bring Your Own Kubernetes) 프로바이더 지원기능이 추가되었습니다.
- LMA (Logging, Monitoring, Alerting) 세트에서 Elastic Search와 Kibana가 Deprecated되고, Grafana Loki와 Thanos가 신규로 도입되었습니다. 또한, Thanos, Loki를 기반으로 한 멀티클러스터 통합 모니터링 체계를 Reference Archiecture로 제공합니다.
- Service Mesh에서 Tracing Log 저장을 위한 Elastic Search가 Deprecated 되고, Cassandra가 신규 도입되었습니다.
- GitOps를 위해 Gitea와 Harbor가 기본 저장소로 제공됩니다.
- 멀티테넌시를 위한 Organization이 최초로 적용되었고, Organization별 사용자 등록, 관리가 가능합니다.
- SaaS형 서비스인 TKS 클라우드서비스를 위한 Admin, 사용자 포탈 UI가 신규로 제공됩니다.
- 이 외에 많은 버그수정과 안정화 작업을 진행하였습니다.
감사합니다.
What's Changed
- Add kubeconfig for linting workflow template by @Jaesang in #84
- Add sonobuoy test by @robertchoi80 in #85
- add Dockerfiles for workflows by @robertchoi80 in #86
- Get thanos sidecar LB endpoint by @robertchoi80 in #82
- use decapod-site when creating contract repo by @robertchoi80 in #87
- create-cluster-repo: extend deadline to prevent unnecessary failure by @zugwan in #88
- Merge Release-v2 to main by @robertchoi80 in #91
- create-tks-usercluster: change cluster autoscaler rbac installation order by @zugwan in #90
- Add TKS End-to-end test workflow template by @zugwan in #89
- feature. add service validation workflow to e2e test by @ktkfree in #95
- add slack notification to E2E test workflow by @robertchoi80 in #97
- bugfix. move servicemesh validation by @ktkfree in #98
- create new workflow to render manifests by @seungkyua in #94
- support multi cluster api infra providers by @zugwan in #96
- show duration in human-readable manner by @robertchoi80 in #99
- add timeout to busy-wait loops by @robertchoi80 in #101
- Add app-serving workflow by @robertchoi80 in #92
- Supports template configuration with different infrastructure providers by @zugwan in #100
- bugfix. validation error fix. by @ktkfree in #103
- Revert "use the first group of the cluster UUID as the cluster name" by @zugwan in #104
- bugfix. rename render directory (.github to _github) by @ktkfree in #107
- app-serving: build와 deploy 단계 분리 by @robertchoi80 in #106
- using structured kustomize document on infra-selection by @intelliguy in #105
- bugfix. remove substr function for cluster id by @ktkfree in #108
- remove usercluster: fix getting infra provider of the cluster by @zugwan in #109
- install local-path-provioner for a byoh cluster by @intelliguy in #102
- bugfix. change argocd app name by @ktkfree in #110
- Use helm chart for deployment by @robertchoi80 in #112
- Cluster template 지원 및 contract/cluster Git 저장소에 META 정보 추가 by @zugwan in #114
- tests: seperate e2e test sites into aws and aws-msa by @zugwan in #115
- tks stack 워크플로우 템플릿 추가 by @zugwan in #116
- feature. add contractId to workflow template for creating stack by @ktkfree in #117
- App-serving: update 및 delete 로직 구현 by @robertchoi80 in #113
- Add param to stack by @ktkfree in #118
- remove unnecessary quote characters from image definitions by @zugwan in #119
- bugfix. fixes unittests by @ktkfree in #120
- feature. add workflow for import cluster by @ktkfree in #122
- bugfix. disable ssl for sso by @ktkfree in #123
- bugfix. change credential port to 443 from 0 by @ktkfree in #124
- Appserving: add PV support by @robertchoi80 in #121
- rename task_type to type by @robertchoi80 in #125
- serivcemesh portal nodeSelector by @seungkyua in #126
- manifests 리뷰용 PR 생성 / 클러스터 import 후 자동 manifests 생성 by @zugwan in #127
- support legacy spring app by @robertchoi80 in #128
- feature. update docker image from v1 to v2 by @ktkfree in #129
- temporary fix. remove kubed from "create-usercluster-wftpl" by @ktkfree in #130
- feature. add variable for control plane replicas by @ktkfree in #131
- AppServing: handle configmap and secrets by @robertchoi80 in #132
- add step to tests by @ktkfree in #133
- git 관련 자원들을 중립적인 용어로 사용 by @zugwan in #134
- tks-cluster: fix wrong machinepool name by @zugwan in #136
- add gitea sync mirror workflow by @zugwan in #135
- EKS 클러스터 설치 지원 by @zugwan in #138
- app_serving: implement blue-green deployment by @robertchoi80 in #137
- bugfix. minor fixes by @ktkfree in #140
- change original images url to harbor image url by @seungkyua in #142
- Gitea 렌더링 (site 저장소 -> manifests 저장소) 자동 반영 by @zugwan in #141
- Gitea를 기본 Git 저장소로 사용 by @zugwan in #143
- fix missing image url by @seungkyua in #144
- Gitea 클러스터 저장소 삭제 수정 by @zugwan in #145
- use tigera-operator for calico installation by @zugwan in #146
- tks-cluster: fix calico uninstall by @zugwan in #147
- trivial. update render docker image by @ktkfree in #148
- update decapod-render to v3.1.2 by @zugwan in #149
- Primary cluster 생성을 위한 workflow template 추가 by @intelliguy in #151
- install ack and their aws resources by @intelliguy in #150
- Tks api migration by @ktkfree in #152
- Update tks-primary-cluster.yaml by @ktkfree in #153
- Primay_cluster: 부족한 부분들 추가... by @intelliguy in #154
- using aws controller kubernetes for s3 by @intelliguy in #155
- Integration tks api by @ktkfree in #156
- Test tks api by @ktkfree in #157
- Rename cloud account by @ktkfree in #158
- add workflow templates for multi-tenancy and cloud account by @zugwan in #160
- E2etest auto creating organization by @ktkfree in #159
- add support for multi-tenancy aws clusters by @zugwan in #162
- feature. add site-value for creating stack by @ktkfree in #163
- TKS 내부 사용 Cluster kubeconfig 시크릿 일원화 by @zugwan in #164
- tks-cluster: use sts assume-role to access multitenancy AWS resources by @zugwan in #165
- cloud-accouts: add a policy for multi-tenancy by @zugwan in #166
- cloud-accounts: use a secret for tks AWS account and user by @zugwan in #167
- git-repo: remove a unused decapod global variable by @zugwan in #169
- change to update appserve status and endpoint and to build image by @seungkyua in #168
- Primary cluster: 설치 및 삭제후 thanos변경로직 추가 by @intelliguy in #161
- remove tks-proto volume by @seungkyua in #171
- EKS 지원을 위한 수정 by @zugwan in #170
- 20230510 appserve details by @seungkyua in #173
- fix indentation and incorrect if statements when creating eks cluster by @zugwan in #172
- bugfix. add params for creating stack by @ktkfree in #174
- fix gitea webhook for decapod rendering by @zugwan in #175
- change msa node labels by @seungkyua in #176
- add argo-rollouts by @seungkyua in #177
- create-contract-repo: add keycloak url by @cho4036 in #179
- primary-cluster: add mutex with organization_id for synchronization by @intelliguy in #180
- git-repo: add gitea webhook for decapod rendering by @zugwan in #178
- Grafana SSO 관련 기능 추가 by @cho4036 in #181
- alertmanager: configure alertmanager eps upon parameters by @intelliguy in #182
- Grafana Client 설정 및 Endpoint TKS api DB에 반영 by @cho4036 in #183
- trivial fix. unnecessary comma by @cho4036 in #184
- bug fix: change keycloak client logic to support multiple uris by @cho4036 in #186
- serve-java-app: change update order by @robertchoi80 in #185
- bug fix: add missing protocol by @cho4036 in #187
- ESK cluster autoscaler 지원 by @zugwan in #189
- app-serving: Refactor stages by @robertchoi80 in #188
- tks-cluster: fix clusterautoscaler for eks by @zugwan in #190
- app-serving: use rollout file based on app_type by @robertchoi80 in #191
- bug fix: fix wrong endpoint handling by @cho4036 in #192
- app-serving: make it fail if endpoint is not ready by @robertchoi80 in #194
- cloud-accounts: fix to unset aws session token env var by @zugwan in #193
- tks-user-kubeconfig 추가 및 cluster-autoscaler 오류 수정 by @zugwan in #195
- app-serving: handle case that update-endpoint stage fails by @robertchoi80 in #196
- app-serving: deploy 이후 단계도 로그 기록하도록 수정 by @robertchoi80 in #197
- app-serving: include workflow name in log by @robertchoi80 in #198
- bugfix. add 'argo rollout' step to remove-usercluster-wftpl.yaml by @ktkfree in #199
- bugfix: app-serving: override tomcat resources by @robertchoi80 in #200
- minor fix: make tks console url by @cho4036 in #202
- app-serving: check endpoint reachability by @robertchoi80 in #201
- bugfix: fix typo by @robertchoi80 in #203
- tks-cli: increase timeout threshold for cluster creation by @zugwan in #204
- bugfix: appserving: increase LB timeout by @robertchoi80 in #205
- cloud-accouts: fix IAM roles per cluster by @zugwan in #206
- Fix appserving rollback error by @robertchoi80 in #207
- feature. support for changing branch on rendering by @ktkfree in #208
- merge into main from develop by @ktkfree in #209
- trivial. add workflow paramters to remove appgroup by @ktkfree in #210
- feature. e2e test changes by @ktkfree in #212
- remove comments by @ktkfree in #213
- trivial: (appserving) add more build logs by @robertchoi80 in #215
- trivial. change namespace to "tks-msa" for e2e testing by @ktkfree in #216
- app-serving: override env vars for legacy spring app by @robertchoi80 in #218
- use release branch of app-serve-template by @robertchoi80 in #220
- feature. use branch from secret when decapod rendering. by @ktkfree in #221
- S3support by @intelliguy in #222
- s3support: add missed volume in tks-lma-federation by @intelliguy in #223
- add volume for secret to the remove lma workflow by @intelliguy in #224
- bugfix. fix workflow syntax error by @ktkfree in #225
- s3support: delete objects on each bucket before deleting by @intelliguy in #227
- bugfix. fix paramter by @ktkfree in #228
- bugfix. fix syntax error by @ktkfree in #229
- delete loki before deleting buckets by @intelliguy in #230
- add missing aws-iam-tks-admin-kubeconfig-secret to tks-aws image by @zugwan in #231
- release -> main merge (20220808) by @ktkfree in #232
- tks-deploy-lma: install federation components when given cluster is p… by @intelliguy in #233
- keycloak secret 이름 변경에 따른 수정 by @cho4036 in #234
- release to main ( 20220809 ) by @ktkfree in #235
- AWS 계정 정보를 단일 시크릿으로 통합 by @zugwan in #236
- main merge from release (0810) by @ktkfree in #237
- deploy_apps: using clusterid-tks-kubeconfig by @intelliguy in #238
- remove lma: delete loki and bucket only for primary cluster by @intelliguy in #239
- bug fix: Added error handling for grafana endpoint retrieval by @cho4036 in #240
- 20230814 main merge by @ktkfree in #241
- bug fix: add safety checks to avoid accidental client removal by @cho4036 in #242
- change image repo from harbor-cicd to harbor by @intelliguy in #245
- deploy workload for removing buckets on the user cluster by @intelliguy in #244
- bugfix: fix a volume name, namespace and so on. by @intelliguy in #246
- main merge ( 20230814 ) by @ktkfree in #243
- cloud-accounts: add service quota read policy by @zugwan in #247
- main merge (20230818 ) by @ktkfree in #248
- bugfix) 맴버클러스터의 3시간 이상된 데이터를 볼수 없는 상황해소 by @intelliguy in #250
- main merge ( 20230831 ) by @ktkfree in #252
New Contributors
Full Changelog: v2.0.0...v3.0.1