From b080ad26a3766c50a241cc9955d3625f8fbdeaba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Edouard=20Br=C3=A9t=C3=A9ch=C3=A9?= Date: Tue, 23 Jan 2024 21:18:25 +0100 Subject: [PATCH] feat: add chart MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Charles-Edouard Brétéché --- .github/workflows/ah-lint.yaml | 29 ++ .github/workflows/ct-lint.yaml | 35 ++ .github/workflows/helm-install.yaml | 34 ++ .goreleaser.yaml | 4 +- Makefile | 419 ++++-------------- charts/policy-reports/.helmignore | 23 + charts/policy-reports/Chart.lock | 6 + charts/policy-reports/Chart.yaml | 21 + .../charts/postgresql-13.4.1.tgz | Bin 0 -> 63994 bytes charts/policy-reports/templates/_helpers.tpl | 62 +++ .../policy-reports/templates/api-service.yaml | 16 + .../templates/cluster-roles.yaml | 35 ++ .../policy-reports/templates/deployment.yaml | 84 ++++ charts/policy-reports/templates/roles.yaml | 15 + .../templates/service-account.yaml | 13 + charts/policy-reports/templates/service.yaml | 16 + charts/policy-reports/values.yaml | 151 +++++++ 17 files changed, 623 insertions(+), 340 deletions(-) create mode 100644 .github/workflows/ah-lint.yaml create mode 100644 .github/workflows/ct-lint.yaml create mode 100644 .github/workflows/helm-install.yaml create mode 100644 charts/policy-reports/.helmignore create mode 100644 charts/policy-reports/Chart.lock create mode 100644 charts/policy-reports/Chart.yaml create mode 100644 charts/policy-reports/charts/postgresql-13.4.1.tgz create mode 100644 charts/policy-reports/templates/_helpers.tpl create mode 100644 charts/policy-reports/templates/api-service.yaml create mode 100644 charts/policy-reports/templates/cluster-roles.yaml create mode 100644 charts/policy-reports/templates/deployment.yaml create mode 100644 charts/policy-reports/templates/roles.yaml create mode 100644 charts/policy-reports/templates/service-account.yaml create mode 100644 charts/policy-reports/templates/service.yaml create mode 100644 charts/policy-reports/values.yaml diff --git a/.github/workflows/ah-lint.yaml b/.github/workflows/ah-lint.yaml new file mode 100644 index 0000000..7ca39b7 --- /dev/null +++ b/.github/workflows/ah-lint.yaml @@ -0,0 +1,29 @@ +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json + +name: ArtifactHub Lint + +# permissions: {} + +on: + pull_request: + branches: + - '*' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + required: + runs-on: ubuntu-latest + container: + image: artifacthub/ah + options: --user root + steps: + - name: Checkout + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - name: Run ah lint + working-directory: ./charts/ + run: | + set -e + ah lint diff --git a/.github/workflows/ct-lint.yaml b/.github/workflows/ct-lint.yaml new file mode 100644 index 0000000..a24d5a9 --- /dev/null +++ b/.github/workflows/ct-lint.yaml @@ -0,0 +1,35 @@ +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json + +name: CT Lint + +# permissions: {} + +on: + pull_request: + branches: + - '*' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + required: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + with: + fetch-depth: 0 + - name: Set up Helm + uses: azure/setup-helm@5119fcb9089d432beecbf79bb2c7915207344b78 # v3.5 + - name: Setup python + uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + with: + python-version: 3.7 + - name: Set up chart-testing + uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1 + - name: Run chart-testing (lint) + run: | + set -e + ct lint --target-branch=main --check-version-increment=false diff --git a/.github/workflows/helm-install.yaml b/.github/workflows/helm-install.yaml new file mode 100644 index 0000000..65a3bc0 --- /dev/null +++ b/.github/workflows/helm-install.yaml @@ -0,0 +1,34 @@ +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json + +name: Helm install + +# permissions: {} + +on: + pull_request: + branches: + - '*' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + required: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - name: Set up Go + uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 + with: + go-version-file: go.mod + cache-dependency-path: go.sum + - name: Create cluster + run: | + set -e + make kind-create + - name: Install chart + run: | + set -e + make kind-install diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 832e634..7187f0c 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -13,8 +13,8 @@ builds: binary: policy-reports flags: - -trimpath - # ldflags: - # - -s -w -X github.com/kyverno/policy-reports/pkg/version.BuildVersion={{ .Version }} + ldflags: + - -s -w kos: - build: policy-reports diff --git a/Makefile b/Makefile index aa63ca8..b5ad157 100644 --- a/Makefile +++ b/Makefile @@ -1,339 +1,16 @@ -# Common User-Settable Flags -# -------------------------- -REGISTRY?=ghcr.io/vishal-chdhry/policy-reports -ARCH?=a64 -OS?=linux -BINARY_NAME?=policy-reports-$(OS)-$(ARCH) +.DEFAULT_GOAL := build -ifeq ($(OS),windows) -BINARY_NAME:=$(BINARY_NAME).exe -endif +########## +# CONFIG # +########## -OUTPUT_DIR?=_output - -# Release variables -# ------------------ -GIT_COMMIT?=$(shell git rev-parse "HEAD^{commit}" 2>/dev/null) -GIT_TAG?=$(shell git describe --abbrev=0 --tags 2>/dev/null) -BUILD_DATE:=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ') - -# Consts -# ------ -ALL_ARCHITECTURES=amd64 arm arm64 ppc64le s390x -export DOCKER_CLI_EXPERIMENTAL=enabled - -ALL_BINARIES_PLATFORMS= $(addprefix linux/,$(ALL_ARCHITECTURES)) \ - darwin/amd64 \ - darwin/arm64 \ - windows/amd64 \ - windows/arm64 - -# Tools versions -# -------------- -GOLANGCI_VERSION:=1.55.2 - -# Computed variables -# ------------------ -GOPATH:=$(shell go env GOPATH) -REPO_DIR:=$(shell pwd) - -.PHONY: all -all: policy-reports - -# Build Rules -# ----------- - -SRC_DEPS=$(shell find pkg cmd -type f -name "*.go") go.mod go.sum -CHECKSUM=$(shell md5sum $(SRC_DEPS) | md5sum | awk '{print $$1}') -PKG:=k8s.io/client-go/pkg -VERSION_LDFLAGS:=-X $(PKG)/version.gitVersion=$(GIT_TAG) -X $(PKG)/version.gitCommit=$(GIT_COMMIT) -X $(PKG)/version.buildDate=$(BUILD_DATE) -LDFLAGS:=-w $(VERSION_LDFLAGS) - -policy-reports: - OUTPUT_DIR=. BINARY_NAME=$@ $(MAKE) build - -.PHONY: build -build: $(SRC_DEPS) - @mkdir -p $(OUTPUT_DIR) - GOARCH=$(ARCH) GOOS=$(OS) CGO_ENABLED=0 go build -mod=readonly -trimpath -ldflags "$(LDFLAGS)" -o "$(OUTPUT_DIR)/$(BINARY_NAME)" . - -.PHONY: build-all -build-all: - @for platform in $(ALL_BINARIES_PLATFORMS); do \ - OS="$${platform%/*}" ARCH="$${platform#*/}" $(MAKE) build; \ - done - -# Image Rules -# ----------- - -CONTAINER_ARCH_TARGETS=$(addprefix container-,$(ALL_ARCHITECTURES)) - -.PHONY: container -container: - # Pull base image explicitly. Keep in sync with Dockerfile, otherwise - # GCB builds will start failing. - docker pull golang:1.21.4 - docker build -t $(REGISTRY)/policy-reports-$(ARCH):$(CHECKSUM) --build-arg ARCH=$(ARCH) --build-arg GIT_TAG=$(GIT_TAG) --build-arg GIT_COMMIT=$(GIT_COMMIT) . - -.PHONY: container-all -container-all: $(CONTAINER_ARCH_TARGETS); - -.PHONY: $(CONTAINER_ARCH_TARGETS) -$(CONTAINER_ARCH_TARGETS): container-%: - ARCH=$* $(MAKE) container - -# Official Container Push Rules -# ----------------------------- - -PUSH_ARCH_TARGETS=$(addprefix push-,$(ALL_ARCHITECTURES)) - -.PHONY: push -push: container - docker tag $(REGISTRY)/policy-reports-$(ARCH):$(CHECKSUM) $(REGISTRY)/policy-reports-$(ARCH):$(GIT_TAG) - docker push $(REGISTRY)/policy-reports-$(ARCH):$(GIT_TAG) - -.PHONY: push-all -push-all: $(PUSH_ARCH_TARGETS) push-multi-arch; - -.PHONY: $(PUSH_ARCH_TARGETS) -$(PUSH_ARCH_TARGETS): push-%: - ARCH=$* $(MAKE) push - -.PHONY: push-multi-arch -push-multi-arch: - docker manifest create --amend $(REGISTRY)/policy-reports:$(GIT_TAG) $(shell echo $(ALL_ARCHITECTURES) | sed -e "s~[^ ]*~$(REGISTRY)/policy-reports\-&:$(GIT_TAG)~g") - @for arch in $(ALL_ARCHITECTURES); do docker manifest annotate --arch $${arch} $(REGISTRY)/policy-reports:$(GIT_TAG) $(REGISTRY)/policy-reports-$${arch}:${GIT_TAG}; done - docker manifest push --purge $(REGISTRY)/policy-reports:$(GIT_TAG) - -# Release rules -# ------------- - -.PHONY: release-tag -release-tag: - git tag $(GIT_TAG) - git push origin $(GIT_TAG) - -.PHONY: release-manifests -release-manifests: - mkdir -p $(OUTPUT_DIR) - kubectl kustomize manifests/overlays/release > $(OUTPUT_DIR)/components.yaml - kubectl kustomize manifests/overlays/release-ha > $(OUTPUT_DIR)/high-availability.yaml - kubectl kustomize manifests/overlays/release-ha-1.21+ > $(OUTPUT_DIR)/high-availability-1.21+.yaml - - -# fuzz tests -# ---------- - -.PHONY: test-fuzz -test-fuzz: - GO111MODULE=on GOARCH=$(ARCH) go test --test.short -race -fuzz=Fuzz_decodeBatchPrometheusFormat -fuzztime 900s -timeout 10s ./pkg/scraper/client/resource/ - GO111MODULE=on GOARCH=$(ARCH) go test --test.short -race -fuzz=Fuzz_decodeBatchRandom -fuzztime 900s -timeout 10s ./pkg/scraper/client/resource/ -# Unit tests -# ---------- -.PHONY: test-unit -test-unit: - GO111MODULE=on GOARCH=$(ARCH) go test --test.short -race ./pkg/... ./cmd/... - -# Benchmarks -# ---------- - -HAS_BENCH_STORAGE=$(wildcard ./$(OUTPUT_DIR)/bench_storage.txt) - -.PHONY: bench-storage -bench-storage: benchstat - @mkdir -p $(OUTPUT_DIR) -ifneq ("$(HAS_BENCH_STORAGE)","") - @mv $(OUTPUT_DIR)/bench_storage.txt $(OUTPUT_DIR)/bench_storage.old.txt -endif - @go test ./pkg/storage/ -bench=. -run=^$ -benchmem -count 5 -timeout 1h | tee $(OUTPUT_DIR)/bench_storage.txt -ifeq ("$(HAS_BENCH_STORAGE)","") - @cp $(OUTPUT_DIR)/bench_storage.txt $(OUTPUT_DIR)/bench_storage.old.txt -endif - @echo - @echo 'Comparing versus previous run. When optimizing copy everything below this line and include in PR description.' - @echo - @benchstat $(OUTPUT_DIR)/bench_storage.old.txt $(OUTPUT_DIR)/bench_storage.txt - -HAS_BENCHSTAT:=$(shell command -v benchstat) -.PHONY: benchstat -benchstat: -ifndef HAS_BENCHSTAT - @go install -mod=readonly -modfile=scripts/go.mod golang.org/x/perf/cmd/benchstat -endif - -# Image tests -# ------------ - -.PHONY: test-image -test-image: container - IMAGE=$(REGISTRY)/policy-reports-$(ARCH):$(CHECKSUM) EXPECTED_ARCH=$(ARCH) EXPECTED_VERSION=$(GIT_TAG) ./test/test-image.sh - -.PHONY: test-image-all -test-image-all: - @for arch in $(ALL_ARCHITECTURES); do ARCH=$${arch} $(MAKE) test-image; done - -# E2e tests -# ----------- - -.PHONY: test-e2e -test-e2e: test-e2e-1.28 - -.PHONY: test-e2e-all -test-e2e-all: test-e2e-1.28 test-e2e-1.27 test-e2e-1.26 - -.PHONY: test-e2e-1.28 -test-e2e-1.28: - NODE_IMAGE=kindest/node:v1.28.0@sha256:b7a4cad12c197af3ba43202d3efe03246b3f0793f162afb40a33c923952d5b31 KIND_CONFIG="${PWD}/test/kind-config-with-sidecar-containers.yaml" ./test/test-e2e.sh - -.PHONY: test-e2e-1.27 -test-e2e-1.27: - NODE_IMAGE=kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72 ./test/test-e2e.sh - -.PHONY: test-e2e-1.26 -test-e2e-1.26: - NODE_IMAGE=kindest/node:v1.26.6@sha256:6e2d8b28a5b601defe327b98bd1c2d1930b49e5d8c512e1895099e4504007adb ./test/test-e2e.sh - -.PHONY: test-e2e-ha -test-e2e-ha: - SKAFFOLD_PROFILE="test-ha" $(MAKE) test-e2e - -.PHONY: test-e2e-ha-all -test-e2e-ha-all: - SKAFFOLD_PROFILE="test-ha" $(MAKE) test-e2e-all - -.PHONY: test-e2e-helm -test-e2e-helm: - SKAFFOLD_PROFILE="helm" $(MAKE) test-e2e - -.PHONY: test-e2e-helm-all -test-e2e-helm-all: - SKAFFOLD_PROFILE="helm" $(MAKE) test-e2e-all - -# Static analysis -# --------------- - -.PHONY: verify -verify: verify-licenses verify-lint verify-toc verify-deps verify-scripts-deps verify-generated verify-structured-logging - -.PHONY: update -update: update-licenses update-lint update-toc update-deps update-generated - -# License -# ------- - -HAS_ADDLICENSE:=$(shell command -v addlicense) -.PHONY: verify-licenses -verify-licenses:addlicense - find -type f -name "*.go" ! -path "*/vendor/*" | xargs $(GOPATH)/bin/addlicense -check || (echo 'Run "make update"' && exit 1) - -.PHONY: update-licenses -update-licenses: addlicense - find -type f -name "*.go" ! -path "*/vendor/*" | xargs $(GOPATH)/bin/addlicense -c "The Kubernetes Authors." - -.PHONY: addlicense -addlicense: -ifndef HAS_ADDLICENSE - go install -mod=readonly -modfile=scripts/go.mod github.com/google/addlicense -endif - -# Lint -# ---- - -.PHONY: verify-lint -verify-lint: golangci - $(GOPATH)/bin/golangci-lint run --timeout 10m || (echo 'Run "make update"' && exit 1) - -.PHONY: update-lint -update-lint: golangci - $(GOPATH)/bin/golangci-lint run --fix - -HAS_GOLANGCI_VERSION:=$(shell $(GOPATH)/bin/golangci-lint version --format=short > /dev/null 2>&1) -.PHONY: golangci -golangci: -ifneq ($(HAS_GOLANGCI_VERSION), $(GOLANGCI_VERSION)) - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GOPATH)/bin v$(GOLANGCI_VERSION) -endif - -# Table of Contents -# ----------------- - -docs_with_toc=FAQ.md KNOWN_ISSUES.md - -.PHONY: verify-toc -verify-toc: mdtoc $(docs_with_toc) - $(GOPATH)/bin/mdtoc --inplace --dryrun $(docs_with_toc) - -.PHONY: update-toc -update-toc: mdtoc $(docs_with_toc) - $(GOPATH)/bin/mdtoc --inplace $(docs_with_toc) - -HAS_MDTOC:=$(shell command -v mdtoc) -.PHONY: mdtoc -mdtoc: -ifndef HAS_MDTOC - go install -mod=readonly -modfile=scripts/go.mod sigs.k8s.io/mdtoc -endif - -# Structured Logging -# ----------------- - -.PHONY: verify-structured-logging -verify-structured-logging: logcheck - $(GOPATH)/bin/logcheck ./... || (echo 'Fix structured logging' && exit 1) - -HAS_LOGCHECK:=$(shell command -v logcheck) -.PHONY: logcheck -logcheck: -ifndef HAS_LOGCHECK - go install -mod=readonly -modfile=scripts/go.mod sigs.k8s.io/logtools/logcheck -endif - -# Dependencies -# ------------ - -.PHONY: update-deps -update-deps: - go mod tidy - cd scripts && go mod tidy - -.PHONY: verify-deps -verify-deps: - go mod verify - go mod tidy - @git diff --exit-code -- go.mod go.sum - -.PHONY: verify-scripts-deps -verify-scripts-deps: - make -C scripts -f ../Makefile verify-deps - -# Generated -# --------- - -generated_files=pkg/api/generated/openapi/zz_generated.openapi.go - -.PHONY: verify-generated -verify-generated: update-generated - @git diff --exit-code -- $(generated_files) - -.PHONY: update-generated -update-generated: - # pkg/api/generated/openapi/zz_generated.openapi.go - go install -mod=readonly -modfile=scripts/go.mod k8s.io/kube-openapi/cmd/openapi-gen - $(GOPATH)/bin/openapi-gen -i sigs.k8s.io/wg-policy-prototypes/policy-report/pkg/api/wgpolicyk8s.io/v1alpha2,k8s.io/apimachinery/pkg/runtime,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/api/resource,k8s.io/apimachinery/pkg/version,k8s.io/api/core/v1.ObjectReference -p pkg/api/generated/openapi/ -O zz_generated.openapi -o $(REPO_DIR) -h $(REPO_DIR)/scripts/boilerplate.go.txt -r /dev/null - -# Deprecated -# ---------- - -# Remove when CI is migrated -lint: verify -test-version: test-image-all - -# Clean -# ----- - -.PHONY: clean -clean: - rm -rf $(OUTPUT_DIR) +ORG ?= kyverno +PACKAGE ?= github.com/$(ORG)/policy-reports +GIT_SHA := $(shell git rev-parse HEAD) +GOOS ?= $(shell go env GOOS) +GOARCH ?= $(shell go env GOARCH) +REGISTRY ?= ghcr.io +REPO ?= policy-reports ######### # TOOLS # @@ -342,12 +19,24 @@ clean: TOOLS_DIR := $(PWD)/.tools KIND := $(TOOLS_DIR)/kind KIND_VERSION := v0.20.0 -TOOLS := $(KIND) +KO := $(TOOLS_DIR)/ko +KO_VERSION := v0.14.1 +HELM := $(TOOLS_DIR)/helm +HELM_VERSION := v3.10.1 +TOOLS := $(KIND) $(KO) $(HELM) $(KIND): @echo Install kind... >&2 @GOBIN=$(TOOLS_DIR) go install sigs.k8s.io/kind@$(KIND_VERSION) +$(KO): + @echo Install ko... >&2 + @GOBIN=$(TOOLS_DIR) go install github.com/google/ko@$(KO_VERSION) + +$(HELM): + @echo Install helm... >&2 + @GOBIN=$(TOOLS_DIR) go install helm.sh/helm/v3/cmd/helm@$(HELM_VERSION) + .PHONY: install-tools install-tools: $(TOOLS) ## Install tools @@ -356,16 +45,70 @@ clean-tools: ## Remove installed tools @echo Clean tools... >&2 @rm -rf $(TOOLS_DIR) +######### +# BUILD # +######### + +CGO_ENABLED ?= 0 +LD_FLAGS := "-s -w" +LOCAL_PLATFORM := linux/$(GOARCH) +KO_REGISTRY := ko.local +KO_TAGS := $(GIT_SHA) +KO_CACHE ?= /tmp/ko-cache +BIN := policy-reports + +.PHONY: fmt +fmt: ## Run go fmt + @echo Go fmt... >&2 + @go fmt ./... + +.PHONY: vet +vet: ## Run go vet + @echo Go vet... >&2 + @go vet ./... + +$(BIN): fmt vet + @echo Build cli binary... >&2 + @CGO_ENABLED=$(CGO_ENABLED) GOOS=$(GOOS) go build -o ./$(BIN) -ldflags=$(LD_FLAGS) . + +.PHONY: build +build: $(BIN) ## Build + +.PHONY: ko-build +ko-build: $(KO) ## Build image (with ko) + @echo Build image with ko... >&2 + @LDFLAGS=$(LD_FLAGS) KOCACHE=$(KO_CACHE) KO_DOCKER_REPO=$(KO_REGISTRY) \ + $(KO) build . --preserve-import-paths --tags=$(KO_TAGS) --platform=$(LOCAL_PLATFORM) + ######## # KIND # ######## KIND_IMAGE ?= kindest/node:v1.28.0 +KIND_NAME ?= kind -.PHONY: kind-cluster -kind-cluster: $(KIND) ## Create kind cluster +.PHONY: kind-create +kind-create: $(KIND) ## Create kind cluster @echo Create kind cluster... >&2 - @$(KIND) create cluster --image $(KIND_IMAGE) --wait 1m + @$(KIND) create cluster --name $(KIND_NAME) --image $(KIND_IMAGE) --wait 1m + +.PHONY: kind-delete +kind-delete: $(KIND) ## Delete kind cluster + @echo Delete kind cluster... >&2 + @$(KIND) delete cluster --name $(KIND_NAME) + +.PHONY: kind-load +kind-load: $(KIND) ko-build ## Build image and load in kind cluster + @echo Load image... >&2 + @$(KIND) load docker-image --name $(KIND_NAME) $(KO_REGISTRY)/$(PACKAGE):$(GIT_SHA) + +.PHONY: kind-install +kind-install: $(HELM) kind-load ## Build image, load it in kind cluster and deploy helm chart + @echo Install chart... >&2 + @$(HELM) upgrade --install policy-reports --namespace policy-reports --create-namespace --wait ./charts/policy-reports \ + --set image.registry=$(KO_REGISTRY) \ + --set image.repository=$(PACKAGE) \ + --set image.tag=$(GIT_SHA) ######## # HELP # diff --git a/charts/policy-reports/.helmignore b/charts/policy-reports/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/charts/policy-reports/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/policy-reports/Chart.lock b/charts/policy-reports/Chart.lock new file mode 100644 index 0000000..36f6164 --- /dev/null +++ b/charts/policy-reports/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: postgresql + repository: oci://registry-1.docker.io/bitnamicharts + version: 13.4.1 +digest: sha256:ac38b83c061b6851340ec78ea88bc2ac4a24d705235ebeeab2edc69ceb18f598 +generated: "2024-01-23T21:13:53.879046+01:00" diff --git a/charts/policy-reports/Chart.yaml b/charts/policy-reports/Chart.yaml new file mode 100644 index 0000000..945a5f5 --- /dev/null +++ b/charts/policy-reports/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +name: policy-reports +type: application +version: 0.0.1 +appVersion: v0.0.1 +keywords: + - kubernetes + - policy reports storage + - postgresql +sources: + - https://github.com/kyverno/policy-reports +maintainers: + - name: Nirmata + url: https://kyverno.io/ + email: cncf-kyverno-maintainers@lists.cncf.io +kubeVersion: ">=1.16.0-0" +dependencies: +- condition: postgresql.enabled + name: postgresql + version: 13.4.1 + repository: oci://registry-1.docker.io/bitnamicharts diff --git a/charts/policy-reports/charts/postgresql-13.4.1.tgz b/charts/policy-reports/charts/postgresql-13.4.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..065459fe803e4ee54f19718e7066747b89d4816c GIT binary patch literal 63994 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 z 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