如何通过Jenkins在Openshift中推出部署



我在Openshift 4中从部署配置切换到部署。在我的Jenkins管道中,我有一个推出DeploymentConfig的步骤,它看起来像这样:

openshift.withCluster() {
openshift.withProject("project") {
def rm = openshift.selector("dc", app).rollout()
timeout(5) { 
openshift.selector("dc", app).related('pods').untilEach(1) {
return (it.object().status.phase == "Running")
}
}
}
}

在openshift-jenkins插件中,似乎没有推出部署的选项。据我所知,部署也是一个原生的kubernetes对象,而不是Openshift对象部署配置。

在詹金斯的Openshift 4中推出部署的简单方法是什么?

您可以将Kuectl与Jenkin 一起使用

kubectl rollout undo deployment/abc

你可以使用kubectl

node {
stage('Apply Kubernetes files') {
withKubeConfig([credentialsId: 'user1', serverUrl: 'https://api.k8s.my-company.com']) {
sh 'kubectl apply -f my-kubernetes-directory'
}
}
}

您可以使用命令行根据需要以及是否可以生成或传递变量来展开部署。

https://jamesdefabia.github.io/docs/user-guide/kubectl/kubectl_rollout/

部署本身没有像DeploymentConfigs那样的推出或重新部署选项。

然而,如果你在部署yaml中进行了更改,那么重新部署就用新的配置完成了。使用这个想法,你可以在部署的配置中进行更改,而不会真正改变你的项目,并在你想要重新开始时触发它。

oc patch deployment/{Your Deployment name here} -p "{"spec":{"template":{"metadata":{"annotations":{"last-restart":"`date +'%s'`"}}}}}"

该命令生成一个名为";最后重新启动";并设置您运行它的当前时间戳的值。如果您再次运行它,它会用更新的值替换时间戳。这两个操作都是足以触发重新部署的更改,但不是项目的功能更改。

最新更新