in KubernetesPodOperator the name parameter is mandatory.
However if you forget to add it you will get a broken dag message with:
![Screen Shot 2021-04-12 at 12 16 58](https://user-images.githubusercontent.com/62940116/114373136-f699d180-9b8a-11eb-8500-d8e7118650ae.png)

This is because
https://github.com/apache/airflow/blob/1dfbb8d2031cb8a3e95e4bf91aa478857c5c3a85/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py#L277

it calls validate_data which produce this error:
https://github.com/apache/airflow/blob/1dfbb8d2031cb8a3e95e4bf91aa478857c5c3a85/airflow/utils/helpers.py#L40

The error is not useful. It doesn't explain what the issue is of where the problem is. it also says problem with `key` which isn't a parameter of anything.
I couldn't even know that the issue is from the KubernetesPodOperator.

Suggestions:
make better error message for `KubernetesPodOperator` when name parameter is missing OR invalid.

I would also suggest to make validate_key produce a better error message specifying what object produce the error
airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py
and limit_gpu, which will be used to generate airflow.kubernetes.pod.Resources.
        See also kubernetes.io/docs/concepts/configuration/manage-compute-resources-container
    :type resources: k8s.V1ResourceRequirements
    :param affinity: A dict containing a group of affinity scheduling rules.
    :type affinity: k8s.V1Affinity
    :param config_file: The path to the Kubernetes config file. (templated)
        If not specified, default value is ``~/.kube/config``
    :type config_file: str
    :param node_selectors: A dict containing a group of scheduling rules.
    :type node_selectors: dict
    :param image_pull_secrets: Any image pull secrets to be given to the pod.
        If more than one secret is required, provide a
        comma separated list: secret_a,secret_b
    :type image_pull_secrets: List[k8s.V1LocalObjectReference]
    :param service_account_name: Name of the service account
    :type service_account_name: str
    :param is_delete_operator_pod: What to do when the pod reaches its final
        state, or the execution is interrupted.
        If False (default): do nothing, If True: delete the pod
    :type is_delete_operator_pod: bool
    :param hostnetwork: If True enable host networking on the pod.
    :type hostnetwork: bool
    :param tolerations: A list of kubernetes tolerations.
    :type tolerations: List[k8s.V1Toleration]
    :param security_context: security options the pod should run with (PodSecurityContext).
    :type security_context: dict
    :param dnspolicy: dnspolicy for the pod.
    :type dnspolicy: str
    :param schedulername: Specify a schedulername for the pod
    :type schedulername: str