From 125e9b0fc03141b1246f2c33e1b776c0b4f0b70e Mon Sep 17 00:00:00 2001 From: manusa Date: Tue, 25 Aug 2020 16:29:22 +0200 Subject: [PATCH] fix: Moved KubernetesClient implementation of `kubectl run` to separate package --- doc/CHEATSHEET.md | 2 +- .../client/AutoAdaptableKubernetesClient.java | 4 +- .../client/DefaultKubernetesClient.java | 8 +- .../kubernetes/client/KubernetesClient.java | 6 +- .../run/RunConfig.java} | 6 +- .../run/RunConfigUtil.java} | 14 +-- .../client/extended/run/RunOperations.java | 93 ++++++++++++++++++ .../client/osgi/ManagedKubernetesClient.java | 8 +- .../client/utils/PodGeneratorImpl.java | 94 ------------------- .../run/RunConfigUtilTest.java} | 20 ++-- .../run/RunOperationsTest.java} | 8 +- .../client/DefaultOpenShiftClient.java | 8 +- .../client/osgi/ManagedOpenShiftClient.java | 4 +- 13 files changed, 138 insertions(+), 137 deletions(-) rename kubernetes-client/src/main/java/io/fabric8/kubernetes/client/{utils/GeneratorRunConfig.java => extended/run/RunConfig.java} (91%) rename kubernetes-client/src/main/java/io/fabric8/kubernetes/client/{utils/GeneratorRunConfigUtil.java => extended/run/RunConfigUtil.java} (86%) create mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/extended/run/RunOperations.java delete mode 100644 kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/PodGeneratorImpl.java rename kubernetes-client/src/test/java/io/fabric8/kubernetes/client/{utils/GeneratorRunConfigUtilTest.java => extended/run/RunConfigUtilTest.java} (86%) rename kubernetes-client/src/test/java/io/fabric8/kubernetes/client/{utils/PodGeneratorImplTest.java => extended/run/RunOperationsTest.java} (93%) diff --git a/doc/CHEATSHEET.md b/doc/CHEATSHEET.md index 14b8db05165..0453e2cd65d 100644 --- a/doc/CHEATSHEET.md +++ b/doc/CHEATSHEET.md @@ -2304,7 +2304,7 @@ try (KubernetesClient client = new DefaultKubernetesClient()) { ``` try (KubernetesClient client = new DefaultKubernetesClient()) { client.run().inNamespace("default") - .withRunConfig(new GeneratorRunConfigBuilder() + .withRunConfig(new RunConfigBuilder() .withName("nginx") .withImage("nginx:latest") .withLabels(Collections.singletonMap("foo", "bar")) diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/AutoAdaptableKubernetesClient.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/AutoAdaptableKubernetesClient.java index c4a8dc723ff..997e7836424 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/AutoAdaptableKubernetesClient.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/AutoAdaptableKubernetesClient.java @@ -64,7 +64,7 @@ import io.fabric8.kubernetes.api.model.ServiceAccount; import io.fabric8.kubernetes.api.model.ServiceAccountList; import io.fabric8.kubernetes.api.model.ServiceList; -import io.fabric8.kubernetes.client.utils.PodGeneratorImpl; +import io.fabric8.kubernetes.client.extended.run.RunOperations; import okhttp3.OkHttpClient; import java.io.InputStream; @@ -263,7 +263,7 @@ public MixedOperation labels, Map env, Map limits, Map requests, int replicas, int port) { + public RunConfig(String name, String image, String imagePullPolicy, String restartPolicy, String serviceAccount, Map labels, Map env, Map limits, Map requests, int replicas, int port) { // NOSONAR this.name = name; this.image = image; this.imagePullPolicy = imagePullPolicy; diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/GeneratorRunConfigUtil.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/extended/run/RunConfigUtil.java similarity index 86% rename from kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/GeneratorRunConfigUtil.java rename to kubernetes-client/src/main/java/io/fabric8/kubernetes/client/extended/run/RunConfigUtil.java index bfdf6c697ec..c5ab42322cb 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/GeneratorRunConfigUtil.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/extended/run/RunConfigUtil.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.fabric8.kubernetes.client.utils; +package io.fabric8.kubernetes.client.extended.run; import io.fabric8.kubernetes.api.model.Container; import io.fabric8.kubernetes.api.model.ContainerBuilder; @@ -22,12 +22,14 @@ import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; import io.fabric8.kubernetes.api.model.PodSpec; import io.fabric8.kubernetes.api.model.PodSpecBuilder; +import io.fabric8.kubernetes.client.extended.run.RunConfig; +import io.fabric8.kubernetes.client.utils.KubernetesResourceUtil; -public class GeneratorRunConfigUtil { +public class RunConfigUtil { private static final String DEFAULT_RESTART_POLICY = "Always"; - private GeneratorRunConfigUtil() { } + private RunConfigUtil() { } - public static ObjectMeta getObjectMetadataFromRunConfig(GeneratorRunConfig generatorRunConfig) { + public static ObjectMeta getObjectMetadataFromRunConfig(RunConfig generatorRunConfig) { ObjectMetaBuilder objectMetaBuilder = new ObjectMetaBuilder(); if (generatorRunConfig.getName() != null) { objectMetaBuilder.withName(generatorRunConfig.getName()); @@ -41,7 +43,7 @@ public static ObjectMeta getObjectMetadataFromRunConfig(GeneratorRunConfig gener return objectMetaBuilder.build(); } - public static PodSpec getPodSpecFromRunConfig(GeneratorRunConfig generatorRunConfig) { + public static PodSpec getPodSpecFromRunConfig(RunConfig generatorRunConfig) { PodSpecBuilder podSpecBuilder = new PodSpecBuilder(); if (generatorRunConfig.getRestartPolicy() != null) { podSpecBuilder.withRestartPolicy(generatorRunConfig.getRestartPolicy()); @@ -58,7 +60,7 @@ public static PodSpec getPodSpecFromRunConfig(GeneratorRunConfig generatorRunCon return podSpecBuilder.build(); } - public static Container getContainersFromRunConfig(GeneratorRunConfig generatorRunConfig) { + public static Container getContainersFromRunConfig(RunConfig generatorRunConfig) { ContainerBuilder containerBuilder = new ContainerBuilder(); if (generatorRunConfig.getName() != null) { containerBuilder.withName(generatorRunConfig.getName()); diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/extended/run/RunOperations.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/extended/run/RunOperations.java new file mode 100644 index 00000000000..6ad99244cc2 --- /dev/null +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/extended/run/RunOperations.java @@ -0,0 +1,93 @@ +/** + * Copyright (C) 2015 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.fabric8.kubernetes.client.extended.run; + +import io.fabric8.kubernetes.api.model.Pod; +import io.fabric8.kubernetes.api.model.PodBuilder; +import io.fabric8.kubernetes.client.Config; +import io.fabric8.kubernetes.client.dsl.internal.core.v1.PodOperationsImpl; +import okhttp3.OkHttpClient; + +public class RunOperations { + private final OkHttpClient client; + private final Config config; + private final String namespace; + private final RunConfigBuilder runConfigBuilder; + + public RunOperations(OkHttpClient client, Config config, String namespace, RunConfigBuilder runConfigBuilder) { + this.client = client; + this.config = config; + this.namespace = namespace; + this.runConfigBuilder = runConfigBuilder; + } + + /** + * Specify namespace for the operation + * + * @param namespace namespace in which resource needs to be created + * @return {@link RunOperations} with injected namespace + */ + public RunOperations inNamespace(String namespace) { + return new RunOperations(client, config, namespace, runConfigBuilder); + } + + /** + * Specify image for the Pod + * + * @param image image as a string + * @return {@link RunOperations} with image injected into {@link RunConfig} + */ + public RunOperations withImage(String image) { + return new RunOperations(client, config, namespace, runConfigBuilder.withImage(image)); + } + + /** + * Specify name for the Pod + * + * @param name name of the pod to be created + * @return {@link RunOperations} with name injected into {@link RunConfig} + */ + public RunOperations withName(String name) { + return new RunOperations(client, config, namespace, runConfigBuilder.withName(name)); + } + + /** + * Specify complex configuration for Pod creating using {@link RunConfig} + * + * @param generatorRunConfig {@link RunConfig} which allows to provide configuring environment variables, labels, resources, ports etc + * @return {@link RunOperations} with specified configuration + */ + public RunOperations withRunConfig(RunConfig generatorRunConfig) { + return new RunOperations(client, config, namespace, new RunConfigBuilder(generatorRunConfig)); + } + + /** + * Apply the {@link RunConfig} onto the cluster and create Pod + * + * @return Pod which got created from the operation + */ + public Pod done() { + return new PodOperationsImpl(client, config, namespace).create(convertRunConfigIntoPod()); + } + + Pod convertRunConfigIntoPod() { + RunConfig finalGeneratorConfig = runConfigBuilder.build(); + return new PodBuilder() + .withMetadata(RunConfigUtil.getObjectMetadataFromRunConfig(finalGeneratorConfig)) + .withSpec(RunConfigUtil.getPodSpecFromRunConfig(finalGeneratorConfig)) + .build(); + } +} diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java index 539d59a0a12..fb250619b25 100644 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java +++ b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/osgi/ManagedKubernetesClient.java @@ -123,9 +123,9 @@ import io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext; import io.fabric8.kubernetes.client.dsl.internal.RawCustomResourceOperationsImpl; import io.fabric8.kubernetes.client.extended.leaderelection.LeaderElectorBuilder; +import io.fabric8.kubernetes.client.extended.run.RunConfigBuilder; +import io.fabric8.kubernetes.client.extended.run.RunOperations; import io.fabric8.kubernetes.client.informers.SharedInformerFactory; -import io.fabric8.kubernetes.client.utils.GeneratorRunConfigBuilder; -import io.fabric8.kubernetes.client.utils.PodGeneratorImpl; import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.ConfigurationPolicy; @@ -561,7 +561,7 @@ public FunctionCallable withRequestConfig(RequestCon } @Override - public PodGeneratorImpl run() { - return new PodGeneratorImpl(httpClient, getConfiguration(), getNamespace(), new GeneratorRunConfigBuilder()); + public RunOperations run() { + return new RunOperations(httpClient, getConfiguration(), getNamespace(), new RunConfigBuilder()); } } diff --git a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/PodGeneratorImpl.java b/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/PodGeneratorImpl.java deleted file mode 100644 index 1c3d7cc2640..00000000000 --- a/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/utils/PodGeneratorImpl.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Copyright (C) 2015 Red Hat, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.fabric8.kubernetes.client.utils; - -import io.fabric8.kubernetes.api.model.Pod; -import io.fabric8.kubernetes.api.model.PodBuilder; -import io.fabric8.kubernetes.client.Config; -import io.fabric8.kubernetes.client.dsl.internal.core.v1.PodOperationsImpl; -import okhttp3.OkHttpClient; - -public class PodGeneratorImpl { - private final OkHttpClient client; - private final Config config; - private final String namespace; - private final GeneratorRunConfigBuilder generatorRunConfigBuilder; - - public PodGeneratorImpl(OkHttpClient client, Config config, String namespace, GeneratorRunConfigBuilder runConfig) { - this.client = client; - this.config = config; - this.namespace = namespace; - this.generatorRunConfigBuilder = runConfig; - } - - /** - * Specify namespace for the operation - * - * @param namespace namespace in which resource needs to be created - * @return {@link PodGeneratorImpl} with injected namespace - */ - public PodGeneratorImpl inNamespace(String namespace) { - return new PodGeneratorImpl(this.client, this.config, namespace, this.generatorRunConfigBuilder); - } - - /** - * Specify image for the Pod - * - * @param image image as a string - * @return {@link PodGeneratorImpl} with image injected into {@link GeneratorRunConfig} - */ - public PodGeneratorImpl withImage(String image) { - return new PodGeneratorImpl(this.client, this.config, namespace, this.generatorRunConfigBuilder.withImage(image)); - } - - /** - * Specify name for the Pod - * - * @param name name of the pod to be created - * @return {@link PodGeneratorImpl} with name injected into {@link GeneratorRunConfig} - */ - public PodGeneratorImpl withName(String name) { - return new PodGeneratorImpl(this.client, this.config, namespace, this.generatorRunConfigBuilder.withName(name)); - } - - /** - * Specify complex configuration for Pod creating using {@link GeneratorRunConfig} - * - * @param generatorRunConfig {@link GeneratorRunConfig} which allows to provide configuring environment variables, labels, resources, ports etc - * @return {@link PodGeneratorImpl} with specified configuration - */ - public PodGeneratorImpl withRunConfig(GeneratorRunConfig generatorRunConfig) { - return new PodGeneratorImpl(this.client, this.config, namespace, new GeneratorRunConfigBuilder(generatorRunConfig)); - } - - /** - * Apply the {@link GeneratorRunConfig} onto the cluster and create Pod - * - * @return Pod which got created from the operation - */ - public Pod done() { - PodOperationsImpl podOperations = new PodOperationsImpl(client, config, namespace); - return podOperations.create(convertRunConfigIntoPod()); - } - - protected Pod convertRunConfigIntoPod() { - GeneratorRunConfig finalGeneratorConfig = generatorRunConfigBuilder.build(); - return new PodBuilder() - .withMetadata(GeneratorRunConfigUtil.getObjectMetadataFromRunConfig(finalGeneratorConfig)) - .withSpec(GeneratorRunConfigUtil.getPodSpecFromRunConfig(finalGeneratorConfig)) - .build(); - } -} diff --git a/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/utils/GeneratorRunConfigUtilTest.java b/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/extended/run/RunConfigUtilTest.java similarity index 86% rename from kubernetes-client/src/test/java/io/fabric8/kubernetes/client/utils/GeneratorRunConfigUtilTest.java rename to kubernetes-client/src/test/java/io/fabric8/kubernetes/client/extended/run/RunConfigUtilTest.java index ad646720eff..2aea41ec720 100644 --- a/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/utils/GeneratorRunConfigUtilTest.java +++ b/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/extended/run/RunConfigUtilTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.fabric8.kubernetes.client.utils; +package io.fabric8.kubernetes.client.extended.run; import io.fabric8.kubernetes.api.model.Container; import io.fabric8.kubernetes.api.model.ObjectMeta; @@ -29,17 +29,17 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; -class GeneratorRunConfigUtilTest { +class RunConfigUtilTest { @Test void testGetObjectMetadataFromRunConfig() { // Given - GeneratorRunConfig config = new GeneratorRunConfigBuilder() + RunConfig config = new RunConfigBuilder() .withName("test") .withLabels(Collections.singletonMap("foo", "bar")) .build(); // When - ObjectMeta objectMeta = GeneratorRunConfigUtil.getObjectMetadataFromRunConfig(config); + ObjectMeta objectMeta = RunConfigUtil.getObjectMetadataFromRunConfig(config); // Then assertNotNull(objectMeta); @@ -51,7 +51,7 @@ void testGetObjectMetadataFromRunConfig() { @Test void testGetPodSpecFromRunConfig() { // Given - GeneratorRunConfig config = new GeneratorRunConfigBuilder() + RunConfig config = new RunConfigBuilder() .withName("test") .withImage("test:latest") .withEnv(Collections.singletonMap("TEST_KEY", "TEST_VALUE")) @@ -60,7 +60,7 @@ void testGetPodSpecFromRunConfig() { .build(); // When - PodSpec podSpec = GeneratorRunConfigUtil.getPodSpecFromRunConfig(config); + PodSpec podSpec = RunConfigUtil.getPodSpecFromRunConfig(config); // Then assertNotNull(podSpec); @@ -77,10 +77,10 @@ void testGetPodSpecFromRunConfig() { @Test void testGetContainersFromRunConfig() { // Given - GeneratorRunConfig config = getCompleteGeneratorRunConfig(); + RunConfig config = getCompleteGeneratorRunConfig(); // When - Container container = GeneratorRunConfigUtil.getContainersFromRunConfig(config); + Container container = RunConfigUtil.getContainersFromRunConfig(config); // Then assertNotNull(container); @@ -113,8 +113,8 @@ private Map getRequests() { return requests; } - private GeneratorRunConfig getCompleteGeneratorRunConfig() { - return new GeneratorRunConfigBuilder() + private RunConfig getCompleteGeneratorRunConfig() { + return new RunConfigBuilder() .withName("test") .withImage("test:latest") .withReplicas(1) diff --git a/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/utils/PodGeneratorImplTest.java b/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/extended/run/RunOperationsTest.java similarity index 93% rename from kubernetes-client/src/test/java/io/fabric8/kubernetes/client/utils/PodGeneratorImplTest.java rename to kubernetes-client/src/test/java/io/fabric8/kubernetes/client/extended/run/RunOperationsTest.java index 7110f6e0a54..0030a0407bf 100644 --- a/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/utils/PodGeneratorImplTest.java +++ b/kubernetes-client/src/test/java/io/fabric8/kubernetes/client/extended/run/RunOperationsTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.fabric8.kubernetes.client.utils; +package io.fabric8.kubernetes.client.extended.run; import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.api.model.Quantity; @@ -31,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -class PodGeneratorImplTest { +class RunOperationsTest { private OkHttpClient mockClient; private Config config; @@ -53,7 +53,7 @@ void testConvertRunConfigIntoPod() { Map labels = new HashMap<>(); labels.put("first", "FIRST"); labels.put("second", "SECOND"); - GeneratorRunConfigBuilder generatorRunConfig = new GeneratorRunConfigBuilder() + RunConfigBuilder generatorRunConfig = new RunConfigBuilder() .withName("test") .withImage("test:latest") .withLabels(labels) @@ -64,7 +64,7 @@ void testConvertRunConfigIntoPod() { .withPort(5701) .withLimits(limits) .withRequests(requests); - PodGeneratorImpl deploymentGenerator = new PodGeneratorImpl(mockClient, config, "ns1", generatorRunConfig); + RunOperations deploymentGenerator = new RunOperations(mockClient, config, "ns1", generatorRunConfig); // When Pod pod = deploymentGenerator.convertRunConfigIntoPod(); diff --git a/openshift-client/src/main/java/io/fabric8/openshift/client/DefaultOpenShiftClient.java b/openshift-client/src/main/java/io/fabric8/openshift/client/DefaultOpenShiftClient.java index 9dbf06112ad..f3dda5271f9 100644 --- a/openshift-client/src/main/java/io/fabric8/openshift/client/DefaultOpenShiftClient.java +++ b/openshift-client/src/main/java/io/fabric8/openshift/client/DefaultOpenShiftClient.java @@ -56,10 +56,10 @@ import io.fabric8.kubernetes.client.dsl.internal.coordination.v1.LeaseOperationsImpl; import io.fabric8.kubernetes.client.dsl.internal.core.v1.ComponentStatusOperationsImpl; import io.fabric8.kubernetes.client.extended.leaderelection.LeaderElectorBuilder; +import io.fabric8.kubernetes.client.extended.run.RunConfigBuilder; +import io.fabric8.kubernetes.client.extended.run.RunOperations; import io.fabric8.kubernetes.client.utils.BackwardsCompatibilityInterceptor; -import io.fabric8.kubernetes.client.utils.GeneratorRunConfigBuilder; import io.fabric8.kubernetes.client.utils.ImpersonatorInterceptor; -import io.fabric8.kubernetes.client.utils.PodGeneratorImpl; import io.fabric8.kubernetes.client.utils.Serialization; import io.fabric8.kubernetes.client.informers.SharedInformerFactory; import io.fabric8.kubernetes.client.utils.Utils; @@ -527,8 +527,8 @@ public V1APIGroupDSL v1() { } @Override - public PodGeneratorImpl run() { - return new PodGeneratorImpl(httpClient, getConfiguration(), getNamespace(), new GeneratorRunConfigBuilder()); + public RunOperations run() { + return new RunOperations(httpClient, getConfiguration(), getNamespace(), new RunConfigBuilder()); } @Override diff --git a/openshift-client/src/main/java/io/fabric8/openshift/client/osgi/ManagedOpenShiftClient.java b/openshift-client/src/main/java/io/fabric8/openshift/client/osgi/ManagedOpenShiftClient.java index acdbec43f9d..639390ae642 100644 --- a/openshift-client/src/main/java/io/fabric8/openshift/client/osgi/ManagedOpenShiftClient.java +++ b/openshift-client/src/main/java/io/fabric8/openshift/client/osgi/ManagedOpenShiftClient.java @@ -43,7 +43,7 @@ import io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext; import io.fabric8.kubernetes.client.dsl.internal.RawCustomResourceOperationsImpl; import io.fabric8.kubernetes.client.extended.leaderelection.LeaderElectorBuilder; -import io.fabric8.kubernetes.client.utils.PodGeneratorImpl; +import io.fabric8.kubernetes.client.extended.run.RunOperations; import io.fabric8.kubernetes.client.utils.URLUtils; import io.fabric8.kubernetes.client.informers.SharedInformerFactory; import io.fabric8.openshift.api.model.*; @@ -501,7 +501,7 @@ public V1APIGroupDSL v1() { } @Override - public PodGeneratorImpl run() { + public RunOperations run() { return delegate.run(); }