mirror of
https://github.com/yannh/kubeconform.git
synced 2026-02-12 22:49:23 +00:00
84 lines
3.7 KiB
HTML
84 lines
3.7 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="/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>
|