Documentation
¶
Index ¶
- Constants
- Variables
- func ChangeJwtDecodeFormat(userId string) (string, error)
- func Contains(slice []string, item string) bool
- func CreatePatch(po *[]PatchOps, o, p string, v interface{})
- func CreateToken(clusterMember ClusterMemberInfo) (string, error)
- func ExtractTokenFromHeader(r *http.Request) string
- func ExtractTokenFromQuery(r *http.Request) string
- func IsCertUptoDate(certFile, keyFile string, secret corev1.Secret) bool
- func MonthToInt(month time.Month) int
- func ReadFile()
- func Remove(slice []string, item string) []string
- func Search(NamespacedNameList []types.NamespacedName, ...) *clusterv1alpha1.ClusterManagerList
- func SendEmail(from string, to []string, subject string, bodyParameter map[string]string) error
- func SetResponse(res http.ResponseWriter, outString string, outJson interface{}, status int) http.ResponseWriter
- func StringParameterException(userGroups []string, args ...string) error
- func ToAdmissionResponse(err error) *v1beta1.AdmissionResponse
- func TokenValid(r *http.Request, clusterMember ClusterMemberInfo) ([]string, error)
- func UpgradeWebsocket(res http.ResponseWriter, req *http.Request) (*gsocket.Conn, error)
- func VerifyToken(r *http.Request) (*jwt.Token, error)
- type ClusterMemberInfo
- type PatchOps
Constants ¶
View Source
const ( HEADER_PARAMETER_AUTHORIZATION = "authorization" QUERY_PARAMETER_OFFSET = "offset" QUERY_PARAMETER_LIMIT = "limit" QUERY_PARAMETER_NAMESPACE = "namespace" QUERY_PARAMETER_USER_ID = "userId" QUERY_PARAMETER_TIMEUNIT = "timeUnit" QUERY_PARAMETER_STARTTIME = "startTime" QUERY_PARAMETER_ENDTIME = "endTime" QUERY_PARAMETER_SORT = "sort" QUERY_PARAMETER_RESOURCE = "resource" QUERY_PARAMETER_CODE = "code" QUERY_PARAMETER_CONTINUE = "continue" QUERY_PARAMETER_LABEL_SELECTOR = "labelSelector" QUERY_PARAMETER_PERIOD = "period" QUERY_PARAMETER_NAME = "name" QUERY_PARAMETER_USER_GROUP = "userGroup" QUERY_PARAMETER_GRANULARITY = "granularity" QUERY_PARAMETER_METRICS = "metrics" QUERY_PARAMETER_DIMENSION = "dimension" QUERY_PARAMETER_KEY = "key" QUERY_PARAMETER_VALUE = "value" QUERY_PARAMETER_API = "api" QUERY_PARAMETER_ACCOUNT = "account" QUERY_PARAMETER_KIND = "kind" QUERY_PARAMETER_TYPE = "type" QUERY_PARAMETER_HOST = "host" //HyperAuth HYPERAUTH_SERVICE_NAME_LOGIN_AS_ADMIN = "/auth/realms/master/protocol/openid-connect/token" HYPERAUTH_SERVICE_NAME_USER_DETAIL = "/auth/realms/tmax/user/" HYPERCLOUD_KUBECTL_NAMESPACE = "hypercloud-kubectl" HYPERCLOUD_KUBECTL_PREFIX = "hypercloud-kubectl-" HYPERCLOUD_KUBECTL_LABEL_KEY = "hypercloud" HYPERCLOUD_KUBECTL_LABEL_VALUE = "kubectl" HYPERCLOUD_KUBECTL_CONFIGMAP_DELETE_WAIT_TIME = 120 HYPERCLOUD_KUBECTL_BASE_IMAGE = "docker.io/tmaxcloudck/kubectl:1.25" HYPERCLOUD4_NAMESPACE = "hypercloud4-system" HYPERCLOUD4_CLAIM_API_GROUP = "claim.tmax.io" CLAIM_API_GROUP = "claim.tmax.io" CLAIM_API_Kind = "clusterclaims" CLAIM_API_GROUP_VERSION = "claim.tmax.io/v1alpha1" CLUSTER_API_GROUP = "cluster.tmax.io" CLUSTER_API_Kind = "clustermanagers" CLUSTER_API_GROUP_VERSION = "cluster.tmax.io/v1alpha1" HYPERCLOUD_SYSTEM_NAMESPACE = "hypercloud5-system" KubeNamespace = "kube-system" TEST = "<!DOCTYPE html>\r\n" + "<html lang=\"en\">\r\n" + "<head>\r\n" + " <meta charset=\"UTF-8\">\r\n" + " <title>HyperCloud 서비스 신청 승인 완료</title>\r\n" + "</head>\r\n" + "<body>\r\n" + "<div style=\"border: #c5c5c8 0.06rem solid; border-bottom: 0; width: 42.5rem; height: 53.82rem; padding: 0 1.25rem\">\r\n" + " <header>\r\n" + " <div style=\"margin: 0;\">\r\n" + " <p style=\"font-size: 1rem; font-weight: bold; color: #333333; line-height: 3rem; letter-spacing: 0; border-bottom: #c5c5c8 0.06rem solid;\">\r\n" + " HyperCloud 서비스 신청 승인 완료\r\n" + " </p>\r\n" + " </div>\r\n" + " </header>\r\n" + " <section>\r\n" + " <figure style=\"text-align: center;\">\r\n" + " <img style=\"margin: 0.94rem 0;\"\r\n" + " src=\"cid:trial-approval\">\r\n" + " </figure>\r\n" + " <div style=\"width: 35.70rem; margin: 0 2.75rem;\">\r\n" + " <p style=\"font-size: 1.5rem; font-weight: bold; line-height: 3rem;\">\r\n" + " 축하합니다.\r\n" + " </p>\r\n" + " <p style=\"line-height: 1.38rem;\">\r\n" + " 고객님의 Trial 서비스 신청이 성공적으로 승인되었습니다. <br>\r\n" + " 지금 바로 티맥스의 소프트웨어와 검증을 거친 오픈소스 서비스를 결합한 클라우드 플랫폼, <br>\r\n" + " HyperCloud를 이용해 보세요. <br>\r\n" + " <br>\r\n" + " 네임스페이스 이름 : <span style=\"font-weight: 600;\">%%NAMESPACE_NAME%%</span> <br>\r\n" + " Trial 기한 : %%TRIAL_START_TIME%% ~ %%TRIAL_END_TIME%% <br>\r\n" + " <br>\r\n" + " 리소스 정보 <br>\r\n" + " -CPU : 1 Core <br>\r\n" + " -Memory : 4 GIB <br>\r\n" + " -Storage : 4 GIB <br>\r\n" + " <br>\r\n" + "<!-- <span style=\"font-weight: 600;\">승인사유</span> <br>-->\r\n" + " <br>\r\n" + "\r\n" + " 감사합니다. <br>\r\n" + " TmaxCloud 드림.\r\n" + " </p>\r\n" + " <p style=\"margin: 3rem 0;\">\r\n" + " <a href=\"https://console.tmaxcloud.com\">Tmax Console 바로가기 ></a>\r\n" + " </p>\r\n" + " </div>\r\n" + " </section>\r\n" + "</div>\r\n" + "<footer style=\"background-color: #3669B3; width: 45.12rem; height: 1.88rem; font-size: 0.75rem; color: #FFFFFF; display: flex;\r\n" + " align-items: center; justify-content: center;\">\r\n" + " <div>\r\n" + " COPYRIGHT2020. TMAX A&C., LTD. ALL RIGHTS RESERVED\r\n" + " </div>\r\n" + "</footer>\r\n" + "</body>\r\n" + "</html>" )
Variables ¶
View Source
var ( SMTPUsernamePath string SMTPPasswordPath string SMTPHost string SMTPPort int AccessSecretPath string HtmlHomePath string TokenExpiredDate string ParsedTokenExpiredDate time.Duration ValidTime string LogLevel string )
View Source
var (
HYPERCLOUD_KUBECTL_IMAGE string
)
Functions ¶
func ChangeJwtDecodeFormat ¶
userid format을 jwt-docode-auth에서 읽을 수 있도록 변환
func CreatePatch ¶
Jsonpatch를 하나 만들어서 slice에 추가하는 함수
func CreateToken ¶
func CreateToken(clusterMember ClusterMemberInfo) (string, error)
func ExtractTokenFromHeader ¶
func ExtractTokenFromQuery ¶
func IsCertUptoDate ¶
Check if certificate is updated. Return true if certificate secret is updated, return false if not.
func MonthToInt ¶
func Search ¶
func Search(NamespacedNameList []types.NamespacedName, clmList *clusterv1alpha1.ClusterManagerList) *clusterv1alpha1.ClusterManagerList
func SetResponse ¶
func SetResponse(res http.ResponseWriter, outString string, outJson interface{}, status int) http.ResponseWriter
func ToAdmissionResponse ¶
func ToAdmissionResponse(err error) *v1beta1.AdmissionResponse
Response.result.message에 err 메시지 넣고 반환
func TokenValid ¶
func TokenValid(r *http.Request, clusterMember ClusterMemberInfo) ([]string, error)
func UpgradeWebsocket ¶
Types ¶
type ClusterMemberInfo ¶
Click to show internal directories.
Click to hide internal directories.