TKS - Release v4.0.0
TKS는 SK텔레콤에서 개발한 GitOps, Declarative 방식의 Kubernetes 관리 및 다양한 앱현대화 서비스를 제공하는 플랫폼입니다. SKT에서는 TKS 소프트웨어를 기반으로 1) TKS 클라우드서비스 (SaaS)와 2) TKS 엔터프라이즈솔루션 (구축형상품)을 출시하여 제공하고 있습니다.
본 v3.2.0 릴리즈에는 Kustomize, Helm, Argo Workflow등을 활용하여 복잡한 소프트웨어들을 논리적으로 그룹핑하여 단순화시키고 이를 선언적으로 관리하기 위한 기술인 Decapod를 기반으로 하여, 인프라, Kubernetes플랫폼, 그리고 플랫폼 운영 및 앱현대화를 위해 필요한 소프트웨어 세트들 (LMA, MSA)을 일괄 자동 배포/관리하는 "스택" 기능이 추가되었습니다. 또한, 모든 기능들은 API로 제공됩니다.
이번 릴리즈에서 추가된 신규 기능들은 다음과 같습니다.
- TKS UI/UX 가 보다 직관적으로 리뉴얼 되었습니다.
- kubernetes 보안 관리를 위한 정책 기능이 추가되었습니다.
- 사용자별 kubernetes 접근 권한 관리가 가능하도록 Authrization/Authentication 기능을 강화하였습니다.
- 이 외에 많은 버그 수정과 안정화 작업을 진행하였습니다.
감사합니다.
What's Changed
- 231113 main to develop back merge ( v3.1.2 ) by @ktkfree in #204
- 231117 main to develop back merge by @ktkfree in #211
- 231120 main to develop back merge ( v3.1.2 ) by @ktkfree in #215
- improve: add an API to verify token & improve an old verification logic by @cho4036 in #216
- bugfix: fix verify-token API not working by @cho4036 in #217
- Project RBAC 구현을 위한 공통 코드 개발 by @cho4036 in #219
- feature. implementation filter & pagination by @ktkfree in #221
- feature. swagger automation by @ktkfree in #222
- resotre generated files for local environment by @ktkfree in #223
- minor fix: fix error code of verify token API by @cho4036 in #225
- �Project 관리 로직을 추가함 by @seungkyua in #226
- change swagger url to dev by @ktkfree in #227
- trivial. support dynamic swagger url by @ktkfree in #228
- trivial. minor fix by @ktkfree in #229
- Modify the logic that manages the project by @seungkyua in #233
- trivial. swaggo update to v1.16.3 by @ktkfree in #234
- Add project member count group by project role by @seungkyua in #235
- implement tks-issues-1038 by @robertchoi80 in #232
- trivial. golang version up to v1.21 by @ktkfree in #239
- trivial. resolve build errobr by @ktkfree in #240
- Add logic to check if the project namespace exists by @seungkyua in #237
- GetProjectKubeconfig API 개발 by @cho4036 in #241
- feature. support or filter by @ktkfree in #236
- feature. refactoring usecase by @ktkfree in #242
- 20240221 change project leader by @seungkyua in #243
- Dev #994 프로젝트 사용자 권한 관리 시스템 설계/개발 ( keycloak 연동 k8s 권한 관리 ) by @cho4036 in #224
- feature. implemtation audit by @ktkfree in #244
- feature. add interface project-namespace-k8s-resources by @ktkfree in #245
- trivial. fix login error by @ktkfree in #247
- Change project lists to a single SQL statement by @seungkyua in #249
- feature. implementation k8s resources for project namespace by @ktkfree in #246
- feature. apply filter to list api. by @ktkfree in #248
- bugfix. minor fix for pagination by @ktkfree in #251
- trivial. pass context to usecase from handler by @ktkfree in #250
- bugfix. fix middleware; by @ktkfree in #252
- trivial. workarround fix that incorrectly recorded in audit by @ktkfree in #253
- trivial. change swagger base path to "/" from "/api/1.0/" by @ktkfree in #254
- RBAC 관련 구조체 설계(Role, Permission, Endpoint) 및 tks 권한 적용 by @cho4036 in #231
- bug fix: build error fix by @cho4036 in #255
- fix. build error by @ktkfree in #256
- fix. build error by @ktkfree in #257
- trivial. fix exception handle by @ktkfree in #258
- make auto-gen code to leave generated code seperated with endpoint.go by @cho4036 in #259
- 관리자 포털 "사용자" API 개발 by @cho4036 in #260
- trivial. resolve swagger error by @ktkfree in #262
- Refactoring domain object by @seungkyua in #261
- feature. support filter array by @ktkfree in #265
- feature. project k8s resources by @ktkfree in #263
- feature. stack template intergration by @ktkfree in #264
- feature. rollback swagger base path "/api/1.0/" by @ktkfree in #266
- fix SQL statement to get the number of members in a project by @seungkyua in #267
- bug fix: missing JWT function by @cho4036 in #268
- add manage tks admin user logic by @cho4036 in #270
- 20240307 admin project by @seungkyua in #271
- bug fix: restore missing variable due to refactoring by @cho4036 in #272
- trivial. resolve build error by @ktkfree in #273
- feature. add api for stackTemplates. CUR by @ktkfree in #269
- Feature. add admin api for policy templates. (initial version) by @sangkenlee in #274
- refactoring model system by @ktkfree in #275
- Revert "Merge pull request #275 from openinfradev/refact_pkg" by @seungkyua in #277
- Revert "Merge pull request #277 from seungkyua/20240314_revert" by @seungkyua in #278
- feature. enhanced organization creation & add master admin to organiz… by @ktkfree in #279
- feature. add api to stack-templates for checking name by @ktkfree in #280
- �Logging 개선 by @cho4036 in #276
- enhance rego parameter extraction by @sangkenlee in #281
- Lint: Enable golangci-lint in GitHub Actions & Refactor Code for Compliance by @cho4036 in #283
- trivial. fix lint error by @ktkfree in #284
- feature. change resource name alert to event by @ktkfree in #285
- feature. add templates mapping for organization by @ktkfree in #287
- 정책 템플릿 코드 리팩토링 반영 by @sangkenlee in #288
- bug fix. by @cho4036 in #289
- TKS Login 시, Token에 Project 역할이 포함되도록 구현 by @cho4036 in #291
- feature. implemntation organization templates by @ktkfree in #290
- trivial. change api role for organizations by @ktkfree in #293
- 20240313 dashboard by @seungkyua in #292
- feature. seperate api for templates by @ktkfree in #294
- /policytemplates -> /policy-templates, 일부 함수 네이밍 변경 by @sangkenlee in #295
- User에 대한 Permission 리스트 출력 API 개발 by @cho4036 in #297
- Add project role to the response of login endpoint by @cho4036 in #299
- TKS 역할 또는 Project 역할 변경 시, 사용자가 새로운 access token을 발급 받도록 개선 by @cho4036 in #298
- feature. implemntation systemnotification conditions by @ktkfree in #301
- Bug fix. Swagger param error fix by @cho4036 in #302
- tirivial. fix swagger error by @ktkfree in #303
- minor fix. filter error fix by @cho4036 in #304
- 정책 관리 기본 기능 구현 by @sangkenlee in #300
- feature. add delete API for system-notification by @ktkfree in #305
- trivial. change model name to system-notification-metric-parameters by @ktkfree in #306
- trivial. swagger parameter fixes by @ktkfree in #308
- feature. add API for checking name resource on system-notifications by @ktkfree in #309
- Organization Template API 초기 구현 by @sangkenlee in #307
- minor fix. Reform response data of Permission APIs by @cho4036 in #310
- minor fix. fix swag error by @cho4036 in #311
- trivial. add metric parameters to systemNotificationTemplates by @ktkfree in #312
- trivial. remove unused paramter. by @ktkfree in #313
- trivial. add attribute metricParameters to system-notification-templates by @ktkfree in #314
- minor fix. remove unused contents by @cho4036 in #315
- minor fix. fix swag error by @cho4036 in #317
- fix query project by @seungkyua in #316
- Change workflow to use base branch's latest commit for builds by @cho4036 in #318
- k8s 정책 동기화 by @sangkenlee in #320
- trivial. fix constraint orgniazations and users by @ktkfree in #321
- trivial. add TargetUsers to GetSystemNotificationRule API by @ktkfree in #322
- PolicyTemplate에서 스키마가 사라지는 버그 수정 by @sangkenlee in #323
- 정책의 Match절을 Raw Yaml로 설정하는 기능 추가 by @sangkenlee in #325
- api route 끝에 공백으로 인한 오류 수정 by @sangkenlee in #327
- 정책을 위한 k8s resource name 추가 by @sangkenlee in #326
- implementation alert system by @ktkfree in #328
- 복수개의 TKS Role을 갖도록 User Model 수정 by @cho4036 in #324
- 필수정책 설정 API 버그 픽스 by @sangkenlee in #329
- bugfix. by @cho4036 in #330
- feature. implementation default data for system_notification_rule by @ktkfree in #331
- User Admin API: bugfix by @cho4036 in #332
- trivial by @cho4036 in #333
- Role 구조체 변경으로 인한 Organization 생성 시 발생하는 Bugfix by @cho4036 in #335
- ParameterDef 전달 안 되는 버그 수정 by @sangkenlee in #334
- feature. add & update default snr by @ktkfree in #337
- 기존 버전과 파라미터 비교추출 API 추가 by @sangkenlee in #336
- change dashboard resource format by @seungkyua in #338
- 정책 조회시 대상 클러스터 이름도 표시 by @sangkenlee in #340
- Admin_GetPolicyTemplateVersion api 버그 수정 by @sangkenlee in #339
- bugfix. Fix internal k8s API call with admin token by @cho4036 in #343
- trivial. add api for making default systemNotificationRules by @ktkfree in #342
- GetPolicyStatistics API 추가 by @sangkenlee in #341
- feature. change scheme for systemNotification by @ktkfree in #344
- bugfix. fix bugs on connection to remote cluster with kubeconfig by @cho4036 in #345
- trivial. fixes minor by @ktkfree in #346
- trivial. minor bug fixes by @ktkfree in #347
- trivial. minor bugfix by @ktkfree in #348
- trivial. change schema for systemNotification by @ktkfree in #349
- Operator 연동 업데이트 by @sangkenlee in #350
- feature. add policy when stack create by @ktkfree in #352
- 다음 api 추가 by @sangkenlee in #351
- bugfix. fix error handling by @cho4036 in #353
- trivial. add is_system to systemNotificationTemplate & Role by @ktkfree in #354
- 정책 템플릿 버전업 관련 기능 수정 by @sangkenlee in #355
- feature. add policy type to systemNotification by @ktkfree in #356
- 20240403 policy status by @seungkyua in #358
- 파라미터가 빈 경우 CR 변환버그 픽스 by @sangkenlee in #357
- 정책 이름 중복 검사 api 버그 픽스 by @sangkenlee in #359
- trivial. bugfix by @ktkfree in #360
- 정책 및 템플릿 버전업 통계 기능 추가 by @sangkenlee in #361
- trivial. remove invalid validation tag from organization by @ktkfree in #363
- Get ProjectNamespace Kubeconfig API 추가 by @cho4036 in #362
- rollback. rollback to previous commit by @ktkfree in #364
- StackPolicyStatistics API에 tks템플릿, org 템플릿으로 생성된 정책 수 추가 by @sangkenlee in #365
- trivial. bugfix for mashaling by @ktkfree in #367
- 20240409 policy update by @seungkyua in #366
- ProjectNamespace 조회 시, GrafanaUrl이 포함되도록 수정 by @cho4036 in #368
- trivial. bugfix for creating stack by @ktkfree in #369
- feature. add email template for systemNotification by @ktkfree in #371
- Policy validation by @sangkenlee in #370
- feature. support sending email to multiple targets by @ktkfree in #372
- 리소스명, kind, version 등 기타 validation by @sangkenlee in #373
- Policy match validate by @sangkenlee in #374
- trivial. add checking logic snr email by @ktkfree in #375
- feature. bug fix for stack_templates by @ktkfree in #377
- tks 템플릿 생성시 DB 에러 픽스 by @sangkenlee in #379
- policy resource name validation 버그 픽스 by @sangkenlee in #378
- feature. disable default snr rules by @ktkfree in #376
- 20240410 policy enforcement by @seungkyua in #380
- appserving 목록 조회시 org 내의 모든 app이 리턴되는 오류 수정 by @robertchoi80 in #381
- spec.clusters: Required value 버그 픽스 by @sangkenlee in #382
- trivial. fix update systemNotificationRUle by @ktkfree in #383
- trivial. support array filter on users by @ktkfree in #384
- bugfix: pass value to serializer by @robertchoi80 in #385
- 20240415 policy violation by @seungkyua in #386
- GetPolicyForEdit fill parameter 버그 수정 by @sangkenlee in #387
- trivial. add user roles to audit by @ktkfree in #388
- trivial. bugfix for stack node count by @ktkfree in #389
- trivial. add status to systemNotificationRule by @ktkfree in #391
- 정책 업데이트 버그 픽스 by @sangkenlee in #390
- 20240416 policy violation log by @seungkyua in #392
- trivial. fix filters by @ktkfree in #393
- 20240417 policy statistics by @seungkyua in #395
- trivial. fix validation by @ktkfree in #396
- 20240418 dashboard path by @seungkyua in #397
- bugfix: add cluster name to app response by @robertchoi80 in #394
- PolicyTemplate permittedOrganizations 수정 by @sangkenlee in #398
- trivial. bugfix for application type by @ktkfree in #399
- 다중 libs를 ---\n로 병합해서 처리 가능하도록 개선 by @sangkenlee in #400
- 20240418 dashboard workload by @seungkyua in #402
- clusterId로 policyId 목록 조회 함수 추가 by @sangkenlee in #401
- 정책 관리 K8s 연동 에러로그 추가 by @sangkenlee in #403
- feature. delete policies before stack deletion by @ktkfree in #404
- fix workload widget panic by @seungkyua in #405
- bugfix. wrong constant value by @cho4036 in #406
- 20240419 policy violation top5 by @seungkyua in #407
- 파라미터 추출 기능 개선 by @sangkenlee in #408
- Fix a bug where only the existing leader of a project was deleted by @seungkyua in #409
- bugfix. fix update-my-profile by @cho4036 in #411
- 20240422 change workload dashboard by @seungkyua in #412
- Template CR 생성 시 포맷팅 개선 by @sangkenlee in #410
- 20240422 search by project name by @seungkyua in #413
- bugfix. fix delete tks role API by @cho4036 in #414
- feature. add policy notification hadlers by @ktkfree in #415
- trivial. add route policyNotification by @ktkfree in #416
- Gatekeeper 템플릿 스키마에 addtionalProperties가 추가되어 전달되는 버그 수정 by @sangkenlee in #417
- tkspolicy 필드 변경 params->parameters by @sangkenlee in #418
- Filter fix by @ktkfree in #419
- OPA Gatekeeper 전용함수 external_data를 문법 체크 시 정확히 인식 by @sangkenlee in #420
- minor fix. change user deletion from hard to soft by @cho4036 in #423
- ListPolicy에 filledParameter 옵션 추가 by @sangkenlee in #422
- feature. add policy notification to default gernetation by @ktkfree in #421
- bugfix. fix update role name error by @cho4036 in #424
- trivial. update status when snr deleting by @ktkfree in #425
- Bugfix. Myprofile API 수정 및 Permission 조회 시 순서 보장 by @cho4036 in #426
- tks 요청이 정책에 차단되지 않도록 템플릿 생성 시 가드 추가 by @sangkenlee in #427
- feature. add api to audit by @ktkfree in #428
- [RE] bugfix. fix permission ordering error by @cho4036 in #429
- feature. change audit scheme and remove database constraint by @ktkfree in #431
- trivial. fix typo by @ktkfree in #432
- trivial. add organization name to audits by @ktkfree in #433
- trivial. add favorite field to stack response by @ktkfree in #434
- trivial. add appserveapps count to stack response by @ktkfree in #435
- 20240425 change projects function by @seungkyua in #436
- feature. personalization systemNotifications by @ktkfree in #438
- 파라미터 추출 개선, 글로벌 변수 할당 처리 by @sangkenlee in #437
- feature. change email html by @ktkfree in #439
- trivial. update html temporary_password by @ktkfree in #440
- fix to update with empty value by @cho4036 in #443
- 앱서빙 API 리팩토링 by @robertchoi80 in #442
- trivial. add default systemNotificationTemplate when organization cre… by @ktkfree in #441
- bugfix: relate task with parent app on create job by @robertchoi80 in #444
- feature. add api stack-templates/template-ids by @ktkfree in #445
- feature. policy notifiation by @ktkfree in #446
- trivial. enable log for policyNotification by @ktkfree in #447
- trivial. add debug log for policyNotification by @ktkfree in #450
- 템플릿 업데이트 시 동일한 네임 중복체크 에러 수정 등 by @sangkenlee in #449
- kind 화이트리스트 검증 및 apigroup autofill by @sangkenlee in #448
- Policy Get에서 NotFound 에러를 별도 처리하지 않도록 수정 by @sangkenlee in #451
- feature. implemtation policy-violation-log by @ktkfree in #454
- trivial. resize tks-api logs by @ktkfree in #455
- bugfix: pass project_id on rollbacking app by @robertchoi80 in #453
- trivial. bug fix by @ktkfree in #456
- tirivial. add policyName to policyNotification by @ktkfree in #457
- 템플릿 목록 조회(조직)에서 현재 버전과 최신 버전 표시 by @sangkenlee in #452
- policy match kind: nil derefence error fix by @sangkenlee in #458
- policy resource name 중복 체크 api 추가 by @sangkenlee in #459
- 정책명 업데이트 버그 수정 by @sangkenlee in #461
- add update stack-template name by @cho4036 in #460
- Permission-API Endpoint mapping 개선 by @cho4036 in #462
- bugfix. fix ordering of auto migration by @cho4036 in #463
- Revert "bugfix. fix ordering of auto migration" by @ktkfree in #464
- Revert "Permission-API Endpoint mapping 개선" by @ktkfree in #465
- trivial. fix audit when user failed login by @ktkfree in #466
- trivial. add byoh test code by @ktkfree in #467
- trivial. add api for policy-notification by @ktkfree in #468
- trivial. fix typo by @ktkfree in #469
- fill in return data after sorting by @seungkyua in #471
- 파라미터 추출 개선(array index를 var로 참조 케이스) by @sangkenlee in #473
- bugfix: return availableRollback value by GetTasks API by @robertchoi80 in #470
- gorm DB 관계 업데이트 시 제외 처리가 안 되어 중복 레코드 삽입시도되는 버그 수정 by @sangkenlee in #472
- feature. implementation calculating resources for namespace by @ktkfree in #475
- trivial. fix marshall error response by @ktkfree in #474
- Bugfix: disable rollback of latest task by @robertchoi80 in #477
- temp-fix: make appserving dashboard not being refreshed for now by @robertchoi80 in #478
- trivial. add attribute to audit by @ktkfree in #479
- feature. add force deleting logic when the cluster status was invalid by @ktkfree in #476
- minor fix. fix url of kubeconfig by @cho4036 in #480
- trivial. disable email on default systemnotification by @ktkfree in #481
- tirivial. fix typo by @ktkfree in #482
- 파라미터를 명시하지 않은 정책을 적용할 때 버그 수정 by @sangkenlee in #483
- trivial. fix typo error by @ktkfree in #484
- feature. add policyName to systemNotification by @ktkfree in #485
- trivial. fix typo; by @ktkfree in #487
- bugfix. User role에 대한 권한 부여 버그 수정 by @cho4036 in #488
- feature. fix minor bugs by @ktkfree in #489
- trivial. fix messageActionProposal on policy_notifications by @ktkfree in #490
- trivial. fix filter for policyNotifications by @ktkfree in #491
- 데이터 동기화 설정 필드 추가 by @sangkenlee in #492
- 20240517 develop to release ( v4.0.0 ) by @ktkfree in #493
- Cluster Admin 권한 추가 및 keycloak 설정 자동화 by @cho4036 in #494
- Collect user app pod log by @robertchoi80 in #495
- 240521 develop to release by @ktkfree in #496
- trivial. update validation rule for user & organization by @ktkfree in #497
- 권한부여하지 않은 tks 템플릿 사용 불가하도록 수정 by @sangkenlee in #498
- trivial. fix user filter for organizations by @ktkfree in #499
- 240521 develop to release by @ktkfree in #500
- Bugfix. TKS 관리자 생성과 관련한 버그 수정 by @cho4036 in #501
- trivial. change alarm name to warning from audit by @ktkfree in #502
- trivial. change snr policy type by @ktkfree in #503
- policy guard rule audit bugfix by @sangkenlee in #504
- change kubeConfig / kube-config -> kubeconfig by @cho4036 in #505
- 240523 develop to release by @ktkfree in #506
- trivial. add debug log by @ktkfree in #507
- feature. fix bug - policy violation by @ktkfree in #508
- trivial. fix error for policyViolationTop5 by @ktkfree in #509
- trivial. fix error code for thanosclient by @ktkfree in #510
- 20240523 release to develop back merge by @ktkfree in #511
- 템플릿, 템플릿 버전 저장 시 rego 문법 validation by @sangkenlee in #514
- 템플릿 유형(kind) 검증 정규식 수정 by @sangkenlee in #513
- 정책 api match kind 타입 변경 by @sangkenlee in #512
- trivial. fix cluster site-value bug by @ktkfree in #515
- 240528 release to develop ( back merge ) by @ktkfree in #516
- Typo by @sangkenlee in #520
- Param extract rego v1 by @sangkenlee in #519
- Latest version bugfix by @sangkenlee in #518
- 템플릿 조회 시 현재 클러스터에 적용된 템플릿 버전이 표시되도록 수정 by @sangkenlee in #517
- 240618 release to develop ( back merge ) by @ktkfree in #521
- Permitted Org가 할당 안 된 경우 전체 조직이 Permitted Org에 표시되는 버그 수정 by @sangkenlee in #522
- trivial: increase num of log lines by @robertchoi80 in #523
- feature. implementation resume scenario when byoh cluster installing by @ktkfree in #524
- trivial. change stopped status by @ktkfree in #525
- tirivial. change stop status by @ktkfree in #526
- feature. add api IsPausedWorkflow by @ktkfree in #528
- feature. add domains to createCluster by @ktkfree in #529
- trivial. add clusterDomains to sitevalues api by @ktkfree in #530
- trivial. minor fixes by @ktkfree in #531
- trivial. fix parameters for creating lma by @ktkfree in #532
- trivial. fix minor bug by @ktkfree in #533
- feature. add import api to stacks resource by @ktkfree in #534
- feature. add import api to stacks resource by @ktkfree in #535
- trivial. change type to string from []byte for kubeconfig by @ktkfree in #536
- trivial. change type to string from []byte for kubeconfig by @ktkfree in #537
- feature. add GetCloudServices to stack-template API by @ktkfree in #538
- feature. add pprof for profiling by @ktkfree in #539
- trivial. remove omitempty for getStack response by @ktkfree in #540
- trivial. change deliminator for domains by @ktkfree in #541
- trivial. change deliminator for domains by @ktkfree in #542
- trivial. fix lint error by @ktkfree in #544
- 20241002 release from develop by @ktkfree in #543
- 241015 main from release ( v3.2.1 ) by @ktkfree in #545
New Contributors
- @sangkenlee made their first contribution in #274
Full Changelog: v3.1.3...v4.0.0