From 9ca02069c6d874ae5cc1f9ad5e9ceb5f44d696c0 Mon Sep 17 00:00:00 2001 From: Taekyu Date: Wed, 13 Apr 2022 14:53:00 +0900 Subject: [PATCH] feature. update readme --- README.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6b79054..a084cb8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ # tks-common -tks 서비스에서 사용하는 정적인 라이브러리들을 관리하는 repository. -각 tks 서비스는 상호 의존을 최대한 지양하며, tks-common 을 import 하는 구조로 설계한다. +[![Go Report Card](https://goreportcard.com/badge/github.com/openinfradev/tks-common?style=flat-square)](https://goreportcard.com/report/github.com/openinfradev/common) +[![Go Reference](https://pkg.go.dev/badge/github.com/openinfradev/common.svg)](https://pkg.go.dev/github.com/openinfradev/common) +[![Release](https://img.shields.io/github/release/sktelecom/tks-common.svg?style=flat-square)](https://github.com/openinfradev/tks-common/releases/latest) + +TKS는 TACO Kubernetes Service의 약자로, SK Telecom이 만든 GitOps기반의 서비스 시스템을 의미합니다. 그 중 tks-common은 각 tks 컴포넌트에서 공통으로 사용하는 정적인 라이브러리를 관리하는 컴포넌트입니다. 모든 tks 컴포넌트는 본 repository 를 import 하는 구조로 설계하며, 상호 의존을 지양합니다. | pkg | 목적 | |--------|-------------| @@ -10,3 +13,65 @@ tks 서비스에서 사용하는 정적인 라이브러리들을 관리하는 re | log | tks-apis 에서 사용하는 log package 로, 로그 레벨에 따른 로그출력을 표준화 | | helper | 기타 utilities | + +### tks-common을 사용한 tks service startup 예제 +```go +import "github.com/openinfradev/tks-common/pkg/grpc_server" + +func YOUR_FUNCTION(YOUR_PARAMS...) { + // start server + s, conn, err := grpc_server.CreateServer(port, tlsEnabled, tlsCertPath, tlsKeyPath) + if err != nil { + log.Fatal("failed to crate grpc_server : ", err) + } +} +``` + +### tks-common을 사용한 tks component 간 gRPC API 호출 예제 (golang) +```go +import pb "github.com/openinfradev/tks-proto/tks_pb" +import "github.com/openinfradev/tks_common/pkg/gprc_client" + +func YOUR_FUNCTION(YOUR_PARAMS...) { + if _, clusterInfoClient, err = grpc_client.CreateClusterInfoClient(infoAddress, infoPort, false, ""); err != nil { + // error + } + res, err := clusterInfoClient.GetCluster(ctx, &pb.GetClusterRequest{ClusterId: clusterId}) + if err != nil { + // error + } +} + +``` + +### tks-common을 사용한 tks logging 예제 +```go +import "github.com/openinfradev/tks-common/pkg/log" + +func YOUR_FUNCTION(YOUR_PARAMS...) { + log.Debug( "DEBUG 목적의 로깅을 위해 사용합니다. 서버 startup시 LOG_LEVEL을 명시적으로 DEBUG 로 설정해야 출력됩니다.") + log.Info( "일반적인 INFO 목적의 로깅을 위해 사용합니다.") + log.Error( "ERROR 목적의 로깅을 위해 사용합니다.") + log.Fatal( "일반적으로 사용되지 않습니다. Fatal 로깅후 서버를 강제로 종료합니다.") + + log.Debug( "간단한 parameter 로깅은 이와 같이 표현할 수 있습니다. ", param1 ) + log.Debug( fmt.Sprintf("상세한 parameter 로깅은 fmt.Sprintf() 를 혼합하여 표현 할 수 있습니다. (%s) ", param1) ) +} +``` + +### tks-common을 사용한 argo workflow 호출 예제 +```go +import "github.com/openinfradev/tks-common/pkg/argowf" + +func YOUR_FUNCTION(YOUR_PARAMS...) { + argowfClient, err = argowf.New(argoAddress, argoPort) + if err != nil { + // error + } + + workflowId, err := argowfClient.SumbitWorkflowFromWftpl(ctx, workflow, nameSpace, parameters) + if err != nil { + // error + } +} +```