从OpenShift Java REST客户端重新启动Pod
我正在尝试以编程方式重新启动Pod。首先,我通过oc命令行找到了一些方法:从OpenShift Java REST客户端重新启动Pod,java,openshift,Java,Openshift,我正在尝试以编程方式重新启动Pod。首先,我通过oc命令行找到了一些方法: 删除pod,将创建一个新的pod:oc Delete pod postgresql-2-wz989 启动新部署:oc推出最新dc/postgresql 我认为第二种方法更好,因为部署配置名称是静态的,不会像pod的名称那样更改 我的问题是如何使用JavaREST客户机实现这一点?我不太清楚如何使用这个客户端API 提前感谢。考虑到Graham Dumpleton关于使用--loglevel=9的提示,我找到了一个使用ja
oc Delete pod postgresql-2-wz989
oc推出最新dc/postgresql
提前感谢。考虑到Graham Dumpleton关于使用
--loglevel=9
的提示,我找到了一个使用java客户端的解决方案:
IClient client = new ClientBuilder("https://10.0.75.2:8443")
.withUserName("developer")
.withPassword("developer")
.build();
IProject project = client.getResourceFactory().stub(ResourceKind.PROJECT, "prj4testing");
IDeploymentConfig deploymentConfig = client.getResourceFactory().stub(ResourceKind.DEPLOYMENT_CONFIG, "postgresql", project.getName());
IDeploymentTriggerable capability = deploymentConfig.getCapability(IDeploymentTriggerable.class);
capability.setForce(true);
capability.setLatest(true);
capability.trigger();
我通过研究客户端的源代码得到了这个解决方案。我不知道是否有更好的方法来实现这一点。欢迎发表任何意见。如果您使用选项
--loglevel=9
运行oc
,它将向您显示REST API调用的内容,然后您可以对其进行编程/编写脚本。对于那些将此问题标记为过于宽泛的问题的人,如果您知道该主题,则这并不重要。这实际上是非常具体的。顺便说一句,我不知道oc rollout
在封面下做了什么,但您可以使用的一个技巧是在部署配置上有一个注释,可能是在pod模板上。使用当前日期更新注释的值。因为这代表了配置的改变,所以应该触发POD的新部署。