init
This commit is contained in:
+8
-20
@@ -19,11 +19,6 @@ pipeline {
|
||||
CLUSTER_NAME = 'cluster1'
|
||||
}
|
||||
|
||||
parameters {
|
||||
choice(name: 'DEPLOY_ENV', choices: ['dev', 'staging', 'prod'], description: '选择部署环境')
|
||||
choice(name: 'BUILD_POLICY', choices: ['auto', 'force_build', 'skip_build'], description: '构建策略:auto=按代码变更判断')
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
@@ -48,13 +43,6 @@ pipeline {
|
||||
stage('Check Code Changes') {
|
||||
steps {
|
||||
script {
|
||||
if (params.BUILD_POLICY == 'force_build') {
|
||||
env.SKIP_BUILD = 'false'
|
||||
echo "BUILD_POLICY=force_build,强制构建"
|
||||
} else if (params.BUILD_POLICY == 'skip_build') {
|
||||
env.SKIP_BUILD = 'true'
|
||||
echo "BUILD_POLICY=skip_build,跳过构建"
|
||||
} else {
|
||||
def prev = env.GIT_PREVIOUS_SUCCESSFUL_COMMIT ?: ''
|
||||
if (!prev?.trim()) {
|
||||
echo "未找到上次成功构建提交,默认执行构建"
|
||||
@@ -66,7 +54,6 @@ pipeline {
|
||||
)
|
||||
env.SKIP_BUILD = (rc == 0) ? 'true' : 'false'
|
||||
}
|
||||
}
|
||||
|
||||
echo "代码变更检查结果: SKIP_BUILD=${env.SKIP_BUILD}"
|
||||
}
|
||||
@@ -128,7 +115,7 @@ pipeline {
|
||||
}
|
||||
|
||||
def fullImageWithTag = "${FULL_IMAGE_NAME}:${env.IMAGE_TAG}"
|
||||
deployToCluster(CLUSTER_CONFIG_ID, fullImageWithTag, params.DEPLOY_ENV)
|
||||
deployToCluster(CLUSTER_CONFIG_ID, fullImageWithTag)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -146,7 +133,6 @@ pipeline {
|
||||
echo "构建结束。镜像标签: ${env.IMAGE_TAG}"
|
||||
echo "完整镜像: ${FULL_IMAGE_NAME}:${env.IMAGE_TAG}"
|
||||
echo "是否跳过构建: ${env.SKIP_BUILD}"
|
||||
echo "部署环境: ${params.DEPLOY_ENV}"
|
||||
echo "目标集群: ${CLUSTER_NAME}"
|
||||
}
|
||||
failure {
|
||||
@@ -155,12 +141,15 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
def deployToCluster(String clusterConfigId, String fullImageWithTag, String deployEnv) {
|
||||
def deployToCluster(String clusterConfigId, String fullImageWithTag) {
|
||||
withCredentials([
|
||||
file(credentialsId: clusterConfigId, variable: 'KUBECONFIG'),
|
||||
usernamePassword(credentialsId: REGISTRY_CREDENTIALS_ID,
|
||||
usernameVariable: 'REGISTRY_USER',
|
||||
passwordVariable: 'REGISTRY_PASS')
|
||||
]) {
|
||||
withEnv([
|
||||
"FULL_IMAGE_WITH_TAG=${fullImageWithTag}"
|
||||
]) {
|
||||
sh '''
|
||||
set -eux
|
||||
@@ -182,8 +171,7 @@ def deployToCluster(String clusterConfigId, String fullImageWithTag, String depl
|
||||
|
||||
echo "使用kubectl路径: $KUBECTL_PATH"
|
||||
echo "部署到集群: ${CLUSTER_NAME}"
|
||||
echo "部署环境: ${DEPLOY_ENV}"
|
||||
echo "镜像: ${FULL_IMAGE_NAME}:${IMAGE_TAG}"
|
||||
echo "镜像: ${FULL_IMAGE_WITH_TAG}"
|
||||
echo "命名空间: ${K8S_NAMESPACE}"
|
||||
|
||||
k() {
|
||||
@@ -199,8 +187,7 @@ def deployToCluster(String clusterConfigId, String fullImageWithTag, String depl
|
||||
--namespace="${K8S_NAMESPACE}" \
|
||||
--dry-run=client -o yaml | k apply -f -
|
||||
|
||||
sed -e "s|image:.*more_dots:.*|image: ${FULL_IMAGE_NAME}:${IMAGE_TAG}|g" \
|
||||
-e "s|value: \".*\"|value: \"${DEPLOY_ENV}\"|g" \
|
||||
sed -e "s|image:.*more_dots:.*|image: ${FULL_IMAGE_WITH_TAG}|g" \
|
||||
more_dots/k8s/deployment.yaml > /tmp/deployment-${K8S_NAMESPACE}.yaml
|
||||
|
||||
k apply -f /tmp/deployment-${K8S_NAMESPACE}.yaml -n "${K8S_NAMESPACE}"
|
||||
@@ -213,3 +200,4 @@ def deployToCluster(String clusterConfigId, String fullImageWithTag, String depl
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
-20
@@ -19,11 +19,6 @@ pipeline {
|
||||
CLUSTER_NAME = 'cluster2'
|
||||
}
|
||||
|
||||
parameters {
|
||||
choice(name: 'DEPLOY_ENV', choices: ['dev', 'staging', 'prod'], description: '选择部署环境')
|
||||
choice(name: 'BUILD_POLICY', choices: ['auto', 'force_build', 'skip_build'], description: '构建策略:auto=按代码变更判断')
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
@@ -48,13 +43,6 @@ pipeline {
|
||||
stage('Check Code Changes') {
|
||||
steps {
|
||||
script {
|
||||
if (params.BUILD_POLICY == 'force_build') {
|
||||
env.SKIP_BUILD = 'false'
|
||||
echo "BUILD_POLICY=force_build,强制构建"
|
||||
} else if (params.BUILD_POLICY == 'skip_build') {
|
||||
env.SKIP_BUILD = 'true'
|
||||
echo "BUILD_POLICY=skip_build,跳过构建"
|
||||
} else {
|
||||
def prev = env.GIT_PREVIOUS_SUCCESSFUL_COMMIT ?: ''
|
||||
if (!prev?.trim()) {
|
||||
echo "未找到上次成功构建提交,默认执行构建"
|
||||
@@ -66,7 +54,6 @@ pipeline {
|
||||
)
|
||||
env.SKIP_BUILD = (rc == 0) ? 'true' : 'false'
|
||||
}
|
||||
}
|
||||
|
||||
echo "代码变更检查结果: SKIP_BUILD=${env.SKIP_BUILD}"
|
||||
}
|
||||
@@ -128,7 +115,7 @@ pipeline {
|
||||
}
|
||||
|
||||
def fullImageWithTag = "${FULL_IMAGE_NAME}:${env.IMAGE_TAG}"
|
||||
deployToCluster(CLUSTER_CONFIG_ID, fullImageWithTag, params.DEPLOY_ENV)
|
||||
deployToCluster(CLUSTER_CONFIG_ID, fullImageWithTag)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -146,7 +133,6 @@ pipeline {
|
||||
echo "构建结束。镜像标签: ${env.IMAGE_TAG}"
|
||||
echo "完整镜像: ${FULL_IMAGE_NAME}:${env.IMAGE_TAG}"
|
||||
echo "是否跳过构建: ${env.SKIP_BUILD}"
|
||||
echo "部署环境: ${params.DEPLOY_ENV}"
|
||||
echo "目标集群: ${CLUSTER_NAME}"
|
||||
}
|
||||
failure {
|
||||
@@ -155,12 +141,15 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
def deployToCluster(String clusterConfigId, String fullImageWithTag, String deployEnv) {
|
||||
def deployToCluster(String clusterConfigId, String fullImageWithTag) {
|
||||
withCredentials([
|
||||
file(credentialsId: clusterConfigId, variable: 'KUBECONFIG'),
|
||||
usernamePassword(credentialsId: REGISTRY_CREDENTIALS_ID,
|
||||
usernameVariable: 'REGISTRY_USER',
|
||||
passwordVariable: 'REGISTRY_PASS')
|
||||
]) {
|
||||
withEnv([
|
||||
"FULL_IMAGE_WITH_TAG=${fullImageWithTag}"
|
||||
]) {
|
||||
sh '''
|
||||
set -eux
|
||||
@@ -182,8 +171,7 @@ def deployToCluster(String clusterConfigId, String fullImageWithTag, String depl
|
||||
|
||||
echo "使用kubectl路径: $KUBECTL_PATH"
|
||||
echo "部署到集群: ${CLUSTER_NAME}"
|
||||
echo "部署环境: ${DEPLOY_ENV}"
|
||||
echo "镜像: ${FULL_IMAGE_NAME}:${IMAGE_TAG}"
|
||||
echo "镜像: ${FULL_IMAGE_WITH_TAG}"
|
||||
echo "命名空间: ${K8S_NAMESPACE}"
|
||||
|
||||
k() {
|
||||
@@ -199,8 +187,7 @@ def deployToCluster(String clusterConfigId, String fullImageWithTag, String depl
|
||||
--namespace="${K8S_NAMESPACE}" \
|
||||
--dry-run=client -o yaml | k apply -f -
|
||||
|
||||
sed -e "s|image:.*more_dots:.*|image: ${FULL_IMAGE_NAME}:${IMAGE_TAG}|g" \
|
||||
-e "s|value: \".*\"|value: \"${DEPLOY_ENV}\"|g" \
|
||||
sed -e "s|image:.*more_dots:.*|image: ${FULL_IMAGE_WITH_TAG}|g" \
|
||||
more_dots/k8s/deployment.yaml > /tmp/deployment-${K8S_NAMESPACE}.yaml
|
||||
|
||||
k apply -f /tmp/deployment-${K8S_NAMESPACE}.yaml -n "${K8S_NAMESPACE}"
|
||||
@@ -213,3 +200,4 @@ def deployToCluster(String clusterConfigId, String fullImageWithTag, String depl
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
-7
@@ -1,20 +1,20 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: more_dots
|
||||
namespace: default
|
||||
name: more-dots
|
||||
namespace: more-dots
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: more_dots
|
||||
app: more-dots
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: more_dots
|
||||
app: more-dots
|
||||
spec:
|
||||
containers:
|
||||
- name: more_dots
|
||||
- name: more-dots
|
||||
image: harbor.yourdomain.com/library/more_dots:${IMAGE_TAG}
|
||||
ports:
|
||||
- containerPort: 8000
|
||||
@@ -25,10 +25,11 @@ spec:
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: more_dots-service
|
||||
name: more-dots-service
|
||||
namespace: more-dots
|
||||
spec:
|
||||
selector:
|
||||
app: more_dots
|
||||
app: more-dots
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 8000
|
||||
|
||||
Reference in New Issue
Block a user