I want to restart deployment pod by patching ENV variable in deployment. Here is my code:
String PATCH_STR = "[{\"op\":\"replace\",\"path\":\"/spec/template/spec/containers/0/env/8/UPDATEDON\",\"value\": \"%d\"}]";
final String patchStr = String.format(PATCH_STR, System.currentTimeMillis());
AppsV1Api api = new AppsV1Api(apiClient);
V1Deployment deploy = PatchUtils.patch(V1Deployment.class,
() -> api.patchNamespacedDeploymentCall(
deploymentName,
namespace,
new V1Patch(patchStr),
null,
null,
null, // field-manager is optional
null,
null),
V1Patch.PATCH_FORMAT_JSON_PATCH,
apiClient);
This code executes successfully but it does not start pod. Here is an equivalent kubectl command (it doesn't patch, so pod doesn't start):
kubectl -n aaaac7bg7b6nsaaaaaaaaaaoyu patch deployment aaaaaaaaxldpcswy2bl3jee6umwck72onc55wimyvldrfc442rokz3cpll2q -p '{"spec":{"containers":[{"env":[{"name":"UPDATEDON","value":"1645099482000"}]}]}}'
If I execute following command, it restarts pod:
kubectl -n aaaac7bg7b6nsaaaaaaaaaaoyu set env deployment/aaaaaaaaxldpcswy2bl3jee6umwck72onc55wimyvldrfc442rokz3cpll2q UPDATEDON=1645099482000
I thought of using V1EnvVar/V1EnvVarBuilder
but I couldn't find equivalent java code.