mirror of
				https://github.com/prometheus-operator/kube-prometheus.git
				synced 2025-11-04 10:01:03 +01:00 
			
		
		
		
	Merge pull request #898 from paulfantom/validation
*: add resource validation
This commit is contained in:
		
						commit
						8588e30bd0
					
				
							
								
								
									
										2
									
								
								.github/workflows/ci.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/ci.yaml
									
									
									
									
										vendored
									
									
								
							@ -19,7 +19,7 @@ jobs:
 | 
				
			|||||||
    - uses: actions/setup-go@v2
 | 
					    - uses: actions/setup-go@v2
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        go-version: ${{ env.golang-version }}
 | 
					        go-version: ${{ env.golang-version }}
 | 
				
			||||||
    - run: make --always-make generate && git diff --exit-code
 | 
					    - run: make --always-make generate validate && git diff --exit-code
 | 
				
			||||||
  lint:
 | 
					  lint:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    name: Jsonnet linter
 | 
					    name: Jsonnet linter
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -3,3 +3,4 @@ minikube-manifests/
 | 
				
			|||||||
vendor/
 | 
					vendor/
 | 
				
			||||||
./auth
 | 
					./auth
 | 
				
			||||||
.swp
 | 
					.swp
 | 
				
			||||||
 | 
					crdschemas/
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										11
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								Makefile
									
									
									
									
									
								
							@ -8,7 +8,8 @@ GOJSONTOYAML_BIN=$(BIN_DIR)/gojsontoyaml
 | 
				
			|||||||
JSONNET_BIN=$(BIN_DIR)/jsonnet
 | 
					JSONNET_BIN=$(BIN_DIR)/jsonnet
 | 
				
			||||||
JSONNETLINT_BIN=$(BIN_DIR)/jsonnet-lint
 | 
					JSONNETLINT_BIN=$(BIN_DIR)/jsonnet-lint
 | 
				
			||||||
JSONNETFMT_BIN=$(BIN_DIR)/jsonnetfmt
 | 
					JSONNETFMT_BIN=$(BIN_DIR)/jsonnetfmt
 | 
				
			||||||
TOOLING=$(EMBEDMD_BIN) $(JB_BIN) $(GOJSONTOYAML_BIN) $(JSONNET_BIN) $(JSONNETLINT_BIN) $(JSONNETFMT_BIN)
 | 
					KUBECONFORM_BIN=$(BIN_DIR)/kubeconform
 | 
				
			||||||
 | 
					TOOLING=$(EMBEDMD_BIN) $(JB_BIN) $(GOJSONTOYAML_BIN) $(JSONNET_BIN) $(JSONNETLINT_BIN) $(JSONNETFMT_BIN) $(KUBECONFORM_BIN)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
JSONNETFMT_ARGS=-n 2 --max-blank-lines 2 --string-style s --comment-style s
 | 
					JSONNETFMT_ARGS=-n 2 --max-blank-lines 2 --string-style s --comment-style s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -32,6 +33,14 @@ vendor: $(JB_BIN) jsonnetfile.json jsonnetfile.lock.json
 | 
				
			|||||||
	rm -rf vendor
 | 
						rm -rf vendor
 | 
				
			||||||
	$(JB_BIN) install
 | 
						$(JB_BIN) install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					crdschemas: vendor
 | 
				
			||||||
 | 
						./scripts/generate-schemas.sh	
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: validate
 | 
				
			||||||
 | 
					validate: crdschemas manifests $(KUBECONFORM_BIN)
 | 
				
			||||||
 | 
						# Follow-up on https://github.com/instrumenta/kubernetes-json-schema/issues/26 if validations start failing
 | 
				
			||||||
 | 
						$(KUBECONFORM_BIN) -schema-location 'https://kubernetesjsonschema.dev' -schema-location 'crdschemas/{{ .ResourceKind }}.json' -skip CustomResourceDefinition manifests/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: fmt
 | 
					.PHONY: fmt
 | 
				
			||||||
fmt: $(JSONNETFMT_BIN)
 | 
					fmt: $(JSONNETFMT_BIN)
 | 
				
			||||||
	find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \
 | 
						find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										13
									
								
								scripts/generate-schemas.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								scripts/generate-schemas.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DIR="crdschemas"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Go to git repository root
 | 
				
			||||||
 | 
					cd ./$(git rev-parse --show-cdup)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					rm -rf "$DIR"
 | 
				
			||||||
 | 
					mkdir "$DIR"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for crd in vendor/prometheus-operator/*-crd.libsonnet; do
 | 
				
			||||||
 | 
						jq '.spec.versions[0].schema.openAPIV3Schema' < "$crd" > "$DIR/$(basename "$crd" | sed 's/-crd.libsonnet/.json/')"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
@ -7,4 +7,5 @@ require (
 | 
				
			|||||||
	github.com/campoy/embedmd v1.0.0
 | 
						github.com/campoy/embedmd v1.0.0
 | 
				
			||||||
	github.com/google/go-jsonnet v0.17.1-0.20210101181740-31d71aaccda6 // 7 commits after 0.17.0. Needed by jsonnet linter
 | 
						github.com/google/go-jsonnet v0.17.1-0.20210101181740-31d71aaccda6 // 7 commits after 0.17.0. Needed by jsonnet linter
 | 
				
			||||||
	github.com/jsonnet-bundler/jsonnet-bundler v0.4.0
 | 
						github.com/jsonnet-bundler/jsonnet-bundler v0.4.0
 | 
				
			||||||
 | 
						github.com/yannh/kubeconform v0.4.2 // indirect
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
				
			|||||||
@ -42,6 +42,14 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
 | 
				
			|||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
					github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
				
			||||||
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
 | 
					github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
 | 
				
			||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 | 
					github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 | 
				
			||||||
 | 
					github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c=
 | 
				
			||||||
 | 
					github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
 | 
				
			||||||
 | 
					github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
 | 
				
			||||||
 | 
					github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
 | 
				
			||||||
 | 
					github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
 | 
				
			||||||
 | 
					github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
 | 
				
			||||||
 | 
					github.com/yannh/kubeconform v0.4.2 h1:8ve/dz6ns9tT5efR1Qfn8569JkenPFqnWcVWGz3lqPw=
 | 
				
			||||||
 | 
					github.com/yannh/kubeconform v0.4.2/go.mod h1:Ysf3RSreh2rX8IJsVt/uT3Um/U3e3ykx6Fcz8nCdskM=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20190310054646-10058d7d4faa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					golang.org/x/sys v0.0.0-20190310054646-10058d7d4faa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4=
 | 
					golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4=
 | 
				
			||||||
@ -53,5 +61,8 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogR
 | 
				
			|||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
					gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
				
			||||||
 | 
					gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
				
			||||||
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
 | 
					gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
 | 
				
			||||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
				
			||||||
 | 
					sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
 | 
				
			||||||
 | 
					sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
 | 
				
			||||||
 | 
				
			|||||||
@ -10,5 +10,6 @@ import (
 | 
				
			|||||||
	_ "github.com/google/go-jsonnet/cmd/jsonnet"
 | 
						_ "github.com/google/go-jsonnet/cmd/jsonnet"
 | 
				
			||||||
	_ "github.com/google/go-jsonnet/cmd/jsonnet-lint"
 | 
						_ "github.com/google/go-jsonnet/cmd/jsonnet-lint"
 | 
				
			||||||
	_ "github.com/google/go-jsonnet/cmd/jsonnetfmt"
 | 
						_ "github.com/google/go-jsonnet/cmd/jsonnetfmt"
 | 
				
			||||||
 | 
						_ "github.com/yannh/kubeconform/cmd/kubeconform"
 | 
				
			||||||
	_ "github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb"
 | 
						_ "github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user