mirror of
https://github.com/yannh/kubeconform.git
synced 2026-02-12 14:39:21 +00:00
60 lines
No EOL
3.5 KiB
HTML
60 lines
No EOL
3.5 KiB
HTML
<!doctype html><html><head>
|
|
<meta charset=utf-8>
|
|
<meta name=author content="Yann Hamon">
|
|
<link rel=stylesheet type=text/css href=/css/style.css><link rel=stylesheet type=text/css href=/css/prism.css>
|
|
<title>Kubeconform - Fast Kubernetes manifests validation! | OpenAPI to JSON Schema conversion</title>
|
|
</head>
|
|
<body>
|
|
<div id=main-container><div id=header>
|
|
<ul id=navigation>
|
|
<li><a href=/about>About</a></li>
|
|
<li><a href=https://github.com/yannh/kubeconform/>GitHub</a></li>
|
|
<li><a href=/docs/installation/>Docs</a></li>
|
|
<li><a href=/>Home</a></li>
|
|
</ul>
|
|
<h1>Kubeconform</h1>
|
|
<h2>A fast Kubernetes manifests validator</h2>
|
|
</div>
|
|
<div id=content><ul id=menu>
|
|
<li><a href=http://kubeconform.mandragor.org/docs/overview/>Overview</a></li>
|
|
<li><a href=http://kubeconform.mandragor.org/docs/installation/>Installation</a></li>
|
|
<li><a href=http://kubeconform.mandragor.org/docs/usage/>Usage</a></li>
|
|
<li><a href=http://kubeconform.mandragor.org/docs/crd-support/>Custom Resources support</a></li>
|
|
<li><a href=http://kubeconform.mandragor.org/docs/json-schema-conversion/>OpenAPI to JSON Schema conversion</a></li>
|
|
<li><a href=http://kubeconform.mandragor.org/docs/usage-as-github-action/>GitHub Action</a></li>
|
|
<li><a href=http://kubeconform.mandragor.org/docs/using-as-a-go-module/>Kubeconform as a Go module</a></li>
|
|
</ul>
|
|
<div id=main>
|
|
<div class=navig>
|
|
<a href=http://kubeconform.mandragor.org/docs/crd-support/ id=prev>< Custom Resources support</a>
|
|
<a href=http://kubeconform.mandragor.org/docs/usage-as-github-action/ id=next>GitHub Action ></a>
|
|
</div>
|
|
<div id=content-text>
|
|
<h1>OpenAPI to JSON Schema conversion</h1>
|
|
<p>Kubeconform uses JSON schemas to validate Kubernetes resources. For custom resources, the CustomResourceDefinition
|
|
first needs to be converted to JSON Schema. A script is provided to convert these CustomResourceDefinitions
|
|
to JSON schema. Here is an example how to use it:</p>
|
|
<pre><code class=language-bash>#!/bin/bash
|
|
$ ./scripts/openapi2jsonschema.py https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/config/crd/bases/sagemaker.aws.amazon.com_trainingjobs.yaml
|
|
JSON schema written to trainingjob_v1.json
|
|
</code></pre>
|
|
<p>The <code>FILENAME_FORMAT</code> environment variable can be used to change the output file name (Available variables: <code>kind</code>, <code>group</code>, <code>version</code>) (Default: <code>{kind}_{version}</code>).</p>
|
|
<pre><code class=language-bash>$ export FILENAME_FORMAT='{kind}-{group}-{version}'
|
|
$ ./scripts/openapi2jsonschema.py https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/config/crd/bases/sagemaker.aws.amazon.com_trainingjobs.yaml
|
|
JSON schema written to trainingjob-sagemaker-v1.json
|
|
</code></pre>
|
|
<p>Some CRD schemas do not have explicit validation for fields implicitly validated by the Kubernetes API like <code>apiVersion</code>, <code>kind</code>, and <code>metadata</code>, thus additional properties are allowed at the root of the JSON schema by default, if this is not desired the <code>DENY_ROOT_ADDITIONAL_PROPERTIES</code> environment variable can be set to any non-empty value.</p>
|
|
</div>
|
|
<div class=navig>
|
|
<a href=http://kubeconform.mandragor.org/docs/crd-support/ id=prev>< Custom Resources support</a>
|
|
<a href=http://kubeconform.mandragor.org/docs/usage-as-github-action/ id=next>GitHub Action ></a>
|
|
</div>
|
|
<script defer src=/js/prism.js></script>
|
|
</div>
|
|
</div><div id=footer>
|
|
Website powered by <a href=https://gohugo.io/>Hugo</a>
|
|
</div>
|
|
</div>
|
|
<script defer src=/js/prism.js></script>
|
|
</body>
|
|
</html> |