### Official Helm Chart version

1.6.0 (latest released)

### Apache Airflow version

2.3.4

### Kubernetes Version

1.23

### Helm Chart configuration

```
# shortened values.yaml file  
webserver:
    service:
      type: NodePort
      ports:
        - name: airflow-ui
          port: 80
          targetPort: airflow-ui
          nodePort: 8081  # Note this line does not work, this is what'd be nice to have for defining nodePort
```

### Docker Image customisations

_No response_

### What happened

Supplying nodePort like in the above Helm Chart Configuration example fails with an error saying a value of nodePort is not supported.

### What you think should happen instead

It'd be nice if we could define the nodePort we want the airflow-webserver service to listen on at launch. As it currently stands, supplying nodePort like in the above values.yaml example will fail, saying nodePort cannot be supplied. The workaround is to manually edit the webserver service post-deployment and specify the desired port for nodePort.

I looked at the way [the webserver service template file](https://github.com/apache/airflow/blob/main/chart/templates/webserver/webserver-service.yaml#L44-L50) is set up, and the logic there should allow this, but I believe the missing definition in the [schema.json](https://github.com/apache/airflow/blob/main/chart/values.schema.json#L3446-L3472) file is causing this to error out. 

### How to reproduce

Attempt to install the Airflow Helm chart using the above values.yaml config

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

docs = render_chart(
            values={"airflowVersion": af_version},
            show_only=["templates/webserver/webserver-deployment.yaml"],
        )
        
        assert {
            "name": "config",
            "mountPath": "/opt/airflow/airflow.cfg",
            "readOnly": True,
            "subPath": "airflow.cfg",
        } in jmespath.search("spec.template.spec.containers[0].volumeMounts", docs[0])
        
        assert pod_template_file_expected == (
            {
                "name": "config",
                "mountPath": "/opt/airflow/pod_templates/pod_template_file.yaml",
                "readOnly": True,
                "subPath": "pod_template_file.yaml",
            }
            in jmespath.search("spec.template.spec.containers[0].volumeMounts", docs[0])
        )
    def test_webserver_resources_are_configurable(self):