feat: 增加namespace
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
112ae73203
commit
e38bf7e1af
|
@ -0,0 +1,24 @@
|
|||
reg:
|
||||
registry: reg.icechen.cn
|
||||
username: ananta
|
||||
password: ananta01
|
||||
|
||||
kube:
|
||||
zeus:
|
||||
onl:
|
||||
kube_api_server: https://paw.show:6443
|
||||
kube_certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeE1USXlNakU0TVRNME1sb1hEVE14TVRJeU1ERTRNVE0wTWxvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTE0zCjNDSGRweGRmMDMvR2xEME1Gb1VrYmJFR2VuRHl3U1pINERnbzZ6NzJZUGVyNi9WR3M2enVzTlRic0VKKzNHOUoKSlJteDVYUlVmZDhCVFVUblUzYVJQUFdtK0NEbDNDZERHUUdpYWNySldrMnZVaHQzdXBSbDhUOXdJL0YwejB0RgpWQW5qVmlWVmZndmIvNjliZnNQSjJtV3JPWWY3M25CVWs5VjFyRjRQRSs2cXFEUG1pTm1zb1F0SFdBNjBpclh2CkFtd3ZuMFo0S2RudFdWUlNVU3VXU21QaUlIQzVSdlZUa3QrR0hQcW5WRUl1YXlNcjlxTVI3eWRjdDJBNmptNTIKcnZ6NGlKdEV2blhFbGx3VS9QUkRoeEZjaldOTFM1akEyNEpZOVRjOE90Z2syM2FlY2NHSUZOeW9HcnRPTXVIZgpJVkQxdyt2TWVaQ0ZKMzVvdFhjQ0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZFakN1bEtxU0dKY2JxejUvOXVSQzBjVW1ybkFNQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFCN1RFZEtTdlNLb3F3b1FCUnZpTktlVTM0bWd5NUE2Q3JMQmwxUWQ1aVdkRitXWU1PRApub3JJOGJERmJUTy92VGpNUWo4eGJoNk5lbDdlenkxZU0wRFhHM0FESS9hVVM1VHlVaVlyNFpNd3NWY0ZaT2crCjJXam9uYzFUSzdHdk44TmdkYjZVZzUvUklVZis5S1pyZSsrQkgvRWJhMUNWU3JzcDRYNDJvOWFCQ0FzUE1zZmwKRHlCSHNiRk1Vb1BYZU5vaSsvTlZmamlvd2duVXJkY2puTUxXeUh3N3ZCSTJKeFE5Qy96MHVNVHNnU2VwRVk4ZApmSHd5R0M0Z1RTTzI0WGV2V0grb2ROOFpGQTJJZ1pJaHhhZ0dWeG1ZaWpyZ0N6dTBucWdxWUxlRitkb25jOUxMCmxFR0pxRU94R251NzU4aHJRSFlhK25QYk9heWlGbzlsOE93MwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
||||
kube_token: eyJhbGciOiJSUzI1NiIsImtpZCI6IlhNRC1VNk1pcXR1bEowR2pnWTNhQ0ZVTjU1YWs3d041ejFZdER6bmwxR28ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJ6ZXVzIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRyb25lLXRva2VuLWpzeDQyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRyb25lIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiOWQ3MmU1ZWEtMjk4Mi00ZWFkLWIyMzUtOTBlMjg2NjA1ZTY1Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnpldXM6ZHJvbmUifQ.IMiYpJ5ckUESrGMaea_OpPx_D0lCg7OwhwHopKBDJmZdFHLXa321p27D2MqU8br3UtqrRnda-If77821VsPZ_h_VsILY_yxLGBS8lLEn8b2hSRmc3QIjAFZ9u4lFxON2EqOvQT2dzuZXtn_FgYx_RFwC78RleY7Wz7h6ikEVYghc7Z19FwlAGx8k9MDpDmNgYxGdGqoYt34KXAo2Syj1knzDrdheJvpkOAsmTluK__OHF9y3kAk-HPBR964EWj3eQlfJUwPxsedYgyKE1ypaOTaW4H4ZMfIzuW-RVmLQKJtYhei1IxMFWvYuhJ_RAxmKgKZarYjvmpTlZr7fzwLp2g
|
||||
test:
|
||||
kube_api_server: https://new.icechen.cn:6443
|
||||
kube_certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUyTkRFek5URTJNekl3SGhjTk1qSXdNVEExTURNd01ETXlXaGNOTXpJd01UQXpNRE13TURNeQpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUyTkRFek5URTJNekl3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFRM1N3L1M3SFBFMnJ5WnR1ZE1TWlJzSzdROUZmUmJ2bDZldFBBRmZreU0KT1gwOEhRaTZPQWpidXh3azE0MG54b2p6T2trRHZnWkZNTmFhcUZJSlhoWEtvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVS9aMmdWVStIR0U0Mm43dnNjNEJQCmU3engyb2t3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQU1xa1l4VEhSWjN4c0E0bUYxRFhnb3pIWjJMMEF3eGcKRVJUQnZDZzQvVmZ6QWlBV0gxa2k4UjczNk5MRmJHNW80bFhGeHIyYlVDcWlCRW9tU2pVdHd2VTA2QT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
kube_token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImNpSTl3LWZ5SFlZcklEbzlldlY1NnYtWGR2MjFIUm9neFpzWEgxblBQTWsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJ6ZXVzIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRyb25lLXRva2VuLWdrMjlxIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRyb25lIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiODkwZDkxMTgtNzU0ZS00YjYwLTkzYjQtMmQyMGFjZDE5ODliIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnpldXM6ZHJvbmUifQ.Y77dPrm9zscU6h-3wacvd8qtQBF0HR8cEX3ywiGKOu25Oqu92h8VlS-kd8QWKooOEnxgkY2t2dj7XmwMe79i85VFlNtAv5fXYjjF2bFfS_ST5GqQXeHArMRHtzPvB8BkLqDo2DfIOphyzKPj4eADw6tke5QsYheCRpV4RCyXbExTTy8Gco8jcvERkkV6Q8hpYEPnjKMyyfPURFul1ageSsWrjFTJ3E2alZOKjo6jgPlVeoCK5KzWrZtn8F0ihmFtpFWQ334uWs-KuwIm6RjiusL_3eisRY3eSqF0U2pwyIF2wyuV0AOt6iGXkh63MWMh-1LjJoftR2vPwt7pDjUL_w
|
||||
brahma:
|
||||
onl:
|
||||
kube_api_server: https://paw.show:6443
|
||||
kube_certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeE1USXlNakU0TVRNME1sb1hEVE14TVRJeU1ERTRNVE0wTWxvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTE0zCjNDSGRweGRmMDMvR2xEME1Gb1VrYmJFR2VuRHl3U1pINERnbzZ6NzJZUGVyNi9WR3M2enVzTlRic0VKKzNHOUoKSlJteDVYUlVmZDhCVFVUblUzYVJQUFdtK0NEbDNDZERHUUdpYWNySldrMnZVaHQzdXBSbDhUOXdJL0YwejB0RgpWQW5qVmlWVmZndmIvNjliZnNQSjJtV3JPWWY3M25CVWs5VjFyRjRQRSs2cXFEUG1pTm1zb1F0SFdBNjBpclh2CkFtd3ZuMFo0S2RudFdWUlNVU3VXU21QaUlIQzVSdlZUa3QrR0hQcW5WRUl1YXlNcjlxTVI3eWRjdDJBNmptNTIKcnZ6NGlKdEV2blhFbGx3VS9QUkRoeEZjaldOTFM1akEyNEpZOVRjOE90Z2syM2FlY2NHSUZOeW9HcnRPTXVIZgpJVkQxdyt2TWVaQ0ZKMzVvdFhjQ0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZFakN1bEtxU0dKY2JxejUvOXVSQzBjVW1ybkFNQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFCN1RFZEtTdlNLb3F3b1FCUnZpTktlVTM0bWd5NUE2Q3JMQmwxUWQ1aVdkRitXWU1PRApub3JJOGJERmJUTy92VGpNUWo4eGJoNk5lbDdlenkxZU0wRFhHM0FESS9hVVM1VHlVaVlyNFpNd3NWY0ZaT2crCjJXam9uYzFUSzdHdk44TmdkYjZVZzUvUklVZis5S1pyZSsrQkgvRWJhMUNWU3JzcDRYNDJvOWFCQ0FzUE1zZmwKRHlCSHNiRk1Vb1BYZU5vaSsvTlZmamlvd2duVXJkY2puTUxXeUh3N3ZCSTJKeFE5Qy96MHVNVHNnU2VwRVk4ZApmSHd5R0M0Z1RTTzI0WGV2V0grb2ROOFpGQTJJZ1pJaHhhZ0dWeG1ZaWpyZ0N6dTBucWdxWUxlRitkb25jOUxMCmxFR0pxRU94R251NzU4aHJRSFlhK25QYk9heWlGbzlsOE93MwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
||||
kube_token: eyJhbGciOiJSUzI1NiIsImtpZCI6IlhNRC1VNk1pcXR1bEowR2pnWTNhQ0ZVTjU1YWs3d041ejFZdER6bmwxR28ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJicmFobWEiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoiZHJvbmUtdG9rZW4tY3pxZ3AiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZHJvbmUiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJjZmY0NjFmZC01MGE2LTRkMzMtODAxNy0zNGNmMzdkNTAwMWUiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6YnJhaG1hOmRyb25lIn0.SYVgYctcXDYOXg6y92b5vEpSPPPo7MXIwhZ008boz0V07tAIhNyGygFOiEBxnaWEQFqOPnuIUi1e_HAUbOOqWFGq0Do4A0yAUvb7aMYVAvaRTb7eB2UbW4MLPKyJWk00MYrq9Zxbrqh38DrWeF8nCpx6LP2m30uYgOW2OcKBSsR5cZCC6p3p_QoOGNFWhIoBrjShO2eFG64nRBB1g9uTbGulvjfS_t9Nyh_umxdaPRMv0yWL0o6wKIjN_8eunlZVZgANxvrUTfyLAA3MlVZ1FmyzbU2BrkRc6Vnpme_0o9Q_5YADdFs8YwgcMpDz1_8wOlOAaGBYN4lJyiiz_QfjKA
|
||||
test:
|
||||
kube_api_server: https://new.icechen.cn:6443
|
||||
kube_certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUyTkRFek5URTJNekl3SGhjTk1qSXdNVEExTURNd01ETXlXaGNOTXpJd01UQXpNRE13TURNeQpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUyTkRFek5URTJNekl3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFRM1N3L1M3SFBFMnJ5WnR1ZE1TWlJzSzdROUZmUmJ2bDZldFBBRmZreU0KT1gwOEhRaTZPQWpidXh3azE0MG54b2p6T2trRHZnWkZNTmFhcUZJSlhoWEtvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVS9aMmdWVStIR0U0Mm43dnNjNEJQCmU3engyb2t3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQU1xa1l4VEhSWjN4c0E0bUYxRFhnb3pIWjJMMEF3eGcKRVJUQnZDZzQvVmZ6QWlBV0gxa2k4UjczNk5MRmJHNW80bFhGeHIyYlVDcWlCRW9tU2pVdHd2VTA2QT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
||||
kube_token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImNpSTl3LWZ5SFlZcklEbzlldlY1NnYtWGR2MjFIUm9neFpzWEgxblBQTWsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJicmFobWEiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoiZHJvbmUtdG9rZW4teHJoczIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZHJvbmUiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIxNWMwOWFhYi1jNzc1LTRiNTUtOTFiNy1hYjM3ZmQ3NmQxZDMiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6YnJhaG1hOmRyb25lIn0.dUB76nLlzOqJtylHA4k34GMQVxVNBO440iUibcA817SODS6ZExL6HPrVhLXjrrcUyEpp7zSsojeh-BBX8L23AtX--tFHq9tUoo-0MrjT_s9BnmSvDSrLHOyk0-5CyXuYaCW_Bf8kqE-zt4yg3isyV2W8tO0nFX3fILbLRU7vWvP0wd_n_KLrn1QENF-iQQoDEaoO-Cfy6DQSoHMcwuUcgbAJYUGVP92DteyXgpwArzsACtbuEq1uCXezy_5ZLHEy_wqKmVndSQoaUgU7Z4Fir6VdKXa6p0yi7WfYALp4j1tKTDLbEixraUqDoHSTZKMD46DhY1Jr8SSjF76pMYojbQ
|
|
@ -0,0 +1,58 @@
|
|||
package config
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
//go:embed "config.yaml"
|
||||
var configData []byte
|
||||
|
||||
type Config struct {
|
||||
Reg Registry `json:"reg" yaml:"reg"`
|
||||
Kube map[string]Kube `json:"kube" yaml:"kube"`
|
||||
}
|
||||
|
||||
// Registry 镜像仓库信息
|
||||
type Registry struct {
|
||||
Registry string `json:"registry" yaml:"registry"`
|
||||
Username string `json:"username" yaml:"username"`
|
||||
Password string `json:"password" yaml:"password"`
|
||||
}
|
||||
|
||||
// Kube kube信息
|
||||
type Kube struct {
|
||||
Onl KubeConfig `json:"onl" yaml:"onl"`
|
||||
Test KubeConfig `json:"test" yaml:"test"`
|
||||
}
|
||||
|
||||
type KubeConfig struct {
|
||||
KubeApiServer string `json:"kube_api_server" yaml:"kube_api_server"`
|
||||
KubeCertificate string `json:"kube_certificate" yaml:"kube_certificate"`
|
||||
KubeToken string `json:"kube_token" yaml:"kube_token"`
|
||||
}
|
||||
|
||||
var config Config
|
||||
|
||||
func init() {
|
||||
err := yaml.Unmarshal(configData, &config)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
// GetOnlKubeConfigByNamespace 获取namespace的线上kube配置
|
||||
func GetOnlKubeConfigByNamespace(namespace string) KubeConfig {
|
||||
return config.Kube[namespace].Onl
|
||||
}
|
||||
|
||||
// GetTestKubeConfigByNamespace 获取namespace的测试kube配置
|
||||
func GetTestKubeConfigByNamespace(namespace string) KubeConfig {
|
||||
return config.Kube[namespace].Onl
|
||||
}
|
||||
|
||||
// GetRegistryConfig 获取镜像仓库配置
|
||||
func GetRegistryConfig() Registry {
|
||||
return config.Reg
|
||||
}
|
|
@ -5,10 +5,10 @@ import (
|
|||
"git.icechen.cn/pkg/drone_plugin/go_handler"
|
||||
)
|
||||
|
||||
func (al ApiList) toDestinationConfig(nameSpace string, deployEnv consts.Env, serviceEnv map[string]string) (string, error) {
|
||||
func (al ApiList) toDestinationConfig(deployEnv consts.Env) (string, error) {
|
||||
retConfig := ""
|
||||
for _, api := range al {
|
||||
config, err := api.toDestinationConfig(nameSpace, deployEnv, serviceEnv)
|
||||
config, err := api.toDestinationConfig(deployEnv)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
@ -17,20 +17,19 @@ func (al ApiList) toDestinationConfig(nameSpace string, deployEnv consts.Env, se
|
|||
return retConfig, nil
|
||||
}
|
||||
|
||||
func (a Api) toDestinationConfig(nameSpace string, deployEnv consts.Env, serviceEnv map[string]string) (string, error) {
|
||||
func (a Api) toDestinationConfig(deployEnv consts.Env) (string, error) {
|
||||
var handler Handler
|
||||
switch a.Type {
|
||||
case go_handler.TypeGolang:
|
||||
handler = go_handler.GoApiHandler{
|
||||
NameSpace: nameSpace,
|
||||
Name: a.Name,
|
||||
AliasName: a.AliasName,
|
||||
Root: a.Root,
|
||||
Port: a.Port,
|
||||
Host: a.Host,
|
||||
Path: a.Path,
|
||||
ServiceEnv: serviceEnv,
|
||||
DeployEnv: deployEnv,
|
||||
NameSpace: a.Namespace,
|
||||
Name: a.Name,
|
||||
AliasName: a.AliasName,
|
||||
Root: a.Root,
|
||||
Port: a.Port,
|
||||
Host: a.Host,
|
||||
Path: a.Path,
|
||||
DeployEnv: deployEnv,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ func (p *plugin) Find(ctx context.Context, req *config.Request) (*drone.Config,
|
|||
// 4. 根据文件树以及原始配置文件的信息,组装需要构建的服务的ci信息
|
||||
// 4.1 api
|
||||
modifiedApiList := getModifiedApi(cfg.Api, modifiedFileList, foundAppByMessage(req.Build.Message), foundAppByParams(req.Build.Params))
|
||||
destinationApi, err := modifiedApiList.toDestinationConfig(cfg.Name, getDeployEnv(req), cfg.toServiceEnv())
|
||||
destinationApi, err := modifiedApiList.toDestinationConfig(getDeployEnv(req))
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
return nil, err
|
||||
|
@ -70,7 +70,7 @@ func (p *plugin) Find(ctx context.Context, req *config.Request) (*drone.Config,
|
|||
|
||||
// 4.2 service
|
||||
modifiedServiceList := getModifiedService(cfg.Service, modifiedFileList, foundAppByMessage(req.Build.Message), foundAppByParams(req.Build.Params))
|
||||
destinationService, err := modifiedServiceList.toDestinationConfig(cfg.Name, getDeployEnv(req), cfg.toServiceEnv())
|
||||
destinationService, err := modifiedServiceList.toDestinationConfig(getDeployEnv(req))
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
return nil, err
|
||||
|
@ -136,8 +136,13 @@ func getDeployApiByAppSlice(api ApiList, appSlice []string) ApiList {
|
|||
ret := make(ApiList, 0)
|
||||
for _, app := range appSlice {
|
||||
for _, a := range api {
|
||||
if "api-"+a.Name == strings.TrimSpace(app) {
|
||||
ret = append(ret, a)
|
||||
appWithNamespace := strings.Split(app, ".")
|
||||
if len(appWithNamespace) == 2 {
|
||||
name := appWithNamespace[0]
|
||||
namespace := appWithNamespace[1]
|
||||
if a.Namespace == strings.TrimSpace(namespace) && "api-"+a.Name == strings.TrimSpace(name) {
|
||||
ret = append(ret, a)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -166,8 +171,13 @@ func getDeployServiceByAppSlice(service ServiceList, appSlice []string) ServiceL
|
|||
ret := make(ServiceList, 0)
|
||||
for _, app := range appSlice {
|
||||
for _, s := range service {
|
||||
if "service-"+s.Name == strings.TrimSpace(app) {
|
||||
ret = append(ret, s)
|
||||
appWithNamespace := strings.Split(app, ".")
|
||||
if len(appWithNamespace) == 2 {
|
||||
name := appWithNamespace[0]
|
||||
namespace := appWithNamespace[1]
|
||||
if s.Namespace == strings.TrimSpace(namespace) && "service-"+s.Name == strings.TrimSpace(name) {
|
||||
ret = append(ret, s)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package config_handler
|
|||
import (
|
||||
"git.icechen.cn/pkg/drone_plugin/git"
|
||||
"gopkg.in/yaml.v3"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const TypeMonorepo = "monorepo" // 单库类型
|
||||
|
@ -16,18 +15,10 @@ type Config struct {
|
|||
Service ServiceList `json:"service" yaml:"service"`
|
||||
}
|
||||
|
||||
func (c Config) toServiceEnv() map[string]string {
|
||||
sl := c.Service
|
||||
retMap := make(map[string]string)
|
||||
for _, service := range sl {
|
||||
retMap[strings.ToUpper("SERVICE_"+service.Name)] = c.Name + "-" + service.Name + ":" + service.Port
|
||||
}
|
||||
return retMap
|
||||
}
|
||||
|
||||
type (
|
||||
ApiList []Api
|
||||
Api struct {
|
||||
Namespace string `json:"namespace" yaml:"namespace"`
|
||||
Name string `json:"name" yaml:"name"`
|
||||
AliasName string `json:"alias_name" yaml:"aliasName"`
|
||||
Root string `json:"root" yaml:"root"`
|
||||
|
@ -37,9 +28,11 @@ type (
|
|||
Path string `json:"path" yaml:"path"`
|
||||
}
|
||||
)
|
||||
|
||||
type (
|
||||
ServiceList []Service
|
||||
Service struct {
|
||||
Namespace string `json:"namespace" yaml:"namespace"`
|
||||
Name string `json:"name" yaml:"name"`
|
||||
AliasName string `json:"alias_name" yaml:"aliasName"`
|
||||
Root string `json:"root" yaml:"root"`
|
||||
|
|
|
@ -5,10 +5,10 @@ import (
|
|||
"git.icechen.cn/pkg/drone_plugin/go_handler"
|
||||
)
|
||||
|
||||
func (sl ServiceList) toDestinationConfig(nameSpace string, deployEnv consts.Env, serviceEnv map[string]string) (string, error) {
|
||||
func (sl ServiceList) toDestinationConfig(deployEnv consts.Env) (string, error) {
|
||||
retConfig := ""
|
||||
for _, service := range sl {
|
||||
config, err := service.toDestinationConfig(nameSpace, deployEnv, serviceEnv)
|
||||
config, err := service.toDestinationConfig(deployEnv)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
@ -17,18 +17,17 @@ func (sl ServiceList) toDestinationConfig(nameSpace string, deployEnv consts.Env
|
|||
return retConfig, nil
|
||||
}
|
||||
|
||||
func (s Service) toDestinationConfig(nameSpace string, deployEnv consts.Env, serviceEnv map[string]string) (string, error) {
|
||||
func (s Service) toDestinationConfig(deployEnv consts.Env) (string, error) {
|
||||
var handler Handler
|
||||
switch s.Type {
|
||||
case go_handler.TypeGolang:
|
||||
handler = go_handler.GoServiceHandler{
|
||||
NameSpace: nameSpace,
|
||||
Name: s.Name,
|
||||
AliasName: s.AliasName,
|
||||
Root: s.Root,
|
||||
Port: s.Port,
|
||||
ServiceEnv: serviceEnv,
|
||||
DeployEnv: deployEnv,
|
||||
NameSpace: s.Namespace,
|
||||
Name: s.Name,
|
||||
AliasName: s.AliasName,
|
||||
Root: s.Root,
|
||||
Port: s.Port,
|
||||
DeployEnv: deployEnv,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@ import (
|
|||
"bytes"
|
||||
"text/template"
|
||||
|
||||
"git.icechen.cn/pkg/drone_plugin/config"
|
||||
|
||||
"git.icechen.cn/pkg/drone_plugin/go_handler/go_handler_template"
|
||||
|
||||
"git.icechen.cn/pkg/drone_plugin/consts"
|
||||
|
@ -12,24 +14,29 @@ import (
|
|||
const TypeGolang = "golang"
|
||||
|
||||
type GoApiHandler struct {
|
||||
NameSpace string
|
||||
Name string
|
||||
AliasName string
|
||||
Root string
|
||||
Port string
|
||||
Host string
|
||||
Path string
|
||||
ServiceEnv map[string]string
|
||||
DeployEnv consts.Env
|
||||
NameSpace string
|
||||
Name string
|
||||
AliasName string
|
||||
Root string
|
||||
Port string
|
||||
Host string
|
||||
Path string
|
||||
DeployEnv consts.Env
|
||||
|
||||
Reg config.Registry
|
||||
Kube config.KubeConfig
|
||||
}
|
||||
|
||||
func (gah GoApiHandler) ToDestinationConfig() (string, error) {
|
||||
var err error
|
||||
t := template.New(gah.Name)
|
||||
gah.Reg = config.GetRegistryConfig()
|
||||
|
||||
apiPipeline := go_handler_template.ApiTestPipeline
|
||||
gah.Kube = config.GetTestKubeConfigByNamespace(gah.NameSpace)
|
||||
if gah.DeployEnv == consts.EnvProduction {
|
||||
apiPipeline = go_handler_template.ApiProductionPipeline
|
||||
gah.Kube = config.GetOnlKubeConfigByNamespace(gah.NameSpace)
|
||||
}
|
||||
|
||||
t, err = t.Parse(apiPipeline)
|
||||
|
|
|
@ -3,7 +3,7 @@ package go_handler_template
|
|||
const ApiProductionPipeline = `
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: 部署production-api-{{ .Name }}
|
||||
name: 部署production-api-{{ .Name }}.{{ .NameSpace }}
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
|
@ -12,12 +12,10 @@ steps:
|
|||
- name: docker
|
||||
path: /var/run/docker.sock
|
||||
settings:
|
||||
username:
|
||||
from_secret: reg_username
|
||||
password:
|
||||
from_secret: reg_password
|
||||
repo: reg.icechen.cn/{{ .NameSpace }}/api-{{ .Name }}
|
||||
registry: reg.icechen.cn
|
||||
username: {{ .Reg.Password }}
|
||||
password: {{ .Reg.Registry }}
|
||||
repo: {{ .Reg.Registry }}/{{ .NameSpace }}/api-{{ .Name }}
|
||||
registry: {{ .Reg.Registry }}
|
||||
tags:
|
||||
- ${DRONE_TAG}
|
||||
- latest
|
||||
|
@ -27,12 +25,9 @@ steps:
|
|||
- name: deploy
|
||||
image: bitsbeats/drone-helm3
|
||||
settings:
|
||||
kube_api_server:
|
||||
from_secret: kubernetes_server
|
||||
kube_token:
|
||||
from_secret: kubernetes_token
|
||||
kube_certificate:
|
||||
from_secret: kubernetes_cert
|
||||
kube_api_server: {{ .Kube.KubeApiServer }}
|
||||
kube_token: {{ .Kube.KubeToken }}
|
||||
kube_certificate: {{ .Kube.KubeCertificate }}
|
||||
chart: ./{{ .Root }}/deploy
|
||||
release: api-{{ .Name }}
|
||||
wait: true
|
||||
|
@ -40,7 +35,7 @@ steps:
|
|||
values:
|
||||
- nameSpace={{ .NameSpace }}
|
||||
- aliasName={{ .AliasName }}
|
||||
- image=reg.icechen.cn/{{ .NameSpace }}/api-{{ .Name }}
|
||||
- image={{ .Reg.Registry }}/{{ .NameSpace }}/api-{{ .Name }}
|
||||
- imageTag=${DRONE_TAG}
|
||||
- port={{ .Port }}
|
||||
{{ if .Host }}
|
||||
|
|
|
@ -3,7 +3,7 @@ package go_handler_template
|
|||
const ApiTestPipeline = `
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: 部署test-api-{{ .Name }}
|
||||
name: 部署test-api-{{ .Name }}.{{ .NameSpace }}
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
|
@ -12,12 +12,10 @@ steps:
|
|||
- name: docker
|
||||
path: /var/run/docker.sock
|
||||
settings:
|
||||
username:
|
||||
from_secret: reg_username
|
||||
password:
|
||||
from_secret: reg_password
|
||||
repo: reg.icechen.cn/{{ .NameSpace }}/api-{{ .Name }}
|
||||
registry: reg.icechen.cn
|
||||
username: {{ .Reg.Password }}
|
||||
password: {{ .Reg.Registry }}
|
||||
repo: {{ .Reg.Registry }}/{{ .NameSpace }}/api-{{ .Name }}
|
||||
registry: {{ .Reg.Registry }}
|
||||
tags:
|
||||
- ${DRONE_COMMIT:0:8}
|
||||
- latest
|
||||
|
@ -27,12 +25,9 @@ steps:
|
|||
- name: deploy
|
||||
image: bitsbeats/drone-helm3
|
||||
settings:
|
||||
kube_api_server:
|
||||
from_secret: kubernetes_server_test
|
||||
kube_token:
|
||||
from_secret: kubernetes_token_test
|
||||
kube_certificate:
|
||||
from_secret: kubernetes_cert_test
|
||||
kube_api_server: {{ .Kube.KubeApiServer }}
|
||||
kube_token: {{ .Kube.KubeToken }}
|
||||
kube_certificate: {{ .Kube.KubeCertificate }}
|
||||
chart: ./{{ .Root }}/deploy
|
||||
release: api-{{ .Name }}-test
|
||||
wait: true
|
||||
|
@ -40,7 +35,7 @@ steps:
|
|||
values:
|
||||
- nameSpace={{ .NameSpace }}
|
||||
- aliasName={{ .AliasName }}
|
||||
- image=reg.icechen.cn/{{ .NameSpace }}/api-{{ .Name }}
|
||||
- image={{ .Reg.Registry }}/{{ .NameSpace }}/api-{{ .Name }}
|
||||
- imageTag=${DRONE_COMMIT:0:8}
|
||||
- port={{ .Port }}
|
||||
{{ if .Host }}
|
||||
|
|
|
@ -3,7 +3,7 @@ package go_handler_template
|
|||
const ServiceProductionPipeline = `
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: 部署production-service-{{ .Name }}
|
||||
name: 部署production-service-{{ .Name }}.{{ .NameSpace }}
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
|
@ -12,12 +12,10 @@ steps:
|
|||
- name: docker
|
||||
path: /var/run/docker.sock
|
||||
settings:
|
||||
username:
|
||||
from_secret: reg_username
|
||||
password:
|
||||
from_secret: reg_password
|
||||
repo: reg.icechen.cn/{{ .NameSpace }}/service-{{ .Name }}
|
||||
registry: reg.icechen.cn
|
||||
username: {{ .Reg.Password }}
|
||||
password: {{ .Reg.Registry }}
|
||||
repo: {{ .Reg.Registry }}/{{ .NameSpace }}/service-{{ .Name }}
|
||||
registry: {{ .Reg.Registry }}
|
||||
tags:
|
||||
- "${DRONE_TAG}"
|
||||
- latest
|
||||
|
@ -27,12 +25,9 @@ steps:
|
|||
- name: deploy
|
||||
image: bitsbeats/drone-helm3
|
||||
settings:
|
||||
kube_api_server:
|
||||
from_secret: kubernetes_server
|
||||
kube_token:
|
||||
from_secret: kubernetes_token
|
||||
kube_certificate:
|
||||
from_secret: kubernetes_cert
|
||||
kube_api_server: {{ .Kube.KubeApiServer }}
|
||||
kube_token: {{ .Kube.KubeToken }}
|
||||
kube_certificate: {{ .Kube.KubeCertificate }}
|
||||
chart: ./{{ .Root }}/deploy
|
||||
release: service-{{ .Name }}
|
||||
wait: true
|
||||
|
@ -40,7 +35,7 @@ steps:
|
|||
values:
|
||||
- nameSpace={{ .NameSpace }}
|
||||
- aliasName={{ .AliasName }}
|
||||
- image=reg.icechen.cn/{{ .NameSpace }}/service-{{ .Name }}
|
||||
- image={{ .Reg.Registry }}/{{ .NameSpace }}/service-{{ .Name }}
|
||||
- imageTag=${DRONE_TAG}
|
||||
- port={{ .Port }}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ package go_handler_template
|
|||
const ServiceTestPipeline = `
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: 部署test-service-{{ .Name }}
|
||||
name: 部署test-service-{{ .Name }}.{{ .NameSpace }}
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
|
@ -12,12 +12,10 @@ steps:
|
|||
- name: docker
|
||||
path: /var/run/docker.sock
|
||||
settings:
|
||||
username:
|
||||
from_secret: reg_username
|
||||
password:
|
||||
from_secret: reg_password
|
||||
repo: reg.icechen.cn/{{ .NameSpace }}/service-{{ .Name }}
|
||||
registry: reg.icechen.cn
|
||||
username: {{ .Reg.Password }}
|
||||
password: {{ .Reg.Registry }}
|
||||
repo: {{ .Reg.Registry }}/{{ .NameSpace }}/service-{{ .Name }}
|
||||
registry: {{ .Reg.Registry }}
|
||||
tags:
|
||||
- ${DRONE_COMMIT:0:8}
|
||||
- latest
|
||||
|
@ -27,12 +25,9 @@ steps:
|
|||
- name: deploy
|
||||
image: bitsbeats/drone-helm3
|
||||
settings:
|
||||
kube_api_server:
|
||||
from_secret: kubernetes_server_test
|
||||
kube_token:
|
||||
from_secret: kubernetes_token_test
|
||||
kube_certificate:
|
||||
from_secret: kubernetes_cert_test
|
||||
kube_api_server: {{ .Kube.KubeApiServer }}
|
||||
kube_token: {{ .Kube.KubeToken }}
|
||||
kube_certificate: {{ .Kube.KubeCertificate }}
|
||||
chart: ./{{ .Root }}/deploy
|
||||
release: service-{{ .Name }}-test
|
||||
wait: true
|
||||
|
@ -40,7 +35,7 @@ steps:
|
|||
values:
|
||||
- nameSpace={{ .NameSpace }}
|
||||
- aliasName={{ .AliasName }}
|
||||
- image=reg.icechen.cn/{{ .NameSpace }}/service-{{ .Name }}
|
||||
- image={{ .Reg.Registry }}/{{ .NameSpace }}/service-{{ .Name }}
|
||||
- imageTag=${DRONE_COMMIT:0:8}
|
||||
- port={{ .Port }}
|
||||
|
||||
|
|
|
@ -4,28 +4,35 @@ import (
|
|||
"bytes"
|
||||
"text/template"
|
||||
|
||||
"git.icechen.cn/pkg/drone_plugin/config"
|
||||
|
||||
"git.icechen.cn/pkg/drone_plugin/go_handler/go_handler_template"
|
||||
|
||||
"git.icechen.cn/pkg/drone_plugin/consts"
|
||||
)
|
||||
|
||||
type GoServiceHandler struct {
|
||||
NameSpace string
|
||||
Name string
|
||||
AliasName string
|
||||
Root string
|
||||
Port string
|
||||
ServiceEnv map[string]string
|
||||
DeployEnv consts.Env
|
||||
NameSpace string
|
||||
Name string
|
||||
AliasName string
|
||||
Root string
|
||||
Port string
|
||||
DeployEnv consts.Env
|
||||
|
||||
Reg config.Registry
|
||||
Kube config.KubeConfig
|
||||
}
|
||||
|
||||
func (gsh GoServiceHandler) ToDestinationConfig() (string, error) {
|
||||
var err error
|
||||
t := template.New(gsh.Name)
|
||||
gsh.Reg = config.GetRegistryConfig()
|
||||
|
||||
servicePipeline := go_handler_template.ServiceTestPipeline
|
||||
gsh.Kube = config.GetTestKubeConfigByNamespace(gsh.NameSpace)
|
||||
if gsh.DeployEnv == consts.EnvProduction {
|
||||
servicePipeline = go_handler_template.ServiceProductionPipeline
|
||||
gsh.Kube = config.GetOnlKubeConfigByNamespace(gsh.NameSpace)
|
||||
}
|
||||
|
||||
t, err = t.Parse(servicePipeline)
|
||||
|
|
Loading…
Reference in New Issue