<!--

Welcome to Apache Airflow!  For a smooth issue process, try to answer the following questions.
Don't worry if they're not all applicable; just try to include what you can :-)

If you need to include code snippets or logs, please put them in fenced code
blocks.  If they're super-long, please use the details tag like
<details><summary>super-long log</summary> lots of stuff </details>

Please delete these comment blocks before submitting the issue.

-->

**Description**

In Spark Kubernetes operator we have hard-coded API group and version for spark application k8s object:
https://github.com/apache/airflow/blob/b23a4cd6631ba3346787b285a7bdafd5e71b43b0/airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py#L63-L65
I think it is not good, because we can have situation that some custom or not opensource Spark k8s operators can have different API group and version (like `sparkoperator.mydomain.com` instead of `sparkoperator.k8s.io`). 
<!-- A short description of your feature -->

**Use case / motivation**

User have got installed custom or commercial Spark Kubernetes operator and he wants to launch DAG with `SprkKubernetesOperator` from providers. User cannot do that without this implemented feature.

<!-- What do you want to happen?

Rather than telling us how you might implement this solution, try to take a
step back and describe what you are trying to achieve.

-->

**Are you willing to submit a PR?**

Yes
<!--- We accept contributions! -->

**Related Issues**

No
<!-- Is there currently another issue associated with this? -->

tests/providers/cncf/kubernetes/sensors/test_spark_kubernetes.py
"memory": "512m",
        },
        "image": "gcr.io/spark-operator/spark:v2.4.4-gcs-prometheus",
        "imagePullPolicy": "Always",
        "mainApplicationFile": "local:///opt/spark/examples/jars/spark-examples_2.11-2.4.4.jar",
        "mainClass": "org.apache.spark.examples.SparkPi",
        "mode": "cluster",
        "monitoring": {
            "exposeDriverMetrics": True,
            "exposeExecutorMetrics": True,
            "prometheus": {
                "jmxExporterJar": "/prometheus/jmx_prometheus_javaagent-0.11.0.jar",
                "port": 8090,
            },
        },
        "restartPolicy": {"type": "Never"},
        "sparkVersion": "2.4.4",
        "type": "Scala",
    },
    "status": {
        "applicationState": {"state": "PENDING_RERUN"},
        "driverInfo": {},
        "lastSubmissionAttemptTime": None,
        "terminationTime": None,
    },
}
TEST_POD_LOGS = [b"LOG LINE 1\n", b"LOG LINE 2"]
TEST_POD_LOG_RESULT = "LOG LINE 1\nLOG LINE 2"
@patch("airflow.providers.cncf.kubernetes.hooks.kubernetes.KubernetesHook.get_conn")
class TestSparkKubernetesSensor(unittest.TestCase):