otto
2 years ago
12 changed files with 155 additions and 121 deletions
@ -1,64 +0,0 @@ |
|||||||
def buildService(serverName){ |
|
||||||
docker.withRegistry('https://registry.internal.jumaiyx.cn', 'docker-registry-internal-backend') { |
|
||||||
def img = docker.build("jm/$serverName:${env.BUILD_ID}",".") |
|
||||||
img.push() |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
pipeline { |
|
||||||
agent any |
|
||||||
|
|
||||||
environment { |
|
||||||
// 服务名 |
|
||||||
SERVER_NAME = 'feedback' |
|
||||||
// 镜像名称,对应K8S_FILE里面Deployment.containers的name |
|
||||||
IMAGE_NAME = 'feedback' |
|
||||||
// git路径 |
|
||||||
GIT_URL = 'http://git.gz.internal.jumaiyx.cn/job/room-server-clear.git' |
|
||||||
// 分支 |
|
||||||
GIT_BRANCH = '*/master' |
|
||||||
// kubectl执行文件 |
|
||||||
K8S_FILE = 'feedback-dev.yaml' |
|
||||||
// k8s deployment名称,对应K8S_FILE里面Deployment的name |
|
||||||
K8S_DEPLOYMENT = 'feedback-deployment' |
|
||||||
} |
|
||||||
|
|
||||||
stages { |
|
||||||
stage('git代码拉取') { |
|
||||||
steps { |
|
||||||
checkout([$class: 'GitSCM', branches: [[name: "${env.GIT_BRANCH}"]], extensions: [], userRemoteConfigs: [[url: "${env.GIT_URL}"]]]) |
|
||||||
echo 'git代码拉取 成功' |
|
||||||
} |
|
||||||
} |
|
||||||
stage('docker镜像打包') { |
|
||||||
steps { |
|
||||||
echo "镜像版本:${env.BUILD_ID}" |
|
||||||
buildService("${env.SERVER_NAME}") |
|
||||||
echo 'docker镜像打包' |
|
||||||
} |
|
||||||
} |
|
||||||
stage('传入k8s-master') { |
|
||||||
steps { |
|
||||||
//sshPublisher(publishers: [sshPublisherDesc(configName: 'k8s', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: "${env.K8S_FILE}")], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) |
|
||||||
echo '将yaml传入k8s-master' |
|
||||||
} |
|
||||||
} |
|
||||||
stage('部署服务') { |
|
||||||
steps { |
|
||||||
//sh "ssh root@192.168.1.156 kubectl apply -f /usr/local/k8s/${env.K8S_FILE}" |
|
||||||
echo '部署服务' |
|
||||||
//sh '''if if (( ${env.BUILD_ID} == 1 )) |
|
||||||
//then |
|
||||||
// ssh root@192.168.1.156 kubectl apply -f /usr/local/k8s/${env.K8S_FILE} |
|
||||||
// echo '部署服务' |
|
||||||
//fi''' |
|
||||||
} |
|
||||||
} |
|
||||||
stage('更新image') { |
|
||||||
steps { |
|
||||||
sh "ssh root@192.168.1.156 kubectl set image Deployment/${env.K8S_DEPLOYMENT} ${env.IMAGE_NAME}=registry.internal.jumaiyx.cn/jm/${env.SERVER_NAME}:${env.BUILD_ID} -n dev" |
|
||||||
echo '部署服务' |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,44 +1,16 @@ |
|||||||
apiVersion: apps/v1 |
apiVersion: batch/v1 |
||||||
kind: Deployment |
kind: Job |
||||||
metadata: |
metadata: |
||||||
name: feedback-deployment |
name: room-hot-compute-job |
||||||
namespace: dev |
namespace: dev |
||||||
labels: |
|
||||||
app: feedback |
|
||||||
spec: |
spec: |
||||||
replicas: 2 # 节点资源 |
ttlSecondsAfterFinished: 10 |
||||||
selector: |
activeDeadlineSeconds: 10 |
||||||
matchLabels: |
|
||||||
app: feedback |
|
||||||
template: |
template: |
||||||
metadata: # 资源的元数据/属性 |
|
||||||
labels: # 设定资源的标签 |
|
||||||
app: feedback |
|
||||||
spec: |
spec: |
||||||
containers: |
containers: |
||||||
- image: registry.internal.jumaiyx.cn/jm/feedback:1 # 自动化版本往后配置 |
- name: room-hot-compute-job |
||||||
name: feedback |
image: registry.internal.jumaiyx.cn/job/room-hot-compute:v1.0.0 |
||||||
imagePullPolicy: Always |
restartPolicy: Never |
||||||
ports: |
|
||||||
- name: grpc |
|
||||||
containerPort: 9000 |
|
||||||
protocol: TCP |
|
||||||
imagePullSecrets: |
imagePullSecrets: |
||||||
- name: registry-harbor |
- name: registry-harbor |
||||||
--- |
|
||||||
apiVersion: v1 |
|
||||||
kind: Service |
|
||||||
metadata: |
|
||||||
name: feedback-service # 改名字对应服务发现serviceName |
|
||||||
namespace: dev |
|
||||||
labels: |
|
||||||
name: feedback |
|
||||||
spec: |
|
||||||
type: ClusterIP |
|
||||||
ports: |
|
||||||
- name: grpc |
|
||||||
port: 9000 |
|
||||||
targetPort: grpc |
|
||||||
protocol: TCP |
|
||||||
selector: |
|
||||||
app: feedback |
|
@ -0,0 +1,19 @@ |
|||||||
|
apiVersion: v1 |
||||||
|
clusters: |
||||||
|
- cluster: |
||||||
|
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeU1Ea3lOekF4TXpRek9Wb1hEVE15TURreU5EQXhNelF6T1Zvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1VGClBZdjVCdlRYLzlXdjZhWU9vWmM5cUtnclVnQjRzZFBWYVVJMFFBRlV1cUhEeE1RMGdBc1RBL2xtUkxZL0NJRm8KS21pOHNYR1J4Wmh2Lytqd01iKzB6U0oxNzd5RVpGSmQyZlQ3QkRkRHdJVkdNRnVUYytUN2xnNzdLVXFENHBSMgp1Mm1hcmRuWGs3cmtzNUR0alg1QUdhdW45VWRiMmRrb3orYmc5aC9XWTB6NjczUysvcVBnUzBER1o3bUtUTm5zCjdQaXdYbDV2MFNqUDM0ejRNRjAxU0g1Y3RxQm12OUhUOERvL0pMRjlkNUVaaGtPWlBuL1RiTjZqSGRKenZqTzUKbjU4T1ZQQ3VKUGhrbm1VUE1pZDJISU1ncEdqMUN3NWJYQXdDZ0RmeVpuNG15WEJ6eU0wb0FSazBYbUd3QXpWegpkQ0g4d2ZGL2lPWi81SGpZaGswQ0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFBRlJRZEdnaENaNUFqckFidjJOenUvUzJ2cXAKRGQ3Z3FJUytXYVdTVDNoUXRYTjl2UUpiN3dGWktJb3l6Y3hZOUtOeldjT3Z5V05UZnliK2Z4dFI3RHJpRDV6WApUWngyZWdZSlN3R3Y3T0hPU0VGVHpTSXBRTlBLNURhejZ4b0ZsUE85M1lyZ1o1VTd0bVlRN3FTOUZXV1VWR3hZCk42TFpjbEtrYTM4MEFZRzd2TlZZNFdacHZDVG9Ed2xsb2JMOE85WVdWdmp2TGw1TDAwL201MDNNZTViREEydVEKSjdPa1dENGtiL2Rob0paQjdaOWZId0tWaTgxYUkxNm9ERlAwbTR5YWQvckZBS3FHUlcxdVpLTXNYK29JL0ttVApVcHp0QStzSXhZZXlBK1VaSXJoN1NjSkZ3amVHdE1YUkJIM0RRUzRZc05SdHkxUnZjUnJXSk1uU3Z1MD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= |
||||||
|
server: https://192.168.1.156:6443 |
||||||
|
name: kubernetes |
||||||
|
contexts: |
||||||
|
- context: |
||||||
|
cluster: kubernetes |
||||||
|
user: kubernetes-admin |
||||||
|
name: kubernetes-admin@kubernetes |
||||||
|
current-context: kubernetes-admin@kubernetes |
||||||
|
kind: Config |
||||||
|
preferences: {} |
||||||
|
users: |
||||||
|
- name: kubernetes-admin |
||||||
|
user: |
||||||
|
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM4akNDQWRxZ0F3SUJBZ0lJTFV6blJtKzZqUkV3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TWpBNU1qY3dNVE0wTXpsYUZ3MHlNekE1TWpjd01UTTBOREJhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTNYOFZrc2x3N3AxQUF3aG4KbW5nRHU3NWRUUUpXUm1EN014a3ZPN0ZiWFFXVTVHUDg3bHpEV2pMeUt2L1NqZTZ5a1VTTkE5Z21kTmRrOTY0RgpnYWpyRnRHSUZXVzM2NVFXeitRT25ZVWFHQk9VRHQ2VFloOWlSRXJIRjhsR3NRVW0vVi9NemttMXpkY284ZEtHCm5VbktDWDhyMW5yVm53UkRiRTE2VEozcFRhK2tXdmVHYlFoRW5PZHpBMkJFTDl3cWR4bUljNm1GMnFla0ZDVXoKMlF1cGtMR3JOMlBEVGd2YmdwcS9pbTdldUIyYXNLczE2RjByMElrMk83VHhoK2twZkQrazVTLzdUdTEyWGttVwpkNWIyZHlVMFlCZFZDRUJFV1JiK3ROU3oxQXlVdEZQbEkxRmdabWZaajdKRGFkYzlDMG9ML2hoOFA0UzU3NFlECnFjaEZxUUlEQVFBQm95Y3dKVEFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFJNVVaM2Fkb20vdFdRSDA4NERXeWZoRG0zVllJL0FoeDJ2dwozV0Z1S29KNFBsVzhQRDg4YkhLbDNOZTdrMktMa3diaitUUWFrQ3JQK21IY2k5UGVHRzNibjJ6Z3duSm5yekJzCkFTY01lTGh2TzVRbkV3Y0FqemJtYUg2SFVBUk8vQ1dwRjJma2hHQVV3SDlDZWQxN1RTZkRuVGUxKzRxaHkwaU8KSFEvMUs2YjFQVEFGQXhoY0k5NFp1Nzk2TEFObXhPWGpUeG5sSTVTa1Z6VGROTi9zUm40MnRMckEzeDRWWktrNApWNmE5Y3luZ3dvYzBXRmxNaU51aG1wOVo1VkNTOGpNT1E5dXljQnQvc09RcWpaYXhpMksrVUZsdFZNbk04cFNNCnZGaWtwbEorblFieVdPeWUwZkwzZ0YvQ1lERUxlOXEyeHlodGwrNyt0WUp3Sy9xWU5Ocz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= |
||||||
|
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBM1g4VmtzbHc3cDFBQXdobm1uZ0R1NzVkVFFKV1JtRDdNeGt2TzdGYlhRV1U1R1A4CjdsekRXakx5S3YvU2plNnlrVVNOQTlnbWROZGs5NjRGZ2FqckZ0R0lGV1czNjVRV3orUU9uWVVhR0JPVUR0NlQKWWg5aVJFckhGOGxHc1FVbS9WL016a20xemRjbzhkS0duVW5LQ1g4cjFuclZud1JEYkUxNlRKM3BUYStrV3ZlRwpiUWhFbk9kekEyQkVMOXdxZHhtSWM2bUYycWVrRkNVejJRdXBrTEdyTjJQRFRndmJncHEvaW03ZXVCMmFzS3MxCjZGMHIwSWsyTzdUeGgra3BmRCtrNVMvN1R1MTJYa21XZDViMmR5VTBZQmRWQ0VCRVdSYit0TlN6MUF5VXRGUGwKSTFGZ1ptZlpqN0pEYWRjOUMwb0wvaGg4UDRTNTc0WURxY2hGcVFJREFRQUJBb0lCQUVhR1IxVTBoSnZGUC9OMwpRcDJoWnZicFZ3WEZIN2xLK2RDOFRSakJrT2llZFZqL0tUS3dJSmRncjFEWG9iQUZkNS9mWnRMNWlNMGRKQTNrCnYrWVg1YnFmUHFncGVoVXRVdElndURLWmhjUnl2MnE0bmM3WlZVMlBUYk1hS0VNRzgvSXJCYWdOT2pEdk9COC8KUEJOcXdrU2gxRkIzVGZ0U3ZURUh2bEFVMjRzYk1NVWo3SkNQRDRjTXhocEc5VlI3dG1ZdzFkQ2MwcXM3L0FHRQp4aTg2NyszdXdYc1c2cWVOaytWY0tNdjJ6N0lNZ2g4Wk9aZnMwMlBIU1VVeTFQN0RnR1ZxenhvWnV2MjV3SG90Cll1eGdIbWxwdXFFRDdJcVBTQ1pTbTNPYldlODRvN3d4eTBKWnpsNUJGL1REUWtEdjM4NWRJaFVndlR3KzhMNU8KV21nU0dRRUNnWUVBM2lQbEptcy9sbm9XbUdzVytHM3RaOU1DRWI0WVFkTnk3RVRtM29VeXp3K0I5TVlOMW0vdQp5RnE5UjlITEdkU1hoS1YyMVlKUTBTTGcxc255WVNKV3F6UXloanJEalMxb2gyV2ZOYnBZWXhUL2wyQW1EcEFYCm93YUgyU0xZRm9sSlVtVE1NZE1nWEp2Rk8rREtqeFN3MDYzeXEvTExGeVZLR3lPOXVnWEJaMkVDZ1lFQS8wSVIKWEVKZVFMUFl0Q0l1Q25YOS9JOXF1azBvVHR3NDliaUpyUUlVQlY4Skg4cWJOTy81SXNZY2tyOGNIOExIQzBQTwpRcEttYzIyWTV1MmJJYnNEbEZEckt0bGdQQWpOVTFOdFd0RU9tUFY1UlBxUDdzaGxEZk1qNmRWNTlzZ0dxVEdRCmtKU01oczE1ekJJcURPNVVNeFpZbTlrcUczSE1EQ0NCVlFJVXEwa0NnWUJtMWRFb0p2QUo5anp0bEczTzFmelkKV291VHNSL0RvV0tMVkI1WWx1cjloaDFRTmp1RHNNK211ckx6UTRDMVZZQkxMTnBGWHcyUXM0ZkloemFJbHYvdQpRN3k3L1FvNEdmUlE4Yzl4YlBHcjlMV1oyeTNqQWZ1ZlFjK3p5bmlrZml1T1ZCRmZZM0NRenAvUTUzQitLa0x0Cnk1SVMzZFA4eEF0NVl1TmE4WDBtSVFLQmdRQ2RBSkFaQlNGZi9yN05uVEJnY3M2MEo2cG55TW1BSitoSkN5WnoKYVpIUzgrOXl4SFhPaThQYlphdHhmMmJYQ2tEUFp2ZFk3MGErUEswTmJSdzhGUUZRbXF6ckFDVTNCOXJ5NDUraAplbkRXR0Racy9Rakd3QytYOHZNbUFvNHdBanhHbVJ2b01kWjFtN0RNbW1lTzZKQ1ZrNnNRd1BRclNVVk9PRGdVCmgyRWJNUUtCZ0RQamNEdjN6SjJJVjFrY01kbjNEMWVyQjBFR0I1M2NYeHFoa0pET3Rqd3RUV3V2dHNIYzI0R3gKNmFQODI1QllUV2NQNEJ6dEFIN1A5RkE2QmlBa0t3T3lrWFR5dDg2RTBUZUM5L3FtSW9EY255aHdReHVCZlB3UQo2bVhxeVFLZFBOTnVoKzlReDBEcGxHMTkzVTFid0pya3k3b3hKc0dackg1OUdGK3VTT3J0Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg== |
@ -0,0 +1,42 @@ |
|||||||
|
server: |
||||||
|
name: room |
||||||
|
http: |
||||||
|
addr: 0.0.0.0:8000 |
||||||
|
timeout: 30 |
||||||
|
grpc: |
||||||
|
addr: 0.0.0.0:9000 |
||||||
|
timeout: 30 |
||||||
|
data: |
||||||
|
database: |
||||||
|
source: "host=192.168.1.156 user=metachat password=metachat dbname=feedback port=15433 sslmode=disable TimeZone=Asia/Shanghai" |
||||||
|
# source: postgresql://metachat:metachat@127.0.0.1:15432/room |
||||||
|
redis: |
||||||
|
addr: 192.168.1.156:16378 |
||||||
|
password: MM5ZsXL0 |
||||||
|
read_timeout: 1 |
||||||
|
write_timeout: 1 |
||||||
|
|
||||||
|
etcd: |
||||||
|
host: "127.0.0.1:20000" |
||||||
|
|
||||||
|
log: |
||||||
|
level: "debug" |
||||||
|
name: "room" |
||||||
|
kafka: |
||||||
|
addr: |
||||||
|
- "127.0.0.1:9092" |
||||||
|
amqp: |
||||||
|
host: 192.168.1.156:5672 |
||||||
|
username: jm |
||||||
|
password: jm123456 |
||||||
|
|
||||||
|
id_encode: |
||||||
|
uid: |
||||||
|
salt: "test" |
||||||
|
min_length: 8 |
||||||
|
|
||||||
|
rtctoken: |
||||||
|
app_id: 6eeb2e6be9a141d1b0db920f36a5a9f3 |
||||||
|
app_certificate: 80438856882e4563841d56f3cefeb763 |
||||||
|
privilege_expiration: 3600 |
||||||
|
token_expiration: 3600 |
@ -0,0 +1,59 @@ |
|||||||
|
package test |
||||||
|
|
||||||
|
import ( |
||||||
|
"context" |
||||||
|
k8sclient "git.gz.internal.jumaiyx.cn/pkg/k8s-client" |
||||||
|
"git.gz.internal.jumaiyx.cn/pkg/log" |
||||||
|
v1 "k8s.io/api/batch/v1" |
||||||
|
corev1 "k8s.io/api/core/v1" |
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
||||||
|
"testing" |
||||||
|
) |
||||||
|
|
||||||
|
// pods=$(kubectl get pods --selector=job-name=room-hot-compute-job --output=jsonpath='{.items[*].metadata.name}')
|
||||||
|
// echo $pods
|
||||||
|
func TestCreateJob(t *testing.T) { |
||||||
|
l := log.DefaultLogger() |
||||||
|
job, err := k8sclient.NewJob(k8sclient.DevNamespace, l) |
||||||
|
if err != nil { |
||||||
|
t.Fatal(err) |
||||||
|
} |
||||||
|
ctx := context.TODO() |
||||||
|
ttl := int32(60) |
||||||
|
ttls := int64(60) |
||||||
|
_, err = job.Create(ctx, &v1.Job{ |
||||||
|
ObjectMeta: metav1.ObjectMeta{ |
||||||
|
Name: "room-hot-compute-job", |
||||||
|
Namespace: k8sclient.DevNamespace, |
||||||
|
}, |
||||||
|
Spec: v1.JobSpec{ |
||||||
|
ActiveDeadlineSeconds: &ttls, |
||||||
|
TTLSecondsAfterFinished: &ttl, |
||||||
|
Template: corev1.PodTemplateSpec{ |
||||||
|
ObjectMeta: metav1.ObjectMeta{ |
||||||
|
Name: "room-hot-compute-job", |
||||||
|
Labels: map[string]string{ |
||||||
|
"app": "room-job", |
||||||
|
}, |
||||||
|
}, |
||||||
|
Spec: corev1.PodSpec{ |
||||||
|
RestartPolicy: corev1.RestartPolicyNever, |
||||||
|
Containers: []corev1.Container{ |
||||||
|
{ |
||||||
|
Name: "room-hot-compute-job", |
||||||
|
Image: "registry.internal.jumaiyx.cn/job/room-hot-compute:v1.0.0", |
||||||
|
}, |
||||||
|
}, |
||||||
|
ImagePullSecrets: []corev1.LocalObjectReference{ |
||||||
|
{ |
||||||
|
Name: k8sclient.DockerRegistryHarbor, |
||||||
|
}, |
||||||
|
}, |
||||||
|
}, |
||||||
|
}, |
||||||
|
}, |
||||||
|
}) |
||||||
|
if err != nil { |
||||||
|
t.Fatal(err) |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue