Jenkinsfile 自动部署到 EKS
Jenkinsfile to automatically deploy to EKS
当我在 运行Jenkinsjob 时如何传递我的 aws 凭证
以此为例https://github.com/PaulMaddox/amazon-eks-kubectl
$ docker run -v ~/.aws:/home/kubectl/.aws -e CLUSTER=demo maddox/kubectl get services
以上适用于我的笔记本电脑,但我想在 file.I 上传递 aws 凭据,在我的 Jenkins-->credentials 中配置了 aws。我还有一个包含 Jenkinsfile 和 yam 的 bitbucket 存储库"service" 和 "deployment"
的文件
我现在的做法是 运行 kubectl create -f filename.yaml 并将其部署到 eks .. 只想做同样的事情,但使用 Jenkinsfile 将其自动化,建议如何使用 kubectl 或 helm
在您的 Jenkinsfile 中,您应该包含类似的部分:
stage('Deploy on Dev') {
node('master'){
withEnv(["KUBECONFIG=${JENKINS_HOME}/.kube/dev-config","IMAGE=${ACCOUNT}.dkr.ecr.us-east-1.amazonaws.com/${ECR_REPO_NAME}:${IMAGETAG}"]){
sh "sed -i 's|IMAGE|${IMAGE}|g' k8s/deployment.yaml"
sh "sed -i 's|ACCOUNT|${ACCOUNT}|g' k8s/service.yaml"
sh "sed -i 's|ENVIRONMENT|dev|g' k8s/*.yaml"
sh "sed -i 's|BUILD_NUMBER|01|g' k8s/*.yaml"
sh "kubectl apply -f k8s"
DEPLOYMENT = sh (
script: 'cat k8s/deployment.yaml | yq -r .metadata.name',
returnStdout: true
).trim()
echo "Creating k8s resources..."
sleep 180
DESIRED= sh (
script: "kubectl get deployment/$DEPLOYMENT | awk '{print $2}' | grep -v DESIRED",
returnStdout: true
).trim()
CURRENT= sh (
script: "kubectl get deployment/$DEPLOYMENT | awk '{print $3}' | grep -v CURRENT",
returnStdout: true
).trim()
if (DESIRED.equals(CURRENT)) {
currentBuild.result = "SUCCESS"
return
} else {
error("Deployment Unsuccessful.")
currentBuild.result = "FAILURE"
return
}
}
}
}
}
将负责自动化部署过程。
希望对您有所帮助。
当我在 运行Jenkinsjob 时如何传递我的 aws 凭证 以此为例https://github.com/PaulMaddox/amazon-eks-kubectl
$ docker run -v ~/.aws:/home/kubectl/.aws -e CLUSTER=demo maddox/kubectl get services
以上适用于我的笔记本电脑,但我想在 file.I 上传递 aws 凭据,在我的 Jenkins-->credentials 中配置了 aws。我还有一个包含 Jenkinsfile 和 yam 的 bitbucket 存储库"service" 和 "deployment"
的文件我现在的做法是 运行 kubectl create -f filename.yaml 并将其部署到 eks .. 只想做同样的事情,但使用 Jenkinsfile 将其自动化,建议如何使用 kubectl 或 helm
在您的 Jenkinsfile 中,您应该包含类似的部分:
stage('Deploy on Dev') {
node('master'){
withEnv(["KUBECONFIG=${JENKINS_HOME}/.kube/dev-config","IMAGE=${ACCOUNT}.dkr.ecr.us-east-1.amazonaws.com/${ECR_REPO_NAME}:${IMAGETAG}"]){
sh "sed -i 's|IMAGE|${IMAGE}|g' k8s/deployment.yaml"
sh "sed -i 's|ACCOUNT|${ACCOUNT}|g' k8s/service.yaml"
sh "sed -i 's|ENVIRONMENT|dev|g' k8s/*.yaml"
sh "sed -i 's|BUILD_NUMBER|01|g' k8s/*.yaml"
sh "kubectl apply -f k8s"
DEPLOYMENT = sh (
script: 'cat k8s/deployment.yaml | yq -r .metadata.name',
returnStdout: true
).trim()
echo "Creating k8s resources..."
sleep 180
DESIRED= sh (
script: "kubectl get deployment/$DEPLOYMENT | awk '{print $2}' | grep -v DESIRED",
returnStdout: true
).trim()
CURRENT= sh (
script: "kubectl get deployment/$DEPLOYMENT | awk '{print $3}' | grep -v CURRENT",
returnStdout: true
).trim()
if (DESIRED.equals(CURRENT)) {
currentBuild.result = "SUCCESS"
return
} else {
error("Deployment Unsuccessful.")
currentBuild.result = "FAILURE"
return
}
}
}
}
}
将负责自动化部署过程。
希望对您有所帮助。