KubernetesPodOperator  pod_template_file content doesn't support jinja airflow template variables. pod_template_file  is part of templated_fields list. 
https://github.com/apache/airflow/blob/master/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py#L165

template_fields: Iterable[str] = (        'image',        'cmds',        'arguments',        'env_vars',        'labels',        'config_file',        'pod_template_file',    )

But pod_template_file content is not supporting template variables. pod_template_file can be implemented the way SparkKubernetesOperator implemented using template_ext

https://github.com/apache/airflow/blob/master/airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py#L46
 template_ext = ('yaml', 'yml', 'json')
airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py
)
            self.pod = self.create_pod_request_obj()
            self.namespace = self.pod.metadata.namespace
            self.client = client
            
            labels = self.create_labels_for_pod(context)
            label_selector = self._get_pod_identifying_label_string(labels)
            pod_list = client.list_namespaced_pod(self.namespace, label_selector=label_selector)
            if len(pod_list.items) > 1 and self.reattach_on_restart:
                raise AirflowException(
                    f'More than one pod running with labels: {label_selector}'
                )
            launcher = pod_launcher.PodLauncher(kube_client=client, extract_xcom=self.do_xcom_push)
            if len(pod_list.items) == 1:
                try_numbers_match = self._try_numbers_match(context, pod_list.items[0])
                final_state, result = self.handle_pod_overlap(
                    labels, try_numbers_match, launcher, pod_list.items[0]
                )
            else:
                self.log.info("creating pod with labels %s and launcher %s", labels, launcher)
                final_state, _, result = self.create_new_pod_for_operator(labels, launcher)
            if final_state != State.SUCCESS:
                status = self.client.read_namespaced_pod(self.pod.metadata.name, self.namespace)
                raise AirflowException(f'Pod {self.pod.metadata.name} returned a failure: {status}')
            context['task_instance'].xcom_push(key='pod_name', value=self.pod.metadata.name)
            context['task_instance'].xcom_push(key='pod_namespace', value=self.namespace)
            return result
        except AirflowException as ex:
            raise AirflowException(f'Pod Launching failed: {ex}')
    def handle_pod_overlap(