Skip to content

Commit b1e9a2c

Browse files
committed
Switch to non deprecated create method
1 parent a169d4d commit b1e9a2c

File tree

4 files changed

+96
-28
lines changed

4 files changed

+96
-28
lines changed

src/main/java/cd/go/contrib/elasticagent/KubernetesInstanceFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ private static void setAnnotations(Pod pod, CreateAgentRequest request) {
148148

149149
private KubernetesInstance createKubernetesPod(KubernetesClient client, Pod elasticAgentPod) {
150150
LOG.info(format("[Create Agent] Creating K8s pod with spec: {0}.", elasticAgentPod.toString()));
151-
Pod pod = client.pods().create(elasticAgentPod);
151+
Pod pod = client.pods().resource(elasticAgentPod).create();
152152
return fromKubernetesPod(pod);
153153
}
154154

src/test/java/cd/go/contrib/elasticagent/KubernetesAgentInstancesIntegrationTest.java

Lines changed: 72 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.junit.jupiter.api.Test;
2727
import org.mockito.ArgumentCaptor;
2828
import org.mockito.Mock;
29+
import org.mockito.Mockito;
2930
import org.mockito.stubbing.Answer;
3031

3132
import java.util.ArrayList;
@@ -60,17 +61,26 @@ public class KubernetesAgentInstancesIntegrationTest {
6061
@Mock
6162
private MixedOperation<Pod, PodList, PodResource> pods;
6263

64+
@Mock
65+
private PodResource mockedPodResource;
66+
6367
@Mock
6468
private ConsoleLogAppender consoleLogAppender;
6569

70+
6671
@BeforeEach
6772
public void setUp() {
6873
openMocks(this);
6974
kubernetesAgentInstances = new KubernetesAgentInstances(mockedKubernetesClientFactory);
7075
when(mockedKubernetesClientFactory.client(any())).thenReturn(mockKubernetesClient);
71-
when(pods.create(any(Pod.class))).thenAnswer((Answer<Pod>) invocation -> {
76+
77+
when(pods.resource(any(Pod.class))).thenAnswer((Answer<PodResource>) invocation -> {
7278
Object[] args = invocation.getArguments();
73-
return (Pod) args[0];
79+
Pod pod = (Pod) args[0];
80+
81+
when(mockedPodResource.create()).thenReturn(pod);
82+
83+
return mockedPodResource;
7484
});
7585

7686
when(pods.list()).thenReturn(new PodList());
@@ -91,7 +101,7 @@ public void shouldCreateKubernetesPodForCreateAgentRequest() {
91101
public void shouldCreateKubernetesPodWithContainerSpecification() {
92102
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
93103
KubernetesInstance instance = kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
94-
verify(pods).create(argumentCaptor.capture());
104+
verify(pods).resource(argumentCaptor.capture());
95105
Pod elasticAgentPod = argumentCaptor.getValue();
96106

97107
List<Container> containers = elasticAgentPod.getSpec().getContainers();
@@ -104,14 +114,16 @@ public void shouldCreateKubernetesPodWithContainerSpecification() {
104114
assertThat(gocdAgentContainer.getImage()).isEqualTo("gocd/custom-gocd-agent-alpine:latest");
105115
assertThat(gocdAgentContainer.getImagePullPolicy()).isEqualTo("IfNotPresent");
106116
assertThat(gocdAgentContainer.getSecurityContext().getPrivileged()).isEqualTo(false);
117+
118+
verify(mockedPodResource).create();
107119
}
108120

109121
@Test
110122
public void shouldCreateKubernetesPodWithPrivilegedMod() {
111123
createAgentRequest.properties().put(PRIVILEGED.getKey(), "true");
112124
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
113125
KubernetesInstance instance = kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
114-
verify(pods).create(argumentCaptor.capture());
126+
verify(pods).resource(argumentCaptor.capture());
115127
Pod elasticAgentPod = argumentCaptor.getValue();
116128

117129
List<Container> containers = elasticAgentPod.getSpec().getContainers();
@@ -121,13 +133,15 @@ public void shouldCreateKubernetesPodWithPrivilegedMod() {
121133

122134
assertThat(gocdAgentContainer.getName()).isEqualTo(instance.name());
123135
assertThat(gocdAgentContainer.getSecurityContext().getPrivileged()).isEqualTo(true);
136+
137+
verify(mockedPodResource).create();
124138
}
125139

126140
@Test
127141
public void shouldCreateKubernetesPodWithResourcesLimitSpecificationOnGoCDAgentContainer() {
128142
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
129143
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
130-
verify(pods).create(argumentCaptor.capture());
144+
verify(pods).resource(argumentCaptor.capture());
131145
Pod elasticAgentPod = argumentCaptor.getValue();
132146

133147
List<Container> containers = elasticAgentPod.getSpec().getContainers();
@@ -139,37 +153,43 @@ public void shouldCreateKubernetesPodWithResourcesLimitSpecificationOnGoCDAgentC
139153

140154
assertThat(resources.getLimits().get("memory").getAmount()).isEqualTo(String.valueOf(1024 * 1024 * 1024));
141155
assertThat(resources.getLimits().get("cpu").getAmount()).isEqualTo("2");
156+
157+
verify(mockedPodResource).create();
142158
}
143159

144160
@Test
145161
public void shouldCreateKubernetesPodWithPodMetadata() {
146162
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
147163
KubernetesInstance instance = kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
148-
verify(pods).create(argumentCaptor.capture());
164+
verify(pods).resource(argumentCaptor.capture());
149165

150166
Pod elasticAgentPod = argumentCaptor.getValue();
151167

152168
assertNotNull(elasticAgentPod.getMetadata());
153169
assertThat(elasticAgentPod.getMetadata().getName()).isEqualTo(instance.name());
170+
171+
verify(mockedPodResource).create();
154172
}
155173

156174
@Test
157175
public void shouldCreateKubernetesPodWithTimeStamp() {
158176
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
159177
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
160-
verify(pods).create(argumentCaptor.capture());
178+
verify(pods).resource(argumentCaptor.capture());
161179

162180
Pod elasticAgentPod = argumentCaptor.getValue();
163181

164182
assertNotNull(elasticAgentPod.getMetadata());
165183
assertNotNull(elasticAgentPod.getMetadata().getCreationTimestamp());
184+
185+
verify(mockedPodResource).create();
166186
}
167187

168188
@Test
169189
public void shouldCreateKubernetesPodWithGoCDElasticAgentContainerContainingEnvironmentVariables() {
170190
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
171191
KubernetesInstance instance = kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
172-
verify(pods).create(argumentCaptor.capture());
192+
verify(pods).resource(argumentCaptor.capture());
173193
Pod elasticAgentPod = argumentCaptor.getValue();
174194

175195
ArrayList<EnvVar> expectedEnvVars = new ArrayList<>();
@@ -187,13 +207,15 @@ public void shouldCreateKubernetesPodWithGoCDElasticAgentContainerContainingEnvi
187207
assertThat(containers.size()).isEqualTo(1);
188208

189209
assertThat(containers.get(0).getEnv()).isEqualTo(expectedEnvVars);
210+
211+
verify(mockedPodResource).create();
190212
}
191213

192214
@Test
193215
public void shouldCreateKubernetesPodWithPodAnnotations() {
194216
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
195217
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
196-
verify(pods).create(argumentCaptor.capture());
218+
verify(pods).resource(argumentCaptor.capture());
197219
Pod elasticAgentPod = argumentCaptor.getValue();
198220

199221
assertNotNull(elasticAgentPod.getMetadata());
@@ -202,13 +224,15 @@ public void shouldCreateKubernetesPodWithPodAnnotations() {
202224
expectedAnnotations.putAll(createAgentRequest.properties());
203225
expectedAnnotations.put(Constants.JOB_IDENTIFIER_LABEL_KEY, new Gson().toJson(createAgentRequest.jobIdentifier()));
204226
assertThat(elasticAgentPod.getMetadata().getAnnotations()).isEqualTo(expectedAnnotations);
227+
228+
verify(mockedPodResource).create();
205229
}
206230

207231
@Test
208232
public void shouldCreateKubernetesPodWithPodLabels() {
209233
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
210234
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
211-
verify(pods).create(argumentCaptor.capture());
235+
verify(pods).resource(argumentCaptor.capture());
212236
Pod elasticAgentPod = argumentCaptor.getValue();
213237

214238
assertNotNull(elasticAgentPod.getMetadata());
@@ -220,6 +244,8 @@ public void shouldCreateKubernetesPodWithPodLabels() {
220244
labels.put(Constants.ENVIRONMENT_LABEL_KEY, createAgentRequest.environment());
221245

222246
assertThat(elasticAgentPod.getMetadata().getLabels()).isEqualTo(labels);
247+
248+
verify(mockedPodResource).create();
223249
}
224250

225251
//Tests Using Pod Yaml
@@ -238,7 +264,7 @@ public void usingPodYamlConfigurations_shouldCreateKubernetesPodWithContainerSpe
238264

239265
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
240266
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
241-
verify(pods).create(argumentCaptor.capture());
267+
verify(pods).resource(argumentCaptor.capture());
242268
Pod elasticAgentPod = argumentCaptor.getValue();
243269

244270
List<Container> containers = elasticAgentPod.getSpec().getContainers();
@@ -249,6 +275,8 @@ public void usingPodYamlConfigurations_shouldCreateKubernetesPodWithContainerSpe
249275
assertThat(gocdAgentContainer.getName()).isEqualTo("gocd-agent-container");
250276
assertThat(gocdAgentContainer.getImage()).isEqualTo("gocd/gocd-agent-alpine-3.5:v17.12.0");
251277
assertThat(gocdAgentContainer.getImagePullPolicy()).isEqualTo("Always");
278+
279+
verify(mockedPodResource).create();
252280
}
253281

254282
@Test
@@ -257,14 +285,16 @@ public void usingPodYamlConfigurations_shouldCreateKubernetesPodWithPodMetadata(
257285

258286
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
259287
KubernetesInstance instance = kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
260-
verify(pods).create(argumentCaptor.capture());
288+
verify(pods).resource(argumentCaptor.capture());
261289

262290
Pod elasticAgentPod = argumentCaptor.getValue();
263291

264292
assertNotNull(elasticAgentPod.getMetadata());
265293
assertThat(elasticAgentPod.getMetadata().getName()).contains("test-pod-yaml");
266294

267295
assertThat(elasticAgentPod.getMetadata().getName()).isEqualTo(instance.name());
296+
297+
verify(mockedPodResource).create();
268298
}
269299

270300
@Test
@@ -273,12 +303,14 @@ public void usingPodYamlConfigurations_shouldCreateKubernetesPodWithTimestamp()
273303

274304
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
275305
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
276-
verify(pods).create(argumentCaptor.capture());
306+
verify(pods).resource(argumentCaptor.capture());
277307

278308
Pod elasticAgentPod = argumentCaptor.getValue();
279309

280310
assertNotNull(elasticAgentPod.getMetadata());
281311
assertNotNull(elasticAgentPod.getMetadata().getCreationTimestamp());
312+
313+
verify(mockedPodResource).create();
282314
}
283315

284316
@Test
@@ -287,7 +319,7 @@ public void usingPodYamlConfigurations_shouldCreateKubernetesPodWithGoCDElasticA
287319

288320
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
289321
KubernetesInstance instance = kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
290-
verify(pods).create(argumentCaptor.capture());
322+
verify(pods).resource(argumentCaptor.capture());
291323
Pod elasticAgentPod = argumentCaptor.getValue();
292324

293325
ArrayList<EnvVar> expectedEnvVars = new ArrayList<>();
@@ -303,6 +335,8 @@ public void usingPodYamlConfigurations_shouldCreateKubernetesPodWithGoCDElasticA
303335
assertThat(containers.size()).isEqualTo(1);
304336

305337
assertThat(containers.get(0).getEnv()).isEqualTo(expectedEnvVars);
338+
339+
verify(mockedPodResource).create();
306340
}
307341

308342
@Test
@@ -311,7 +345,7 @@ public void usingPodYamlConfigurations_shouldCreateKubernetesPodWithPodAnnotatio
311345

312346
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
313347
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
314-
verify(pods).create(argumentCaptor.capture());
348+
verify(pods).resource(argumentCaptor.capture());
315349
Pod elasticAgentPod = argumentCaptor.getValue();
316350

317351
assertNotNull(elasticAgentPod.getMetadata());
@@ -322,6 +356,8 @@ public void usingPodYamlConfigurations_shouldCreateKubernetesPodWithPodAnnotatio
322356
expectedAnnotations.put(Constants.JOB_IDENTIFIER_LABEL_KEY, new Gson().toJson(createAgentRequest.jobIdentifier()));
323357

324358
assertThat(elasticAgentPod.getMetadata().getAnnotations()).isEqualTo(expectedAnnotations);
359+
360+
verify(mockedPodResource).create();
325361
}
326362

327363
@Test
@@ -330,7 +366,7 @@ public void usingPodYamlConfigurations_shouldCreateKubernetesPodWithPodLabels()
330366

331367
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
332368
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
333-
verify(pods).create(argumentCaptor.capture());
369+
verify(pods).resource(argumentCaptor.capture());
334370
Pod elasticAgentPod = argumentCaptor.getValue();
335371

336372
assertNotNull(elasticAgentPod.getMetadata());
@@ -344,6 +380,8 @@ public void usingPodYamlConfigurations_shouldCreateKubernetesPodWithPodLabels()
344380
labels.put("app", "gocd-agent");
345381

346382
assertThat(elasticAgentPod.getMetadata().getLabels()).isEqualTo(labels);
383+
384+
verify(mockedPodResource).create();
347385
}
348386

349387
//Tests Using Remote File
@@ -362,7 +400,7 @@ public void usingRemoteFile_shouldCreateKubernetesPodWithContainerSpecification(
362400

363401
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
364402
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
365-
verify(pods).create(argumentCaptor.capture());
403+
verify(pods).resource(argumentCaptor.capture());
366404
Pod elasticAgentPod = argumentCaptor.getValue();
367405

368406
List<Container> containers = elasticAgentPod.getSpec().getContainers();
@@ -373,6 +411,8 @@ public void usingRemoteFile_shouldCreateKubernetesPodWithContainerSpecification(
373411
assertThat(gocdAgentContainer.getName()).isEqualTo("gocd-agent-container");
374412
assertThat(gocdAgentContainer.getImage()).isEqualTo("gocd/gocd-agent-alpine-3.8:v19.1.0");
375413
assertThat(gocdAgentContainer.getImagePullPolicy()).isEqualTo("Always");
414+
415+
verify(mockedPodResource).create();
376416
}
377417

378418
@Test
@@ -381,14 +421,16 @@ public void usingRemoteFile_shouldCreateKubernetesPodWithPodMetadata() {
381421

382422
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
383423
KubernetesInstance instance = kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
384-
verify(pods).create(argumentCaptor.capture());
424+
verify(pods).resource(argumentCaptor.capture());
385425

386426
Pod elasticAgentPod = argumentCaptor.getValue();
387427

388428
assertNotNull(elasticAgentPod.getMetadata());
389429
assertThat(elasticAgentPod.getMetadata().getName()).contains("test-pod-json");
390430

391431
assertThat(elasticAgentPod.getMetadata().getName()).isEqualTo(instance.name());
432+
433+
verify(mockedPodResource).create();
392434
}
393435

394436
@Test
@@ -397,12 +439,14 @@ public void usingRemoteFile_shouldCreateKubernetesPodWithTimestamp() {
397439

398440
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
399441
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
400-
verify(pods).create(argumentCaptor.capture());
442+
verify(pods).resource(argumentCaptor.capture());
401443

402444
Pod elasticAgentPod = argumentCaptor.getValue();
403445

404446
assertNotNull(elasticAgentPod.getMetadata());
405447
assertNotNull(elasticAgentPod.getMetadata().getCreationTimestamp());
448+
449+
verify(mockedPodResource).create();
406450
}
407451

408452
@Test
@@ -411,7 +455,7 @@ public void usingRemoteFile_shouldCreateKubernetesPodWithGoCDElasticAgentContain
411455

412456
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
413457
KubernetesInstance instance = kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
414-
verify(pods).create(argumentCaptor.capture());
458+
verify(pods).resource(argumentCaptor.capture());
415459
Pod elasticAgentPod = argumentCaptor.getValue();
416460

417461
ArrayList<EnvVar> expectedEnvVars = new ArrayList<>();
@@ -427,6 +471,8 @@ public void usingRemoteFile_shouldCreateKubernetesPodWithGoCDElasticAgentContain
427471
assertThat(containers.size()).isEqualTo(1);
428472

429473
assertThat(containers.get(0).getEnv()).isEqualTo(expectedEnvVars);
474+
475+
verify(mockedPodResource).create();
430476
}
431477

432478
@Test
@@ -435,7 +481,7 @@ public void usingRemoteFile_shouldCreateKubernetesPodWithPodAnnotations() {
435481

436482
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
437483
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
438-
verify(pods).create(argumentCaptor.capture());
484+
verify(pods).resource(argumentCaptor.capture());
439485
Pod elasticAgentPod = argumentCaptor.getValue();
440486

441487
assertNotNull(elasticAgentPod.getMetadata());
@@ -446,6 +492,8 @@ public void usingRemoteFile_shouldCreateKubernetesPodWithPodAnnotations() {
446492
expectedAnnotations.put(Constants.JOB_IDENTIFIER_LABEL_KEY, new Gson().toJson(createAgentRequest.jobIdentifier()));
447493

448494
assertThat(elasticAgentPod.getMetadata().getAnnotations()).isEqualTo(expectedAnnotations);
495+
496+
verify(mockedPodResource).create();
449497
}
450498

451499
@Test
@@ -454,7 +502,7 @@ public void usingRemoteFile_shouldCreateKubernetesPodWithPodLabels() {
454502

455503
ArgumentCaptor<Pod> argumentCaptor = ArgumentCaptor.forClass(Pod.class);
456504
kubernetesAgentInstances.create(createAgentRequest, settings, mockedPluginRequest, consoleLogAppender);
457-
verify(pods).create(argumentCaptor.capture());
505+
verify(pods).resource(argumentCaptor.capture());
458506
Pod elasticAgentPod = argumentCaptor.getValue();
459507

460508
assertNotNull(elasticAgentPod.getMetadata());
@@ -468,6 +516,8 @@ public void usingRemoteFile_shouldCreateKubernetesPodWithPodLabels() {
468516
labels.put("app", "gocd-agent");
469517

470518
assertThat(elasticAgentPod.getMetadata().getLabels()).isEqualTo(labels);
519+
520+
verify(mockedPodResource).create();
471521
}
472522

473523
}

0 commit comments

Comments
 (0)