### Official Helm Chart version

main (development)

### Apache Airflow version

2.2.3 (latest released)

### Kubernetes Version

1.21.5

### Helm Chart configuration

_No response_

### Docker Image customisations

_No response_

### What happened

If you don't have outbound routing to the internet, you cannot install/template/lint the helm chart, e.g:

```
$ helm upgrade --install oss ~/github/airflow/chart 
Release "oss" does not exist. Installing it now.
Error: values don't meet the specifications of the schema(s) in the following chart(s):
airflow:
Get "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.22.0-standalone-strict/networkpolicypeer-networking-v1.json": dial tcp: lookup raw.githubusercontent.com: no such host
```

### What you expected to happen

The chart should function without requiring outbound internet access.

### How to reproduce

Disable networking and try installing the chart.

### Anything else

We use external schema references in our chart, e.g:

https://github.com/apache/airflow/blob/8acfe8d82197448d2117beab29e688a68cec156a/chart/values.schema.json#L1298

Unfortunately, naively using relative filesystem reference in `values.schema.json` doesn't work properly in helm (see helm/helm#10481).

### 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)

scripts/ci/pre_commit/pre_commit_chart_schema.py
all_object_types = ((d, p) for d, p in walk(SCHEMA) if type(d) == dict and d.get('type') == 'object')
    all_object_types_with_a_loose_definition = [
        (d, p)
        for d, p in all_object_types
        if 'properties' not in d
        and "$ref" not in d
        and type(d.get('additionalProperties')) != dict
        and p not in KNOWN_INVALID_TYPES
    ]
    to_display_invalid_types = [
        (d, p) for d, p in all_object_types_with_a_loose_definition if p not in KNOWN_INVALID_TYPES
    ]
    if to_display_invalid_types:
        print(
            "Found object type definitions with too loose a definition. "
            "Make sure that the type meets one of the following conditions:"
        )
        print(" - has a `properties` key")
        print(" - has a `$ref` key")
        print(" - has a `additionalProperties` key, which content is an object")
        display_definitions_list(to_display_invalid_types)
    return all_object_types_with_a_loose_definition
def validate_array_types():