yannh / kubeconform

A FAST Kubernetes manifests validator, with support for Custom Resources!
Apache License 2.0
2.15k stars 121 forks source link

The script `openapi2jsonschema.py` doesn't seem to work with Python 3.11 #186

Closed bmuschko closed 1 year ago

bmuschko commented 1 year ago

I tried the following, but it seems like the script isn't compatible?

$ python3 openapi2jsonschema.py https://github.com/open-policy-agent/gatekeeper/blob/master/deploy/gatekeeper.yaml
Traceback (most recent call last):
  File "/Users/bmuschko/dev/tmp/kubeconform/openapi2jsonschema.py", line 137, in <module>
    for y in yaml.load_all(f, Loader=yaml.SafeLoader):
  File "/usr/local/lib/python3.11/site-packages/yaml/__init__.py", line 93, in load_all
    yield loader.get_data()
          ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/constructor.py", line 45, in get_data
    return self.construct_document(self.get_node())
                                   ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/composer.py", line 27, in get_node
    return self.compose_document()
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/composer.py", line 58, in compose_document
    self.get_event()
  File "/usr/local/lib/python3.11/site-packages/yaml/parser.py", line 118, in get_event
    self.current_event = self.state()
                         ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/parser.py", line 193, in parse_document_end
    token = self.peek_token()
            ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/scanner.py", line 129, in peek_token
    self.fetch_more_tokens()
  File "/usr/local/lib/python3.11/site-packages/yaml/scanner.py", line 223, in fetch_more_tokens
    return self.fetch_value()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/yaml/scanner.py", line 577, in fetch_value
    raise ScannerError(None, None,
yaml.scanner.ScannerError: mapping values are not allowed here
  in "<file>", line 27, column 66
eyarz commented 1 year ago

you need to use the raw file URL instead: https://raw.githubusercontent.com/open-policy-agent/gatekeeper/master/deploy/gatekeeper.yaml

bmuschko commented 1 year ago

My bet. Works! Thanks for the pointer.