[GitHub] [flink] TisonKun commented on a change in pull request #11233: [FLINK-16194][k8s] Refactor the Kubernetes decorator design

2020-03-04 Thread GitBox
TisonKun commented on a change in pull request #11233: [FLINK-16194][k8s] 
Refactor the Kubernetes decorator design
URL: https://github.com/apache/flink/pull/11233#discussion_r387862667
 
 

 ##
 File path: 
flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/KubernetesJobManagerSpecification.java
 ##
 @@ -16,19 +16,32 @@
  * limitations under the License.
  */
 
-package org.apache.flink.kubernetes.kubeclient.resources;
-
-import org.apache.flink.configuration.Configuration;
+package org.apache.flink.kubernetes.kubeclient;
 
+import io.fabric8.kubernetes.api.model.HasMetadata;
 import io.fabric8.kubernetes.api.model.apps.Deployment;
-import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
+
+import java.util.List;
 
 /**
- * Represent KubernetesDeployment resource in kubernetes.
+ * Composition of the created Kubernetes components that represents a 
Flink application.
 
 Review comment:
   You can edit the commit introduce this instead of adding fixup. I think we 
agree on most of codes now.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [flink] TisonKun commented on a change in pull request #11233: [FLINK-16194][k8s] Refactor the Kubernetes decorator design

2020-03-04 Thread GitBox
TisonKun commented on a change in pull request #11233: [FLINK-16194][k8s] 
Refactor the Kubernetes decorator design
URL: https://github.com/apache/flink/pull/11233#discussion_r387862136
 
 

 ##
 File path: 
flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/KubernetesJobManagerSpecification.java
 ##
 @@ -16,19 +16,32 @@
  * limitations under the License.
  */
 
-package org.apache.flink.kubernetes.kubeclient.resources;
-
-import org.apache.flink.configuration.Configuration;
+package org.apache.flink.kubernetes.kubeclient;
 
+import io.fabric8.kubernetes.api.model.HasMetadata;
 import io.fabric8.kubernetes.api.model.apps.Deployment;
-import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
+
+import java.util.List;
 
 /**
- * Represent KubernetesDeployment resource in kubernetes.
+ * Composition of the created Kubernetes components that represents a 
Flink application.
 
 Review comment:
   ```suggestion
*  Composition of the created Kubernetes components that represents a Flink 
application.
   ```


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [flink] TisonKun commented on a change in pull request #11233: [FLINK-16194][k8s] Refactor the Kubernetes decorator design

2020-03-04 Thread GitBox
TisonKun commented on a change in pull request #11233: [FLINK-16194][k8s] 
Refactor the Kubernetes decorator design
URL: https://github.com/apache/flink/pull/11233#discussion_r387861569
 
 

 ##
 File path: 
flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/FlinkPod.java
 ##
 @@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.flink.kubernetes.kubeclient;
+
+import io.fabric8.kubernetes.api.model.Container;
+import io.fabric8.kubernetes.api.model.ContainerBuilder;
+import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.api.model.PodBuilder;
+
+import static org.apache.flink.util.Preconditions.checkNotNull;
+
+/**
+ * A collection of variables that composes a JobManager/TaskManager Pod. This 
can include
+ * the Pod, the main Container, and the InitContainer, etc.
+ */
+public class FlinkPod {
+
+   private Pod pod;
+
+   private Container mainContainer;
+
+   public FlinkPod(Pod pod, Container mainContainer) {
+   this.pod = pod;
+   this.mainContainer = mainContainer;
+   }
+
+   public Pod getPod() {
+   return pod;
+   }
+
+   public void setPod(Pod pod) {
+   this.pod = pod;
+   }
+
+   public Container getMainContainer() {
+   return mainContainer;
+   }
+
+   public void setMainContainer(Container mainContainer) {
+   this.mainContainer = mainContainer;
+   }
+
+   /**
+* Builder for creating a {@link FlinkPod}.
+*/
+   public static class Builder {
+
+   private Pod pod;
+   private Container mainContainer;
+
+   public Builder() {
+   this.pod = new PodBuilder()
+   .withNewMetadata()
+   .endMetadata()
+   .withNewSpec()
+   .endSpec()
+   .build();
+
+   this.mainContainer = new ContainerBuilder().build();
+   }
+
+   public Builder(FlinkPod flinkPod) {
 
 Review comment:
   As the document of `AbstractKubernetesStepDecorator`, I'm ok that this 
Builder follows  fabric8's Builder pattern. However, Flink has its own Builder 
pattern and even a [style 
guide](http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/CODE-STYLE-Builder-pattern-tt32225.html)
 for it. We can defer the change decision and leave as is now.
   
   cc @gyfora seems we forget adding the code style of Builder pattern in flink 
document.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [flink] TisonKun commented on a change in pull request #11233: [FLINK-16194][k8s] Refactor the Kubernetes decorator design

2020-03-04 Thread GitBox
TisonKun commented on a change in pull request #11233: [FLINK-16194][k8s] 
Refactor the Kubernetes decorator design
URL: https://github.com/apache/flink/pull/11233#discussion_r387861569
 
 

 ##
 File path: 
flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/FlinkPod.java
 ##
 @@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.flink.kubernetes.kubeclient;
+
+import io.fabric8.kubernetes.api.model.Container;
+import io.fabric8.kubernetes.api.model.ContainerBuilder;
+import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.api.model.PodBuilder;
+
+import static org.apache.flink.util.Preconditions.checkNotNull;
+
+/**
+ * A collection of variables that composes a JobManager/TaskManager Pod. This 
can include
+ * the Pod, the main Container, and the InitContainer, etc.
+ */
+public class FlinkPod {
+
+   private Pod pod;
+
+   private Container mainContainer;
+
+   public FlinkPod(Pod pod, Container mainContainer) {
+   this.pod = pod;
+   this.mainContainer = mainContainer;
+   }
+
+   public Pod getPod() {
+   return pod;
+   }
+
+   public void setPod(Pod pod) {
+   this.pod = pod;
+   }
+
+   public Container getMainContainer() {
+   return mainContainer;
+   }
+
+   public void setMainContainer(Container mainContainer) {
+   this.mainContainer = mainContainer;
+   }
+
+   /**
+* Builder for creating a {@link FlinkPod}.
+*/
+   public static class Builder {
+
+   private Pod pod;
+   private Container mainContainer;
+
+   public Builder() {
+   this.pod = new PodBuilder()
+   .withNewMetadata()
+   .endMetadata()
+   .withNewSpec()
+   .endSpec()
+   .build();
+
+   this.mainContainer = new ContainerBuilder().build();
+   }
+
+   public Builder(FlinkPod flinkPod) {
 
 Review comment:
   As the document of `AbstractKubernetesStepDecorator`, I'm ok that this 
Builder follows  fabric8's Builder pattern. However, Flink has its own Builder 
and even a [style 
guide](http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/CODE-STYLE-Builder-pattern-tt32225.html)
 for it. We can defer the change decision and leave as is now.
   
   cc @gyfora seems we forget adding the code style of Builder pattern in flink 
document.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [flink] TisonKun commented on a change in pull request #11233: [FLINK-16194][k8s] Refactor the Kubernetes decorator design

2020-03-04 Thread GitBox
TisonKun commented on a change in pull request #11233: [FLINK-16194][k8s] 
Refactor the Kubernetes decorator design
URL: https://github.com/apache/flink/pull/11233#discussion_r387857955
 
 

 ##
 File path: 
flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/FlinkPod.java
 ##
 @@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.flink.kubernetes.kubeclient;
+
+import io.fabric8.kubernetes.api.model.Container;
+import io.fabric8.kubernetes.api.model.ContainerBuilder;
+import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.api.model.PodBuilder;
+
+import static org.apache.flink.util.Preconditions.checkNotNull;
+
+/**
+ * A collection of variables that composes a JobManager/TaskManager Pod. This 
can include
+ * the Pod, the main Container, and the InitContainer, etc.
+ */
+public class FlinkPod {
+
+   private Pod pod;
+
+   private Container mainContainer;
+
+   public FlinkPod(Pod pod, Container mainContainer) {
+   this.pod = pod;
+   this.mainContainer = mainContainer;
+   }
+
+   public Pod getPod() {
+   return pod;
+   }
+
+   public void setPod(Pod pod) {
 
 Review comment:
   nit: you can edit the FlinkPod commit to make it a value class, i.e., `pod` 
and `mainContainer` are `final` and no getters.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services