bbenzikry commented on a change in pull request #10023:
URL: https://github.com/apache/airflow/pull/10023#discussion_r471736799



##########
File path: airflow/providers/cncf/kubernetes/hooks/kubernetes.py
##########
@@ -99,19 +97,76 @@ def create_custom_resource_definition(self,
                 version=version,
                 namespace=namespace,
                 plural=plural,
-                body=body
+                body=body,
             )
             self.log.debug("Response: %s", response)
             return response
         except client.rest.ApiException as e:
-            raise AirflowException("Exception when calling -> 
create_custom_resource_definition: %s\n" % e)
-
-    def get_custom_resource_definition(self,
-                                       group: str,
-                                       version: str,
-                                       plural: str,
-                                       name: str,
-                                       namespace: Optional[str] = None):
+            raise AirflowException(
+                "Exception when calling -> create_custom_resource_definition: 
%s\n" % e
+            )
+
+    def get_pod_log_stream(
+        self,
+        pod_name: str,
+        container: Optional[str] = "",
+        namespace: Optional[str] = None,
+    ) -> Tuple[watch.Watch, Generator[str, None, None]]:
+        """
+        Retrieves a log stream for a container in a kubernetes pod.
+
+        :param pod_name: pod name
+        :type pod_name: str
+        :param container: container name
+        :type version: str
+        :param namespace: kubernetes namespace
+        :type namespace: str
+        """
+
+        api = client.CoreV1Api(self.get_conn())
+        watcher = watch.Watch()
+        return (
+            watcher,
+            watcher.stream(

Review comment:
       This assumes a role similar to the one below ( specific namespace role 
or ClusterRole. In any case the operator is constrained to the job namespace ) 
   
   ```yaml
   - apiGroups: [""]
     resources: ["pods", "pods/log"]
     verbs: ["get", "watch", "list"]
   ```
   It's important to mention that I opted against using the watcher, but left 
this here for future use ( I'm using ``read_namespaced_pod_log``, which still 
requires the mentioned permissions )
   
   Should we add a manifest that deals with it for a system test? similar to 
RBAC yamls from the operator here 
https://github.com/apache/airflow/blob/7d24b088cd736cfa18f9214e4c9d6ce2d5865f3d/tests/providers/cncf/kubernetes/operators/test_spark_kubernetes_system.py#L36
   
   In any case I don't think it should block, as it depends on explicitly 
adding the flag




----------------------------------------------------------------
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:
[email protected]


Reply via email to